On Thu November 19 2009 12:53:33 am Craig Tataryn wrote:
> Problem we've faced with the catalog solution is the case where the
> XSDs your WSDL is referencing also references other XSDs in a relative
> way.  It seems (to me) that you can't make a catalog entry which
> overrides "../" to point to a specific place on the classpath.
> 
> For instance:
> WSDL has <xsd:import schemaLocation="schemas/3rdPartySchema.xsd"/>
> We map schemas to classpath:/schemas in a catalog and that works well.
> 
> then, in 3rdPartySchema.xsd there is a: <xsd:import schemaLocation="../
> coreschemas/base.xsd"/>.  There seems no way to catalog "../" to point
> to classpath:/coreschemas...


Hmm...   You should HAVE to do anything with the catalogs in this case.   The 
systemId for 3rdPartySchema.xsd should end up being the full URL for whatever 
"classpath:/schemas/3rdPartySchema.xsd" resolves to. (like 
jar:file://..../myproject.jar!/schemas/3rdPartySchema.xsd)

Thus, the relative path, which would resolve from the systemId, should work 
fine for that.    If it isn't, that would be a bug and should be logged (with 
a testcase  :-)   ).

Dan


> 
> What happens is anytime 3rdPartySchema.xsd makes reference to an
> element from base.xsd, it complains it's an unresolved element (but
> doesn't seem to complain that it can't find base.xsd mind you).
> 
> Craig.
> 
> On 16-Nov-09, at 7:25 AM, Daniel Kulp wrote:
> > This is exactly what the XML catalogs are designed for (and the -
> > catalog flag
> > on wsdl2java).     Basically, they allow URL patterns and such used
> > for
> > imports to be mapped into new URL's where the stuff really lives.
> > Thus, you
> > can have "http://...";  type URL's in the wsdl's/xsd's, but have
> > those remapped
> > into file things or such.
> >
> > Dan
> >
> > On Sat November 14 2009 9:31:43 am Dominik Raymann wrote:
> >> Hi there,
> >>
> >> I use WSDL2JAVAto generate client code from a WSDL. I'd like to
> >> store the
> >> WSDL (and all referenced dependencies) locally so that the stubs
> >> can be
> >> generated offline. However, the WSDL references (imports) other
> >> WSDLs as
> >> well as schema files. These references are absolute URLs.
> >>
> >> Is it possible to map these URLs to local files somehow or do I
> >> have to
> >> edit the WSDL manually and change to URLs so that they point to the
> >> local
> >> files?
> >>
> >> Or is there a tool (wsdl2java itself?) that downloads everything
> >> needed for
> >> codegeneration and changes the references so that they point to the
> >> local
> >> copies of the files?
> >>
> >> Thanks for your answer,
> >>
> >> Dominik
> 

-- 
Daniel Kulp
[email protected]
http://www.dankulp.com/blog

Reply via email to