XSLTForms/XSLTForms only Extensions

Configuration
Configuration options affecting the XSLTForms transformation are taken from the sources below, where the value for each option is the one found first:
 * 1) externally-defined XSLT Parameters,
 * 2) config_LANG.xsl file,
 * 3) Processing-Instructions(PIs).

XSLT Params
Under the xmlns="http://www.w3.org/1999/XSL/Transform" the following xsl-params are accepted:
 * baseuri: If unspecified, defaults to the base-name of the xsltforms.xsl href.
 * xsltforms_caller:
 * xsltforms_config: A nodeset having as child the configuration   element that are to be copied on the result xforms-page. Defaults to the ones specified in config.xsl file.
 * <tt>xsltforms_debug</tt>: <tt>'yes'</tt> or anything else. If unspecified, assumed no-debug.
 * <tt>xsltforms_lang</tt>: The suffix to use when selecting the language file <tt>config_<SUFFIX>.xsl</tt> which specifies messages, calendar and other localizations/I18Ns.

Note that <tt>xsltforms_config, xsltforms_debug, xsltforms_lang</tt> params are further applied to any subsequent transformations of documents containing a xsl-stylesheet PI, either on submission with <tt>replace="all"</tt> or SVGs, or when applying the <tt>transform</tt> extension function.

Config File: <tt>config.xsl</tt>
Sample configuration file:

Processing Instructions
A xforms page can specify the following processing-instructions(PI) that act as configuration parameters:
 * <tt>xsltforms-options</tt>: It accepts 2 pseudo-attributes, sample:
 * <tt>css-conversion</tt>: sample:

Elements

 * xforms:tree: content-model: <tt>(xforms:label?, xforms:item/xforms:label*)</tt>
 * xforms:setnode: accepts ref attribute to bind a node, inner or outer attribute whose value is an XML serialization of one or more XML nodes; the inner or outer attribute is parsed, and the resulting nodes replace either the children of the node bound by ref, or the node itself. (See separate page for setnode.)

Functions
Extension functions supported by XSLTForms:


 * is-valid(nodeset?): returns <tt>true</tt> when all nodes in the nodeset are valid.
 * transform(nodeset, xslt-href): transforms the node from the node-set which is first in document order using the specified xslt, see https://sourceforge.net/mailarchive/forum.php?thread_name=4BB26785.4070807@agencexml.com&forum_name=xsltforms-support
 * serialize(nodeset?): serializes the node from the node-set which is first in document order into string(??)

User-Defined Functions
Here is a sample of how to define user-defined XPath functions: This is for old versions of XsltForms: This works for new versions of XsltForms:

Objects in the <tt>javascript:</tt> pseudo-URL in <tt>xf:load/xf:resource@value</tt>
When the <tt>javascript:</tt> pseudo-URL is used within the <tt>xf:load/xf:resource@value</tt> attribute, the id of the enclosing <tt><xf:load></tt> element is contained by the following js object-property:

Using TinyMCE as mixed-content editor
See separate page on this topic.