xml schema中unique无法识别默认命名空间的问题
今天在写schema的时候,遇到一个问题如下
例如schema文件代码:
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="rootElement"> <xsd:complexType> <xsd:sequence> <xsd:element name="elementOne" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="elementOneKey" type="xsd:integer"/> <xsd:attribute name="elementOneDesc" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:unique name="EOneKeyU"> <xsd:selector xpath=".//elementOne"/> <xsd:field xpath="@elementOneKey"/> </xsd:unique> </xsd:element></xsd:schema>
<?xml version="1.0" encoding="UTF-8"?><rootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"> <elementOne elementOneKey="1" elementOneDesc="a"/> <elementOne elementOneKey="1" elementOneDesc="b"/></rootElement>
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.uniquetest.com/uniquetest" targetNamespace="http://www.uniquetest.com/uniquetest"elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="rootElement"> <xsd:complexType> <xsd:sequence> <xsd:element name="elementOne" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="elementOneKey" type="xsd:integer"/> <xsd:attribute name="elementOneDesc" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:unique name="EOneKeyU"> <xsd:selector xpath=".//elementOne"/> <xsd:field xpath="@elementOneKey"/> </xsd:unique> </xsd:element></xsd:schema>
<?xml version="1.0" encoding="UTF-8"?><rootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.uniquetest.com/uniquetest"xsi:schemaLocation="http://www.uniquetest.com/uniquetest schema.xsd"> <elementOne elementOneKey="1" elementOneDesc="a"/> <elementOne elementOneKey="1" elementOneDesc="b"/></rootElement>
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tst="http://www.uniquetest.com/uniquetest" targetNamespace="http://www.uniquetest.com/uniquetest"elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="rootElement"> <xsd:complexType> <xsd:sequence> <xsd:element name="elementOne" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="elementOneKey" type="xsd:integer"/> <xsd:attribute name="elementOneDesc" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:unique name="EOneKeyU"> <xsd:selector xpath=".//tst:elementOne"/> <xsd:field xpath="@elementOneKey"/> </xsd:unique> </xsd:element></xsd:schema>