příklad XSD
Tato kapitola ukáže, jak napsat schéma XML. Dozvíte se také, že schéma lze psát různými způsoby.
XML dokument
pojďme se podívat na tento XML dokument s názvem “ shiporder.xml“:
Vytvořit XML Schema
Nyní chceme vytvořit schéma pro XML dokument výše.
začneme otevřením nového souboru, který budeme nazývat “ shiporder.xsd“. Chcete-li vytvořit schéma, mohli bychom jednoduše sledovat strukturu v dokumentu XML a definovat každý prvek tak, jak ho najdeme. Začneme standardní deklarací XML následovanou prvkem XS: schema, který definuje schéma:
<xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema“>,
…
< / xs:schéma>
Ve schématu výše jsme použít standardní obor názvů (xs), a URI tento obor názvů Schématu jazyka definici, která má standardní hodnota http://www.w3.org/2001/XMLSchema.
dále musíme definovat prvek“ shiporder“. Tento prvek má atribut a obsahuje další prvky, proto jej považujeme za komplexní typ. Dítě prvků „shiporder“ prvek je obklopen xs:sequence element, který definuje uspořádanou posloupnost dílčích prvků:
<xs:complexType>
<xs:sequence>
…
</xs:sequence>
</xs:complexType>
</xs:element>
Then we have to define the „orderperson“ element as a simple type (because it does not contain any attributes or other elements). The type (xs:string) je označena předponou se předpona oboru názvů je jim přiřazen program XML Schématu, které naznačuje, předem definovaného schématu datového typu:
Next, musíme definovat dva prvky, které jsou pro komplexní typ: „shipto“ a „položky“. Začneme definováním „shipto“ element:
schémata můžeme definovat počet možných výskytů pro prvek s maxOccurs a minOccurs atributy. maxOccurs určuje maximální počet výskytů pro prvek a minOccurs určuje minimální počet výskytů pro prvek. Výchozí hodnota pro maxOccurs i minOccurs je 1!
Nyní můžeme definovat prvek“ položka“. Tento prvek se může objevit vícekrát uvnitř prvku“ shiporder“. To je určeno nastavením atributu maxOccurs prvku“ item “ na „unbounded“, což znamená, že elementu „item“ může být tolik výskytů, kolik si autor přeje. Všimněte si, že prvek „poznámka“ je volitelný. Zadali jsme to nastavením atributu minOccurs na nulu:
Nyní můžeme deklarovat atribut prvku „shiporder“. Protože se jedná o požadovaný atribut, určíme use= „required“.
Poznámka: atribut prohlášení musí být vždy poslední:
Zde je kompletní výpis schématu souboru s názvem „shiporder.xsd“:
rozdělte schéma
předchozí metoda návrhu je velmi jednoduchá, ale může být obtížné číst a udržovat, když jsou dokumenty složité.
další metoda návrhu je založena na definování všech prvků a atributů nejprve a poté na ně odkazuje pomocí atributu ref.
zde je nový návrh souboru schématu („shiporder.xsd“):
pomocí pojmenovaných typů
třetí metoda návrhu definuje třídy nebo typy, což nám umožňuje znovu použít definice prvků. To se provádí pojmenováním prvků simpleTypes a complexTypes a poté na ně přejděte pomocí atributu type prvku.
zde je třetí návrh souboru schématu („shiporder.xsd“):
prvek omezení označuje, že datový typ je odvozen z datového typu jmenného prostoru W3C XML Schema. Takže, následující fragment znamená, že hodnota elementu nebo atributu musí být hodnota řetězce:
The restriction element is more often used to apply restrictions to elements. Look at the following lines from the schema above:
<xs:restriction base=“xs:string“>
<xs:pattern value=“{6}“/>
</xs:restriction>
</xs:simpleType>
To znamená, že hodnotu prvek nebo atribut musí být řetězec, musí být přesně šest znaků v řadě, a tyto znaky musí být číslo od 0 do 9.