我正在开发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>
有任何变通方法吗?提前谢谢。
答案 0 :(得分:0)
如果您可以使用XSD 1.1处理器,则此内容模型不再是错误:显式元素粒子优先于通配符粒子来解决歧义。如果元素与内容模型中的任何显式元素名称匹配,也可以使用#notSibling等选项从匹配通配符中排除元素。
在XSD 1.0中,我认为唯一的选择是强制匹配通配符的元素位于不同的命名空间中。