xsl-list
[Top] [All Lists]

RE: document() for opening multiple documents

2003-07-09 06:16:22
The base URI for nodes in a result tree fragment is the base URI of the
stylesheet (more strictly, the base URI of the xsl:variable element used
to construct the RTF.)

This may be a case where you want to use the second argument of the
document() function to supply a base URI more precisely.

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Vitaly Ostanin
Sent: 08 July 2003 16:57
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] document() for opening multiple documents


Hello.

I try to use function document() http://www.w3.org/TR/xslt#document
for opening multiple source documents, specified in variable 
$file-set (using extension exsl:node-set()).

Main style:
<?xml version='1.0'?>
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    version='1.0'>
  <xsl:import href="xsl/included.xsl"/>
</xsl:stylesheet>

Included style (xsl/included.xsl):
<?xml version='1.0'?>
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:exsl="http://exslt.org/common"; 
    extension-element-prefixes="exsl"
    version='1.0'>
  <xsl:variable name="file-set">
    <file>file1.xml</file>
    <file>file2.xml</file>
  </xsl:variable>
  <xsl:template match="/">
    <xsl:for-each
       select="document(exsl:node-set($file-set)/file)"/>  
     <xsl:variable name="file">file1.xml</xsl:variable>  
     <xsl:for-each
       select="document($file)"/>  
  </xsl:template>
</xsl:stylesheet>


When I call document() with variable as first argument, 
file1.xml opened from directory "xsl".

When I call document() with exsl:node-set($file-set) as first 
document, files from $file-set opened (try to open) from the 
current directory.

Please, tell me, what is the base URI for relative URI's from 
node-set ?

I read
http://www.w3.org/TR/xslt#base-uri
but not fully understand it.

For my purposes I need include data from multiple files, and 
count of files and filenames are not static. Next I need to use
key() for accessing data.

In other test I try to include data into variable

  <xsl:variable name="file-set">
    <xsl:copy-of select="document('file1.xml')"/>
    <xsl:copy-of select="document('file2.xml')"/>
  </xsl:variable>

but key() not work with variable 
(for me - I use libxml2-2.5.8 and libxslt-1.0.31)

Anybody can help me, please?

-- 
Regards, Vyt
mailto:  vyt(_at_)vzljot(_dot_)ru
JID:     vyt(_at_)vzljot(_dot_)ru


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>