saxon:serialize
Returns the serialization of a node, that is its representation in XML angle-bracket form.
serialize($node as node(), $format as xs:string) ➔ xs:string
Arguments | |||
| $node | node() | The node to be serialized |
| $format | xs:string | The name of an xsl:output declaration |
Result | xs:string |
serialize($node as node(), $format as element(xsl:output)) ➔ xs:string
Arguments | |||
| $node | node() | The node to be serialized |
| $format | element(xsl:output) | An element node whose content has the form of an xsl:output declaration |
Result | xs:string |
Namespace
http://saxon.sf.net/
Saxon availability
Requires Saxon-PE or Saxon-EE.
Notes on the Saxon implementation
Available since Saxon 7.1. The function is obsolescent; the standard fn:serialize() function in XPath 3.0 should be used in preference.
Changes made in response to bug 3815 remove the requirement that the output format name be supplied as a string literal.
Details
This function takes two arguments: the first is a node (generally a document or element node) to be serialized. The second argument defines the serialization properties. The second argument takes several possible forms:
- When called within an XSLT stylesheet, the second argument may be the
name of an
xsl:output
element in the stylesheet. - In non-XSLT environments, the second argument may be the name of the output method (xml, html, xhtml, text), written as a string literal. In this case the other serialization parameters are defaulted.
- In all environments, the second argument may be an
xsl:output
element conforming to the rules defined in the XSLT specification. This element may be constructed dynamically, and may therefore be used to decide all the serialization properties dynamically.
For example, the function may be used as follows in XQuery:
declare namespace saxon="http://saxon.sf.net/"; declare namespace xsl="http://www.w3.org/1999/XSL/Transform"; <out>{ let $x := <a><b/><c>content</c><?pi?><!--comment--></a> return saxon:serialize($x, <xsl:output method="xml" omit-xml-declaration="yes" indent="yes" saxon:indent-spaces="1"/>) }</out>The function serializes the specified document, or the subtree rooted at the specified element, according to the parameters specified, and returns the serialized document as a string.
This function is useful where the stylesheet or query wants to manipulate the serialized output, for example by embedding it as CDATA inside another XML document, or prefixing it with a DOCTYPE declaration, or inserting it into a non-XML output file.
Note that because the output is a string, the encoding parameter has no effect on the actual encoding, though it does affect what is written to the XML declaration.