We decided that, if possible, the validator should be written in the subset of XSLT 3.0 that is supported by Saxon-JS
(including the use of xsl:evaluate
which requires a later release of Saxon-JS). This decision means that we cannot
use higher-order functions: these are an optional XSLT 3.0 feature which Saxon-JS does not currently support.