2012-12-21 6 views
11

नीचे इस उदाहरण में,XML स्कीमा: चुनाव और minOccurs

 <xs:complexType> 
     <xs:choice minOccurs="3" maxOccurs="unbounded"> 
      <xs:element ref="Start"/> 
      <xs:element ref="Center"/> 
      <xs:element ref="End"/> 
      <xs:element ref="PI" minOccurs="0"/> 
      <xs:element ref="Feature" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:choice> 
     </xs:complexType> 

जब चुनाव minOccurs> 1 है तो क्या होगा? क्या इसका मतलब तत्व "प्रारंभ" 3 बार हो सकता है?

+0

+1! –

उत्तर

12

क्या विकल्प होता है जब विकल्प minOccurs> 1 होता है? क्या इसका मतलब तत्व "प्रारंभ" 3 बार हो सकता है?

हाँ <Start> 3 या अधिक बार हो सकता है! 1 से अधिक के रूप में पसंद के minOccurs होने से तत्वों के सेट एक से अधिक या विभिन्न तत्वों को कई बार प्रकट होने की अनुमति देता है।

विस्तृत विवरण: ऊपर के उदाहरण में आप असीम रूप <Choice> के लिए 3 के रूप में minOccurs और maxOccurs आवेदन किया है! इसका मतलब है .. <Choice> के तहत सूचीबद्ध बाल तत्व, उनमें से कोई भी तीन या किसी भी टैग को दो बार दोहराया जाना चाहिए अपने माता-पिता के नीचे! नमूना XML नीचे सूचीबद्ध हैं:

हमें लगता है कि टैग की इन सेट एक नोड कहा जाता <parent> के तहत तो दिखाई दें:

<parent> 
    <Start>Start1</Start> 
    <Center>Center1</Center> 
    <End>End1</End> 
    </parent> 

-------- या --------

<parent> 
    <Center>Start1</Center> 
    <Center>Center1</Center> 
    <Feature>End1</Feature> 
    </parent> 

-------- या --------

<parent> 
    <Start>Start1</Start> 
    <Start>Start1</Start> 
    <Start>Start1</Start> 
    <Start>Start1</Start> 
    </parent> 

सब से ऊपर संयोजन मान्य हैं!

लेकिन आप भी minOccurs परिभाषित किया है = "0" 'पीआई' और 'सुविधा' ..

के लिए यह इसके अलावा सत्यापनकर्ता के साथ-साथ कोई भी बच्चा तत्वों के साथ माता-पिता पारित करने के लिए कारण बनता है। अर्थात्:

<parent> 
    </parent> 

आप तो मान्यता बलों उन दो तत्वों से minOccurs निकाल देते हैं तो आप 3 टैग की न्यूनतम शामिल करने के लिए माता पिता के तहत शामिल किया जाना है।

Feature के लिए भी कोई उपयोग नहीं है! व्यवहार नुकीले कोष्ठक की वर्बोज़ जनता के बजाय यदि आप इसे जोड़ सकते हैं या इसे उतार परिवर्तन नहीं होगा ..

+0

क्या होगा यदि आप केवल एक बार प्रकट होने के लिए बाल तत्वों (यदि वे प्रकट होते हैं) को अनुमति देना चाहते हैं? – peco

+0

@peco, प्रश्न में स्कीमा में इसे संपादित करें: ''। 0 या 1 बच्चा –

+0

दिखाई दे सकता है लेकिन फिर केवल एक बच्चा सही हो सकता है? '

' और '' नहीं। मैं उनमें से कम से कम एक को चुनना चाहता हूं। – peco

4

पठनीय regexp की तरह वाक्य रचना में, आपके पास

(प्रारंभ | केंद्र | समाप्ति | पीआई? | फ़ीचर *) {3,}

जिसका अर्थ है कि तीन या अधिक बार कोष्ठक के अंदर कुछ भी है, और इसे हर बार एक ही आइटम की आवश्यकता नहीं है। यह देखते हुए कि शून्य विकल्प हैं - पीआई? और फ़ीचर * - विकल्पों के बीच, पूरी अभिव्यक्ति भी शून्य है, जिसका अर्थ है कि शून्य सहित, शून्य की कोई भी संख्या बाधाओं को भी पूरा करेगी।

अपने विशिष्ट प्रश्न का उत्तर देने के लिए, हाँ, 'स्टार्ट' तीन (या अधिक बार) हो सकता है। तथ्य की बात के रूप में यह कई बार हो सकता है।अद्वितीय और वैध प्रश्न के लिए