[ 
https://issues.apache.org/jira/browse/XERCESJ-1396?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Glavassevich updated XERCESJ-1396:
------------------------------------------

          Component/s: XML Schema 1.0 Structures
    Affects Version/s: 2.9.1

> key/keyref does not validate with recursion
> -------------------------------------------
>
>                 Key: XERCESJ-1396
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1396
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: XML Schema 1.0 Structures
>    Affects Versions: 2.9.1
>         Environment: Window, with Eclipse and the xerces plug-in is 
> org.apache.xerces_2.9.0.v200805270400
>            Reporter: Chu Minh Toan
>
> Hi everyone,
> Is it true that key/keyref does not validate with recursion? I have this 
> question because that when I validate the following xml file, the validation 
> of an element defined with recursion doesn't work. Following is xml and the 
> corresponding xsd file. (I validate xml file with Eclipse and the xerces 
> plug-in is org.apache.xerces_2.9.0.v200805270400). Thanks in advance!
> Toan.
> xsd file :
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>  <xsd:element name="CompositeType" type="CompositeType" />
>  <xsd:element name="Model" type="Model">
>   <!-- CompositeTypeKey/KeyRef -->
>   <xsd:key name="CompositeTypeKey">
>    <xsd:selector
>     xpath=".//CompositeType" />
>    <xsd:field xpath="./typeName" />
>   </xsd:key>
>   <xsd:keyref name="CompositeTypeRef" refer="CompositeTypeKey">
>    <xsd:selector
>     xpath=".//Attribute/CompositeTypeReference" />
>    <xsd:field xpath="." />
>   </xsd:keyref>
>  </xsd:element>
>  <xsd:complexType name="CompositeType">
>   <xsd:sequence>
>    <xsd:element minOccurs="0" name="typeName"
>     type="xsd:string" />
>    <xsd:element maxOccurs="unbounded" minOccurs="0"
>     name="Attribute" type="Attribute" />
>   </xsd:sequence>
>  </xsd:complexType>
>  <xsd:complexType name="Attribute">
>   <xsd:sequence>
>    <xsd:element minOccurs="0" name="name" type="xsd:string" />
>    <xsd:choice minOccurs="1">
>     <xsd:element minOccurs="1" maxOccurs="1"
>      name="CompositeType" type="CompositeType" />
>     <xsd:element minOccurs="1" maxOccurs="1"
>      name="CompositeTypeReference" type="xsd:string" />
>    </xsd:choice>
>   </xsd:sequence>
>  </xsd:complexType>
>  <xsd:complexType name="Model">
>   <xsd:sequence>
>    <xsd:element maxOccurs="unbounded" minOccurs="0"
>     name="CompositeType" type="CompositeType" />
>   </xsd:sequence>
>  </xsd:complexType>
> </xsd:schema>
> xml file :
> <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
> <Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:noNamespaceSchemaLocation="test.xsd" >
>  <CompositeType>
>   <typeName>Bozo</typeName>
>  </CompositeType>
>  <CompositeType>
>   <typeName>MyData</typeName>
>   <Attribute>
>    <name>b</name>
>    <CompositeTypeReference>Bozo</CompositeTypeReference>
>   </Attribute>
>   <Attribute>
>    <name>d</name>
>    <CompositeType>
>     <typeName>CustomData</typeName>
>    </CompositeType>
>   </Attribute>
>   <Attribute>
>    <name>n</name>
>    <CompositeType>
>     <typeName>NewData</typeName>
>     <Attribute>
>      <name>m</name>
>      <CompositeTypeReference>My</CompositeTypeReference>
>     </Attribute>
>     <Attribute>
>      <name>c</name>
>      <CompositeTypeReference>Custom</CompositeTypeReference>
>     </Attribute>
>    </CompositeType>
>   </Attribute>
>  </CompositeType>
> </Model>
> Notice that when validate if the validation of recursion works, there will be 
> two errors at :
>      <CompositeTypeReference>My</CompositeTypeReference>
>      <CompositeTypeReference>Custom</CompositeTypeReference>
> because the right references are :
>      <CompositeTypeReference>MyData</CompositeTypeReference>
>      <CompositeTypeReference>CustomData</CompositeTypeReference>

-- 
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]

Reply via email to