Hi,
Using the variables inside xslt makes it more stable
even if there is not well-formed xml. To be more specific,
in this case even if the data.xml is not well-formed.
Concider the following:
<a href="{$opendocument}{following-sibling::AttachID}">
Which uses variable opendocument, this variable
is imported to the main xslt from commands.xsl.
<xsl:variable name="opendocument">
<xsl:value-of select="document('data.xml')/xslt/Open/command"/>
</xsl:variable>
You could rewrite this to
<xsl:variable name="opendocument"
select="document('data.xml')/xslt/Open/command" />
As you're only using the string value of the variable above.
Which reads the final value form external xml file. In Xalan
you dont need to use xalan:evaluate() function. Why? I dont know.
Why should you need it? There's no Expression that cannot be compiled at
parse-time.
But reality (tested) is that the data.xml file can contain
syntax errors and yet the program does not result internal
server error.
Xalan it probably recovering from the parsing error and returning an empty
node-set. If it's returning the valua of command even thought data.xml is
ill-formed, you probably has the document cached somewhere.
Jarno - Xorcist: Erlicheda
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list