Úvod
XML (Extensible Markup Language) technologie je otevřený
formát založený na principu značkovacího jazyku. Byl založen na principu jazyku
SGML v polovině 90 let.
Jeho výhodou je jednoduchá
úprava, srozumitelnost a podobná struktura s jazykem HTML (Hypertext
Markup Language). Další výhodou je jeho mezinárodní podpora. Jazyk užívá ISO
10646, což je 32 bitová znaková sada, která zahrnuje veškeré používané znaky
včetně české diakritiky.
Oproti HTML umožňuje XML
definovat vlastní sadu značek, které je potřebné v dokumentu používat.
Tato definice se nazývá DTD (Document Type Definition).
Pomocí DTD
definujeme, které elementy a atributy můžeme v XML dokumentu použít a to
v jakých vzájemných vztazích. Použití DTD není důležité pro zobrazení nebo
čtení XML dat, ale můžeme podle něj kontrolovat správnou strukturu dokumentu,
která je jednotně navržena jedinou instancí. V případě, že DTD
nepoužijeme, můžeme psát v XML dokumentu libovolné značky, parser nám poté
bude kontrolovat jen jejich validitu.
XML umožňuje vytváření
odkazů v rámci jednoho dokumentu i mezi dokumenty navzájem. Nabízí
však mnoho možností nad rámec odkazů, které známe z HTML. Můžeme vytvářet
i vícerozměrné odkazy, které spojují několik dokumentů dohromady, nebo ukládat
odkazy zcela mimo dokumenty, kterých se týkají.
Tvorba odkazů je popsána ve
třech standardech – Xlink, Xpointer a Xpath.
Xpath je jazyk umožňující adresovat jednotlivé části
dokumentu.
Xpointer odkazuje k jednotlivým částem dokumentu ve
formátovacím stylu.
Xlink je jazyk pro tvorbu odkazů pomocí jejich URL
(Unified Resource Locator), kde za adresou můžeme uvést ještě Xpointer na
přesné označení mista v dokumentu.
Samotná data XML souboru se
zobrazují v různých prohlížecích nástrojích v různé podobě -
v horším případě jako směs dat, v lepším jako stromová struktura
dokumentu spolu s daty. Pro jejich zobrazení v publikovatelné podobě
používáme stylové jazyky.
XSL (Extensible Stylesheet Language) vychází ze
standardu DSSSL, který nenašel žádnou odezvu v komerčním využití. XSL
poskytuje velkou část funkcí DSSSL, ale ve formátu, u nějž je mnohem větší
šance na univerzální podporu.
V současné době
podporuje přímé zobrazení dat XML s formátovacími styly prohlížeč
Microsoft Internet Explorer 6. Pro zobrazení ve starších prohlížečích se
používá překompilování XML dat XSL procesorem do všeobecně podporovaného jazyka
HTML.
Možnost měnit pořadí a formát
s pomocí tabulek XSL je dána přímo v prohlížeči (viz Microsoft Internet Explorer
6), ve kterém se zobrazují data bez
toho, aby se musel zapojit server. To je užitečné v aplikacích, které umožňují
interaktivní potlačení nebo naopak povolení zobrazení dat.
Formátovací styl XSL se
kombinuje se styly CSS (Cascading Style Sheets), ve kterých se definují
jednodušší styly (barvy, typy písma apod…). Zatímco v CSS je možné aplikovat
různý styl podle rodiče prvku, v XSL je možná mnohem podrobnější specifikace.
Tím je formátování mnohem flexibilnější. XSL podporuje formátování on-line i
při tisku. Zatímco CSS je omezeno na on-line zobrazení, XSL podporuje
formátovací funkce, které jsou potřebné při formátování složitějších tištěných
dokumentů.
Další podrobnější informace
- viz odkazy v kapitole “informační zdroje”.
Základy XML (zdroj: http://www.zvon.org/ZvonHTML/Zvon/zvonTutorials_cs.html):
1.
XML dokument musí obsahovat jeden nebo několik elementů
2.
Existuje přesně jeden element, který se nazývá root
(kořenový element) nebo dokument element , z nějž žádná část se nenachází
uvnitř jiného elementu
3.
Jméno v koncovém tagu se musí shodovat se jménem v
počátečním tagu. Záleží na tom, zda jsou použita velká nebo malá písmena
4.
Pokud se počáteční tag nachází v obsahu nějakého elementu,
koncový tag se musí nacházet ve stejném elementu.
5.
Konec každého elementu, který začíná počátečním tagem, musí
být označen koncovým tagem, který nese stejné jméno jako tag počáteční. Text
mezi počátečním a koncovým tagem se nazývá obsah elementu. Element, který nemá
žádný obsah, může být uveden ve speciální formě: <jméno/>. Lomítko před
> nahrazuje koncový tag.
6.
Název elementu může obsahovat písmena, číslice, podtržítko,
oddělovník, dvojtečku nebo tečku. Dvojtečka může být použita pouze ve
speciálním případě, kdy odděluje tzv. jmenný prostor. Název elementu může
začínat pouze písmenem, podtržítkem nebo dvojtečkou. Názvy elementů začínající
na xml, XML nebo jinou kombinaci velikostí těchto písmen jsou vyhrazeny pro
standard.
7.
Element může mít žádný, jeden nebo několik atributů. Pro
jejich názvy platí stejná pravidla jako pro názvy elementů. Jméno atributu je
odděleno od jeho hodnoty rovnítkem (tj. ”=”). Hodnota atributu musí být uvedena
uvnitř apostrofů '...' nebo uvozovek "..." . Pokud jsou apostrofy
nebo uvozovky použity v hodnotě atributu, musí být použit opačný oddělovač
8.
Znaky < a & nemohou být použity v textu, neboť jsou
určeny pro značkování. Pokud jsou znaky < a & v textu potřebné,
musí být patřičně ošetřeny:
8.1.
< musí být použito místo < a
8.2.
& musí být použito místo &
9.
Znaky >, " a ' mohou být rovněž nahrazeny řetězci
> , " a '
10.
Komentáře se mohou vyskytovat na libovolném místě v
dokumentu mimo vlastní značkování. Řetězec "--" se nesmí objevit
uvnitř komentáře.
11.
Programové instrukce (PI) umožňují předávání různých
instrukcí příslušné aplikaci.
12.
CDATA sekce se používá v případě, kdy potřebné použít text,
který obsahuje znaky běžně používané pro značkování. CDATA sekce začíná
řetězcem "<![CDATA[" a končí řetězcem "]]>". CDATA
sekce nesmí obsahovat řetězec ']]>'.
13.
XML dokumenty mohou a měly by začínat XML deklarací, která
určuje, jaké verze XML bylo použito.
Informační zdroje:
Knižní:
XML pro každého; Jiří Kosek
ISBN 80-7169-860-1, nakl.
Grada
Tvorba internetových
aplikací XML; Simon St. Laurent
ISBN 80-7226-170-3, nakl
Comp. Press
On-line zdroje:
v češtině:
DTD, XSL, XML: http://www.zvon.org/ZvonHTML/Zvon/zvonTutorials_cs.html
XML: http://www.fi.muni.cz/~xskrivan/prog/xml/index.html
XSL tutorial: http://www.zvon.org/HTMLonly/XSLTutorial_CS/Books/Book1/index.html
XML, XSL: http://www.kosek.cz/clanky/swn-xml/index.html
v angličtině:
[HL7] Health Level Seven –
standard pro výměnu dat ve zdravotnictví na http://www.hl7.org
(volně dostupný)
[AXP] Apache XML Project,
Apache, dostupné na http://www.apache.org
(volně dostupný software)
[BRD] Neil Bradley: XML,
kompletní průvodce, Grada, 2000, ISBN 80-7169-949-7
[CCL] Cafe con Leche XML
News and Resources, dostupné na http://www.ibiblio.org/xml/
(tutoriály, novinky, odkazy)
[FXT] Free XML tools and
software, dostupné na http://www.garshol.priv.no/download/xmltools/
[OXC] O`Reilly xml.com,
dostupné na http://www.xml.com (XML news)
[PFL] Peter Flynn: Často
kladené otázky o XML, dostupné na http://www.zvon.org/ZvonHTML/Translations/xmlFAQ/front_all.html
[SAS] http://ondatra.ov.sasprg.cz
[SAX] SAX 2.0: The Simple
API for XML, Megginson Technologies, dostupné na http://www.megginson.com/SAX/ (volně
dostupný parser řízený událostmi)
[XBI] XML Bible,
druhé vydání, vybrané kapitoly, dostupná na http://www.ibiblio.org/xml/books/bible/updates
(XSL-T, XSL-FO, Xlinks, Xpointers)
[XCP] The XML Cover Pages,
editor Robin Cover, OASIS, dostupné na http://www.oasis-open.org/cover/ ,
(všechno možné, i software)
[XFT] XSL FO Test Suite,
dostupné na http://www.renderx.com/testcases.html
[XMB] XML Base, W3C,
27 June 2001, dostupné na http://www.w3.org/TR/xmlbase/
(explicitní specifikace základního URI daného dokumentu)
[XMD] Extensible Markup
Language (XML), W3C, dostupné na http://www.w3.org/XML/
(diskuze, události, software, odkazy)
[XME] XMLephant, The BIG
XML Resource, Tools, dostupné na http://www.xmlephant.com/pages/Tools/index.html
(software)
[XMH] XML developer news
from XMLhack:by and for the XML community, dostupné na http://xmlhack.com
[XML] Extensible Markup
Language (XML) 1.0 (Second Edition), W3C Recommendation 6 October 2000,
dostupné na http://www.w3.org/TR/REC-xml
[XMP] XML Page,
dostupné na http://www.heise.de/ix/raven/Web/xml/
(software, …)
[XMS] Associating Style
Sheets with XML documents Version 1.0, W3C, 29 June 1999, dostupné na http://www.w3.org/TR/xml-stylesheet/
(odkaz na šablonu z XML dokumentu)
[XPH] XML Path Language
(XPath) Version 1.0, W3C, 16 November 1999, dostupné na http://www.w3.org/TR/xpath (odkazování
částí XML dokumentu)
[XPT] XML Pointer
Language (XPointer) Version 1.0, W3C, 11 September 2001, dostupné na http://www.w3.org/TR/xptr/ ,
(identifikace fragmentu v URI odkazu)
[XQL] XML-QL: A Query
Language for XML, 19.8.1998, dostupné na http://www.w3.org/TR/NOTE-xml-ql/
(vyhledávání hodnot v číselnících)
[XSL] Extensible
Stylesheet Language (XSL), Version 1.0, 28.8.2001, dostupné na http://www.w3.org/TR/xsl/
[XSS] The XML Software
Site, dostupné na http://www.xmlsoftware.com/
[XTR] XSL Transformations
(XSLT), Version 1.0, 16.11.1999, dostupné na http://www.w3.org/TR/xslt
[XTS] XSL 1.0 Test Suite,
W3C, 28 August 2001, dostupné na http://www.w3.org/Style/XSL/TestSuite/
[ZVO] ZVON, dostupné
na http://www.zvon.org/index.php
(nástroje, demonstrace XML)
XML procesory:
[JCX] James Clark: XT
Version 19991105, 1999, dostupné na http://www.jclark.com/xml/xt.html
[EXM] Electric XML,
dostupné na http://www.themindelectric.com/products/xml/xml.html
Nevalidující XML
procesory:
[EXP] James Clark: Expat
XML Parser, dostupné na http://sourceforge.net/projects/expat
[LAR] An Introduction to
XML Processing with Lark and Larval, dostupné na http://www.textuality.com/Lark/
[TIX] TinyXML,
dostupné na http://www.gibaradunn.srac.org/tiny/index.shtml
[XPP] XML Pull Parser 2
(XPP2), dostupné na http://www.extreme.indiana.edu/soap/xpp/
Validující XML procesory:
[ALF] Ælfred and
SAX, dostupné na http://www.opentext.com/services/content_management_services/xml_sgml_solutions.html#aelfred_and_sax
[CRI] Crimson,
dostupné na http://xml.apache.org/crimson/index.html
(Java)
[JSX] JSXML XML Tools,
dostupné na http://sourceforge.net/projects/jsxml/
[MSX] Microsoft XML Core
Services 4.0 RTM, dostupné na http://www.msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/766/msdncompositedoc.xml
[RXP] RXP, dostupné
na http://www.cogsci.ed.ac.uk/~richard/rxp.html
[STV] Schematron
validator, dostupný na http://www.topologi.com
[SXP] Silfide XML Parser
– SXP, dostupné na http://www.loria.fr/projets/XSilfide/EN/sxp/
[XER] Xerces Parser,
dostupné na http://xml.apache.org/xerces-c/index.html
(C++) a http://xml.apache.org/xerces2-j/index.html
(Java)
[XMC] The XML C library
for Gnome, dostupné na http://xmlsoft.org
[XMV] XML Validator from
EICel Technology, dostupné na http://www.elcel.com/products/xmlvalid.html
XSLT procesory:
[JDX] jd.xslt,
dostupné na http://www.aztecrider.com/xslt/
(XSLT procesor)
[MSX] MSXML Parser 3.0,
dostupné na http://msdn.microsoft.com/
[SBL] Sablotron, XSL
Transformations Processor, dostupné na http://www.gingerall.cz/charlie/ga/xml/d_sab.xml
(XSLT procesor)
[SXN] SAXON - The XSLT
Processor, dostupné na http://saxon.sourceforge.net/
[XAL] Xalan, dostupné
na http://xml.apache.org/xalan-j/index.html
(Java) nebo http://xml.apache.org/xalan-c/index.html
(C++)
[XSC] The XSLT C Library
for Gnome, dostupné na http://xmlsoft.org/XSLT/
Nástroje na zpracování
formátovacích objektů XSL:
[FOP] FOP, Apache,
dostupné na http://xml.apache.org/fop/
(nástroj na zpracování formátovacích objektů)
[JFO] jfor homepage -
Open-Source Java XSL-FO to RTF converter, dostupné na http://www.jfor.org/ (konverze XSL-FO do RTF)
Seznam použitých zkratek:
·
CSS Cascading Style Sheets
·
DSSSL Document Style Semantics and
Specification Language
·
DTD Document type definition
·
HTML HyperText MarkUp Language
·
SGML Standard Generalized MarkUp
Language
·
XML Extensible MarkUp Language
·
XSL Extensible StyleSheet
Language
·
XSLT Extensible StyleSheet
Transformation