एक्सएसडी संकेतक
हम नियंत्रित कर सकते हैं कि संकेतक वाले दस्तावेज़ों में तत्वों का उपयोग कैसे किया जाए।
संकेतक
सात संकेतक हैं:
आदेश संकेतक:
- सभी
- पसंद
- अनुक्रम
घटना संकेतक:
- अधिकतम होता है
- न्यूनतम होता है
समूह संकेतक:
- समूह नाम
- विशेषता समूह का नाम
आदेश संकेतक
तत्वों के क्रम को परिभाषित करने के लिए ऑर्डर इंडिकेटर्स का उपयोग किया जाता है।
सभी संकेतक
<all> संकेतक निर्दिष्ट करता है कि बाल तत्व किसी भी क्रम में प्रकट हो सकते हैं, और प्रत्येक बाल तत्व केवल एक बार होना चाहिए:
<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
नोट: <all> संकेतक का उपयोग करते समय आप <minOccurs> संकेतक को 0 या 1 पर सेट कर सकते हैं और <maxOccurs> संकेतक केवल 1 पर सेट किया जा सकता है (<minOccurs> और <maxOccurs> बाद में वर्णित किए गए हैं)।
चॉइस इंडिकेटर
<विकल्प> संकेतक निर्दिष्ट करता है कि या तो एक बाल तत्व या कोई अन्य हो सकता है:
<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>
अनुक्रम संकेतक
<अनुक्रम> संकेतक निर्दिष्ट करता है कि बाल तत्वों को एक विशिष्ट क्रम में प्रकट होना चाहिए:
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
घटना संकेतक
घटना संकेतक का उपयोग यह परिभाषित करने के लिए किया जाता है कि कोई तत्व कितनी बार हो सकता है।
नोट: सभी "आदेश" और "समूह" संकेतकों (कोई भी, सभी, पसंद, अनुक्रम, समूह का नाम और समूह संदर्भ) के लिए अधिकतम और न्यूनतम के लिए डिफ़ॉल्ट मान 1 है।
अधिकतम होता है संकेतक
<maxOccurs> संकेतक निर्दिष्ट करता है कि कोई तत्व कितनी बार घटित हो सकता है:
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>
उपरोक्त उदाहरण इंगित करता है कि "child_name" तत्व कम से कम एक बार हो सकता है (minOccurs के लिए डिफ़ॉल्ट मान 1 है) और "व्यक्ति" तत्व में अधिकतम दस बार हो सकता है।
न्यूनतम होता है संकेतक
<minOccurs> संकेतक निर्दिष्ट करता है कि कोई तत्व कितनी बार घटित हो सकता है:
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
उपरोक्त उदाहरण इंगित करता है कि "child_name" तत्व "व्यक्ति" तत्व में न्यूनतम शून्य बार और अधिकतम दस बार हो सकता है।
युक्ति: किसी तत्व को असीमित संख्या में प्रकट होने की अनुमति देने के लिए, maxOccurs="unbounded" कथन का उपयोग करें:
एक कामकाजी उदाहरण:
"Myfamily.xml" नामक एक XML फ़ाइल:
<?xml version="1.0" encoding="UTF-8"?>
<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">
<person>
<full_name>Hege Refsnes</full_name>
<child_name>Cecilie</child_name>
</person>
<person>
<full_name>Tove Refsnes</full_name>
<child_name>Hege</child_name>
<child_name>Stale</child_name>
<child_name>Jim</child_name>
<child_name>Borge</child_name>
</person>
<person>
<full_name>Stale Refsnes</full_name>
</person>
</persons>
उपरोक्त एक्सएमएल फ़ाइल में "व्यक्तियों" नामक मूल तत्व है। इस मूल तत्व के अंदर हमने तीन "व्यक्ति" तत्वों को परिभाषित किया है। प्रत्येक "व्यक्ति" तत्व में "full_name" तत्व होना चाहिए और इसमें अधिकतम पांच "child_name" तत्व हो सकते हैं।
यहाँ स्कीमा फ़ाइल "family.xsd" है:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
minOccurs="0" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
समूह संकेतक
तत्वों के संबंधित सेट को परिभाषित करने के लिए समूह संकेतकों का उपयोग किया जाता है।
तत्व समूह
तत्व समूहों को समूह घोषणा के साथ परिभाषित किया जाता है, जैसे:
<xs:group name="groupname">
...
</xs:group>
आपको समूह घोषणा के अंदर सभी, पसंद या अनुक्रम तत्व को परिभाषित करना होगा। निम्नलिखित उदाहरण "व्यक्ति समूह" नामक एक समूह को परिभाषित करता है, जो तत्वों के एक समूह को परिभाषित करता है जो एक सटीक क्रम में होना चाहिए:
<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>
एक समूह को परिभाषित करने के बाद, आप इसे किसी अन्य परिभाषा में संदर्भित कर सकते हैं, जैसे:
<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>
<xs:element name="person" type="personinfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
विशेषता समूह
विशेषता समूहों को विशेषता समूह घोषणा के साथ परिभाषित किया गया है, जैसे:
<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>
निम्नलिखित उदाहरण "personattrgroup" नामक एक विशेषता समूह को परिभाषित करता है:
<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>
एक विशेषता समूह को परिभाषित करने के बाद, आप इसे किसी अन्य परिभाषा में संदर्भित कर सकते हैं, जैसे:
<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>
<xs:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/>
</xs:complexType>
</xs:element>