This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Parameter evaluation after use of document()


Yves Forkl wrote:

I am wondering why the XSLT code below doesn't work. Xalan-J dies with
the (not very helpful) errors mentioned below as soon as it tries to
get the value of "filename_base" in the second last line in the
stylesheet excerpt.

  <xsl:apply-templates
    select="document(concat($filename_base, '.xml'))"
    mode="info_mode">
Applying templates directly to a result of document() function can be dangerous sometime due to the fact that the result is always root node and template for "/" is in use. Without a mode it could cause infinite looping, in your case you probably don't have template for root node in info_mode mode and built-in template as usual loses your parameter.
Try to add some location path after document() function to eliminate built-in templates processing as they don't pass parameters.

<xsl:apply-templates
select="document(concat($filename_base, '.xml'))/*"
mode="info_mode">

But anyway it's perfectly legal xslt stylesheet and xalan shouldn't die on it, probably you have found a bug.

--
Oleg Tkachenko
Multiconn International, Israel


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]