एक्सएसडी तत्व प्रतिस्थापन
एक्सएमएल स्कीमा के साथ, एक तत्व दूसरे तत्व को प्रतिस्थापित कर सकता है।
तत्व प्रतिस्थापन
मान लें कि हमारे पास दो अलग-अलग देशों के उपयोगकर्ता हैं: इंग्लैंड और नॉर्वे। हम उपयोगकर्ता को यह चुनने की क्षमता चाहते हैं कि वह XML दस्तावेज़ में नॉर्वेजियन तत्व नामों या अंग्रेजी तत्व नामों का उपयोग करना चाहे या नहीं।
इस समस्या को हल करने के लिए, हम XML स्कीमा में एक प्रतिस्थापन समूह को परिभाषित कर सकते हैं। सबसे पहले, हम एक प्रमुख तत्व घोषित करते हैं और फिर हम अन्य तत्वों की घोषणा करते हैं जो बताते हैं कि वे मुख्य तत्व के लिए प्रतिस्थापन योग्य हैं।
<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>
ऊपर के उदाहरण में, "नाम" तत्व मुख्य तत्व है और "नव" तत्व "नाम" के लिए प्रतिस्थापन योग्य है।
एक्सएमएल स्कीमा के इस टुकड़े को देखें:
<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>
<xs:complexType name="custinfo">
<xs:sequence>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>
<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>
एक वैध एक्सएमएल दस्तावेज़ (उपरोक्त स्कीमा के अनुसार) इस तरह दिख सकता है:
<customer>
<name>John Smith</name>
</customer>
या इस तरह:
<kunde>
<navn>John Smith</navn>
</kunde>
तत्व प्रतिस्थापन को रोकना
अन्य तत्वों को एक निर्दिष्ट तत्व के साथ प्रतिस्थापित करने से रोकने के लिए, ब्लॉक विशेषता का उपयोग करें:
<xs:element name="name" type="xs:string" block="substitution"/>
एक्सएमएल स्कीमा के इस टुकड़े को देखें:
<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>
<xs:complexType name="custinfo">
<xs:sequence>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>
<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>
एक वैध एक्सएमएल दस्तावेज़ (उपरोक्त स्कीमा के अनुसार) इस तरह दिखता है:
<customer>
<name>John Smith</name>
</customer>
लेकिन यह अब मान्य नहीं है:
<kunde>
<navn>John Smith</navn>
</kunde>
प्रतिस्थापन समूह का उपयोग करना
प्रतिस्थापन योग्य तत्वों का प्रकार वही होना चाहिए, या उससे प्राप्त किया जाना चाहिए, जो मुख्य तत्व का प्रकार है। यदि प्रतिस्थापन योग्य तत्व का प्रकार शीर्ष तत्व के प्रकार के समान है, तो आपको प्रतिस्थापन योग्य तत्व के प्रकार को निर्दिष्ट करने की आवश्यकता नहीं होगी।
ध्यान दें कि प्रतिस्थापन समूह (मुख्य तत्व और प्रतिस्थापन योग्य तत्व) में सभी तत्वों को वैश्विक तत्वों के रूप में घोषित किया जाना चाहिए, अन्यथा यह काम नहीं करेगा!
वैश्विक तत्व क्या हैं?
वैश्विक तत्व ऐसे तत्व हैं जो "स्कीमा" तत्व के तत्काल बच्चे हैं! स्थानीय तत्व अन्य तत्वों के भीतर निहित तत्व हैं।