Catching message from xsl:message terminate=yes in function
AirQuick <[email protected]>
| Newsgroups | gmane.text.xml.saxon.help |
|---|---|
| Message-ID | <[email protected]> |
I expected Saxon 10.1 and 9.9.1.7 with the stylesheet below to output
<value><?error-code Q{http://www.w3.org/2005/xqt-errors}XTMM9000?>my error message</value>
but the actual output is
$ java -jar SaxonHE10-1J/saxon-he-10.1.jar -it -xsl:test.xsl
my error message
<?xml version="1.0" encoding="UTF-8"?>
<err>
<code>err:XTMM9000</code>
<description>Processing terminated by xsl:message at line 28 in test.xsl. Found while atomizing the result of a call to my:test#0</description>
<value/>
</err>
Stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet exclude-result-prefixes="#all" version="3.0"
xmlns:err="http://www.w3.org/2005/xqt-errors" xmlns:my="my"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" />
<xsl:template name="xsl:initial-template">
<xsl:try>
<xsl:sequence select="my:test()" />
<xsl:catch>
<err>
<code>
<xsl:value-of select="$err:code" />
</code>
<description>
<xsl:value-of select="$err:description" />
</description>
<value>
<xsl:sequence select="$err:value" />
</value>
</err>
</xsl:catch>
</xsl:try>
</xsl:template>
<xsl:function as="xs:integer" name="my:test">
<xsl:message select="'my error message'" terminate="yes" />
<xsl:sequence select="1" />
</xsl:function>
</xsl:stylesheet>