0
このXSDスキーマ、以下のグラフが得られるXSDスキーマユニーク制約は数値に対して機能しませんか? INT:
<?xml version="1.0" encoding="UTF-8"?>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:target="http://www.url.com/validation"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<s:element name="myObjects" type="typeObjects">
<s:unique name="uniqueObjectId">
<s:selector xpath="myObject"/>
<s:field xpath="id"/>
</s:unique>
</s:element>
<s:complexType name="typeObjects">
<s:sequence maxOccurs="unbounded">
<s:element name="myObject">
<s:complexType>
<s:complexContent>
<s:extension base="typeObject"/>
</s:complexContent>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
<s:complexType name="typeObject">
<s:sequence>
<s:element name="id" type="s:int"/>
</s:sequence>
</s:complexType>
</s:schema>
注sと入力した "ID" 要素に設定された固有の制約を考慮してください。
次のインスタンスXMLは、同じ<id>1</id>
を2回使用しても検証されます。これは、もはやインスタンスのXMLを検証しませれる文字列
予想通り、::私はsの要素の型を変更した場合
<?xml version="1.0" encoding="utf-8"?>
<myObjects
xmlns:target="http://www.url.ch/validation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="unique.xsd">
<myObject>
<id>1</id>
</myObject>
<myObject>
<id>1</id>
</myObject>
</myObjects>
Iを同じ結果でoXygen XMLとALtova XML Spyで検証を試みました。
これはバグかXSDの一意制約実装の既知の制限事項かどうかは明らかです。