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