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