我有这个触发唯一粒子归属违规的架构。我明白为什么,但我没有看到任何其他方式来表达它。架构是:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="Element" minOccurs="1" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:attribute name="First" use="required"/>
<xs:attribute name="SomeAttribute" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Element" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:attribute name="Second" use="required"/>
<xs:attribute name="SomeOtherAttribute" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
以及它应该验证的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Element First="true" SomeAttribute="abc"/>
<Element Second="true" SomeOtherAttribute="def"/>
</Root>
我不想简化架构,这意味着我不想让任何属性成为可选的,或者允许属性之间的混合......我也不能将“元素”的名称更改为“FirstElement”之类的名称", "第二元素"。在 XSD 中有没有办法解决这个问题?
谢谢你的帮助!