तत्वों के अनुक्रम को अनदेखा करने के लिए मैं अपने xsd को कैसे डिज़ाइन कर सकता हूं?xs का उपयोग कर तत्वों का क्रम अनदेखा करें: एक्सटेंशन
<root> <a/> <b/> </root>
<root> <b/> <a/> </root>
मैं कोड पीढ़ी कारणों के लिए extension
उपयोग करने की आवश्यकता है, इसलिए मैं निम्नलिखित का उपयोग कर all
की कोशिश की:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.example.com/test"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:t="http://www.example.com/test" >
<xs:complexType name="BaseType">
<xs:all>
<xs:element name="a" type="xs:string" />
</xs:all>
</xs:complexType>
<xs:complexType name="ExtendedType">
<xs:complexContent>
<xs:extension base="t:BaseType">
<xs:all> <!-- ERROR -->
<xs:element name="b" type="xs:string" />
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="root" type="t:ExtendedType"></xs:element>
</xs:schema>
यह XSD मान्य नहीं है हालांकि, वें ई निम्न त्रुटि <!-- ERROR -->
में रिपोर्ट किया गया है:
क्योंकि सभी-limited.1.2: साथ {न्यूनतम होती है} = {अधिकतम होता है} = 1 एक सभी मॉडल समूह एक कण में दिखाया जाना चाहिए, और है कि कण हिस्सा होना चाहिए एक जोड़ी का एक जटिल प्रकार परिभाषा के {सामग्री प्रकार} का गठन करता है।
cos-all-limited.1.2 का प्रलेखन कहते हैं:
1,2 {अवधि} {अधिकतम होता है} = 1 जो एक जोड़ी का हिस्सा है के साथ एक कण की संपत्ति है जो एक जटिल प्रकार की {} सामग्री प्रकार का गठन किया परिभाषा।
मैं सच में समझ में नहीं आता इस (न XSD है और न ही अंग्रेजी देशी वक्ता :))।
क्या मैं गलत काम कर रहा हूं, क्या मैं सही काम कर रहा हूं, या क्या इसे हासिल करने का कोई तरीका नहीं है?
@Peter ठीक है, मुझे लगता है कि हिस्सा याद किया। यहां एक अपडेट है। – Bolo
आपके अपडेट के लिए धन्यवाद। दुर्भाग्यवश मुझे बेस प्रकार में कुछ तत्वों को परिभाषित करने की आवश्यकता है, और कुछ विस्तारित हैं, इसलिए जब तक कोई दूसरा तरीका न हो, विस्तारित प्रकार के तत्वों को हमेशा बेस प्रकार के तत्वों के बाद रखा जाना चाहिए ... –
@ पीटर उस स्थिति में, चूंकि "दो सामग्री मॉडल अनुक्रमिक समूह के दो बच्चों के रूप में माना जाता है", अनुक्रम को अनदेखा करने के लिए कोई रास्ता नहीं है (जहां तक मैं देख सकता हूं)। – Bolo