cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Mao <james....@iona.com>
Subject Re: Possible WSDL/Schema multiple import bug
Date Tue, 07 Nov 2006 07:04:11 GMT
Yeah, we definitely need more test cases for this.
Thanks,
James.
> 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 写道:
>>     
>>> 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.
>>>>
>>>> [...]
>>>>         
>
>   


Mime
View raw message