====== Ú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~~