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
The other thing that the old spec didn't make clear (I haven't checked
the revision) is whether the transformer uses the URIResolver that was
set in the TransformerFactory at the time the Templates is created, or
the one that is set at the time the Transformer is created.
It's probably rather late in the day to be fixing this for XSLT 1.0, and
JAXP needs more work done on it for XSLT 2.0...
Michael Kay