xs:包含xs:sequence中所有可选元素的任何元素

时间:2018-03-21 14:22:46

标签: xml xsd xsd-validation

我正在开发XSD,我需要在xs:sequence的末尾有xs:any。序列中的所有先前元素都需要是可选的,因此minOccurs =" 0"。下面的代码片段给了我" cos-nonambig:使内容模型不可靠。可能的原因:名称相等,重叠出现或替换组。"错误

<xs:complexType name="nutritionData">
    <xs:sequence>
      <xs:element name="attributeList" type="attributeList" minOccurs="0" />
      <xs:element name="nutritionFactsList" type="nutritionFactsList" minOccurs="0" />
      <xs:element name="ingredients" type="ingredientData" minOccurs="0"/>
      <xs:any minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

有任何变通方法吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果您可以使用XSD 1.1处理器,则此内容模型不再是错误:显式元素粒子优先于通配符粒子来解决歧义。如果元素与内容模型中的任何显式元素名称匹配,也可以使用#notSibling等选项从匹配通配符中排除元素。

在XSD 1.0中,我认为唯一的选择是强制匹配通配符的元素位于不同的命名空间中。