XML模式在两个属性上是唯一的
我有一个简单的XML结构:XML模式在两个属性上是唯一的,xml,xsd,Xml,Xsd,我有一个简单的XML结构: <foo> <bar row="42" column="2"></bar> <bar row="42" column="3"></bar> </foo> 我一直在尝试为下面的模式添加一个键,但还没有找到解决方案 <xs:element name="foo"> <xs:complexType> <xs:sequence>
<foo>
<bar row="42" column="2"></bar>
<bar row="42" column="3"></bar>
</foo>
我一直在尝试为下面的模式添加一个键,但还没有找到解决方案
<xs:element name="foo">
<xs:complexType>
<xs:sequence>
<xs:element name="bar" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="row" type="xs:positiveInteger" use="required"/>
<xs:attribute name="column" type="xs:positiveInteger" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
我希望下面的方法可以做到这一点
<xsd:element name="foo">
...
<xsd:unique name="rowcol">
<xsd:selector xpath="bar"/>
<xsd:field xpath="@row"/>
<xsd:field xpath="@column"/>
</xsd:unique>
</xsd:element>
如果希望唯一性是全局的,那么约束应该是root
<xsd:element name="foo">
...
<xsd:unique name="rowcol">
<xsd:selector xpath="bar"/>
<xsd:field xpath="@row"/>
<xsd:field xpath="@column"/>
</xsd:unique>
</xsd:element>
<root>
<foo> ... </foo>
<foo> ... </foo>
</root>