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