XML模式中的唯一粒子属性冲突
为什么在我验证以下XML时会给出UPA冲突XML模式中的唯一粒子属性冲突,xml,xsd,Xml,Xsd,为什么在我验证以下XML时会给出UPA冲突 <xs:element name='Information'> <xs:complexType> <xs:choice> <xs:element ref='ID'/> <xs:sequence> <xs:element ref='ID'/> <xs:element ref='Name'/> <
<xs:element name='Information'>
<xs:complexType>
<xs:choice>
<xs:element ref='ID'/>
<xs:sequence>
<xs:element ref='ID'/>
<xs:element ref='Name'/>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name='ID' type="xs:integer"/>
<xs:element name='Name' type="xs:string"/>
这不是简单地说明信息是整数或and整数和字符串吗?歧义在哪里?在xml模式方面没有很好的学习,所以我可能缺少一些简单的东西…这是不明确的,因为当解析器“来到”
元素时,它无法选择适当的内容模型(这里是
单独,或者
然后
),而不在文档中“进一步查看”
您需要使用这样定义的内容模型(它与您想要的内容模型完全相同):
谢谢,我只是假设在解析器遇到XML中的结尾之前不会选择内容模型。在这种情况下,它确实可以通过添加minOccurs来修复。如果我有身份证,或者我有身份证,名字和第三个元素,我该怎么办?请不要问这样的补充问题。这是一个不同的问题,所以打开一个新问题。
<xs:element name='Information'>
<xs:complexType>
<xs:sequence>
<xs:element ref='ID'/>
<xs:element ref='Name' minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>