You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "Anton Nikolaevsky (JIRA)" <xe...@xml.apache.org> on 2007/05/29 15:08:15 UTC

[jira] Updated: (XERCESC-1591) Mishandling of recursive definition on complex content restriction

     [ 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: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org