Skip to content

xsl:assert

Used to make assertions in the form of XPath expressions, causing a dynamic error if the assertion turns out to be false.

Available in XSLT 3.0. From Saxon 9.8, available in all editions. Implemented in Saxon-PE and Saxon-EE since Saxon 9.5.

  • Category: instruction
  • Content: sequence-constructor
  • Permitted parent elements: any XSLT element whose content model is sequence-constructor; any literal result element

Attributes

test
expression
XPath expression to be asserted.
select?
expression
Can be used to specify (part of) the content of the error message produced when the assertion is false.
error-code?
{ eqname }
Specifies the error code associated with the error message produced when the assertion is false.

Notes on the Saxon implementation

Following a change in the W3C specification, from Saxon 9.7 assertions are now disabled by default. To enable assertions, use the -ea command line option, or the Feature.XSLT_ENABLE_ASSERTIONS configuration property, or call XsltCompiler.enableAssertions(true) in the s9api interface.

Details

It may be useful to add an attribute such as use-when="$DEBUG" to xsl:assert instructions; the global static variable DEBUG can then be used to switch assertion processing on and off. The variable might be declared as <xsl:variable name="DEBUG" as="xs:boolean" select="true()"/>.

Examples

The following code tests whether the value of \$x is non-negative, and if not, fails with an error message:

<xsl:assert test="$x &gt; 0">Argument $x must be greater than zero</xsl:assert>

Comments