[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Global variable reads in the input XML document using the document() function ... sometimes it works, sometimes it doesn't


Subject: [xsl] Global variable reads in the input XML document using the document() function ... sometimes it works, sometimes it doesn't
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Sat, 27 Oct 2012 13:11:34 +0000

Hi Folks,

I have an XSLT program which has a global variable that uses the document()
function to read in the XML document that the program was invoked with:

------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                           version="2.0">

    <xsl:variable name="file" select="document(.)"/>

    <xsl:template match="/">
        ...
    </xsl:template>

</xsl:stylesheet>
------------------------------------------------------

On some input XML documents that XSLT program works, and on others I get a
horrific error message such as this:

FODC0002: Exception thrown by URIResolver: Invalid relative URI
{\n\t\t\t\tThis%20is%20an%20ann...}: Illegal character in path at index 0:

It appears that the problem is with this statement:

    <xsl:variable name="file" select="document(.)"/>

Sometimes the document() function finds the input XML file and sometimes it
doesn't.

Why?

I solved the problem by passing into the XSLT program the filename of the
input XML file and then invoking document() with that filename. But I'd like
to understand why the other approach doesn't work.

/Roger


Current Thread
Keywords