xml-xalan-j-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Welch" <AWe...@piper-group.com>
Subject RE: Relative URI resolving with document() function
Date Thu, 08 May 2003 17:32:19 GMT

Interesting...

The more typical way is to write a custom URIResolver() that deals with requests from document()
and xsl:import/xsl:include.  

http://access1.sun.com/technotes/00762.html

You can set it on either the TransformerFactory or on the Transformer.  It will intercept
the calls and allow you to re-route them or pass back whatever you want really.

(Ive read that for the document() function it should be set on the Transformer but Ive not
tested that)

cheers
andrew

> -----Original Message-----
> From: Igor Hersht [mailto:igorh@ca.ibm.com]
> Sent: 08 May 2003 18:14
> To: Christine Li
> Cc: Chavdar Stefanov; xalan-j-users@xml.apache.org
> Subject: Re: Relative URI resolving with document() function
> 
> 
> For documentation on document you can see
> http://www.w3.org/TR/xslt#document
> 
> About your specific problem. As far as I understand you would like
> to have your URL to be relative to your input xml file.
> You can do it when you call document() with 2 arguments e.g.
> 
> <xsl:value-of select="document('dir2/t2.xml',document
> ('dir1/t1.xml'))/doc/tt"/>
> 
> One can see 'dir2/t2.xml' would use Base URI from 'dir1/t1.xml'
> ('dir2/t2.xml' is relative to dir1).
> 
> 
> Igor Hersht
> XSLT Development
> IBM Canada Ltd., 8200 Warden Avenue, Markham, Ontario L6G 1C7
> Office D2-260, Phone (905)413-3240 ; FAX  (905)413-4839
> 
> 
>                                                               
>                                           
>                       Christine                               
>                                           
>                       Li/Toronto/IBM@IB        To:       
> "Chavdar Stefanov" <chavdars@hotmail.com>      
>                       MCA                      cc:       
> xalan-j-users@xml.apache.org                   
>                                                Subject:  Re: 
> Relative URI resolving with document()     
                  
>     05/08/2003 09:27          function                        
>                         
>                       AM                                      
>                                           
>                                                               
>                                           
>                                                               
>                                           
> 
> 
> 
> 
> 
> 
> 
> Hi, Chavdar
> 
> for document($stringval), if $stringval is a absolute URI, the URI
> reference is returned. If the $stringval is a relative URI, 
> the base URI of
> the node in the stylesheet that contains the expression that 
> includes the
> call to the document function is used.
> In your case, document("/dir3/dir4/source2.xml") uses a 
> relative URI, so it
> tries to use base URI from the calling stylesheet. The same 
> as if calling
> document("http://myserver.net/dir1/dir2/source2.xml").
> 
> Christine Li
> XSLT Development
> IBM Toronto Lab
> Tel: (905)413-2601
> Email: jycli@ca.ibm.com
> 
> 
> 
>                       "Chavdar
> 
>                       Stefanov"                To:
> xalan-j-users@xml.apache.org
> 
>                       <chavdars@hotmail        cc:
> 
>                       .com>                    Subject:  Relative URI
> resolving with document() function
> 
>                       05/08/2003 08:34
> 
>                       AM
> 
> 
> 
> 
> 
> 
> Hi all,
> 
> I have the following problem.
> Let's say that I have the stylesheet "main.xsl" which includes the
> stylesheet "secondary.xsl".
> These stylesheets are located at base URL 
> "http://myserver.net/dir1/dir2/".
> I am transforming an XML "source1.xml" into HTML which is 
> located at base
> URL "http://myserver.net/dir3/dir4/".
> The stylesheet secondary.xsl is using the document() function 
> to import
> another XML "source2.xml" for querying which have the same base URL
> location
> as "source1.xml".
> Now comes the problem.
> If I use a relative URL the "source2.xml" is not imported and if I use
> absolute URL it works fine. But I need to use server relative URL.
> 
> How Xalan resolves relative URIs with teh document() function 
> and is this a
> 
> bug or I am doing wrongly.
> 
> Here is a code snippet of how I am using the document() functioin:
> 
> ...
> <xsl:variable name="link_doc_xml">
> <xsl:value-of select="concat('/dir3/dir4/', 'source2.xml')"/>
> </xsl:variable>
> <xsl:variable name="inc_xml_root" select="document($link_doc_xml)"/>
> ...
> 
> I'am using Xalan 2.4.0 with Xerces 2.1.0
> 
> Thanks
> 
> _________________________________________________________________
> Add photos to your e-mail with MSN 8. Get 2 months FREE*.
> http://join.msn.com/?page=features/featuredemail
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.470 / Virus Database: 268 - Release Date: 08/04/2003
>  
> 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.470 / Virus Database: 268 - Release Date: 08/04/2003
 

Mime
View raw message