cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Li, Tao \(Tom\)" <Tao...@iona.com>
Subject RE: Possible WSDL/Schema multiple import bug
Date Tue, 07 Nov 2006 14:22:00 GMT
Hi Peter,

I just commit my patch for XMLSchemaResovler & URIResolver, please help to review and
try.
Thanks a lot.

Tom

> -----Original Message-----
> From: Peter Jones [mailto:peter.jones@iona.com]
> Sent: Monday, November 06, 2006 3:03 PM
> To: cxf-dev@incubator.apache.org
> Subject: Re: Possible WSDL/Schema multiple import bug
> 
> 
> 
> Hi James,
> 
> On Mon, Nov 06, 2006 at 10:13:38AM +0800, James Mao wrote:
> > Hi peter ,
> > 
> > Sorry that i didn't mention that Tom have not commit the change.
> > He'll commit soon.
> 
> I was just trying out the changes committed to the URIResolver earlier
> today and I still had to make a small change to get things to 
> work with
> the mtosi wsdls and schemas I was using.  I haven't looked at 
> it closely
> enough to tell for sure, but I think it might be the assumption in
> URIResolver.getAbsoluteFileStr() that the last history element was the
> parent - i.e. the file that imported the file we are looking 
> for... some
> of the mtosi schemas import several schemas which import 
> other schemas... 
> 
> Anyway, there's a slight change to my work-around though, since the
> URIResolver.tryFileSystemState() doesn't seem to set the file member.
> 
>     if (resolver.getURI().isAbsolute()) {
>         // When importing a relative file,
>         // setSystemId with an absolute path so the
>         // resolver finds any files which that file
>         // imports with locations relative to it.
>         URI resolved = resolver.getURI();
>         schemaLocation = resolver.getURI().toString();
>     }
> 
> I can probably check in this work-around for now, until I can put
> together a smaller test case to help track down the problem?
> 
> Cheers,
> Peter
> 
> > Cheers,
> > James.
> > 
> > Peter Jones å?(tm)é":
> > > Hi there,
> > >
> > > There is still an issue here.  If you import a relative 
> file, and then that
> > > file imports another file with a path relative to the import (in a
> > > different directory) then this imported file isn't 
> resolved correctly.
> > >
> > > I've worked around this problem in my tree in 
> XmlSchemaURIResolver by
> > > resetting the schemaLocation:
> > >
> > >     if (resolver.isResolved()) {
> > >         if (resolver.isFile()) {
> > >             // When importing a relative file,
> > >             // setSystemId with an absolute path so the
> > >             // resolver finds any files which that file
> > >             // imports with locations relative to it.
> > >             URI resolved = resolver.getURI();
> > >             schemaLocation = resolved.toString();
> > >         }
> > >         InputSource source = new 
> InputSource(resolver.getInputStream());
> > >         source.setSystemId(schemaLocation);
> > >         return source;
> > >     }
> > >
> > > So, when the resolver is called to resolve the second 
> import, the baseUri
> > > passed in is an absolute path instead of a relative path, 
> which allows the
> > > resolver to find the second file.
> > >
> > > Cheers,
> > > Peter
> > >
> > > On Sun, Nov 05, 2006 at 02:19:32PM +0800, James Mao wrote:
> > >   
> > >> I thought Tom already fix this problem last Friday.
> > >> And i think the better solution is to report a bug to 
> ws-common , not in 
> > >> cxf.
> > >> But anyway, tom already fix that.
> > >>
> > >> [...]
> 
> -- 
> Peter Jones
> IONA Technologies Inc.
> E-Mail: mailto:peter.jones@iona.com
> Tel: (w) 709-738-3725 x22 | Fax: 709-738-3745
> 84-86 Elizabeth Ave. St. John's, NL A1A 1W7 Canada
> 

Mime
View raw message