Known restrictions include the following:
It is not possible to use XSLT keys to access the HTML document: they will not be updated when the document is modified in-situ. (XSLT keys on XML source documents are fine, however.)
id()function when applied to an XML document will recognize elements identified by
xml:idattributes, but generally does not work on IDs defined as such in a DTD (on most browsers, the XML parser does not read the external DTD). The
id()function does work on the HTML document, delivering the same result as the DOM method
For the same reason, the
idref()function has no effect (the XML parser in general does not report which attributes are of type IDREF)
document()functions are synchronous: this can lead to an unpleasant user experience if fetching a document from a remote server is delayed (the source file for a transform may be fetched asynchronously - depending on context).
collection()function returns an empty sequence for the default collection, and reports "unknown collection" for any supplied URI.
unparsed-entity-public-idfunctions have no effect (they behave as if the named entity is not present in the document). This is because the XML parser in the browser, in general, is not reporting the presence of unparsed entities.
Conversion of double and float values to strings is not 100% conformant in all cases, although the results will usually be acceptable. For example, the output might be
1.0E-6, while negative zero is output as
In functions such as
format-date, digits must be ASCII digits. There is currently no localization for languages other than English.
The Saxon-CE engine does not perform serialization. This means that the attribute
disable-output-escapingis ignored. It also means that no
metaattributes are inserted into HTML or XHTML output, and no escaping of URI-valued attributes takes place.