Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) Obsah Specifikace a validita XML...........................................................................................2 XML 1.0 (Third Edition) ......................................................................................................2 Validita XML dokumentů.....................................................................................................2 Jazyky schémat používající vzory...................................................................................2 Schematron........................................................................................................................2 Examplotron ......................................................................................................................2 XML Schema.............................................................................................................2 XML Schema - základní zdroje informací................................................................................3 XML Schema - motivace ......................................................................................................3 XML Schema - hlavička definice schématu..............................................................................3 XML Schema - přiřazení typu elementu s daným názvem ...........................................................3 XML Schema - definice jednoduchého typu .............................................................................4 XML Schema - definice jednoduchého typu - příklad 1 ..............................................................4 XML Schema - definice jednoduchého typu - příklad 2 ..............................................................4 XML Schema - jednoduché typy - "union" ...............................................................................4 XML Schema - jednoduché typy - seznam hodnot .....................................................................5 XML Schema - definice složeného typu ..................................................................................5 XML Schema - definice složeného typu - skupiny .....................................................................6 XML Schema - definice složeného typu - skupiny atributů..........................................................6 XML Schema - použití skupin ...............................................................................................6 XML Schema - kompozitor "sequence" ...................................................................................6 XML Schema - kompozitor "choice".......................................................................................7 XML Schema - kompozitor "all" ............................................................................................7 XML Schema - jednoduchý obsah elementu.............................................................................8 XML Schema - smíšený obsah elementu..................................................................................8 XML Schema - další možnosti...............................................................................................8 XML Schema - anotace schémat ............................................................................................8 XML Schema - znovupoužití definice schématu........................................................................9 XML Schema - abstraktní a konečné typy ................................................................................9 XML Schema - jmenné prostory ............................................................................................9 XML Schema - nespecifikované elementy a atributy ..................................................................9 XML Schema - odkaz na definici schématu............................................................................10 Relax NG ................................................................................................................10 Relax NG - motivace .........................................................................................................10 Relax NG - základní zdroje informací ...................................................................................10 Jazyky schémat používající vzory.................................................................................11 Schematron......................................................................................................................11 Examplotron ....................................................................................................................11 1 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) Ostatní jazyky schémat...............................................................................................11 DSD 2.0 ..........................................................................................................................11 Vyjadřovací síla těchto modelů, jejich nedostatky....................................................................11 Nástroje na validaci XML dat modelovaných podle těchto standardů ..........................................11 Specifikace a validita XML XML 1.0 (Third Edition) • Původní specifikace (W3C Recommendation) XML 1.0 na W3C: http://www.w3.org/XML/ • 3rd Edition (aktualizace, ne změny) na http://www.w3.org/TR/2000/REC-xml-20001006 • výborná komentovaná verze téhož na XML.COM (Annotated XML): http://www.xml.eom/pub/a/axml/axmlintro.html • na XML 1.1 (Candidate Recommendation) [http://www.w3.org/TR/xmlll/] - změny indukované zavedením UNICODE 3, lepší možnosti normalizace, upřesnění postupu manipulace se znaky ukončení řádku. Validita XML dokumentů Opakování: každý XML dokument MUSÍ být správně utvořený {well formed) Nové: XML dokument můřže být platný {valid) dokument: Platný podle specifikace znamená přísnější omezení než správně utvořený. Obvykle se validitou myslí soulad s DTD (Document Type Definition) dokumentu nebo (moderněji) - soulad s XML Schematem, případně jinými schématy (RelaxNG, Schematron). Jazyky schémat používající vzory Schematron Schematron home page [http://www.ascc.net/xml/resource/schematron/schematron.html] Examplotron Examplotron home page [http://examplotron.org] XML Schema 2 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) XML Schema - základní zdroje informací Specifikace XML Schema - http://www.w3.org/XML/Schema Tutoriál Using W3CXML Schema: http://www.xml.eom/pub/a/2000/ll/29/schemas/partl.html - stručný XML Schema Tutorial - http://www.w3schools.com/schema/default.asp - obsáhlejší vynikající komplexní tutoriál na http://www.xfront.com XML Schema - motivace Dát silnější prostředek pro specifikaci modelu XML dat než je DTD; mít možnost: • Oddělit koncept typu (např. typu elementu) od jeho výskytu (instance, např. elementu s určitým názvem) - to DTD neumí • Poskytnout bohatší škálu primitivních datových typů • Umožnit použití jmenných prostorů Umožnit jemnější specifikaci modelu obsahu (elementů) • Umožnit odvozování nových typů {dědičností) Umožnit modularizaci a znovupoužitelnost schémat • Zapisovat schéma v XML XML Schema - hlavička definice schématu .../... XML Schema - přiřazení typu elementu s daným názvem 3 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) ... definice typu - je přimo zde - tzv. "local" nebo daná odkazem - tzv. "globa XML Schema - definice jednoduchého typu • Neobsahuje dceřinné elementy, lze použít jako typ obsahu elementu nebo atributu • Lze definovat restrikcí z existujícího typu ... XML Schema - definice jednoduchého typu - příklad 1 Restrikce délky obsahu XML Schema - definice jednoduchého typu - příklad 2 Restrikce obsahu regulárním výrazem XML Schema -jednoduché typy - "union" Zhruba odpovídá konceptu "union" v C Výsledkem je jednoduchý typ Lze spojovat bázový typ a výčet hodnot Příklad: 4 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) XML Schema -jednoduché typy - seznam hodnot Lze definovat typ jako seznam hodnot oddělených bílými znaky Dalším odvozením lze omezit počet prvků seznamu Příklad XML Schema - definice složeného typu Místo sekvence lze použít a 5 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) XML Schema - definice složeného typu - skupiny při definici složeného typu lze použít skupiny (group) Skupina elementů: Místo sekvence lze použít a XML Schema - definice složeného typu - skupiny atributů Skupina atributů: Může být uvedena povinnost výskytu (use=required) XML Schema - použití skupin Příklad použití skupin elementů a atributů XML Schema - kompozitor "sequence" Předepisuje výskyt dceřinných elementů v určitém pořadí 6 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) .../... .../... sequence označuje model obsahu připouštějící výskyt dané posloupnosti (sekvence) dceřinných elementů xs je prefix vázaný na NS s URL http://www.w3.org/2001/XMLSchema Místo lze použít nebo XML Schema - kompozitor "choice" Předepisuje výskyt jednoho z dceřinných elementů nebo skupin elementů .../... .../... XML Schema - kompozitor "all" Předepisuje výskyt dceřinných elementů bez určeného pořadí Smí být jen na nejvyšší úrovni definice obsahu Dceřinné elementy nesmí mít kardinalitu větší než 1 Příklad: 7 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) XML Schema -jednoduchý obsah elementu Příklad: XML Schema - smíšený obsah elementu Nelze validovat textový obsah (textové dceřinné uzly) Lze validovat dceřinné elementy Příklad: XML Schema - další možnosti Možnost specifikace integritních omezení:hodnota je jedinečná - xs :uniquehodnota je klíčem -xs : keyhodnota je odkazem na klíč - xs : keyref XML Schema - anotace schémat Anotace je (lidsky čitelná) poznámka-komentář ke schématu Může též obsahovat informace pro zpracování - viz příklad - xs:appinfo Další obsah není předepsán (omezen) - viz příklad - bind, class Příklad Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) Top level element. Element racine. XML Schema - znovupoužití definice schématu Přímo: S předefinováním: XML Schema - abstraktní a konečné typy abstract - nelze instanciovat, pouze jako zákad k odvozování dědičností final - nelze rozšiřovat/odvozovat dědičností XML Schema -jmenné prostory Příklad .../... XML Schema - nespecifikované elementy a atributy 9 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) Umožní připustit i něco, co předem neznáme Příklad Pro atributy - xs: any Attribute XML Schema - odkaz na definici schématu Relax NG Relax NG - motivace XML Schema: • Je (zbytečně) složité (specifikace má přes 200 stran) • Může vést v jistých situacích k nejednoznačnostem. Snaží se o pokrytí všech aplikačních oblastí (dokumentové i databázové použití XML a všechno mezi tím). • Obtížně (úplně) implementovatelné. • Dále viz http://www.xml.eom/lpt/a/2002/01/23/relaxng.html Relax NG - základní zdroje informací Vznikl z RELAXu při skupině OASIS-OPEN: 10 Validace a schémata XML dat (XML Schema, Relax NG, Schematron...) • http://www.oasis-open.org/committees/relax-ng Jazyky schémat používající vzory Schematron Schematron home page [http://www.ascc.net/xml/resource/schematron/schematron.html] Examplotron Examplotron home page [http://examplotron.org] Ostatní jazyky schémat DSD 2.0 Vznikl na Univerzitě v Aarhusu, DK Podobně jako RELAX NG je jednodušší než XML Schema viz http://www.brics.dk/~amoeller/XML/ Spíše akademický charakter, skutečnými soupeři zůstávají XML Schema a RELAX NG Vyjadřovací síla těchto modelů, jejich nedostatky viz http://www.xml.eom/lpt/a/2001/12/12/schemacompare.html Nástroje na validaci XML dat modelovaných podle těchto standardů Nástroje na validaci XML dat modelovaných podle těchto standardů 11