XSD एलिमेंट प्रतिस्थापन (Element Substitution)
- पिछला पृष्ठ XSD <anyAttribute>
- अगला पृष्ठ XSD इंस्टांस
XML Schema के माध्यम से, एक एलिमेंट दूसरे एलिमेंट को प्रतिस्थापित कर सकता है
एलिमेंट रिप्लेसमेंट
हमारे उपयोगकर्ता ब्रिटेन और नॉर्वे से आते हैं। हमें उस योग्यता की आवश्यकता है कि उपयोगकर्ता XML दस्तावेज़ में नॉर्वेजी तत्व नामों का इस्तेमाल कर सकें या अंग्रेजी तत्व नामों का इस्तेमाल करें।
इस समस्या को हल करने के लिए, हम XML schema में एक डिफाइन कर सकते हैं substitutionGroupसबसे पहले, हम मुख्य तत्व की घोषणा करते हैं, फिर हम उप-तत्व की घोषणा करेंगे, इन उप-तत्वों को घोषित कर सकते हैं कि वे मुख्य तत्व को प्रतिस्थापित कर सकते हैं।
<xs:element name="name" type="xs:string"/> <xs:element name="navn"> substitutionGroup="name"/>
ऊपरी उदाहरण में, "name" तत्व मुख्य तत्व है और "navn" तत्व "name" तत्व को प्रतिस्थापित कर सकता है。
किसी XML schema के टुकड़े को देखिए:
<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"/>
वैध XML दस्तावेज़ इस तरह का होना चाहिए (ऊपरी schema के अनुसार):
<customer> <name>John Smith</name> </customer>
या इस तरह:
<kunde> <navn>John Smith</navn> </kunde>
तत्व प्रतिस्थापन रोकना
किसी विशिष्ट तत्व को अन्य तत्वों द्वारा प्रतिस्थापित करने से बचने के लिए block अभियान का उपयोग करें:
<xs:element name="name" type="xs:string"> block="substitution"/>
किसी XML schema के टुकड़े को देखिए:
<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"/>
वैध XML दस्तावेज़ इस तरह का होना चाहिए (ऊपरी schema के अनुसार):
<customer> <name>John Smith</name> </customer>
लेकिन नीचे का दस्तावेज़ अब वैध नहीं है:
<kunde> <navn>John Smith</navn> </kunde>
substitutionGroup का उपयोग करें
सम्प्रतिस्थापन करने वाले तत्व का प्रकार मुख्य तत्व के समान होना चाहिए या मुख्य तत्व से उत्पन्न होना चाहिए।यदि सम्प्रतिस्थापन करने वाले तत्व का प्रकार मुख्य तत्व के प्रकार के समान होता है, तो आपको सम्प्रतिस्थापन करने वाले तत्व का प्रकार निर्दिष्ट नहीं करना होगा。
ध्यान दें कि substitutionGroup में सभी एलिमेंट (मुख्य एलिमेंट और प्रतिस्थापन एलिमेंट) को वैश्विक एलिमेंट के रूप में घोषित किया जाना चाहिए, नहीं तो यह काम नहीं करेगा!
वैश्विक एलिमेंट (Global Elements) क्या है?
वैश्विक एलिमेंट "schema" एलिमेंट के प्रत्यक्ष पुत्र है! स्थानीय एलिमेंट (Local elements) अन्य एलिमेंटों में निहित एलिमेंट है।
- पिछला पृष्ठ XSD <anyAttribute>
- अगला पृष्ठ XSD इंस्टांस