एक्सएसडी प्रतिबंध/पहलू
XML तत्वों या विशेषताओं के लिए स्वीकार्य मानों को परिभाषित करने के लिए प्रतिबंधों का उपयोग किया जाता है। XML तत्वों पर प्रतिबंध को पहलू कहा जाता है।
मूल्यों पर प्रतिबंध
निम्नलिखित उदाहरण एक प्रतिबंध के साथ "आयु" नामक तत्व को परिभाषित करता है। आयु का मान 0 से कम या 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>
मूल्यों के समूह पर प्रतिबंध
XML तत्व की सामग्री को स्वीकार्य मानों के एक सेट तक सीमित करने के लिए, हम गणना बाधा का उपयोग करेंगे।
नीचे दिया गया उदाहरण प्रतिबंध के साथ "कार" नामक तत्व को परिभाषित करता है। केवल स्वीकार्य मान हैं: ऑडी, गोल्फ, बीएमडब्ल्यू:
<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>
ऊपर दिया गया उदाहरण भी इस तरह लिखा जा सकता था:
<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>
नोट: इस मामले में अन्य तत्वों द्वारा "कार टाइप" प्रकार का उपयोग किया जा सकता है क्योंकि यह "कार" तत्व का हिस्सा नहीं है।
मूल्यों की एक श्रृंखला पर प्रतिबंध
उपयोग की जा सकने वाली संख्याओं या अक्षरों की एक श्रृंखला को परिभाषित करने के लिए किसी XML तत्व की सामग्री को सीमित करने के लिए, हम पैटर्न बाधा का उपयोग करेंगे।
नीचे दिया गया उदाहरण प्रतिबंध के साथ "अक्षर" नामक तत्व को परिभाषित करता है। एकमात्र स्वीकार्य मान a से z तक के लोअरकेस अक्षरों में से एक है:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
अगला उदाहरण प्रतिबंध के साथ "आरंभिक" नामक तत्व को परिभाषित करता है। केवल स्वीकार्य मान 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>
अगला उदाहरण प्रतिबंध के साथ "आरंभिक" नामक तत्व को भी परिभाषित करता है। केवल स्वीकार्य मान 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>
अगला उदाहरण प्रतिबंध के साथ "पसंद" नामक तत्व को परिभाषित करता है। एकमात्र स्वीकार्य मान निम्नलिखित अक्षरों में से एक है: x, y, OR z:
<xs:element name="choice">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[xyz]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
अगला उदाहरण प्रतिबंध के साथ "prodid" नामक तत्व को परिभाषित करता है। अनुक्रम में पांच अंक ही एकमात्र स्वीकार्य मान है, और प्रत्येक अंक 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>
मूल्यों की एक श्रृंखला पर अन्य प्रतिबंध
नीचे दिया गया उदाहरण प्रतिबंध के साथ "अक्षर" नामक तत्व को परिभाषित करता है। स्वीकार्य मान एक से z तक लोअरकेस अक्षरों के शून्य या अधिक बारंबारता है:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
अगला उदाहरण प्रतिबंध के साथ "अक्षर" नामक तत्व को भी परिभाषित करता है। स्वीकार्य मान अक्षरों के एक या अधिक जोड़े हैं, प्रत्येक जोड़ी में एक लोअर केस लेटर होता है और उसके बाद एक अपर केस लेटर होता है। उदाहरण के लिए, "sToP" को इस पैटर्न द्वारा मान्य किया जाएगा, लेकिन "Stop" या "STOP" या "stop" नहीं:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z][A-Z])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
अगला उदाहरण प्रतिबंध के साथ "लिंग" नामक तत्व को परिभाषित करता है। एकमात्र स्वीकार्य मूल्य पुरुष या महिला है:
<xs:element name="gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
अगला उदाहरण प्रतिबंध के साथ "पासवर्ड" नामक तत्व को परिभाषित करता है। एक पंक्ति में ठीक आठ वर्ण होने चाहिए और वे वर्ण a से z तक के लोअरकेस या अपरकेस अक्षर या 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>
व्हॉट्सएप वर्णों पर प्रतिबंध
यह निर्दिष्ट करने के लिए कि व्हाइटस्पेस वर्णों को कैसे संभाला जाना चाहिए, हम व्हाइटस्पेस बाधा का उपयोग करेंगे।
यह उदाहरण प्रतिबंध के साथ "पता" नामक तत्व को परिभाषित करता है। व्हाइटस्पेस बाधा "संरक्षित" पर सेट है, जिसका अर्थ है कि एक्सएमएल प्रोसेसर किसी भी सफेद स्पेस वर्ण को नहीं हटाएगा:
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
यह उदाहरण प्रतिबंध के साथ "पता" नामक तत्व को भी परिभाषित करता है। व्हाइटस्पेस बाधा "प्रतिस्थापन" पर सेट है, जिसका अर्थ है कि एक्सएमएल प्रोसेसर रिक्त स्थान के साथ सभी सफेद स्पेस वर्णों (लाइन फीड्स, टैब्स, स्पेस और कैरिज रिटर्न) को बदल देगा:
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
यह उदाहरण प्रतिबंध के साथ "पता" नामक तत्व को भी परिभाषित करता है। व्हाइटस्पेस बाधा "पतन" पर सेट है, जिसका अर्थ है कि एक्सएमएल प्रोसेसर सभी सफेद स्पेस वर्णों को हटा देगा (लाइन फीड, टैब, स्पेस, कैरिज रिटर्न को रिक्त स्थान से बदल दिया जाता है, अग्रणी और पिछली जगहों को हटा दिया जाता है, और कई रिक्त स्थान कम हो जाते हैं एक एकल स्थान):
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
लंबाई पर प्रतिबंध
किसी तत्व में किसी मान की लंबाई को सीमित करने के लिए, हम लंबाई, अधिकतम लंबाई और न्यूनतम लंबाई बाधाओं का उपयोग करेंगे।
यह उदाहरण प्रतिबंध के साथ "पासवर्ड" नामक तत्व को परिभाषित करता है। मान ठीक आठ वर्ण का होना चाहिए:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
यह उदाहरण प्रतिबंध के साथ "पासवर्ड" नामक एक अन्य तत्व को परिभाषित करता है। मान न्यूनतम पांच वर्ण और अधिकतम आठ वर्ण होना चाहिए:
<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>
डेटाटाइप के लिए प्रतिबंध
Constraint | Description |
---|---|
enumeration | Defines a list of acceptable values |
fractionDigits | Specifies the maximum number of decimal places allowed. Must be equal to or greater than zero |
length | Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero |
maxExclusive | Specifies the upper bounds for numeric values (the value must be less than this value) |
maxInclusive | Specifies the upper bounds for numeric values (the value must be less than or equal to this value) |
maxLength | Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero |
minExclusive | Specifies the lower bounds for numeric values (the value must be greater than this value) |
minInclusive | Specifies the lower bounds for numeric values (the value must be greater than or equal to this value) |
minLength | Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero |
pattern | Defines the exact sequence of characters that are acceptable |
totalDigits | Specifies the exact number of digits allowed. Must be greater than zero |
whiteSpace | Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled |