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 bu...@apache.org on 2003/06/04 11:52:57 UTC

DO NOT REPLY [Bug 20471] New: - SAXParseException derivation-ok-restriction.2.2 when using XMLSchema restriction

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20471>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20471

SAXParseException derivation-ok-restriction.2.2 when using XMLSchema restriction

           Summary: SAXParseException derivation-ok-restriction.2.2 when
                    using XMLSchema restriction
           Product: Xerces2-J
           Version: 2.4.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: XML Schema Structures
        AssignedTo: xerces-j-dev@xml.apache.org
        ReportedBy: francois.banel@filinks.com


When parsing the XML file below with a SAX Parser, Xerces generates the 
following error :
org.xml.sax.SAXParseException: Schema error: ComplexType 'OrderType': 
derivation-ok-restriction.2.2:  Attribute 'number' has a target namespace which 
is not valid with respect to a base type definition's wildcard or, the base 
does not contain a wildcard.
	at org.apache.xerces.framework.XMLParser.reportError
(XMLParser.java:1204)
	at org.apache.xerces.validators.schema.TraverseSchema.reportSchemaError
(TraverseSchema.java:8899)
	at 
org.apache.xerces.validators.schema.TraverseSchema.reportGenericSchemaError
(TraverseSchema.java:8886)
	at 
org.apache.xerces.validators.schema.TraverseSchema.handleComplexTypeError
(TraverseSchema.java:3975)
	at 
org.apache.xerces.validators.schema.TraverseSchema.traverseComplexTypeDecl
(TraverseSchema.java:3434)
	at 
org.apache.xerces.validators.schema.TraverseSchema.traverseComplexTypeDecl
(TraverseSchema.java:3257)
	at org.apache.xerces.validators.schema.TraverseSchema.doTraverseSchema
(TraverseSchema.java:739)
	at org.apache.xerces.validators.schema.TraverseSchema.<init>
(TraverseSchema.java:540)
	at org.apache.xerces.validators.common.XMLValidator.resolveSchemaGrammar
(XMLValidator.java:2783)
	at org.apache.xerces.validators.common.XMLValidator.parseSchemas
(XMLValidator.java:2669)
	at 
org.apache.xerces.validators.common.XMLValidator.bindNamespacesToElementAndAttri
butes(XMLValidator.java:2551)
	at org.apache.xerces.validators.common.XMLValidator.callStartElement
(XMLValidator.java:1152)
	at org.apache.xerces.framework.XMLDocumentScanner.scanElement
(XMLDocumentScanner.java:1806)
	at 
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch
(XMLDocumentScanner.java:949)
	at org.apache.xerces.framework.XMLDocumentScanner.parseSome
(XMLDocumentScanner.java:381)
	at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1081)
	at com.testfb.TestXercesBugs.main(TestXercesBugs.java:31)

This error occurs only when :
 - the base type and the restricted type are in different namespaces
 - the base type contains at least one attribute
 - the base type contains at least one element containing one attribute
It seems strange to me. Since I does not find any error in the chema 
definitions, I assume that it could be a Xerces 2.4.0 bug


the XMLSchema base.xsd :
---------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.datamodel.testfb.com/base" 
xmlns="http://www.w3.org/2001/XMLSchema" 
xmlns:base="http://www.datamodel.testfb.com/base" >
	
	
	<complexType name="OrderType">
		<sequence>
			<element name="leg" type="base:LegType" minOccurs="0"/>
		</sequence>
		<attribute name="quantity" type="string" use="optional"/>
	</complexType>
	
	<complexType name="LegType">
		<attribute name="number" type="string" use="optional"/>
	</complexType>


	
</schema>
---------------------------------------------------------------------

the XMLSchema restr.xsd :
---------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.datamodel.testfb.com/restr" 
xmlns:restr="http://www.datamodel.testfb.com/restr" 
xmlns:base="http://www.datamodel.testfb.com/base" 
xmlns="http://www.w3.org/2001/XMLSchema" >
	<import namespace="http://www.datamodel.testfb.com/base" 
schemaLocation="base.xsd"/>
	
	<complexType name="OrderType">
		<complexContent>
			<restriction base="base:OrderType">
				<sequence>
					<element name="leg" type="base:LegType" 
minOccurs="0"/>
				</sequence>
				<attribute name="quantity" type="string" 
use="optional"/>
			</restriction>
		</complexContent>
	</complexType>
	
	<element name="Order" type="restr:OrderType"/>
	
</schema>
---------------------------------------------------------------------

the XML file :
---------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<restr:Order xmlns:restr="http://www.datamodel.testfb.com/restr" 
xmlns:base="http://www.datamodel.testfb.com/base" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.datamodel.testfb.com/restr restr.xsd"  >
	<leg number="05"/>
</restr:Order>
---------------------------------------------------------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org