schemaLocation URI not resolved correctly using jar files
---------------------------------------------------------

                 Key: WODEN-192
                 URL: https://issues.apache.org/jira/browse/WODEN-192
             Project: Woden
          Issue Type: Bug
          Components: Parser
            Reporter: John Kaputin
            Assignee: John Kaputin
             Fix For: M8


As per the woden-dev thread at [1], when the WSDL and XSD files are packaged 
inside a jar file, a relative path URI on the schemaLocation attribute of a 
schema import is not resolved correctly against the base jar URI of the 
containing WSDL file.

For example, if the WSDL base URI is 
"jar:file:///C:/temp/test.jar!/META-INF/foo.wsdl" and this WSDL has an inlined 
schema containing a schema import with schemaLocation="bar.xsd" and this XSD 
file is also packaged in the META-INF directory of the jar file, the resolved 
XSD URI should be "jar:file:///C:/temp/test.jar!/META-INF/bar.xsd".

Currently, this will only work if a catalog is configured which maps the 
schemaLocation URI to the jar file URI (see the email thread for more info). 
Then, Woden's SimpleURIResolver will resolve the XSD path correctly. But this 
is not convenient for applications that don't have direct access to Woden (e.g. 
Axis2 user apps).

The problem is that Woden's SchemaResolverAdapter class, which gets registered 
with WS-Commons XmlSchema, uses the resolve(URI) method of java.net.URI to 
resolve the the baseURI and schemaLocation URI - as in, 
baseURI.resolve(schemaLocation). However, this method does not work if baseURI 
is opaque - instead, it just returns the schemaLocation which in turn gets 
resolved against the current directory. A jar file URI ("jar:file:/...") is an 
opaque URI (see URI javadoc).

[1] http://mail-archives.apache.org/mod_mbox/ws-woden-dev/200712.mbox/[EMAIL 
PROTECTED]


-- 
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