Skip to content

xsl:merge-source⚓︎

Describes the input source for an xsl:merge instruction.

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

Attributes⚓︎

name?
ncname
Name of the merge source. Used to distinguish different merge sources within the xsl:merge-action instructions.
for-each-item?
expression
XPath expression returning a set of nodes. Selects the anchor nodes for non-streamed merging.
for-each-source?
expression
XPath expression returning a set of URIs; these are the URIs of documents used for streamed merging; the root nodes of these documents act as the anchor nodes. In an earlier draft of the XSLT 3.0 specification, this attribute was named for-each-stream; either is accepted since Saxon 9.7.0.10.
select
expression
XPath expression; for each anchor node, this selects the descendant nodes that make up the stream of data to be merged.
streamable?
boolean
Streamed merging requires Saxon-EE.
use-accumulators?
tokens
First implemented in Saxon 9.8. Defines the set of accumulators that are applicable to the streamed document.
sort-before-merge?
boolean
Specifies whether each input sequence will first be sorted to ensure that it is in the correct order. The value yes means that sorting will take place, while the value no (the default) means that each input sequence must already be in the correct order for merging.
validation?
"strict" | "lax" | "preserve" | "strip"
Determines whether validation is applied to the input read from this merge source. Validation requires Saxon-EE.
type?
eqname
If specified, data read from this merge source is validated against the named schema type. Validation requires Saxon-EE.

Notes on the Saxon implementation⚓︎

The implementation of streaming uses one thread for each input document. The configuration option to allow multi-threaded execution must not be disabled.

Streamed merging requires Saxon-EE.

The use-accumulators attribute is first implemented in Saxon 9.8.

Details⚓︎

For details and examples, see xsl:merge

See also⚓︎

Comments