2010-09-29 22 views
5

की अनुमति देता है मैं एक एक्सएसडी स्कीमा तैयार करने की कोशिश करता हूं जो तत्वों को यादृच्छिक क्रम में रहने की अनुमति देता है और maxOccurs = "unbounded" है।एक्सएसडी स्कीमा जो यादृच्छिक क्रम

मेरे एक्सएमएल:

<root> 
    <key></key> 
    <group></group> 
    <group> 
    <key></key> 
    <key></key> 
    <group> 
     <key></key> 
     <key></key> 
    </group> 
    </group> 
    <key></key> 
    <key></key> 
    <group> 
    <key></key> 
    <key></key> 
    <key></key> 
    </group> 
    <key></key> 
</root> 
+1

क्या आप हमें दिखा सकते हैं कि आपने अभी तक क्या प्रबंधित किया है? आप किस तत्व के बारे में बात कर रहे हैं? मैं अनुमान लगा रहा हूं कि आपका मॉडल 'समूह' तत्वों को 'कुंजी' और 'समूह' तत्वों को रखने की अनुमति देता है और आप 'रूट' को एक ही मॉडल रखना चाहते हैं। क्या वह सही है? –

+0

हाँ, यही वही है जो मैं चाहता हूं। – magol

उत्तर

5

आप <xs:choice> हैं:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:complexType name="groupType"> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
     <xs:element name="group" type="groupType"/> 
     <xs:element name="key"/> 
     </xs:choice> 
    </xs:complexType> 

    <xs:element name="root" type="groupType" /> 
</xs:schema> 

मैं ऑक्सीजन एक्सएमएल संपादक में अपने नमूना एक्सएमएल चिपकाने, और का उपयोग करके यह मिल गया "उपकरण> जनरेट/स्कीमा कन्वर्ट", के साथ इनपुट = आपका नमूना एक्सएमएल दस्तावेज़। (यह कवर के तहत ट्रांग का उपयोग कर सकता है ... मुझे यकीन नहीं है।) तो मैंने परिणाम tweaked।

संबंधित मुद्दे