xsl:merge-source

Describes the input source for an xsl:merge instruction.

Content: xsl:merge-key+
Permitted parent elements: xsl:merge

Attributes

name?

ncname

for-each-item?

expression

XPath expression returning a set of nodes. Selects the anchor nodes for non-streamed merging.

for-each-stream?

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.

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. Saxon 9.6 implements streamed merging with some restrictions, see below.

sort-before-merge?

boolean

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

Saxon 9.6 implements streamed merging with some restrictions. It does not allow an arbitrary striding expression as the select expression, but only a simple path expression following the same rules as the saxon:stream() extension function.

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

For more information see Streaming with xsl:merge. Streamed merging requires Saxon-EE.

Details

For details and examples, see xsl:merge

Links to W3C specifications

XSLT 3.0 Specification

See also

xsl:merge