XSD 限定 / Facets
- Previous Page XSD Attribute
- Next Page XSD Element
Ang paghahawakan (restriction) ay ginagamit upang tanggapin ang mga halaga na maaaring gamitin sa XML elemento o attribute. Ang paghahawakan ng XML elemento ay tinatawag na facet.
Panghahawakan ng halaga
Ang susunod na halimbawa ay nagtatalaga ng isang may limitasyon at pangalan na "age" ng elemento. Ang halaga ng "age" ay hindi dapat mababa sa 0 o mas mataas sa 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>
Panghahawakan ng isang grupo ng halaga
Kung gusto mong limitahan ang nilalaman ng XML elemento bilang isang grupo ng tinatanggap na halaga, kailangan gumamit ka ng enumeration constraint (panghahawakan ng pagtatalaga).
Ang susunod na halimbawa ay nagtatalaga ng isang may limitasyon na pangalan na "car" ng elemento. Ang tinatanggap na halaga ay: 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>
Ang susunod na halimbawa ay maaaring isulat din bilang:
<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>
Komento:Sa kasong ito, ang uri "carType" ay maaaring gamitin ng ibang elemento dahil hindi ito bahagi ng elemento na "car".
Panghahawakan ng isang serye ng halaga
Kung gusto mong limitahan ang nilalaman ng XML elemento bilang isang serye ng mga magagamit na numero o alpabeto, kailangan gumamit ka ng pattern constraint (panghahawakan ng pattern).
Ang susunod na halimbawa ay nagtatalaga ng isang may limitasyon na pangalan na "letter" ng elemento. Ang tinatanggap na halaga ay isa lamang sa malabnaw na alpabeto a - z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Ang susunod na halimbawa ay nagtatalaga din ng isang may limitasyon na pangalan na "initials" ng elemento. Ang tinatanggap na halaga ay ang mga malalakas na alpabeto A - Z sa loob ng tatlong:
<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>
Ang susunod na halimbawa ay nagtatalaga din ng isang may limitasyon na pangalan na "initials" ng elemento. Ang tinatanggap na halaga ay ang mga malalakas o malabnaw na alpabeto a - z sa loob ng tatlong:
<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>
Ang susunod na halimbawa ay nagtatalaga ng isang elemento na may limitasyon na may pangalang "choice". Ang mga tinatanggap na halaga ay isang titik x, y o z:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
Ang susunod na halimbawa ay nagtatalaga ng isang elemento na may limitasyon na may pangalang "prodid". Ang mga tinatanggap na halaga ay isang serye ng limang arawang numero, ang bawat numero ay may saklaw na 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>
Ibang mga limitasyon ng isang serye ng mga halaga:
Ang halimbawa na ito ay nagtatalaga ng isang elemento na may limitasyon na may pangalang "letter". Ang mga tinatanggap na halaga ay anumang bilang ng mga titik sa a - z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/> </xs:restriction> </xs:simpleType> </xs:element>
Ang halimbawa na ito ay nagtatalaga ng isang elemento na may limitasyon na may pangalang "letter". Ang mga tinatanggap na halaga ay isang pares o maraming pares ng mga titik, ang bawat pares ay isang maliit na titik na sinundan ng malaki na titik. Halimbawa, "sToP" ay tatanggapin ng ganitong pattern, ngunit "Stop", "STOP" o "stop" ay hindi tatanggapin:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z][A-Z])+"/> </xs:restriction> </xs:simpleType> </xs:element>
Ang halimbawa na ito ay nagtatalaga ng isang elemento na may limitasyon na may pangalang "gender". Ang mga tinatanggap na halaga ay male o female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
Ang halimbawa na ito ay nagtatalaga ng isang elemento na may limitasyon na may pangalang "password". Ang mga tinatanggap na halaga ay isang linya ng 8 na karakter, ang mga karakter na ito ay dapat na mayroong malaki o maliit na titik a - z o numero 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>
Limitasyon ng mga blank space:
Upang tukuyin ang paraan ng paghawak ng mga blank space (whitespace characters), kailangan nating gamitin ang limitasyon na whiteSpace:
Ang halimbawa na ito ay nagtatalaga ng isang elemento na may limitasyon na may pangalang "address". Ang limitasyon na whiteSpace na ito ay itinakda na "preserve", ibig sabihin ang XML processor ay hindi aalis ang anumang mga blank space:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
Ang halimbawa na ito ay nagtatalaga ng isang pinigilang may pangalan na "address" na elemento. Ang whiteSpace na pinigil ay na-set sa "replace", na nangangahulugan na ang processor ng XML ay mag-alis ng lahat ng mga space character (ang mga paglipat ng pananagaling, pagpalit ng pananagaling, mga space at tab na mga character):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
Ang halimbawa din ay nagtatalaga ng isang pinigilang may pangalan na "address" na elemento. Ang whiteSpace na pinigil ay na-set sa "collapse", na nangangahulugan na ang processor ng XML ay mag-alis ng lahat ng mga space character (ang mga paglipat ng pananagaling, pagpalit ng pananagaling, mga space at tab na mga character ay papalitan ng isang space, ang mga space sa simula at katapusan ay alisin, at ang mga ilang magkakasunod na space ay pinagsama sa isang nag-iisang space):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
Pinigil sa haba
Upang mapigil ang haba ng halaga ng elemento, kailangan nating gamitin ang mga pinigil na length, maxLength at minLength.
Ang halimbawa na ito ay nagtatalaga ng isang pinigil at may pangalan na "password" na elemento. Ang halaga nito ay dapat na eksaktong 8 na character:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Ang halimbawa din ay nagtatalaga ng isang pinigilang may pangalan na "password" na elemento. Ang halaga nito ay dapat na may pinakamaliit na 5 na character, at pinakamataas na 8 na character:
<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>
pagpipigil ng uri ng datos
pagpipigil | paglalarawan |
---|---|
enumeration | Tinukoy ang listahan ng pinapayagan na halaga. |
fractionDigits | Tinukoy ang pinakamataas na bilang ng decimal na mga digit na pinapayagan. Dapat na mas malaki o katumbas ng 0. |
length | Tinukoy ang eksaktong bilang ng pinapayagan na mga laro ng mga character o mga proyekto ng listahan. Dapat na mas malaki o katumbas ng 0. |
maxExclusive | Tinukoy ang taas ng pinakamataas na bilang. Ang mga pinapayagan na halaga ay dapat na mas mababa sa ganitong halaga. |
maxInclusive | Tukuyin ang pinakamalaking baryante ng bilang. Ang pinapayagan na mga halaga ay dapat mas mababa o katumbas ng halaga na ito. |
maxLength | Tukuyin ang pinakamalaking bilang ng mga pinapayagan na character o mga item sa listahan. Dapat maging higit o katumbas ng 0. |
minExclusive | Tukuyin ang pinakamaliit na baryante ng bilang. Ang pinapayagan na mga halaga ay dapat higit sa halaga na ito. |
minInclusive | Tukuyin ang pinakamaliit na baryante ng bilang. Ang pinapayagan na mga halaga ay dapat higit o katumbas ng halaga na ito. |
minLength | Tukuyin ang pinakamaliit na bilang ng mga pinapayagan na character o mga item sa listahan. Dapat maging higit o katumbas ng 0. |
pattern | Tukuyin ang eksaktong pagkakasunod-sunod ng mga pinapayagan na mga character. |
totalDigits | Tukuyin ang eksaktong bilang ng mga pampalit-araw na pinapayagan. Dapat maging higit sa 0. |
whiteSpace | Tukuyin ang paraan ng paghawak ng bakanteng puti (pansamantalang, pagpalit ng linya, espasyo at tab). |
- Previous Page XSD Attribute
- Next Page XSD Element