[Home] [By Thread] [By Date] [Recent Entries]

  • Subject: Re: JSR 206 Java(TM) API for XML Processing (JAXP) 1.3
  • From: Robert Koberg <rob@k...>
  • Date: Fri, 09 Jan 2004 14:00:20 -0800
  • Cc: xml-dev@l...
  • In-reply-to: <87y8sgg52b.fsf@n...>
  • References: <87y8sgg52b.fsf@n...>
  • User-agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.5) Gecko/20031013 Thunderbird/0.3

Norman Walsh wrote:

> On December 16, 2003, the JSR 206 Expert Group agreed to publish a
> first Public Review draft of the Java(TM) API for XML Processing
> (JAXP) 1.3.
> 
> At this week's expert group meeting, it was suggested that our
> publication notice may have been obscured in holiday revelry. :-)
> 
> If you were hitherto unaware of it, I draw your attention to
> http://jsr206-public.dev.java.net/ where you may download the
> specification, JavaDocs, and ancillary materials.
> 
> Public Review is an invitation for...public review. Please let us know
> what you think. The comments list for JSR 206 is
> JSR-206-comments@J...


I posted this yesterday. Is there any way to know if my 
questions/suggestions are getting discussed or implemented (without 
waiting till it is done)?

-----------

I have used URIResolvers quite a bit in my projects. I have also tried 
to make my code use all the popular jaxp XSL processors. It has been a 
sad experience because the way they are implemented differ from each 
other (even xalan and XSLTC differ, as I have explained on the lists 
here in the past). This new spec does little to clarify things.

Under Transformer.getURIResolver() it says:

"Get an object that will be used to resolve URIs used in document(), etc."

What does 'etc' mean?

Under Transformer.setURIResolver it says:

"If the resolver argument is null, the URIResolver value will be 
cleared, and the default behavior will be used."

Does this mean that if a URIResolver was set on the TransformerFactory, 
it would fallback to it? Does this mean you need to call the set method 
with a null to get the default (factory's resolver)?

In the TransformerFactory.getURIResolver it says:

"Get the object that is used by default during the transformation to 
resolve URIs used in document(), xsl:import, or xsl:include."

So if you get your Transformer from a TransformerFactory which one 
resolves xsl:include/import (confused over the use of 'etc' above))?

In the TransformerFactory.setURIResolver it says:

"Set an object that is used by default during the transformation to 
resolve URIs used in xsl:import, or xsl:include."

This makes no mention of document() as mentioned in 
TransformerFactory.getURIResolver.

I think the spec should clearly define the behavior of setURIResolver 
for both interfaces. IMHO it should work like this:

- if a resolver is set on the factory it is used for xsl:import/include
- if a resolver is *not* set on the factory the base URI of the XSL is 
used to resolve the import/include'd XSL relative to the base URI
- if a resolver is set on the transformer it is used for document()
- if a resolver is *not* set on the transformer the base URI of the XSL 
is used to resolve a relative XML

what do you think?

best,
-Rob




> 
> 
>                                         Be seeing you,
>                                           norm
> 
> P.S. Sorry for the dup posting. List problems.
> 



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member