Articles

XSD-esimerkki

tämä luku osoittaa, miten XML-skeema kirjoitetaan. Opit myös, että skeema voidaan kirjoittaa eri tavoin.

XML-dokumentti

katsotaanpa tätä XML-dokumenttia nimeltä ”shiporder.xml”:

luo XML-skeema

nyt haluamme luoda skeeman yllä olevalle XML-dokumentille.

aloitamme avaamalla uuden tiedoston, jota kutsumme nimellä ”shiporder.xsd”. Luoda skeema voisimme yksinkertaisesti seurata rakennetta XML-asiakirjan ja määritellä kunkin elementin kuten löydämme sen. Aloitamme standardilla XML-julistuksella, jota seuraa skeeman määrittelevä xs: skeema-Elementti:

<?xml version=”1.0″ encoding= ”UTF-8”?>
<xs:skeema xmlns:xs=”http://www.w3.org/2001/XMLSchema”>

< / xs:skeema>

yllä olevassa skeemassa käytetään standardinimiavaruutta (xs), ja tähän nimiavaruuteen liittyvä URI on Skeemakielen määritelmä, jonka vakioarvo onhttp://www.w3.org/2001/XMLSchema.

seuraavaksi on määriteltävä ”shiporder” – Elementti. Tällä elementillä on attribuutti ja se sisältää muita elementtejä, joten pidämme sitä monimutkaisena tyyppinä. ”Shiporder” – elementin lapsielementtejä ympäröi xs:sequence-elementti, joka määrittelee alielementtien järjestetyn sarjan:

<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:string) etuliitteenä on XML-skeemaan liittyvä nimiavaruuden etuliite, joka ilmaisee ennalta määritellyn skeema-tietotyypin:

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

seuraavaksi on määriteltävä kaksi elementtiä, jotka ovat monimutkainen tyyppi: ”shipto” ja ”kohde”. Aloitamme määrittelemällä” shipto ” – elementin:

skeemoilla voimme määritellä mahdollisten esiintymien määrän elementille, jolla on maxOccurs-ja minOccurs-attribuutit. maxOccurs määrittää suurimman poikkeamien määrän alkuaineelle ja minOccurs määrittää poikkeamien vähimmäismäärän alkuaineelle. Oletusarvo sekä maxOccurs että minOccurs on 1!

nyt voidaan määritellä ”kohde” – Elementti. Tämä elementti voi näkyä useita kertoja ”shiporder” – elementin sisällä. Tämä määritellään asettamalla ”kohde” – elementin maxoccurs-attribuutti ”unbounded” – attribuutiksi, mikä tarkoittaa, että ”kohde” – elementin esiintymiä voi olla niin monta kuin tekijä haluaa. Huomaa, että” note ” – elementti on valinnainen. Olemme täsmentäneet tätä asettamalla minOccurs-attribuutin nollaksi:

voimme nyt julistaa ”shiporder” – elementin attribuutin. Koska tämä on pakollinen ominaisuus, määritämme käyttö= ”pakollinen”.

Huom: attribuuttien ilmoitusten tulee aina tulla viimeisinä:

<xs:attribute name=”orderid” type=”xs:string” use=”required”/>

tässä on skeematiedoston täydellinen listaus ”laivatilaus.xsd”:

Jaa skeema

edellinen suunnittelumenetelmä on hyvin yksinkertainen, mutta voi olla vaikea lukea ja ylläpitää, kun asiakirjat ovat monimutkaisia.

seuraava suunnittelumenetelmä perustuu siihen, että ensin määritellään kaikki elementit ja attribuutit ja sitten viitataan niihin ref-attribuutilla.

tässä on skeematiedoston uusi muotoilu (”shiporder.xsd”):

käyttäen nimettyjä tyyppejä

kolmas suunnittelumenetelmä määrittelee luokat tai tyypit, mikä mahdollistaa elementtimääritysten uudelleenkäytön. Tämä tapahtuu nimeämällä simpleTypes-ja complexTypes-elementit ja osoittamalla ne sitten elementin tyyppiattribuutin kautta.

tässä on skeematiedoston kolmas muotoilu (”shiporder.xsd”):

rajoituselementti osoittaa, että datatyyppi on johdettu W3C: n XML-skeeman nimiavaruuden datatyypistä. Seuraava katkelma tarkoittaa siis sitä, että elementin tai attribuutin arvon on oltava merkkijonon arvo:

<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:simpletyyppi>

tämä tarkoittaa, että elementin tai attribuutin arvon on oltava merkkijono, sen on oltava täsmälleen kuusi merkkiä peräkkäin ja näiden merkkien on oltava luku 0: sta 9: ään.