2011-01-24 3 views
2

У меня есть следующая схема: (отрывок)XML Schema MinOccurs

<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 утверждает, что второй не был обманут, но был проклят. Что мне не хватает?

ответ

6

Поскольку вы не указали MaxOccurs, то предполагается, что 1, следовательно, второй вхождение части вызывает сообщение, отображаемое на xmllint

+0

получил его .. это hought что MaxOccurs по умолчанию до бесконечности. – Chris

+0

спасибо! Я соглашусь, как только это позволит мне. – Chris