我有以下架构:(摘录)
<xs:element name= "off" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name= "id" type = "xs:integer"/>
<xs:element name= "part" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name= "id" type = "xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name= "asdf" type = "xs:float"/>
</xs:sequence>
</xs:complexType>
现在,凭直觉我会猜到,下面的树将被允许:
<oof>
<id>123</id>
<part>
<id>134</id>
</part>
<part>
<id>454</id>
</part>
<asdf>234123.0</asdf>
</oof>
但是,xmllint 指出,第二个不是预期的,而是预期的。我错过了什么?
最佳答案
因为您没有指定 maxOccurs,它被假定为 1 因此第二次出现的部分导致 xmllint 显示的消息
关于XML Schema minOccurs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787807/