XML
XML. Monika Vajsová. Čo je to XML Aký je to WELL FORMED XML Čo je to DTD Aký je VALIDATE XML Na čo vlastne je XML Možnosti XML XML a Oracle. Čo je XML?. <?xml version="1.0" encoding="ISO-8859-2"?> <!DOCTYPE report SYSTEM "report20_4.dtd"> <report>
XML
E N D
Presentation Transcript
XML Monika Vajsová
Čo je to XML • Aký je to WELL FORMED XML • Čo je to DTD • Aký je VALIDATE XML • Na čo vlastne je XML • Možnosti XML • XML a Oracle
Čo je XML? <?xml version="1.0" encoding="ISO-8859-2"?> <!DOCTYPE report SYSTEM "report20_4.dtd"> <report> <hlavicka> <logo src="logofri2.bmp" /> <title>Kontrola štúdia</title> <os_cislo> 9203</os_cislo> <meno>Martin Novák</priezvisko> </hlavicka><telo> <skrok rok=" 1998"> <predmet> <cis_predm>P105</cis_predm> <nazov>Dopravná a informačná sústava</nazov> <znamka>3</znamka> <kredit> 3</kredit> <body>3</body> </predmet> <predmet>...</predmet> </skrok> <skrok>… </skrok> </telo> </report>
WELL FORMED XML(správne štrukturovaný) • Dodržať syntaktické pravidlá stanovené konzorciom W3C • Dokument obsahuje jeden alebo viac elementov • Práve jeden element je koreňový (root) • XML je CASE sensitive • Všetky elementy sú správne ohraničené (neexistujú neukončené elementy) • Ukončovacie tagy musia byť v opačnom poradí ako boli otvárané • Atribúty môže mať len otvárací tag elementu (nie ukončovací)
Validate XML • XML je validný, ak je k nemu pridružená deklarácia typu dokumentu (DTD) • A ak XML uvedenému DTD plne odpovedá • DTD – definujú množinu pravidiel, ktoré si vynucujú vnútornú konzistenciu príslušného dokumentu.
Ukážka DTD <!ELEMENT report (hlavicka, telo, zaver?)> <!ELEMENT hlavicka (logo?, skola?, os_cislo, meno,st_skupina?)> <!ELEMENT logo EMPTY> <!ELEMENT skola (#PCDATA)> <!ELEMENT os_cislo (#PCDATA)> <!ELEMENT meno (#PCDATA)> <!ELEMENT st_skupina (#PCDATA)> <!ELEMENT telo (skrok*, spolu?, poznamka?)> <!ELEMENT skrok (predmet*, statistika?)> <!ATTLIST skrok rok NMTOKEN #REQUIRED> <!ATTLIST skrok id ID #IMPLIED> <!ELEMENT predmet (cis_predm, nazov, znamka, kredit, body?)> <!ELEMENT cis_predm (#PCDATA)> <!ELEMENT nazov (#PCDATA)> <!ELEMENT znamka (#PCDATA)> <!ELEMENT kredit (#PCDATA)> <!ELEMENT body (#PCDATA)> <!ATTLIST logo src CDATA #IMPLIED> <!ATTLIST logo pos (upper|side) "upper"> …
DTD vrámci XML <?xml version=“1.0” encoding=“windows-1250”?> <?xml-stylesheet type=“text/css” href=“first.css”?> <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT (GREETING, MESSAGE)> <!ELEMENT GREETING (#PCDATA)> <!ELEMENT MESSAGE(#PCDATA)> ]> <DOCUMNET> <GREETING> Zdravime vas z XML </GREETING> <MESSAGE> Toto je text spravy. </MESSAGE> </DOCUMENT>
Pojmy • Parsovanie XML– parser (Xalan, Saxon, Oracle XSLT ...) vytvorí z XML strom elementov • XPath – jazyk, ktorým je možné určiť elemnty (atribúty) na základe cesty v strome od rootovského elementu a narábať s danými elementami • XSL=XSLT+XSL-FO • XSL – jazyk (Extensible Stylesheet Language) • XSL-FO – formátovacia časť jazyka – návrh vzhľadu dokumentu • XSLT – zabezpečuje transformáciu XML
xml.xsl XML dokument html.xsl HML dokument XSL = XSLT+ XSL-FO PDF dokument XML dokument pdf.xsl TXT dokument txt.xsl sql.xsl SQL dokument Možnosti XML a XSL
XML a Oracle • Oracle XML Developer's Kit • XDK for C • XML Parser/XSLT Processor for C v2 • XDK for PL/SQL • XML Parser/XSLT Processor for PL/SQL • XDK for C++ • XML Parser/XSLT Processor for C++ v2 • XML Class Generator for C++ • XDK for Java • XML Parser for Java v2 • XML Class Generator for Java • XML Transviewer Java Beans • XSQL Servlet • Oracle XML DB
XML Parser-XSLT Processor for PL/SQL • Ukladanie XML dokumentov do databázy (XType, CLOB ) • Vytváranie XML dokumentu pomocou SQL dotazu • Operácie Select, update nad XML dokumentmi
XSQL Servlet <?xml version="1.0"?> <xsql:query xmlns:xsql="urn:oracle-xsql" connection="demo"> SELECT 'Hello World' AS "GREETING" FROM DUAL </xsql:query> Čoho výsledkom je dynamicky vytvorené XML: <?xml version = '1.0'?> <ROWSET> <ROW id="1"> <GREETING>Hello World</GREETING> </ROW> </ROWSET>
Ďalšia literatúra • Oracle prezentácia • Rudolf Jansen: XML-Integration in Oracle 9i • Oracle XML Developer’s Kit – XDK