2009-10-16 15 views
5

मैं इस जटिल प्रकार है:नए तत्व के बिना XSD परिसर प्रकार में तत्वों में शामिल हैं

<xsd:complexType name="Identifier"> 
    <xsd:sequence> 
     <xsd:element name="Id" type="xsd:string"/> 
     <xsd:element name="Version" type="xsd:string"/> 
    </xsd:sequence> 
</xsd:complexType> 

अब मैं एक और जटिल प्रकार में इस शामिल करना चाहते हैं और मुझे लगता है कि इस तरह से कर रहा हूँ:

<xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="Id" type="Identifier"/> 
       <!-- More elements here --> 
    </xsd:sequence> 
</xsd:complexType> 

यह वही नहीं है जो मैं वास्तव में चाहता हूं। मैं एक नया तत्व बनाये बिना सीधे अपने दूसरे जटिल प्रकार में पहचानकर्ता प्रकार के तत्वों को शामिल करना चाहता हूं। जैसे ऐसा करने के समान ही:

<xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="Id" type="xsd:string"/> 
     <xsd:element name="Version" type="xsd:string"/> 
       <!-- More elements here --> 
    </xsd:sequence> 
</xsd:complexType> 

आशा है कि यह समझ में आता है।

अग्रिम धन्यवाद।

उत्तर

6

आप प्रकार का विस्तार कर सकते में पहचानकर्ता तत्व को जिम्मेदार बताते हैं कर सकते हैं, इस तरह:

<xsd:complexType name="MySubType"> 
    <xsd:complexContent> 
     <xsd:extension base="Identifier"> 
         <xsd:sequence> 
          <!-- More elements here --> 
         </xsd:sequence> 
     </xsd:extension> 
    </xsd:complexContent> 
</xsd:complexType> 
+0

बिल्कुल सही - धन्यवाद। क्या आप जानते हैं कि एक ही जटिल प्रकार में एकाधिक एक्सटेंशन कैसे शामिल करें? – ng5000

+1

उत्तर मिला। जो मैं चाहता था वह एकाधिक विरासत था, जिसे xsd: समूह का उपयोग करके हासिल किया जा सकता है। – ng5000

+0

ऐ, समूह बहुत आसान चीजें हैं, हालांकि यदि आप इसे अधिक करते हैं तो वे भ्रमित हो सकते हैं। – skaffman

1

इस जटिल प्रकार हमेशा

<Identifier> 
    <Id>string</Id> 
    <Version>string</Version> 
</Identifier> 

हो जाएगी अगर आप एक बच्चे संरचना नहीं करना चाहते, तो आप तत्व के रूप में पहचान और संस्करण को परिभाषित करने और

<xsd:element ref="Id"/> 
<xsd:element ref="Version"/> 

पर बाद में उपयोग कर उन्हें संदर्भ सकता है। लेकिन तब आप गारंटी नहीं है कि वे दोनों होते हैं

आप आईडी और संस्करण जटिल प्रकार

सौभाग्य माइक