xml-xalan-j-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Igor Hersht" <ig...@ca.ibm.com>
Subject Re: Relative URI resolving with document() function
Date Thu, 08 May 2003 17:14:18 GMT
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








Mime
View raw message