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 "Kun Xu (JIRA)" <xe...@xml.apache.org> on 2010/04/15 21:10:50 UTC

[jira] Commented: (XERCESJ-1443) XML Schema 1.1: defect for Constraints on XML Representations of Attribute Declarations

    [ https://issues.apache.org/jira/browse/XERCESJ-1443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12857492#action_12857492 ] 

Kun Xu commented on XERCESJ-1443:
---------------------------------

Hi Khaled,

The new fix works. Thanks:)

Kun

> XML Schema 1.1:  defect for Constraints on XML Representations of Attribute Declarations
> ----------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1443
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1443
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: XML Schema 1.1 Structures
>    Affects Versions: 2.9.1
>            Reporter: Kun Xu
>            Assignee: Khaled Noaman
>            Priority: Minor
>             Fix For: 2.10.0
>
>         Attachments: XSDAttributeTraverser_patch.txt
>
>
> Parser reports wrong error " Report an error "'attr1InB' must have a <complexType> as an ancestor" which contradicts the XSD file."  for the following schema part. 
> XSD:
> <?xml version="1.0"?>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
> 		xmlns:a="http://www.schemaTest.org/schema11_S3_2_3_a"
> 		xmlns:b="http://www.schemaTest.org/schema11_S3_2_3_b"
> 		targetNamespace="http://www.schemaTest.org/schema11_S3_2_3_a"
> 		elementFormDefault="qualified"
> 		attributeFormDefault="qualified">
> 	<import namespace="http://www.schemaTest.org/schema11_S3_2_3_b" schemaLocation="s3_2_3v02b.xsd" />
> 	<complexType name="cmplxTypeInA">
> 		<complexContent>
> 			<restriction base="b:cmplxTypeInB">
> 				<attribute name="attr1InB" type="integer" targetNamespace="http://www.schemaTest.org/schema11_S3_2_3_b"/>
> 				<attribute name="attr2InB" type="integer" use="prohibited" targetNamespace="http://www.schemaTest.org/schema11_S3_2_3_b"/>
> 			</restriction>
> 		</complexContent>
> 	</complexType>
> 	<element name="root">
> 		<complexType>
> 			<sequence>
> 				<element name="elementInA" type="a:cmplxTypeInA"/>
> 			</sequence>
> 		</complexType>
> 	</element>
> </schema>
> Reason:
> If an attribute has an "enclosingParent", we will store its information as following:
> if (fSchemaHandler.fSchemaVersion == Constants.SCHEMA_VERSION_1_1) {
>                     enclParent = enclosingParent;
>                     scope = XSAttributeDecl.SCOPE_LOCAL;
>                 }
>                 else if (enclosingParent instanceof XSComplexTypeDecl) {
>                     enclCT= (XSComplexTypeDecl) enclosingParent;
>                     scope = XSAttributeDecl.SCOPE_LOCAL;
>                 }
> but when we verify the constrain:
> 6.3  If the ancestor <schema> does not have a targetNamespace [attribute] or its - actual value-   is different from the - actual value-  of targetNamespace of <attribute>, then all of the following are true:
> 6.3.1 <attribute> has <complexType> as an ancestor
> 6.3.2 There is a <restriction> ancestor between the <attribute> and the nearest <complexType> ancestor, and the - actual value-  of the base [attribute] of <restriction> does not - match-  the name of - xs:anyType- .
> we check "enclCT" only, which will always be null for schema 1.1.
> Thanks:)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
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