我正在尝试创建一个列表,其中一些元素已定义,一些元素未定义,没有优先顺序。 我用这种方式试了一下,用任何元素:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="object" mixed="true">
<xs:choice>
<xs:element name="value" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:any namespace="##any" processContents="skip"/>
</xs:choice>
</xs:complexType>
<xs:element name="object" type="object"/>
</xs:schema>
它告诉我这个错误:
:0:0:错误:复杂类型“对象”违反了唯一粒子 归因于其组件“值”和“## any”的归属规则
有人可以帮助我解决问题吗?
答案 0 :(得分:2)
您不能像这样定义您的架构,它违反了唯一的粒子归因规则:解析器无法判断它在文档中找到的“value”元素是应该针对“value”还是针对“any”进行验证。
考虑使用两个名称空间并使用带有命名空间的xsd:any,这样就可以解决问题。