At 2012-10-27 13:11 +0000, Costello, Roger L. wrote:
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:
Sure it's invalid, it begins with a newline character.
It appears that the problem is with this statement:
<xsl:variable name="file" select="document(.)"/>
Right ... you are sking the processor to take the text value of the
input file and pass that to the document() function as a URI string to open.
Sometimes the document() function finds the input XML file and
sometimes it doesn't.
Why?
Because you are opening the stylesheet with an XML file whose text
value is or is not a valid URI. Certainly a newline and a bunch of
tab characters and "This is an..." is not a valid URI, just as the
message indicates.
I solved the problem by passing into the XSLT program the filename
of the input XML file and then invoking document() with that filename.
Fine ... that is a nice delimited string.
But I'd like to understand why the other approach doesn't work.
Because you are passing the text value of the entire input document as a URI.
What is it you really wanted from your input file? Is it perhaps a
descendent element somewhere that has the URI that you want to open?
I hope this helps.
. . . . . . . . Ken
--
Contact us for world-wide XML consulting and instructor-led training
Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--