- From: Denis Zawada <deno@deno.pl>
- Date: Thu, 23 Jun 2011 23:25:29 +0200
- To: xmlschema-dev@w3.org
Hello, I wanted to make sure that I understand this rule correctly. Foo defined in the following way will result in error in both MSXML and libxml2: <xs:element name="non-valid-foo"> <xs:complexType> <xs:sequence> <xs:sequence> <xs:element name="bar" minOccurs="2" maxOccurs="5"/> <xs:element name="xyz" minOccurs="0"/> </xs:sequence> <xs:sequence> <!-- bar is ambiguous --> <xs:element name="bar" minOccurs="2" maxOccurs="5"/> <xs:element name="xyz" minOccurs="0"/> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> However both parsers have no problem with foo defined in a following way: <xs:element name="valid-foo"> <xs:complexType> <xs:sequence minOccurs="2" maxOccurs="2"> <xs:element name="bar" minOccurs="2" maxOccurs="5"/> <xs:element name="xyz" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> I understand that XML Schema only mentions that *two* adjacent particles can overlap: > A content model will violate the unique attribution constraint if it contains *two* particles which ·overlap· and which either (…) On the other hand, I could easily imagine that it would be possible to convert the 1st form into the 2nd one in a preprocessing step during compilation of schema. Is my understanding of this principle correct? I.e. if particles are implicit is certain ambiguity allowed? Why first example validates differently than the 2nd one? Sincerely, Denis Zawada
Received on Thursday, 23 June 2011 21:26:21 UTC