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 "Khaled Noaman (JIRA)" <xe...@xml.apache.org> on 2010/04/15 20:18:53 UTC
[jira] Resolved: (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:all-tabpanel ]
Khaled Noaman resolved XERCESJ-1443.
------------------------------------
Fix Version/s: 2.10.0
Resolution: Fixed
Fixed (with a different solution). Would you please verify?
> 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
> 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