xsl:output
The xsl:output
element is used to control the format of serial output files resulting
from the transformation. It is always a top-level element immediately below thexsl:stylesheet
element.
There may be multiple xsl:output
elements; their values are accumulated as described in the
XSLT specification.
The following standard attributes may be specified:
name |
This provides a name for this output format, which may be referenced
in the |
method |
This indicates the format or destination of the output. The value "xml" indicates
XML output (though if disable-output-escaping or character maps are
used there is no guarantee that it is well-formed).
A value of "html" is used for HTML output, and "xhtml" for XHTML. The value "text" indicates plain text output: in this case
no markup may be written to the file using constructs such as literal result elements, xsl:element,
xsl:attribute, or xsl:comment.Alternatively output can be directed to a user-defined
Java program by specifying the name of the class as the value of the method attribute, prefixed by
a namespace prefix, for example "xx:com.me.myjava.MyEmitter". The class must be
on the classpath, and must implement either the
|
cdata-section-elements |
This is used only for XML output. It is a whitespace-separated list of element names. Character data belonging to these output elements will be written within CDATA sections. |
doctype-system |
This is used only for XML output: it is copied into the DOCTYPE declaration as the system identifier. If the value is an empty string, Saxon interprets this as if the attribute were omitted, which can be useful it you want to override an actual value with "absent". |
doctype-public |
This is used only for XML output: it is copied into the DOCTYPE declaration as the public identifier. It is ignored if there is no system identifier. If the value is an empty string, Saxon interprets this as if the attribute were omitted, which can be useful it you want to override an actual value with "absent". |
encoding |
A character encoding, e.g. iso-8859-1 or utf-8. The value must be one recognised both by the Java run-time system and by Saxon itself: the encoding names that Saxon recognises are ASCII, US-ASCII, iso-8859-1, utf-8, utf8, KOI8R, cp1251. It is used for three distinct purposes: to control character conversion by the Java I/O routines; to determine which characters will be represented as character entities; and to document the encoding in the output file itself. The default (and fallback) is utf-8. |
escape-uri-attributes |
New in XSLT 2.0: values "yes" or "no" are accepted. This affects HTML output only.
It controls whether non-ASCII characters in HTML URI-valued attributes (for example, |
include-content-type |
New in XSLT 2.0: values "yes" or "no" are accepted. This affects HTML output only.
It controls whether a |
indent |
as in the XSLT spec: values "yes" or "no" are accepted. The indentation algorithm is different for HTML and XML. For HTML it avoids outputting extra space before or after an inline element, but will indent text as well as tags, except in elements such as PRE and SCRIPT. For XML, it avoids outputting extra whitespace except between two tags. The emphasis is on conformance rather than aesthetics! |
suppress-indentation |
This is a new property in XSLT 3.0 (it was previously available
in Saxon as an extension). The value is a whitespace-separated list of element names,
and it typically identifies "inline" elements that should not cause indentation;
in XHTML, for example, these would be |
media-type |
For example, "text/xml" or "text/html". This is largely documentary. However, the value assigned is passed back to the calling application in the OutputDetails object, where is can be accessed using the getMediaType() method. The supplied servlet application SaxonServlet uses this to set the media type in the HTTP header. |
omit-xml-declaration |
The values are "yes" or "no". For XML output this controls whether an xml declaration should be output; the default is "no". |
standalone |
This is used only for XML output: if it is present, a standalone attribute is included in the XML declaration, with the value "yes" or "no". |
use-character-maps |
A space-separated list of the names of character maps (see xsl:character-map) which will be applied to transform individual characters during serialization. |
version |
Determines the version of XML or HTML to be output. This is largely documentary. However, for XML the distinction between "1.0" and "1.1" determines whether or not namespace undeclarations will be output; and for HTML, the value "5" can be used to force the HTML5 style of DOCTYPE declaration. |
The html-version
attribute introduced in XSLT 3.0 is not yet implemented (in Saxon 9.5). However,
basic support for HTML5 is available by specifying method="html" version="5"
.
See Additional Serialization Parameters
for descriptions of additional attributes supported by Saxon on the xsl:output
declaration.