Read XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition Online
Authors: Michael Kay
This mode has static scope rather than dynamic scope: it affects the instructions in the stylesheet that are textually within the element that carries the relevant
version
attribute. It only affects the behavior of the compiler; it does not alter the way that any instruction or expression is evaluated at runtime.
In forward-compatible mode, the XSLT processor must assume that the stylesheet is using XSLT facilities defined in a version of the standard that has been published since the software was released. The processor, of course, won't know what to do with these constructs, but it must assume that the stylesheet author is using them deliberately. It treats them in much the same way as vendor extensions that it doesn't understand:
This behavior occurs only if the
1.0
(or for XSLT 2.0, a value greater than
2.0
). Forward-compatible mode can also be specified for a portion of a stylesheet by specifying the
xsl:version
attribute on any literal result element, and in the case of XSLT 2.0, by specifying the
version
attribute on any XSLT element. If forward-compatible mode is not enabled, then any use of an XSLT element, attribute, or function that isn't in the version of XSLT that the processor supports, or any use of XPath syntax that isn't in the corresponding XPath specification, is an error and must be reported, whether it is actually executed or not.
If you specify
version = “1.0”
and then use XSLT 2.0 facilities such as
version = “1.0”
is not expected to check that the stylesheet actually conforms to XSLT 1.0.