130 likes | 325 Views
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>
E N D
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