Article Index

Úvod do XML Schema Definition

DTD lze využít bez problémů na definování struktury XML dokumentu, jeho možnosti omezit uživateli vkládat vybraná data je velmi slabý (pouze omezení typu enumeration), možnost definovat přesný počet značek je také omezený. Z tohoto důvodu bylo vytvořeno XMLSchema. Tento nástroj má velmi mocné nástroje pro přesnou definici toho, co může být v XML dokumentu obsaženo. Na druhou stranu, XMLSchema má velmi košatý zápis. V případě nevhodného zápisu může být výsledný definiční kód velmi nepřehledný.

Jednoduchý zápis Pokud začneme s jednoduchým zápisem, kde potřebujeme definovat prostou hierarchii, můžeme použít příklad z kapitoly DTD:

<zprava>
  <od>Michal</od>
  <komu>Jan</komu>
  <predmet>Přednáška</predmet>
  <text>Vem to dnes prosím za mne.</text>
</zprava>

V tomto případě bude definice v xsd vypadat následovně:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="zprava">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="od" type="xs:string"/>
      <xs:element name="komu" type="xs:string"/>
      <xs:element name="predmet" type="xs:string"/>
      <xs:element name="text" type="xs:string"/>
     </xs:sequence>
    </xs:complexType>
   </xs:element>
</xs:schema>

Jak je vidět, na rozdíl od DTD, kde je zápis hierarchie poměrně přehledný, XMLSchema potřebuje výrazně více značek pro definice. Zároveň je zde vidět další rozdíl, kdy každá značka má definovaný datový typ.