XSD - Beperkingen/Facets
- Vorige pagina XSD - Eigenschappen
- Volgende pagina XSD - Gecompositeerde elementen
Een beperking (restriction) wordt gebruikt om aan te geven welke waarden een XML-element of eigenschap mag hebben. Een beperking van een XML-element wordt een facet genoemd.
Beperking van waarden
Het volgende voorbeeld definieert een element genaamd "age" met een beperking. De waarde van age mag niet lager zijn dan 0 of hoger dan 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>
Beperking van een groep waarden
Om de inhoud van een XML-element te beperken tot een groep van acceptabele waarden, moeten we gebruik maken van een enumeratiebeperking (enumeration constraint).
De volgende voorbeelddefinitie definieert een element genaamd "car" met een beperking. De acceptabele waarden zijn slechts: 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>
Het vorige voorbeeld kan ook worden geschreven als:
<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>
Opmerking:In dit geval kan het type "carType" gebruikt worden door andere elementen, omdat het geen onderdeel is van het element "car".
Beperking van een reeks waarden
Om de inhoud van een XML-element te beperken tot een reeks van gebruikte cijfers of letters, moeten we gebruik maken van een patroonbeperking (pattern constraint).
De volgende voorbeelddefinitie definieert een element genaamd "letter" met een beperking. De acceptabele waarden zijn slechts een van de kleine letters a-z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
De volgende voorbeelddefinitie definieert een element genaamd "initials" met een beperking. De acceptabele waarden zijn drie hoofdletters 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>
De volgende voorbeelddefinitie definieert ook een element genaamd "initials" met een beperking. De acceptabele waarden zijn drie van de hoofdletters of kleine letters 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>
De volgende voorbeelddefinitie definieert een element genaamd "choice" met een beperking. De acceptabele waarden zijn een van de letters x, y of z:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
De volgende voorbeelddefinitie definieert een element genaamd "prodid" met een beperking. De acceptabele waarden zijn een reeks van vijf Arabische cijfers, waarbij elk cijfer in het bereik 0-9 ligt:
<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>
Andere beperkingen voor een reeks waarden
Het volgende voorbeeld definieert een element genaamd "letter" met een beperking. De aanvaardbare waarden zijn nul of meerdere letters uit a-z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/> </xs:restriction> </xs:simpleType> </xs:element>
Het volgende voorbeeld definieert een element genaamd "letter" met een beperking. De aanvaardbare waarden zijn een paar of meerdere paren letters, waarbij elk paar een kleine letter gevolgd door een hoofdletter is. Bijvoorbeeld, "sToP" zal deze verificatiemodus doorstaan, maar "Stop", "STOP" of "stop" zullen dat niet doen:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z][A-Z])+"/> </xs:restriction> </xs:simpleType> </xs:element>
Het volgende voorbeeld definieert een element genaamd "gender" met een beperking. De aanvaardbare waarden zijn male of female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
Het volgende voorbeeld definieert een element genaamd "password" met een beperking. De aanvaardbare waarden bestaan uit een regel van 8 characters, die zowel hoofdletters als kleine letters a-z of cijfers 0-9 moeten zijn:
<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>
Beperking van witruimtecharacters
Om de manier van omgaan met witruimtecharacters (whitespace characters) te regelen, moeten we de whiteSpace-beperking gebruiken.
Het volgende voorbeeld definieert een element genaamd "address" met een beperking. Deze whiteSpace-beperking is ingesteld op "preserve", wat betekent dat de XML-verwerker geen witruimtecharacters zal verwijderen:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
Dit voorbeeld definieert ook een element genaamd "address" met een beperking. Deze whiteSpace-beperking is ingesteld op "replace", wat betekent dat de XML-verwerker alle witruimtecharacters (reghoeken, enter, spaties en tabtoetsen) zal verwijderen:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
Dit voorbeeld definieert ook een element genaamd "address" met een beperking. De whiteSpace-beperking is ingesteld op "collapse", wat betekent dat de XML-verwerker alle witruimte tekens (reepjes, enter, spaties en tabulairstrukjes) zal vervangen door een enkele ruimte, de witruimte aan het begin en einde zal worden verwijderd en meerdere opeenvolgende spaties zullen worden samengevoegd tot één enkele ruimte:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
Beperking van de lengte
Om de lengte van de waarde van een element te beperken, moeten we de beperkingen length, maxLength en minLength gebruiken.
Dit voorbeeld definieert een element genaamd "password" met een beperking en exact 8 tekens lang:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Dit voorbeeld definieert ook een element genaamd "password" met een beperking. De waarde ervan moet minimaal 5 tekens zijn en maximaal 8 tekens:
<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>
Beperking van de gegevenstype
Beperking | Beschrijving |
---|---|
enumeration | Definieer een lijst van aanvaardbare waarden |
fractionDigits | Definieer het maximale aantal decimalen van de toegestane waarden. Dit moet groter of gelijk zijn aan 0. |
length | Definieer het exacte aantal toegestane tekens of items in een lijst. Dit moet groter of gelijk zijn aan 0. |
maxExclusive | Definieer het bovengrens van de getallen. De toegestane waarden moeten kleiner zijn dan deze waarde. |
maxInclusive | Definieer het bovengrens van de getallen. De toegestane waarden moeten kleiner of gelijk zijn aan deze waarde. |
maxLength | Definieer het maximale aantal toegestane tekens of items in een lijst. Dit moet groter of gelijk zijn aan 0. |
minExclusive | Definieer het onderste limiet van de getallen. De toegestane waarden moeten groter zijn dan deze waarde. |
minInclusive | Definieer het minimum van het getal. De toegestane waarden moeten groter zijn of gelijk zijn aan deze waarde. |
minLength | Definieer het minimale aantal tekens of items in de lijst die zijn toegestaan. Dit moet groter of gelijk zijn aan 0. |
pattern | Definieer de nauwkeurige reeks van tekens die zijn toegestaan. |
totalDigits | Definieer de nauwkeurige hoeveelheid decimale cijfers die zijn toegestaan. Dit moet groter zijn dan 0. |
whiteSpace | Definieer de verwerking van witruimte (reepjes, carrières, spaties en tab-tasters). |
- Vorige pagina XSD - Eigenschappen
- Volgende pagina XSD - Gecompositeerde elementen