XSD rajoitukset / Facets
- Edellinen sivu XSD attribuutit
- Seuraava sivu XSD elementti
Rajoitus (restriction) käytetään XML-elementin tai ominaisuuden hyväksyttävien arvojen määrittämiseen. XML-elementin rajoitus kutsutaan toiseksi (facet).
Arvojen rajoittaminen
Seuraava esimerkki määrittelee yhden rajoitetun nimeltään "age" elementin. Age-arvon ei tule olla alle 0 tai yli 120:
<xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element>
Arvojen rajoittaminen
Jos haluamme rajoittaa XML-elementin sisällön joukosta hyväksytyille arvoille, meidän on käytettävä luettelo-rajoitusta (enumeration constraint).
Seuraava esimerkki määrittelee yhden rajoitetun nimeltään "car" elementin. Hyväksytyt arvot ovat vain Audi, Golf, BMW:
<xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element>
Yllä oleva esimerkki voidaan kirjoittaa myös seuraavasti:
<xs:element name="car"> type="carType"/> <xs:simpleType name="carType"> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType>
Huomautus:Tässä tapauksessa tyyppi "carType" voidaan käyttää muiden elementtien kanssa, koska se ei ole "car"-elementin osa.
Arvojen rajoittaminen
Jos haluamme määrittää XML-elementin sisällön rajoitetuksi joukosta käytettävissä olevia numeroita tai kirjaimia, meidän on käytettävä malli-rajoitusta (pattern constraint).
Seuraava esimerkki määrittelee yhden rajoitetun nimeltään "letter" elementin. Hyväksytyt arvot ovat vain pieniä kirjaimia a-z yksi kirjain:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Seuraava esimerkki määrittelee yhden rajoitetun nimeltään "initials" elementin. Hyväksytyt arvot ovat isojen kirjainten A-Z kolmea kirjainta:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Seuraava esimerkki määrittelee yhden rajoitetun nimeltään "initials" elementin. Hyväksytyt arvot ovat isojen tai pienien kirjainten a-z kolmea kirjainta:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Seuraava esimerkki määrittää elementin nimeltä "choice", jolla on määritelty rajaus. Hyväksyttävät arvot ovat kirjaimet x, y tai z yhdestä:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
Seuraava esimerkki määrittää elementin nimeltä "prodid", jolla on määritelty rajaus. Hyväksyttävät arvot ovat viiden arabian numeron mittainen sarja, ja jokaisen numeron arvo on 0-9:
<xs:element name="prodid"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/> </xs:restriction> </xs:simpleType> </xs:element>
Muiden arvojen rajoitukset
Esimerkki määrittää elementin nimeltä "letter", jolla on määritelty rajaus. Hyväksyttävät arvot ovat a-z-merkkien yhden tai useamman merkin mittaiset merkkijonot:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/> </xs:restriction> </xs:simpleType> </xs:element>
Esimerkki määrittää elementin nimeltä "letter", jolla on määritelty rajaus. Hyväksyttävät arvot ovat yhden tai useamman parin kirjaimia, joissa jokainen pari koostuu pienestä kirjaimesta ja suuresta kirjaimesta. Esimerkiksi "sToP" läpäisee tämän模式的验证, mutta "Stop"、"STOP" tai "stop" eivät läpäise tarkistusta:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z][A-Z])+"> </xs:restriction> </xs:simpleType> </xs:element>
Esimerkki määrittää elementin nimeltä "gender", jolla on määritelty rajaus. Hyväksyttävät arvot ovat male tai female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
Esimerkki määrittää elementin nimeltä "password", jolla on määritelty rajaus. Hyväksyttävät arvot ovat 8 merkin mittaiset merkkijono, joissa merkit ovat joko isokirjaimia a-z tai pienikirjaimia a-z tai numeroita 0-9:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9]{8}"/> </xs:restriction> </xs:simpleType> </xs:element>
Tyhjien merkien rajaus
Jos haluamme määrittää tyhjien merkkien (whitespace characters) käsittelyn tavan, meidän täytyy käyttää whiteSpace-rajausta.
Esimerkki määrittää elementin nimeltä "address", jolla on määritelty rajaus. Tämä whiteSpace-rajaus on asetettu arvoon "preserve", mikä tarkoittaa, että XML-käsittely ei poista minkäänä tahansa tyhjää merkkiä:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
Tämä esimerkki määrittää myös elementin nimeltä "address", jolla on rajoitus. Tämä whiteSpace rajoitus on asetettu "replace", mikä tarkoittaa, että XML-käsittelijä poistaa kaikki tyhjät merkit (lopetus符、enter符、avaruudet ja tabulatyyrit):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
Tämä esimerkki määrittää myös elementin nimeltä "address", jolla on rajoitus. Tämä whiteSpace rajoitus on asetettu "collapse", mikä tarkoittaa, että XML-käsittelijä poistaa kaikki tyhjät merkit (lopetus符、enter符、avaruudet ja tabulatyyrit korvataan avauksella, alkuperäiset ja lopulliset avaukset poistetaan, ja useat peräkkäiset avaukset lyhennetään yhdeksi ainoaksi avaukseksi):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
Pituuden rajoitus
Jos haluat rajoittaa elementin arvon pituutta, sinun täytyy käyttää length, maxLength ja minLength rajoituksia.
Tämä esimerkki määrittää elementin nimeltä "password", jolla on rajoitus. Arvon täytyy olla tarkalleen 8 merkkiä:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Tämä esimerkki määrittää myös elementin nimeltä "password", jolla on rajoitus. Arvon täytyy olla vähintään 5 ja enintään 8 merkkiä:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Datan tyypin rajoitus
Rajoitus | Kuvaus |
---|---|
enumeration | Määritä hyväksyttävien arvojen luettelo |
fractionDigits | Määritä sallitun suurimmasta desimaalimäärästä. Tämä täytyy olla suurempi tai yhtä suuri kuin 0. |
length | Määritä sallitun merkkien tai luettelon kohteiden tarkka määrä. Tämä täytyy olla suurempi tai yhtä suuri kuin 0. |
maxExclusive | Määritä lukuarvon yläraja. Sallitut arvot täytyy olla pienempiä tästä arvosta. |
maxInclusive | Määritellään arvon yläraja. Sallitut arvot on oltava pienemmät tai yhtä pieniä kuin tämä arvo. |
maxLength | Määritellään sallittujen merkkien tai luettelojen listan enimmäismäärä. On oltava suurempi tai yhtä suuri kuin 0. |
minExclusive | Määritellään arvon alaraja. Sallitut arvot on oltava suurempia kuin tämä arvo. |
minInclusive | Määritellään arvon alaraja. Sallitut arvot on oltava suurempia tai yhtä suuria kuin tämä arvo. |
minLength | Määritellään sallittujen merkkien tai luettelojen listan vähimmäismäärä. On oltava suurempi tai yhtä suuri kuin 0. |
pattern | Määritellään hyväksyttävien merkkien tarkka järjestys. |
totalDigits | Määritellään sallittujen arabialukujen tarkka määrä. On oltava suurempi kuin 0. |
whiteSpace | Määritellään tyhjien merkkien (uudelleenkirjoitus, palautusmerkki, välilyönti ja tabulaattori) käsittelytapa. |
- Edellinen sivu XSD attribuutit
- Seuraava sivu XSD elementti