SAXONICA |
To conform with the W3C Data Model specification, an incompatible change has been introduced in this release: by default, "ignorable whitespace" is stripped from source documents before a query or transformation commences.
If the document has a DTD, then ignorable whitespace is whitespace appearing between the child elements of an element that is declared to have element-only content. Such whitespace is always reported as such when a validating parser is used, but there appear to be differences between parsers as to whether it is reported when not validating.
If the document has a schema, then ignorable whitespace is a whitespace text node appearing as a child of an element that has element-only content.
If there is no DTD and no schema, then whitespace is never ignorable.
The presence of an xml:space="preserve"
attribute has no effect on this process.
This whitespace stripping is additional (and prior) to any whitespace stripping requested using
xsl:strip-space
in an XSLT stylesheet. It occurs only when a document is built from a StreamSource
or SAXSource.
The default behavior can be overridden from the command line. The Transform
and Query
commands have three new options: -snone
strips no whitespace, -signorable
strips
ignorable whitespace, and -sall
strips all whitespace text nodes.
It is also possible to override the default behavior when using the doc()
or document()
function, if query URI parameters are enabled, by adding the parameter strip=no
to the URI.