RE: [xsl] Problem with saxon7, Transformer and URIResolver

Subject: RE: [xsl] Problem with saxon7, Transformer and URIResolver
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 8 Apr 2005 13:13:38 +0100
The URIResolver on the Transformer is used for resolving run-time URIs, such
as those in the document() function. For compile-time URIs, such as
xsl:include, you need to set a URIResolver on the TransformerFactory. By the
time you create your Transformer the stylesheet has already been compiled,
and all xsl:includes and xsl:imports have already been resolved.

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: Olaf Meske [mailto:omeske@xxxxxxxxxxx] 
> Sent: 08 April 2005 13:02
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Problem with saxon7, Transformer and URIResolver 
> 
> Hello,
> 
> I try to use a customized / wrapped URIResolver with saxon7, 
> to change 
> an additional style sheet imported with
> <xsl:include href="myspecial.xsl" />
> to resolve this "myspecial.xsl" to some other url.
> 
> I created the Transformer with:
> =========
> TransformerFactory tFactory = TransformerFactory.newInstance();
> transformer = tFactory.newTransformer(new StreamSource("./main.xsl"));
> // this main.xsl contains the xsl:include
> URIResolver resolver = transformer.getURIResolver();
> URIResolver newRes = new MyURIResolver(resolver, ...);
> transformer.setURIResolver(newRes);
> [...]
> // now invoking some xml file with transformer ...
> 
> I wonder why my wrapped URIResolver (MyURIResolver) will never be 
> invoked to resolve the xsl:include.
> 
> Do I have to set the URIResolver *before* setting the 
> main.xsl for the 
> Transformer? And when I have to, how can I do it?
> 
> Regards,
> 
> Olaf
> 
> -- 
> Olaf Meske
> www.softcare.de

Current Thread