I'm processing XML which contains relative URLs, e.g
"index.php?title=User_manual", and want to apply templates to the
referenced resources

I'm trying to do so with the "document()" function

When I pass a relative URL to the "document()" function, it resolved to
the wrong absolute URL, e.g. "/home/jablko/index.php"

So I tried using xml:base, e.g.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:html="http://www.w3.org/1999/xhtml"; 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:template match="/">
    <xsl:apply-templates xml:base="http://ica-atom.org/docs/"; 
select="document('index.php?title=User_manual')/html:html"/>
  </xsl:template>
</xsl:stylesheet>

http://www.sfu.ca/~jdbates/tmp/xalan/200911090/test.xsl

^ This works great with xsltproc,

 $ xsltproc test.xsl test.xsl
 [...]
 $

- but not Xalan,

 $ java -jar xalan-j_2_7_1/xalan.jar -IN test.xsl -XSL test.xsl
 file:///home/jablko/test.xsl; Line #4; Column #123; Can not load requested 
doc: /home/jablko/index.php (No such file or directory)
 <?xml version="1.0" encoding="UTF-8"?>$ 

Any advice on resolving relative URLs?

Is it a bug that Xalan appears to ignore xml:base?

Reply via email to