[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xmlrpc-user
Subject:    [jira] Created: (WODEN-229) CLONE -schemaLocation URI not resolved
From:       "Lauri Carlson (JIRA)" <jira () apache ! org>
Date:       2011-01-29 6:06:43
Message-ID: 28449298.284601296281203894.JavaMail.jira () thor
[Download RAW message or body]

CLONE -schemaLocation URI not resolved correctly using jar files - xsd two deep?
--------------------------------------------------------------------------------

                 Key: WODEN-229
                 URL: https://issues.apache.org/jira/browse/WODEN-229
             Project: Woden
          Issue Type: Bug
          Components: Parser
            Reporter: Lauri Carlson
            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/%3cb72c94b30712261948x5b276fe3t103eff70163f1468@mail.gmail.com%3e



-- 
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: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic