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.