
This function takes a URI of a stylesheet and an XML entity and
produces an XML entity representing the transformation result of the
given entity with the given stylesheet.  The result tree is separate
from the argument tree and the only reference to it is the returned
entity.  Errors occurring in the transformation will be signalled as
SQL states, with XML or XSLT specific conditions beginning with XS or
XP.

The stylesheet can be passed parameters by specifying a third argument
to xslt().  This will be a vector of name/value
pairs. The values can be referenced from inside XPath expressions in
the stylesheet. You may use any Virtuoso data type.  The names in the
parameter vector should appear without the @$@ sign.  If any of the
parameter values is NULL the parameter will be ignored because NULL
has no XPath counterpart.

xslt() applies the transformation in the sheet to
the specified entity.  The result is the root element of the result
tree, an XML entity.  This entity can be used as input to another
transformation, can be serialized and sent to an HTTP client or stored,
etc.

The URI of the sheet is used to locate the stylesheet.  The protocol
can be http, file or virt.  Once the stylesheet has been retrieved it
is cached and not refetched until the cache is invalidated with
xslt_stale().  Included or imported style sheets
will be fetched automatically, using the initial URI as base for any
relative references.  The sheet_uri is the URI
of a stylesheet.  This should be an absolute URI resolvable with
xml_uri_get().  If the URI has previously been
used as a stylesheet and has not been marked stale with
xslt_stale(), Virtuoso will use the cached data
instead of fetching and parsing the stylesheet resource.

When a resource with a .xsl extension is stored into the WebDAV,
Virtuoso marks as stale any related cached resource.  The URI for such
stylesheets will be
virt://WS.WS.SYS_DAV_RES.RES_FULL_PATH.RES_CONTENT:<path>. See
the section about entity references in stored text for more on this
type of URI.  If the URI uses the file protocol, Virtuoso will compare
the date of the file against the date of the cached stylesheet,
automatically reloading the sheet if the file changes.  This protocol
is subject to the limitations on file system access imposed by the
host operating system and the virtuoso.ini file system access control
settings.
