xsl:message
The xsl:message
element causes a message to be displayed. The message
is the contents of the xsl:message
element.
There is an optional attribute terminate
with permitted values
yes
and no
; the default is no. If the
value is set to yes, processing of the stylesheet is terminated after issuing the message. This
attribute may be supplied as an attribute value template.
By default the message is displayed on the standard error output stream. You can supply your
own message receiver if you want it handled differently. This must be a class that implements
the Receiver
interface. The content of the message is in general an
XML fragment. You can supply the Receiver using the -m option on the command line, or the
setMessageEmitter()
method of the Controller
class.
The sequence of calls to this Receiver
is as follows: there is a single open()
call at
the start of the transformation, and a single close()
call at the end; and each evaluation of an xsl:message
instruction starts with a startDocument()
call and ends with endDocument()
. The startDocument()
event has a properties
argument indicating whether terminate="yes"
was specified, and the
locationId
on calls such as startElement()
and characters()
can be used to identify
the location in the stylesheet where the message data originated (this is achieved by passing the supplied locationId
in a call to getPipelineConfiguration().getLocator().getSystemId(locationId)
, or to getLineNumber()
on the same object).
Select the class MessageWarner
to have xsl:message
output
notified to the JAXP ErrorListener
, as described in the JAXP documentation.
Saxon 9.5 implements the new feature of text value templates which is particularly useful with xsl:message
.
For example: <xsl:message expand-text="yes">Id: {@id} Age: {@age} Status: {@status}</xsl:message>
.
The attribute expand-text="yes"
can appear on any ancestor element to enable the feature.