Skip to content


Creates a new document node.

Available in XSLT 1.0 and later versions. Available in all Saxon editions.

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


"strict" | "lax" | "preserve" | "strip"
Used to perform document-level validation. Requires Saxon-PE or Saxon-EE.
Determines what happens to any type annotations on element or attribute nodes. Requires Saxon-PE or Saxon-EE.

Notes on the Saxon implementation

This instruction should not be confused with the instruction of the same name in the withdrawn XSLT 1.1 draft, (which is supported in Saxon 6.5.x). That instruction was a precursor to xsl:result-document.


The content of the new document node is created using the contained instructions (in the same way as xsl:result-document), and the new document node is added to the result sequence. The instruction is useful mainly if you want to validate the document: the element allows attributes validation and type which perform document-level validation in the same way as the corresponding attributes on xsl:result-document.

The instruction also allows a function or template to create a temporary tree without the need to create a variable and then return the value of the variable.

See also