The xsi:type attribute should be an allowed field in an identity constraint
---------------------------------------------------------------------------
Key: XERCESC-1797
URL: https://issues.apache.org/jira/browse/XERCESC-1797
Project: Xerces-C++
Issue Type: Bug
Components: Validating Parser (XML Schema)
Affects Versions: 2.7.0
Environment: Fedora 4 Linux (Embedded System)
Reporter: Katrina Griffith
Would someone please clarify why the following unique constraint does not
work? It is an allowed construct in the W3C schema specification, so this may
be a bug in the Parser.
sample constraint:
<xs:element name="ListNode" type="ListType" minOccurs="0">
<xs:unique name="Constraint1">
<xs:selector xpath="./Item"/>
<xs:field xpath="@address"/>
<xs:field xpath="@xsi:type"/>
</xs:unique>
</xs:element>
In the sample xml that follows, I am expecting validation errors because more
than one Item node of the same xsi:type share the same address value. I get
no constraint error from the parser.
sample xml:
<RootNode xsi:noNamespaceSchemaLocation="TestSchema.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ListNode>
<Item xsi:type="SpecificItemType1" address="1" file="file1.xml"
name="Item1"/>
<Item xsi:type="SpecificItemType1" address="1" file="file2.xml"
name="Item2"/>
<Item xsi:type="SpecificItemType2" address="1" file="file3.xml"
name="Item3"/>
</ListNode>
</RootNode>
Here is the full schema representation.
sample xsd:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cs="TestSchema.xsd" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:simpleType name="AddressType1">
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="254"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AddressType2">
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="655519"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AListType">
<xs:sequence>
<xs:element name="Item" type="AbstractItemType" minOccurs="0"
maxOccurs="32"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AbstractItemType" abstract="true">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="file" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="SpecificItemType1">
<xs:complexContent>
<xs:extension base="AbstractItemType">
<xs:attribute name="address" type="AddressType1" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SpecificItemType2">
<xs:complexContent>
<xs:extension base="AbstractItemType">
<xs:attribute name="address" type="AddressType2" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="RootNode">
<xs:complexType>
<xs:sequence>
<xs:element name="ListNode" type="AListType" minOccurs="0">
<xs:unique name="Constraint1">
<xs:selector xpath="./Item"/>
<xs:field xpath="@address"/>
<xs:field xpath="@xsi:type"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]