Xerces exception with entity resolver and nested XSDs

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • peter greaves

    Xerces exception with entity resolver and nested XSDs

    hi everyone

    i am having a bad time with an entity resolver. my application uses a
    resolver to locally-cache the nested schemas that the basic xsd
    includes to a local directory. however i am getting an exception when
    the parser tries to parse one of the included xsds which it has
    downloaded, because (as far as i can tell from the stack trace) it is
    trying but failing to handle other included xsds. the exception is
    here:

    java.lang.NullP ointerException
    at org.apache.xerc es.validators.s chema.TraverseS chema.traverseI mport(TraverseS chema.java:1953 )
    at org.apache.xerc es.validators.s chema.TraverseS chema.traverseI ncludedSchema(T raverseSchema.j ava:1227)
    at org.apache.xerc es.validators.s chema.TraverseS chema.traverseI nclude(Traverse Schema.java:113 5)
    <.. stuff omitted for brevity ..>

    basically my xsds are all located on a remote server - i want to cache
    them locally while i parse a series of docs. so i have a top level
    schema which *imports *another schema with a namespace:

    <xs:import namespace="http ://w3.ibm.com/cc/rdf/v1"
    schemaLocation= "cc-rdf.xsd"/>

    .... and this imported schema is downloaded. but i think the exception
    occurs when the imported schema is parsed, and the parser sees this in
    it:

    <xs:schema targetNamespace ="http://w3.ibm.com/cc/rdf/v1"
    xmlns="http://w3.ibm.com/cc/rdf/v1"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefa ult="qualified" attributeFormDe fault="unqualif ied">
    <xs:include schemaLocation= "cc-rdf-documentTypes.x sd"/>
    <xs:include schemaLocation= "cc-rdf-industryTypes.x sd"/>
    <xs:include schemaLocation= "cc-rdf-languageTypes.x sd"/>
    <xs:include schemaLocation= "cc-rdf-countriesTypes. xsd"/>
    <xs:include schemaLocation= "cc-rdf-geographySimple Types.xsd"/>
    <xs:include schemaLocation= "cc-rdf-productTypes.xs d"/>

    the entity resolver does not resolve and locally cache these files at
    all, so i am guessing that it's in parsing cc-rdf.xsd that the
    exception occurs. the first of these files has this as its header

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace ="http://w3.ibm.com/cc/rdf/v1"
    xmlns="http://w3.ibm.com/cc/rdf/v1" elementFormDefa ult="qualified"
    attributeFormDe fault="unqualif ied">

    am wondering if some mismatch in namespaces is causing this but am not
    sure. i can see that other included xsds are downloaded and parsed
    fine. it seems that it is only the imported schema that fails. anyone
    got any experience with this problem?

    peter
Working...