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

Anton Nikolaevsky updated XERCESC-1591:
---------------------------------------

    Attachment: TraverseSchema.cpp.diff

Patch to 
xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/TraverseSchema.cpp, 
revision 540668 

> Mishandling of recursive definition on complex content restriction
> ------------------------------------------------------------------
>
>                 Key: XERCESC-1591
>                 URL: https://issues.apache.org/jira/browse/XERCESC-1591
>             Project: Xerces-C++
>          Issue Type: Bug
>          Components: Validating Parser (Schema) (Xerces 1.5 or up only)
>    Affects Versions: 2.6.0
>         Environment: Windows XP
>            Reporter: Andrew Fang
>         Attachments: TraverseSchema.cpp.diff
>
>
> When trying to the following schema in Xerces 2.6, it complains that the base 
> type of CV does not have any attribute defined (Line: 34 Column: 31
> Base type definition does not have any attributes). Apparently, we see 
> attribute defined in CE (the base type of CV).
> The problem seems to be caused by element "qualifier" in complexType "CD". 
> The element "qualifier" has type of CR which contains an element of type CV 
> which is a derivative of CE, which in turns is the derivative of CD. Xerces 
> trys to resolve CE before attributes in CD is processed and thus the error.
> Although the syntax looks wierd, it  is from a govenment stanadard and we 
> have no position of changing that.
> A workaround is to move definition of CR ahead of CD. However, since the 
> position of element definition in Schema should have no effect on validation, 
> we think Xerces should report no error as it is.
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema targetNamespace="urn:hl7-org:v3"
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>       xmlns="urn:hl7-org:v3" 
>       xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>       elementFormDefault="qualified">
>       <xsd:complexType name="ANY" abstract="true"></xsd:complexType>
>       <xsd:complexType name="CD">
>               <xsd:complexContent>
>                       <xsd:extension base="ANY">
>                               <xsd:sequence>
>                                       <xsd:element name="qualifier" type="CR"
>                                               minOccurs="0" 
> maxOccurs="unbounded"/>
>                               </xsd:sequence>
>                               <xsd:attribute name="code" use="optional"/>
>                       </xsd:extension>
>               </xsd:complexContent>
>       </xsd:complexType>
>       <xsd:complexType name="CE">
>               <xsd:complexContent>
>                       <xsd:restriction base="CD">
>                               <xsd:sequence>
>                               </xsd:sequence>
>                               <xsd:attribute name="code" use="optional"/>
>                       </xsd:restriction>
>               </xsd:complexContent>
>       </xsd:complexType>
>       <xsd:complexType name="CV">
>               <xsd:complexContent>
>                       <xsd:restriction base="CE">
>                               <xsd:sequence>
>                               </xsd:sequence>
>                               <xsd:attribute name="code" use="optional"/>
>                       </xsd:restriction>
>               </xsd:complexContent>
>       </xsd:complexType>
>       <xsd:complexType name="CR">
>               <xsd:complexContent>
>                       <xsd:extension base="ANY">
>                               <xsd:sequence>
>                                       <xsd:element name="name" type="CV" 
> minOccurs="0"
>                                               maxOccurs="1"/>
>                               </xsd:sequence>
>                               <xsd:attribute name="inverted" use="optional"
>                                       default="false"/>
>                       </xsd:extension>
>               </xsd:complexContent>
>       </xsd:complexType>
>       <xsd:element name="root" type="CV" />
> </xsd: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]

Reply via email to