Princip jazyka XML

 

Ú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.        &lt; musí být použito místo < a

8.2.        &amp; musí být použito místo &

9.              Znaky >, " a ' mohou být rovněž nahrazeny řetězci &gt; , &quot; a &apos;

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