You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Damir Sulomar (JIRA)" <xe...@xml.apache.org> on 2011/05/05 07:31:03 UTC

[jira] [Created] (XERCESJ-1507) Identity constraint does not work if field refers to attribute defined as simple type of list

Identity constraint does not work if field refers to attribute defined as simple type of list
---------------------------------------------------------------------------------------------

                 Key: XERCESJ-1507
                 URL: https://issues.apache.org/jira/browse/XERCESJ-1507
             Project: Xerces2-J
          Issue Type: Bug
          Components: SAX
    Affects Versions: 2.11.0
         Environment: Windows, Java 1.6
            Reporter: Damir Sulomar


When a keyref field element refers to attribute defined as simple type of list the identity constraint does not work.  Schema and data below.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  >
	<xs:element name="Data">
		<xs:complexType>
			<xs:all>
				<xs:element name="Data1">
					<xs:complexType>
						<xs:attribute name="keydata" type="xs:string" use="required"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="Data2">
					<xs:complexType>
						<xs:attribute name="keyref" type="keyreftypes" use="required"/>
					</xs:complexType>
				</xs:element>
			</xs:all>
		</xs:complexType>
		<xs:key name="Keys">
			<xs:selector xpath=".//Data1"/>
			<xs:field xpath="@keydata"/>
		</xs:key>
		<xs:keyref name="KeyRefs" refer="Keys">
			<xs:selector xpath=".//Data2"/>
			<xs:field xpath="@keyref"/>
		</xs:keyref>
	</xs:element>
	<xs:simpleType name="keyreftypes">
		<xs:list itemType="xs:string"/>
	</xs:simpleType>
</xs:schema>

<?xml version="1.0" encoding="utf-8" ?> 
<Data>
	<Data1 keydata="1"/>
	<Data2 keyref="1"/>
</Data>


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] [Commented] (XERCESJ-1507) Identity constraint does not work if field refers to attribute defined as simple type of list

Posted by "Mukul Gandhi (JIRA)" <xe...@xml.apache.org>.
    [ https://issues.apache.org/jira/browse/XERCESJ-1507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13029979#comment-13029979 ] 

Mukul Gandhi commented on XERCESJ-1507:
---------------------------------------

I think that "keyref" and "keydata" attributes in your example should have compatible data types for the purpose of equality test (if you need these for xs:keyref component). In your case, one is xs:string while the other is list of strings (i.e xs:string+), which to my opinion are incomparable for the purpose of xs:keyref component.

I seem to observe that, identity constraints involving simpleType->list work correctly with Xerces-J, provided the schema types I mentioned as above are comparable. If you make "keydata" attribute in your example as a list type (for e.g "keyreftypes" from your example), I seem to find that your example works fine with Xerces-J.

Therefore it seems to me, that this may not be a valid bug report.

> Identity constraint does not work if field refers to attribute defined as simple type of list
> ---------------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1507
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1507
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: SAX
>    Affects Versions: 2.11.0
>         Environment: Windows, Java 1.6
>            Reporter: Damir Sulomar
>
> When a keyref field element refers to attribute defined as simple type of list the identity constraint does not work.  Schema and data below.
> <?xml version="1.0" encoding="utf-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  >
> 	<xs:element name="Data">
> 		<xs:complexType>
> 			<xs:all>
> 				<xs:element name="Data1">
> 					<xs:complexType>
> 						<xs:attribute name="keydata" type="xs:string" use="required"/>
> 					</xs:complexType>
> 				</xs:element>
> 				<xs:element name="Data2">
> 					<xs:complexType>
> 						<xs:attribute name="keyref" type="keyreftypes" use="required"/>
> 					</xs:complexType>
> 				</xs:element>
> 			</xs:all>
> 		</xs:complexType>
> 		<xs:key name="Keys">
> 			<xs:selector xpath=".//Data1"/>
> 			<xs:field xpath="@keydata"/>
> 		</xs:key>
> 		<xs:keyref name="KeyRefs" refer="Keys">
> 			<xs:selector xpath=".//Data2"/>
> 			<xs:field xpath="@keyref"/>
> 		</xs:keyref>
> 	</xs:element>
> 	<xs:simpleType name="keyreftypes">
> 		<xs:list itemType="xs:string"/>
> 	</xs:simpleType>
> </xs:schema>
> <?xml version="1.0" encoding="utf-8" ?> 
> <Data>
> 	<Data1 keydata="1"/>
> 	<Data2 keyref="1"/>
> </Data>

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] [Resolved] (XERCESJ-1507) Identity constraint does not work if field refers to attribute defined as simple type of list

Posted by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org>.
     [ https://issues.apache.org/jira/browse/XERCESJ-1507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Glavassevich resolved XERCESJ-1507.
-------------------------------------------

    Resolution: Invalid

I agree with Mukul's assessment and also doubled checked with a member of the XML Schema working group. Atomic types and list types are not comparable in XML Schema 1.0.

> Identity constraint does not work if field refers to attribute defined as simple type of list
> ---------------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1507
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1507
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: SAX
>    Affects Versions: 2.11.0
>         Environment: Windows, Java 1.6
>            Reporter: Damir Sulomar
>
> When a keyref field element refers to attribute defined as simple type of list the identity constraint does not work.  Schema and data below.
> <?xml version="1.0" encoding="utf-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  >
> 	<xs:element name="Data">
> 		<xs:complexType>
> 			<xs:all>
> 				<xs:element name="Data1">
> 					<xs:complexType>
> 						<xs:attribute name="keydata" type="xs:string" use="required"/>
> 					</xs:complexType>
> 				</xs:element>
> 				<xs:element name="Data2">
> 					<xs:complexType>
> 						<xs:attribute name="keyref" type="keyreftypes" use="required"/>
> 					</xs:complexType>
> 				</xs:element>
> 			</xs:all>
> 		</xs:complexType>
> 		<xs:key name="Keys">
> 			<xs:selector xpath=".//Data1"/>
> 			<xs:field xpath="@keydata"/>
> 		</xs:key>
> 		<xs:keyref name="KeyRefs" refer="Keys">
> 			<xs:selector xpath=".//Data2"/>
> 			<xs:field xpath="@keyref"/>
> 		</xs:keyref>
> 	</xs:element>
> 	<xs:simpleType name="keyreftypes">
> 		<xs:list itemType="xs:string"/>
> 	</xs:simpleType>
> </xs:schema>
> <?xml version="1.0" encoding="utf-8" ?> 
> <Data>
> 	<Data1 keydata="1"/>
> 	<Data2 keyref="1"/>
> </Data>

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org