XSD 限定 / Facets
- Föregående sida XSD egenskaper
- Nästa sida XSD element
Begränsning (restriction) används för att definiera de accepterade värdena för XML-element eller egenskaper. Begränsningar för XML-element kallas facet.
Begränsning av värden
Följande exempel definierar ett element med ett namn "age" med begränsningar. age-värdet får inte vara lägre än 0 eller högre än 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>
Begränsning av en grupp värden
För att begränsa innehållet i en XML-element till en grupp accepterade värden, måste vi använda enumera-begränsningar (enumeration constraint).
Följande exempel definierar ett element med ett namn "car" med begränsningar. De accepterade värdena är endast 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>
Följande exempel kan också skrivas som:
<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>
Kommentar:I detta fall kan typen "carType" användas av andra element, eftersom den inte är en del av elementet "car".
Begränsning av en serie värden
För att begränsa innehållet i en XML-element till en serie tillåtna siffror eller bokstäver, måste vi använda mönsterbegränsningar (pattern constraint).
Följande exempel definierar ett element med ett namn "letter" med begränsningar. De accepterade värdena är endast en liten bokstav a-z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Nästa exempel definierar ett element med ett namn "initials" med begränsningar. De accepterade värdena är tre stora bokstäver A-Z:
<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>
Nästa exempel definierar också ett element med ett namn "initials" med begränsningar. De accepterade värdena är tre stora eller små bokstäver a-z:
<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>
Nästa exempel definierar ett element med ett namn "choice" som har en begränsning. Godkända värden är en av bokstäverna x, y eller z:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
Nästa exempel definierar ett element med ett namn "prodid" som har en begränsning. Godkända värden är en sekvens av fem araberiska siffror, där varje siffra ligger inom intervallet 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>
Andra begränsningar för en serie värden
Följande exempel definierar ett element med ett namn "letter" som har en begränsning. Godkända värden är noll eller flera bokstäver från a-z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/> </xs:restriction> </xs:simpleType> </xs:element>
Följande exempel definierar ett element med ett namn "letter" som har en begränsning. Godkända värden är ett eller flera par bokstäver, där varje par består av en små bokstav följt av en stor bokstav. Till exempel kommer "sToP" att passera denna mönsterkontroll, men "Stop", "STOP" eller "stop" kommer inte att passera kontrollen:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z][A-Z])+"> </xs:restriction> </xs:simpleType> </xs:element>
Följande exempel definierar ett element med ett namn "gender" som har en begränsning. Godkända värden är male eller female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
Följande exempel definierar ett element med ett namn "password" som har en begränsning. Godkända värden är en rad tecken bestående av 8 tecken, dessa tecken måste vara stora eller små bokstäver a-z eller siffror 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>
Begränsning av blanktecken
För att reglera hur blanktecken (whitespace characters) ska behandlas, måste vi använda whiteSpace-begränsningen.
Följande exempel definierar ett element med ett namn "address" som har en begränsning. Denna whiteSpace-begränsning är satt till "preserve", vilket innebär att XML-handlaren inte kommer att ta bort några blanktecken:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
Detta exempel definierar också ett element med namnet "address" som har en begränsning. denna whiteSpace-begränsning är satt till "replace", vilket innebär att XML-handlaren kommer att ta bort alla blanktecken (radbrytningar, returtecken, blanksteg och tabulatorer):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
Detta exempel definierar också ett element med namnet "address" som har en begränsning. denna whiteSpace-begränsning är satt till "collapse", vilket innebär att XML-handlaren kommer att ta bort alla blanktecken (radbrytningar, returtecken, blanksteg och tabulatorer kommer att ersättas med ett blanksteg, och början och slutet av blanksteg kommer att tas bort samt att flera upprepade blanksteg kommer att reduceras till en enda blanksteg):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
Begränsning av längd
För att begränsa längden på värdet i ett element måste vi använda begränsningarna length, maxLength och minLength.
Detta exempel definierar ett element med namnet "password" som har en begränsning. dess värde måste vara exakt 8 tecken:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Detta exempel definierar också ett element med namnet "password" som har en begränsning. dess värde måste vara minst 5 tecken och max 8 tecken:
<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>
Begränsning av datatyp
Begränsning | Beskrivning |
---|---|
enumeration | Definierar en lista med acceptabla värden |
fractionDigits | Definierar det tillåtna maxantalet decimaler. Det måste vara större än eller lika med 0. |
length | Definierar det exakta antalet tillåtna tecken eller element i en lista. Det måste vara större än eller lika med 0. |
maxExclusive | Definierar det övre gränsen för ett värde. De tillåtna värdena måste vara mindre än detta värde. |
maxInclusive | Definiera det övre gränsen för det numeriska värdet. De tillåtna värdena måste vara mindre än eller lika med detta värde. |
maxLength | Definiera det största antalet tecken eller listobjekt som tillåts. Det måste vara större än eller lika med 0. |
minExclusive | Definiera det minsta värdet för det numeriska värdet. De tillåtna värdena måste vara större än detta värde. |
minInclusive | Definiera det minsta värdet för det numeriska värdet. De tillåtna värdena måste vara större än eller lika med detta värde. |
minLength | Definiera det minsta antalet tecken eller listobjekt som tillåts. Det måste vara större än eller lika med 0. |
pattern | Definiera den exakta sekvensen av tecken som accepteras. |
totalDigits | Definiera den exakta antalet decimaler som tillåts för de tillåtna arabiska siffrorna. Det måste vara större än 0. |
whiteSpace | Definiera behandlingsmetoden för tomma tecken (nyckel, retur, blanksteg och tabulator). |
- Föregående sida XSD egenskaper
- Nästa sida XSD element