XML snadno a rychle

Následníkem této stránky je článek XML snadno a rychle ve Zpravodaji UVT.

Vysvetleni principu XML

XML for the absolute beginer
Strucne receno XML je metajazyk, takze dokumenty nejsou primo v XML, ale v aplikaci XML, tedy kazdy dokument je slozen ze dvou casti, DTD (Document Type Definition) - definice jazyka a samotneho dokumentu, ktery se na definici odkazuje.

tutorialy XML

W3C specifikace je zakladnim, ale neprilis citelnym dokumentem, proto neni vhodna jako tutorial.
SUN tutorial
The XML Revolution
Pro dalsi patrani je mozne zacit na W3C XML strance.

SAX a DOM (Simple Api for XML, Document Object Model)

Pro cteni XML dokumentu jsou dva zpusoby, SAX a DOM. DOM prevede cely dokument na strom objektu v pameti, kdezto SAX pri nacitani dokumentu generuje serii volani funkci. Tedy DOM je pohodlnejsi, ale pomaly a zabira hodne pameti, kdezto SAX je rychly a pamet nepotrebuje zadnou, ale je nepohodlny.

JDOM (Java DOM)

JDOM slucuje vyhody SAX a DOM - nacte dokument rychle pomoci SAX parseru, ale reprezentuje ho jako strom objektu podobne jako DOM, ovsem lepe.
Jak nacist a vytisknout v Jave XML dokument pomoci JDOM knihovny: Easy Java/XML integration with JDOM
Trida pro vytisknuti XML souboru: MujXML.java
Ukazka pokrocile manipulace pomoci JDOM: PokrocilyXML.java

Namespaces

W3C definice
Namespaces kvalifikuji nazev kazdeho tagu nebo atributu pomoci jmena s dvojteckou stylem <prostor:tag> kvuli rozliseni ruznych mnozin tagu a atributu, pokud jsou smichany v jednom dokumentu. Napr. ve stylesheetu pro preklad z XML do HTML jsou zaroven tagy stylesheetu a vysledneho HTML, proto jsou rozliseny dvema ruznymy namespacy.

Schemas

tutorial
XML Schema Part 1 - Structures
XML Schema Part 2 - Datatypes
Schema v podstate dodava k XML typovost, tj. kontextova omezeni.

XPath a XPointer

W3C definice XPath
W3C definice XPointer
XPath jsou vyrazy urcujici konkretni misto uvnitr nejakeho dokumentu, napr. treti tag od zacatku se jmenem "hopla" se napise jako //hopla[position()=3]. Pouziva se hlavne v XSLT stylesheetech pro urceni ktere tagy se maji zpracovat.
XPointer naproti tomu urcuje odkazy mezi celymi XML dokumenty a krome klasickeho jednosmerneho linku znameho z HTML umoznuje i linky s vice konci. neni to vsak zatim v praxi pouzivano.

XSL (eXtensible Stylesheet Language)

tutorial
W3C XSL definice
W3C XSLT definice
XSL sestava ze dvou casti: XSLT (Transformations) a XSL:FO (Formating Objects). XSLT definuje transformaci XML dokumentu na jiny dokument, coz muze byt jiny dokument v jine aplikaci XML (napriklad vyfiltrovani nazvu kapitol z knihy), nebo dokument v XSL:FO. XSL:FO uz primo urcuje vzhled dokumentu, obsahuje tagy pro zalamovani, barvy, fonty atd.

SOAP (Simple Object Access Protocol)

W3C definice
V podstate RPC (Remote Procedure Call) pomoci HTTP requestu, objekt se prevede na XML reprezentaci, specifikuje se metoda ktera se ma zavolat a to se posle serveru.

Podpora XSLT v prohlizecich

MSIE 5.0 a 5.5

Verze 5.0 a 5.5 jsou distribuovany s MSXML2.5, ktere implementuje draft verzi specifikace XSLT. Pro podporu konecne verze specifikace je nutne upgradovat na MSXML3.

MSIE 6.0 a Mozilla 0.9

Podporuji XSLT stylesheety pro prevod do XHTML. Nepodporuji XSL:FO.

Priklady

Samotny XML soubor s DTD

emsg.dtd definuje jednoduchy jazyk pro definovani zprav, zprava.xml pak obsahuje konkretni zpravu a odkazuje se na DTD.

Pouziti XML s CSS

XML soubor hantec_css.xml se odkazuje na CSS stylesheet hantec.css ktery mu definuje vzhled.

Pouziti XSLT a XSL:FO

XML soubor hantec.xml byl pomoci XSLT stylesheetu hantec_fo.xsl konvetovan na XSL:FO objekty. Protoze vsak zadny broser zatim neumi zobrazovat XSL:FO, vysledek byl pomoci Apache FOP preveden na PDF soubor hantec.pdf.

Pouziti XSLT primo v prohlizeci

XML soubor hantec.xml obsahuje direktivu
<?xml-stylesheet type="text/xsl" href="hantec_xhtml.xsl" media="screen"?>
ktera zpusobi jako transformaci souborem hantec_xhtml.xsl na HTML, ktere je pak primo zobrazeno.