मैं मुसीबत निम्नलिखित XML स्कीमा के व्यवहार को समझने हो रहा है:समझौता XSD: चुनाव और minOccurs
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="rootnode">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="1" maxOccurs="2">
<xsd:element name="e1" minOccurs="1" maxOccurs="2"/>
<xsd:element name="e2" minOccurs="0" maxOccurs="1"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
मैं या तो तत्व <e1>
या <e2>
<rootnode>
के एक बच्चे के रूप में आवश्यक हो कम से कम एक उदाहरण की उम्मीद। मेरी उम्मीदों के बावजूद, एक खाली <rootnode>
इस स्कीमा के विरुद्ध सत्यापन होगा:
> xmllint --schema test.xsd empty.xml
<?xml version="1.0" encoding="UTF-8"?>
<rootnode>
</rootnode>
empty.xml validates
अगर मैं "0"
के अलावा कुछ करने के लिए तत्व e2
की minOccurs
विशेषता बदलने के लिए, मैं व्यवहार मैं मूल रूप से उम्मीद मिलता है।
यह है जैसे कि मात्र
<e2>
मायने रखता है मेरे उदाहरण मेंxsd:choice
का एक घटना के रूप में तत्व के अभाव लगता है।यदि ऐसा है, तो यह असीमित संख्या कैसे होती है
maxOccurs
मेरीxsd:choice
में सीमा का उल्लंघन नहीं करती है?
@ मिज़ो लिखते हैं (एक जवाब में मैंने हटा दिया): मैंने इसका एक निर्णय पेड़ खींचा, और निष्कर्ष निकाला कि चुनाव ग्यारह विशिष्ट अनुक्रमों का परिणाम हो सकता है। अगर मैं एक बार "खरीदारी करने" का फैसला करता हूं, तो मैं ई 1, ई 1 ई 1, कुछ भी नहीं या ई 2 के साथ समाप्त कर सकता हूं। अगर मैं दो बार खरीदारी करने का फैसला करता हूं, तो मैं पिछले चार क्रमिकताओं या ई 1 ई 1 ई 1, ई 1 ई 2, ई 1 ई 1 ई 1 ई 1, ई 1 ई 1 ई 2, ई 2 ई 1, ई 2 ई 1 ई 1 या ई 2 ई 2 के साथ समाप्त हो सकता हूं। क्या ये सही है? - मिजो 6 घंटे पहले –
यही कारण है कि मैं केले खाते हैं: केले के पेड़ों में कम शाखाएं हैं। – Dan
एसओ पर थोड़ी देर में मैंने पढ़ा है सबसे अच्छा जवाब: स्पष्ट, संक्षेप में, और आपको प्रक्रिया में मुस्कुराता है। कुडोस। – tsemer