Provide extensibility to register pre-loaded XmlSchema instances with 
XmlSchemaCollection
-----------------------------------------------------------------------------------------

                 Key: WSCOMMONS-264
                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-264
             Project: WS-Commons
          Issue Type: Improvement
          Components: XmlSchema
            Reporter: Raymond Feng


Hi,

We currently use XmlSchema to load XSDs. To resolve the import/include 
directives using our schemes, we provide an implementation of 
org.apache.ws.commons.schema.resolver.URIResolver and set it to 
org.apache.ws.commons.schema.XmlSchemaCollection. It works well if the 
schemaLocation attribute for the <xsd:import> or <xsd:include> is set.

Now we would like to handle the cases where the schemaLocation attribute is not 
present. For example, <xsd:import namespace="http://ns1"/>. Without the 
schemaLocation, we resolve the import/include by namespace. In this case, we 
already have a map keyed by namespace for a list of XmlSchema objects loaded 
from a catalog or other files and we want to reuse them. Would it be possible 
to open the XmlSchemaCollection.getSchema(SchemaKey) method so that 
we can override/customize the behavior to associate existing XmlSchema 
instances to a SchemaKey? BTW, using a singleton of XmlSchemaCollection to 
keep the schema map is not always feasible.

Another observation is that a NPE will be thrown if the 
URIResolver.resolveEntity() returns null. Is there any way to disable the 
aggressive resolving/loading of import/include?

Another use case:

xsdA --> imports --> xsdC
xsdB --> imports --> xsdC

If we load xsdA and xsdB from two XmlSchemaCollections, then cannot share xsdC 
and xsdC will be loaded twice from two paths. Adding the extensisibility would 
allow us to share more efficiently too.

[EMAIL PROTECTED]
Raymond Feng
Apache Tuscany 


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to