Articles

xsd példa

Ez a fejezet bemutatja, hogyan kell XML sémát írni. Azt is megtudhatja, hogy egy séma különböző módon írható.

egy XML dokumentum

vessünk egy pillantást erre a “shiporder” nevű XML dokumentumra.xml”:

hozzon létre egy XML sémát

most szeretnénk létrehozni egy sémát a fenti XML dokumentumhoz.

kezdjük egy új fájl megnyitásával, amelyet “shiporder” – nek hívunk.xsd”. A séma létrehozásához egyszerűen követhetjük az XML dokumentum szerkezetét, és definiálhatunk minden elemet, ahogy megtaláljuk. Kezdjük a szabványos XML deklarációval, amelyet az XS:séma elem követ, amely meghatározza a sémát:

<?xml verzió= ” 1.0 “kódolás=” UTF-8″?>
<xs:séma xmlns:xs=”http://www.w3.org/2001/XMLSchema”>

< / xs:séma>

a fenti sémában a standard névteret (xs) használjuk, és az ehhez a névtérhez társított URI a séma nyelv definíciója, amelynek standard értéke http://www.w3.org/2001/XMLSchema.

ezután meg kell határoznunk a “shiporder” elemet. Ennek az elemnek van egy attribútuma, amely más elemeket is tartalmaz, ezért komplex típusnak tekintjük. A “shiporder” elem gyermekelemeit egy xs:sequence elem veszi körül, amely meghatározza az alelemek rendezett sorrendjét:

<xs:element name=”shiporder”>
<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:karakterlánc) az XML sémához társított névtér előtaggal van előtagolva, amely egy előre meghatározott séma adattípust jelez:

<xs:element name=”orderperson” type=”xs:string”/>

ezután meg kell határoznunk két olyan elemet, amelyek a komplex típus: “shipto” és “item”. Kezdjük a “shipto” elem meghatározásával:

a sémákkal meghatározhatjuk egy elem lehetséges előfordulásainak számát a maxOccurs és minOccurs attribútumokkal. a maxOccurs meghatározza az elemek előfordulásainak maximális számát,a minOccurs pedig az elemek előfordulásainak minimális számát. Az alapértelmezett érték mind a maxOccurs, mind a minOccurs esetében 1!

most meghatározhatjuk az” elem ” elemet. Ez az elem többször is megjelenhet egy “shiporder” elem belsejében. Ezt úgy határozzuk meg, hogy az “elem” elem maxOccurs attribútumát “korlátlan” értékre állítjuk, ami azt jelenti, hogy az “elem” elemnek annyi előfordulása lehet, amennyit a szerző kíván. Vegye figyelembe, hogy a” megjegyzés ” elem opcionális. Ezt úgy adtuk meg, hogy a minOccurs attribútumot nullára állítottuk:

most deklarálhatjuk a “shiporder” elem attribútumát. Mivel ez egy kötelező attribútum, megadjuk use=”kötelező”.

megjegyzés: az attribútum deklarációknak mindig utolsónak kell lenniük:

<xs:attribútum name=”orderid” type=”xs:string” use=”required”/>

itt található a “shiporder.xsd”:

Oszd meg a sémát

az előző tervezési módszer nagyon egyszerű, de nehezen olvasható és karbantartható, ha a dokumentumok összetettek.

a következő tervezési módszer az összes elem és attribútum meghatározásán alapul, majd a ref attribútum használatával hivatkozik rájuk.

itt van a séma fájl új kialakítása (“shiporder.xsd”):

elnevezett típusok használata

a harmadik tervezési módszer osztályokat vagy típusokat határoz meg, amelyek lehetővé teszik az elemdefiníciók újrafelhasználását. Ez úgy történik, hogy megnevezzük a simpleTypes és complex elemeket, majd az elem type attribútumán keresztül mutatunk rájuk.

itt található a sémafájl harmadik terve (“shiporder.xsd”):

a korlátozási elem azt jelzi, hogy az adattípus egy W3C XML séma névtér adattípusból származik. Tehát a következő töredék azt jelenti, hogy az elem vagy attribútum értékének string értéknek kell lennie:

<xs: restriction base= ” xs:string”>

The restriction element is more often used to apply restrictions to elements. Look at the following lines from the schema above:

<xs:simpleType name=”orderidtype”>
<xs:restriction base=”xs:string”>
<xs:pattern value=”{6}”/>
</xs:restriction>
</xs:simpleType>

Ez azt jelzi, hogy az elem vagy attribútum értékének karakterláncnak kell lennie, pontosan hat karakternek kell lennie egymás után, és ezeknek a karaktereknek 0-tól 9-ig terjedő számnak kell lenniük.