Shortcomings

Setting up the query language environment became more elaborate with new functionality introduced with XSLT 2.0 and later 3.0. The 2016 specification addressed this new functionality by allowing the xsl:function declaration as an additional top-level element and by restricting the use of the new fn:error() function. Following the elimination of the result tree fragment data-type in favor of temporary trees it also made the value attribute of the sch:let expression optional, allowing temporary trees as value.

The 2020 specification did not add anything in support of XSLT 3.0.