[ http://issues.apache.org/jira/browse/XERCESJ-1095?page=all ]
Michael Glavassevich resolved XERCESJ-1095:
-------------------------------------------
Resolution: Duplicate
This bug was also reported against Xerces 2.6.2 (see XERCESJ-1065) and was
fixed [1] in Xerces 2.7.0.
[1]
http://cvs.apache.org/viewcvs.cgi/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java?r1=1.48&r2=1.49&diff_format=h
> Schema with abstract type derived from concrete type can produce incorrect
> document validation.
> -----------------------------------------------------------------------------------------------
>
> Key: XERCESJ-1095
> URL: http://issues.apache.org/jira/browse/XERCESJ-1095
> Project: Xerces2-J
> Type: Bug
> Components: XML Schema Structures
> Versions: 2.5.0
> Reporter: Pete Geraghty
> Priority: Minor
>
> An element in a document can be incorrectly reported as having error
> "cvc-type.2: The type definition cannot be abstract for element <Element>."
> This can arise if the element declaration relates to a non-abstract type but
> there is an abstract type derived from that elsewhere in the schema. More
> particularly it will arise if the abstract type declaration is encountered
> prior to the non-abstract type when the schema is loaded.
> For example, the problem arises with the following schema and document:
> <?xml version="1.0"?>
> <xsd:schema targetNamespace="XercesTest"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="XercesTest" >
> <xsd:complexType name="AbstractExtendedType" abstract="true">
> <xsd:complexContent>
> <xsd:extension base="BaseConcreteType"/>
> </xsd:complexContent>
> </xsd:complexType>
> <xsd:complexType name="BaseConcreteType">
> <xsd:sequence>
> <xsd:element name="A" type="xsd:string"/>
> <xsd:element name="B" type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:element name="Element" type="BaseConcreteType"/>
> </xsd:schema>
> <?xml version="1.0"?>
> <Element xmlns="XercesTest"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="XercesTest
> C:\temp\XercesTest.xsd">
> <A>String</A>
> <B>String</B>
> </Element>
> The problem can be corrected by replacing lines 231-232 in
> org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.
> Currently these lines say:
> if (abstractAtt != null && abstractAtt.booleanValue())
> fIsAbstract = true;
> This means fIsAbstract is never changed from true to false. Should say:
> fIsAbstract = abstractAtt == null ?
> false : abstractAtt.booleanValue();
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]