====== Úvod do XML Schématu ======
Tohle není ani tak úvod, jako spíš pár mých "výpisků" -- pro interní účely. Není to žádný ucelený návod, jeden poskytuje Jirka Kosek na svých stránkách, ale je to velmi zevrubné. Pak jsou různé materiály "na Googlu".
===== XSD Primer =====
Po přečtení [[http://www.w3.org/TR/xmlschema-0/|úvodu]] do XSD mi z toho všeho vycházejí následující věci: elementy definujeme pomocí simple a complex typů. Jednoduché typy (simpleType) obsahují jen obsah, naproti tomu složené typy (complexType) mohou obsahovat další elementy, obsah (i mix obsahu s elementy) a také atributy. Příklad komplexního typu s několika podelementy a jedním atributem:
Elementy nebo typy se mohou odkazovat na jiné:
Každý element může obsahovat kardinalitu -- minOccurs, maxOccurs. Implicitně jsou nastaveny na jedničku (tj. element se vyskytuje právě jednou) a pomocí těchto dvou atributů lze kardinalitu nastavovat. Jednoduché typy lze snadno rozšiřovat:
Pakliže potřebujeme do jednoduchého typu vložit atribut, tak to musíme udělat takovouto konstrukcí:
Tedy nadefinujeme komplexní typ, který bude rozšiřovat (jednoduchý) typ decimal a přidávat nový atribut currency. Podobně lze například nadefinovat element, který nemá žádný obsah (jen atribut):
Tento zápis je shodný s tímto:
Je to proto, že pakliže napíšeme pouze complexType, tak je to jen zkratka pro
complexType s complexContent s restriction na typu //anyType//. Tento speciální
typ obsah nijak neomezuje -- může obsahovat všechno.
Nebudu se zabývat dalšími vlastnostmi XSD jako jsou skupiny (group) a
atributové skupiny (attributeGroup), zmíním se jen o nulových hodnotách (Nil
Values). XSD nabízí možnost přenášení null hodnot:
{{tag>java}}
~~DISCUSSION~~