Xml XSD唯一性验证
我尝试了以下方法来测试元素是否具有唯一标识符。到目前为止,.net已经说过xml对于xsd是有效的,但它不应该是有效的 XML:Xml XSD唯一性验证,xml,xsd,unique,Xml,Xsd,Unique,我尝试了以下方法来测试元素是否具有唯一标识符。到目前为止,.net已经说过xml对于xsd是有效的,但它不应该是有效的 XML: <Document> <Record> <Id>1</Id> </Record> <Record> <Id>1</Id> </Record> </Document> 1. 1. XSD: <?x
<Document>
<Record>
<Id>1</Id>
</Record>
<Record>
<Id>1</Id>
</Record>
</Document>
1.
1.
XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Filing_new"
targetNamespace="http://tempuri.org/Filing_new.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/Filing_new.xsd"
xmlns:mstns="http://tempuri.org/Filing_new.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Document Schema -->
<xs:element name="Document">
<xs:complexType>
<xs:sequence>
<xs:element name="Record" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Id" type="xs:integer" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="sequence">
<xs:selector xpath="Record" />
<xs:field xpath="Id" />
</xs:unique>
</xs:element>
</xs:schema>
我做错了什么?它将在无名称空间模式中工作 在模式中,XPath表达式中的元素必须使用目标命名空间限定
http://tempuri.org/Filing_new.xsd
(模式中声明了mstns
前缀,因此您可以使用它)。如果将mstns:
前缀添加到XPath表达式中的元素,则应该可以:
<xs:selector xpath="mstns:Record" />
<xs:field xpath="mstns:Id" />