XSLTForms/Javascript

Warning!! This documentation is automatically generated from embedded comments in Javascript sources.

XSLTForms Javascript parts are activated just after the XSLT transformation performed by the browser. The "init" function is created by the XSLT transformation according to the XForms document, with "xforms.init" as the last function call, and called by the "onload" event associated with the "body" element. Many Javascript objects and functions can be called directly by developers for specific purposes considering that misuse can compromise the XSLTForms global behavior.

"$" function
Shortcut for document.getElementById

How does this work if we also want to include JQuery functions. Should a different function be used?

"Core" class
Core class for browsers compatibility
 * isOpera, isIE and isMozilla methods : return browser family
 * hasClass method : tests if an element has a CSS class
 * loadProperties method : AJAX method to get I18N properties
 * constructURI method : construct URI according to current location
 * createElement method : creates a DOM element and, optionally, add a class, attach it to its parent and fill it with a text content
 * getWindowSize method : obtains window size for various browsers
 * openRequest method : opens an XMLHttpRequest

"DebugConsole" class
Debug Console Management
 * write method : adds a text to the Debug Console
 * clear method : clears the Debug Console

"Dialog" class
Dialog Panel Management
 * show method : displays the Dialog Panel
 * hide method : hides the Dialog Panel
 * knownSelect method : determines whether a select control is already known by Dialog management (IE6 workaround)
 * showSelects method : shows/hides the selects controls under the Dialog Panel (IE6 workaround)

"Event" class
Event Management

"I8N" class
Internationalization Management
 * get method : get a property value for the current language
 * parse method : data parsing according to a pattern and the current language
 * format method : data formatting according to a pattern and the current language
 * parseDate method : direct method for date parsing
 * formatDate method : direct method for date formatting
 * formatNumber method : direct method for number formatting
 * parseNumber method : direct method for number parsing

Miscellaneous functions

 * forEach function : Convenient way to the same method with the same arguments to a collect of objects
 * assert function : Conditional Debug Console message adding
 * inArray function : Tests if a value is present in an array
 * zeros function : left or right zero-padding
 * getValue function : gets a node value
 * setValue function : sets the value of a node
 * run function : executes an action (called by generated Javascript instructions)
 * getId function : gets the id of the xf element concerned by en event (FF2 compatibility problem)
 * show function : show/hide an element (called by generated Javascript instructions, typically used for hints or input errors)
 * trim method : left and right trim method for String class
 * copyArray function : copy every element in a source array into a dest array

"xforms" class
Global class for XForms Management
 * init method : called from the generated init function called at onload event
 * close method : performs every closing actions
 * openAction method : simply clears the Debug Console
 * closeAction method : calls the closeChanges method when every action has been performed
 * closeChanges method : rebuild or recalculate after changes
 * error method : XForms error management
 * refresh method : XForms refresh management
 * build method : XForms build management
 * addChange method : builds a stack of elements concerned with changes
 * dispose method : disposes of an element
 * blur method : focus out management

"Binding" class
XForms Binding Management
 * constructor function : "xpath", "model" and "bind" properties are resolved
 * evaluate method : evaluates the binding

"IdManager" class
Id Manager for repeat structures

XForms Model Management
Each Model component is stored as a Javascript object created by the XSLT transformation. The XFCoreElement is the parent class for all other classes.

"XFCoreElement" class
Parent class for each Model component class
 * init method : creates a "span" element under the "head" element to store this object
 * dispose method : clears the properties of this object

"XFModel" class

 * constructor function : specifically gets the associated schemas
 * addInstance method : adds an instance to this model
 * addBind method : adds a binding to this model
 * dispose method : clears the properties of this object
 * getInstance method : gets an instance of this model by its id
 * getInstanceDocument method : gets the document of an instance of this model by the instance id
 * findInstance method : finds the corresponding instance of a node in this model
 * construct method : construct step is forwarded to instances and corresponding XForms events are dispatched
 * reset method : reset action is forwarded to instances and this model is tagged as rebuilded
 * rebuild method : refresh action is forwarded to instances and the "xforms-recalculate" event is dispatched
 * recalculate method : recalculate action is forwarded to instances and the "xforms-revalidate" event is dispatched
 * revalidate method : revalidate action is forwarded to instances and the "xforms-refresh" event is dispatched
 * refresh method : no action
 * addChange method : stacks this model as changed according to current step
 * setRebuilded method : stores the rebuilded state according to current step

"XFInstance" class
Instance Class
 * constructor function : stores the properties of this instance and attaches it to a model
 * dispose method : clears the properties and recycles the associated nodes
 * construct method : loads the source of this instance locally or remotely
 * reset method : simply restores the initial copy of this instance
 * store method : clones the document of this instance
 * setDoc method : sets a document for this instance
 * revalidate method : recursively revalidates each node of this instance according to readonly and relevant attributes

"XFBind" class
Model Binding Class
 * constructor function : resolve all the properties and attach this object to the model
 * refresh method : completely evaluates and refreshes this binding
 * recalculate method : just recalculates this binding

"XFSubmission" class
Submission Class
 * constructor function : store the properties of this submission and attaches it to a model
 * submit method : submits serialized data according to chosen method
 * toUrl_ method : recursively collects node values to add them to an URL

"XFProcessor" class
Internal XForms Processor Class
 * error function : displays an error

XForms Action Management
Each action is stored as a Javascript object created by the XSLT transformation. The XFAbstractAction is the parent class for all action classes.

"XFAbstractAction" class
Parent class for each Action class
 * init method : "if" and "while" attributes are defined in this class
 * execute method : "while" attribute process calling "if" attribute process
 * exec_ method : "if" attribute process calling specific "run" method
 * run method : Empty method to be defined in each sub-class

"XFAction" class
Action Class
 * constructor function : specifically initializes at no child
 * add method : adds a child action to this action
 * run method : executes each child action of this action

"XFDelete" class
Delete Action Class
 * constructor function : resolves the properties of this delete action
 * run method : executes this delete action and dispatches "xforms-delete"

"XFDispatch" class
Dispatch Action Class
 * constructor function : stores specific properties
 * run method : dispatches an XForms event

"XFInsert" class
Insert Action Class
 * constructor function : resolves specific properties
 * run method : clones then inserts a new element and dispatches the "xforms-insert"

"XFLoad" class
Load Action Class
 * constructor function : stores specific properties
 * run method : opens a new window or changes current location according to "show" attribute

"XFMessage" class
Message Action Class
 * constructor function : stores specific properties
 * run method : displays an alert message box containing a node value

"XFSetindex" class
SetIndex Action Class
 * constructor function : resolves specific properties
 * run method : sets the current index of a repeat structure

"XFSetvalue" class
SetValue Action Class
 * constructor function : resolves specific properties
 * run method : sets the value of a node and records it in the changes collection

"XFToggle" class
Toggle Action Class
 * constructor function : stores specific property
 * run method : toggles on the associated element
 * toggle method : toggles on the element according to its id and dispatches the "xforms-deselect" event

XForms Controls Management
Each control is stored as a Javascript object created by the XSLT transformation with the id of the corresponding (X)HTML element as a property. The XFElement is the parent class for all action classes, having the XFControl class as intermediate for most of them.

"XFAVT" class
AVT Control Class
 * constructor function : initializes specific properties and initializes focus and blur event management
 * clone method : creates a new output control with the given id
 * dispose method : clears properties of this control and calls the parent dispose method
 * setValue method : sets the value of this AVT control

"XFElement" class
Element Class
 * constructor function : empty
 * init method : initializes properties
 * dispose method : clears properties of this element
 * build method : abstractly builds this element from dependencies

"XFControl" class
Control Class
 * constructor function : just sets this element as a control
 * initFocus method : attaches event handlers for "focus" and "blur"
 * dispose method : calls the parent "dispose" method
 * focus method : manages focus and dispatches the "DOMFocusIn" event
 * build_ method : specific build method updating dependencies
 * refresh method : refreshes this control according to the value of the corresponding node and dispatches according events
 * changeProp method : changes a property, such as required, relevant, readonly and valid, of this control
 * valueChanged method : changes the value of this control and dispatches the "xforms-recalculate" event
 * getXFElement function : gets the ancestor-or-self XFElement value for an element
 * focusHandler function : focus handler
 * blurHandler function : blur handler including a delay

"XFGroup" class
Group Element Class
 * constructor function : sets specific properties
 * clone method : creates a new group with the given id
 * build_ method : specific build method
 * refresh method : sets "xforms-disabled" CSS class

"XFInput" class
Input Control Class
 * constructor function : initializes specific properties including aid button management
 * clone method : creates a new input with the given id
 * dispose method : clears properties of this element and calls the parent dispose method
 * initInput method : initializes the input control according to its type (password/textarea/boolean/date/datetime)
 * setValue method : sets the value of this input control according to its type
 * changeReadonly method : changes the read only state of this input control
 * initEvents method : initializes the event management according to incremental capability
 * blur method : manages the blur event when not in incremental mode
 * click method : manages the click event according to the input control type
 * keyUpInputMode function : updates this input control value after key up
 * keyUpActivate function : checks if Enter key was pressed to dispatch DOMActivate
 * keyUpIncrementalActivate function : checks if Enter key was pressed to dispatch DOMActivate in incremental mode
 * keyUpIncremental function : updates this input control value after key up in incremental mode
 * InputMode functions set : specific check function for each possible input mode (lowerCase/upperCase/titleCase/digits)

"XFItem" class
Item Control Class
 * constructor function : initializes specific properties and initializes focus and blur event management
 * clone method : creates a new item control with the given id
 * dispose method : clears properties of this element and calls the parent dispose method
 * build_ method : specific build method according to label and value bindings
 * refresh method : refreshes the label and the value for this item control depending whether it has a rendering as option or not
 * click method : manages the click event according to the item control type

"XFItemset" class
ItemSet Control Class
 * constructor function : initializes specific properties
 * build_ method : specific build method with the corresponding clones creation
 * refresh method : sets "xforms-disabled" CSS class
 * clone method : creates a new itemset control with the given id
 * refresh_ method : refreshes this ItemSet Control at a given position

"XFLabel" class
Label Element Class
 * constructor function : initializes specific properties
 * clone method : creates a new label element with the given id
 * build_ method : specific build method
 * refresh method : refreshes this label element

"XFOutput" class
Output Control Class
 * constructor function : initializes specific properties and initializes focus and blur event management
 * clone method : creates a new output control with the given id
 * dispose method : clears properties of this control and calls the parent dispose method
 * setValue method : sets the value of this output control
 * getValue method : sets the value of this output control

"XFRepeat" class
Repeat Element Class
 * constructor function : sets specific properties
 * dispose method : clears properties of this element and calls the parent dispose method
 * setIndex method : sets the current index for this repeat element
 * deleteNode method : deletes the given node within this repeat element and makes sure that the current index is still valid
 * insertNode method : inserts the given node after another given node within this repeat element and updates the current index
 * build_ method : recreates every nodes within this repeat control and sets the current index at 1
 * refresh method : refreshes this repeat element and the child elements if it is not an ItemSet
 * clone method : creates a new repeat element with the given id
 * initClone function : initializes a clone for the given id
 * selectItem function : set the current index at the given element within a repeat element

"XFSelect" class
Select/Select1 Control Class
 * constructor function : initializes specific properties and initializes focus and change event management
 * clone method : creates a new select/select1 control with the given id
 * dispose method : clears properties of this select/select1 control and calls the parent dispose method
 * focusFirst method : sets focus to the first item in this select/select1 control
 * setValue method : searches for the given value and checks it if found or dispatches the "xforms-in-range" event
 * changeReadonly method : changes the read only state of this select/select1 control
 * itemClick method : dispatches "xforms-select" and "xforms-deselect" events
 * blur method : blur event management
 * normalChange function : handler for normal mode on change dispatching "xforms-select" and "xforms-deselect" events
 * incrementalChange function : handler for incremental mode on change calling normal mode handler
 * getSelected method : collects selected options for this select/select1 control

"XFTrigger" class
Trigger Control Class
 * constructor function : initializes specific properties and initializes focus event management
 * setValue method : empty
 * clone method : creates a new trigger control with the given id
 * click method : dispatches a "DOMActivate" event
 * blur method : empty

"Calendar" class
Calendar Class for Date/DateTime Control
 * constructor function : dynamically creates a table element
 * today method : sets the value of this Calendar object to the current date
 * refreshControls method : refreshes this Calendar object according to a given date
 * refresh method : refreshes this Calendar object
 * getFirstDay method : gets the first day of the selected month
 * getDaysOfMonth method : gets the number of days of the selected month
 * createElement method : creates a new clickable day within this Calendar object
 * show function : shows a Calendar object of a given type for a given input
 * close function : hides the current Calendar object

XML Schema Management
Each Schema is stored as a Javascript object created by the XSLT transformation. The Type is the parent class for *Type classes.

"Type" class
Type Abstract Class
 * constructor function : empty
 * setSchema method : associates a schema to this Type object
 * setName method : associates a name to this Type object and updates the schema accordingly
 * canonicalValue method : computes the canonical value according to white space management (replace, collapse)
 * getMaxLength method : get the max length for this Type object or null
 * getDisplayLength method : get the display length for this Type object or the max length is not defined

"Schema" class
Schema Class
 * constructor function : creates a Schema object after checking it doesn't exist yet
 * all associative array : stores all schemas according to their respective namespace
 * getType method : gets a type according to a given name for this schema
 * getType function : gets a type according to a given prefix:name
 * getTypeNS function : gets a type according to a given namespace and a given name
 * get function : gets a schema according to a given namespace
 * prefixes associative array : initializes default prefixes and namespaces
 * registerPrefix function : adds a prefix and the corresponding namespace to the "prefixes" associative array

"AtomicType" class
AtomicType Class
 * constructor function : initializes of patterns property
 * setBase method : copies the base patterns to this AtomicType object
 * put method : sets the base, copies patterns or just add a property
 * validate method : validates a value against this AtomicType object
 * normalize method : normalizes a value for fraction digits according to this AtomicType object

"ListType" class
ListType Class
 * constructor function : white space management as "collapse"
 * setItemType method : associates a Type object for each item in this ListType object
 * validate method : validates a value against this ListType object
 * canonicalValue method : computes the canonical value of a list value

"ListType" class
ListType Class
 * constructor function : initializes base types property
 * addType method : adds a Type object to this UnionType object
 * validate method : validates a value against at least one base type of this UnionType object

"TypeDefs" class
Default Type Definitions Initialization Class
 * initAll method : inits the default types definitions for XML Schema and XForms
 * init method : inits the default types definitions for a given namespace
 * Default associative array : every default type definition for XML Schema
 * base : prefix:name of the base type
 * whitespace : white space behavior
 * patterns : array of regular expressions
 * class : associated class
 * displayLength : number
 * fractionDigits : number
 * totalDigits : number
 * minInclusive : number
 * maxInclusive : number
 * minExclusive : number
 * maxExclusive : number
 * format : formatting function
 * parse : parsing function
 * Predefined types :
 * xsd:string
 * xsd:boolean
 * xsd:decimal
 * xsd:float
 * xsd:double
 * xsd:dateTime
 * xsd:date
 * xsd:time
 * xsd:duration
 * xsd:gDay
 * xsd:gMonth
 * xsd:gMonthDay
 * xsd:gYear
 * xsd:gYearMonth
 * xsd:integer
 * xsd:nonPositiveInteger
 * xsd:nonNegativeInteger
 * xsd:negativeInteger
 * xsd:positiveInteger
 * xsd:byte
 * xsd:short
 * xsd:int
 * xsd:long
 * xsd:unsignedByte
 * xsd:unsignedShort
 * xsd:unsignedInt
 * xsd:unsignedLong
 * xsd:normalizedString
 * xsd:token
 * xsd:language
 * xsd:anyURI
 * xsd:Name
 * xsd:NCName
 * xsd:QName
 * xsd:ID
 * xsd:IDREF
 * xsd:IDREFS
 * xsd:NMTOKEN
 * xsd:NMTOKENS
 * xsd:base64Binary
 * xsd:hexBinary
 * XForms associative array : every default type definition for XForms types
 * xforms:string
 * xforms:boolean
 * xforms:decimal
 * xforms:float
 * xforms:double
 * xforms:dateTime
 * xforms:date
 * xforms:time
 * xforms:duration
 * xforms:dayTimeDuration
 * xforms:yearMonthDuration
 * xforms:gDay
 * xforms:gMonth
 * xforms:gMonthDay
 * xforms:gYear
 * xforms:gYearMonth
 * xforms:integer
 * xforms:nonPositiveInteger
 * xforms:nonNegativeInteger
 * xforms:negativeInteger
 * xforms:positiveInteger
 * xforms:byte
 * xforms:short
 * xforms:int
 * xforms:long
 * xforms:unsignedByte
 * xforms:unsignedShort
 * xforms:unsignedInt
 * xforms:unsignedLong
 * xforms:normalizedString
 * xforms:token
 * xforms:language
 * xforms:anyURI
 * xforms:Name
 * xforms:NCName
 * xforms:QName
 * xforms:ID"
 * xforms:IDREF
 * xforms:IDREFS
 * xforms:NMTOKEN
 * xforms:NMTOKENS
 * xforms:base64Binary
 * xforms:hexBinary
 * xforms:email
 * xforms:card-number
 * xforms:url
 * xforms:amount
 * XSLTForms associative array : every default type definition for XSLTForms types
 * xsltforms:decimal
 * xsltforms:float
 * xsltforms:double
 * xsltforms:integer
 * xsltforms:nonPositiveInteger
 * xsltforms:nonNegativeInteger
 * xsltforms:negativeInteger
 * xsltforms:positiveInteger
 * xsltforms:byte
 * xsltforms:short
 * xsltforms:int
 * xsltforms:long
 * xsltforms:unsignedByte
 * xsltforms:unsignedShort
 * xsltforms:unsignedInt
 * xsltforms:unsignedLong

"Listener" class
Listener Class
 * constructor function : creates a Listener object to an observer element and attaches a standard callback function
 * attach method : attaches the event according to the current phase
 * detach method : detaches the event according to the current phase
 * clone method : creates a new listener for the given element

"XMLEvents" class
XForms Event Management Class in the XFModel.construct method before xforms-model-construct-done being fired and in the XFSubmission.submit method when the corresponding instance has just been replaced at the end of the XFModel.rebuild method and in the XFControl.valueChanged method when the new value is different
 * REGISTRY associative array : stores properties for each event
 * bubbles : boolean
 * cancelable : boolean
 * defaultAction : handler function with empty function as default
 * define function : convenient function to add a new event in the event registry
 * dispatchList function : dispatches the same event at every target in a given list
 * dispatch function : dispatches the given event at a given target with possibly different properties
 * default event management :
 * xforms-model-construct : fired at the end of the xforms.init function before xforms-ready been fired
 * bubbles : yes
 * cancelable : no
 * default handler : construct method
 * xforms-model-construct-done : fired at the end of the XFModel.construct method after xforms-rebuild being fired
 * bubbles : yes
 * cancelable : no
 * default handler : empty
 * xforms-ready' : fired at the end of the xforms.init function after xforms-model-construct been fired
 * bubbles : yes
 * cancelable : no
 * default handler : empty
 * xforms-model-destruct : fired in the xforms.close function to every models
 * bubbles : yes
 * cancelable : no
 * default handler : empty
 * xforms-rebuild : fired in the xforms.closeChanges function when a rebuild is required,
 * bubbles : yes
 * cancelable : yes
 * default handler : rebuild method
 * xforms-recalculate : fired in the xforms.closeChanges function when a rebuild is not required,
 * bubbles : yes
 * cancelable : yes
 * default handler : recalculate method
 * xforms-revalidate : fired at the end of the XFModel.recalculate method
 * bubbles : yes
 * cancelable : yes
 * default handler : revalidate method
 * xforms-reset : fired by a listener generated by the XSL transformation for the xforms:reset element
 * bubbles : yes
 * cancelable : yes
 * default handler : reset method
 * xforms-submit : fired by a listener generated by the XSL transformation for the xforms:submit element
 * bubbles : yes
 * cancelable : yes
 * default handler : submit method
 * xforms-refresh : fired at the end of the XFModel.revalidate method
 * bubbles : yes
 * cancelable : yes
 * default handler : refresh method
 * xforms-focus : fired by a listener generated by the XSL transformation for the xforms:setfocus action
 * bubbles : yes
 * cancelable : yes
 * default handler : focus method
 * DOMActivate : fired by the XFTrigger.click method and by a listener generated by the XSL transformation for the xforms:submit element
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * DOMFocusIn : fired by the XFControl.focus method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * DOMFocusOut : fired by the xforms.blur function to the element already having focus
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-select : fired by the XFToggle.toggle, XFSelect.normalChange functions and XFSelect.itemClick method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-deselect : fired by the XFToggle.toggle, XFSelect.normalChange functions and XFSelect.itemClick method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-value-changed : fired by the XFControl.refresh method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-insert : fired by the XFInsert.run method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-delete : fired by the XFDelete.run method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-valid : fired by XFControl.refresh method via the XFControl.changeProp method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-invalid : fired by XFControl.refresh method via the XFControl.changeProp method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-enabled : fired by XFControl.refresh method via the XFControl.changeProp method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-disabled : fired by XFControl.refresh method via the XFControl.changeProp method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-optional : fired by XFControl.refresh method via the XFControl.changeProp method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-required : fired by XFControl.refresh method via the XFControl.changeProp method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-readonly : fired by XFControl.refresh method via the XFControl.changeProp method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-readwrite : fired by XFControl.refresh method via the XFControl.changeProp method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-in-range : fired by the XFSelect.setValue method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-out-of-range : fired by the XFSelect.setValue method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-submit-done : fired by the XFSubmission.submit method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-submit-error : fired by the XFSubmission.submit method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-compute-exception : unused
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-binding-exception : fired by the XFBind.refresh method
 * bubbles : yes
 * cancelable : yes
 * default handler : empty
 * xforms-dialog-open : fired by a listener generated by the XSL transformation for the xforms:show action
 * bubbles : yes
 * cancelable : yes
 * default handler : show method of the corresponding dialog
 * xforms-dialog-close : fired by a listener generated by the XSL transformation for the xforms:hide action
 * bubbles : yes
 * cancelable : yes
 * default handler : hide method of the corresponding dialog

XPath Expressions Management
XPath expressions are "compiled" (converted to Javascript objects creation instructions) by the XSLT transformation. There is an "XPath" object for each distinct (according to its text source) expression. An implicit cast is usually performed for each parameter.

XPathAxis Class
XML Constants Class for axes as an associative array

NodeType Class
XML Constants Class for node types as an associative array

XNode Class
XNode Class
 * constructor function : initializes specific properties
 * getElementsByTagName method : gets an array of all elements with a given tag name for this XNode object
 * getTextContent method : gets the text context for this XNode object
 * appendChild method : appends a new child at this XNode object
 * replaceChild method : replaces a child of this XNode object
 * insertBefore method : inserts a child before another one of this XNode object
 * removeChild method : removes a child of this XNode object
 * setAttributeNS method : sets an attribute of this XNode object after creating it if necessary. "xsd:type" is interpreted to associate the corresponding type to this XNode object.
 * getAttributeNS method : gets the value of an attribute of this XNode object
 * removeAttributeNS method : removes an attribute of this XNode object
 * cloneNode method : clones this XNode object
 * init function : sets properties of this XNode object
 * recycle function : clears every properties of this XNode object and of its child XNode objects
 * create function : reuses a previously recycled XNode object or creates a new XNode object

XDocument Class
XDocument Class based on XNode Class
 * constructor function : creates a document XNode object
 * clear method : recycles every XNode objects composing this XDocument object
 * appendChild method : appends a node to this XDocument object
 * createElementNS method : creates an element XNode object for this XDocument object
 * createTextNode method : creates a text XNode object for this XDocument object
 * createAttributeNS method : creates an attribute XNode object for this XDocument object
 * getElementsByTagName method : gets an array of all elements with a given tag name for this XDocument object
 * transformToText method : applies a text XSL transformation to this XDocument object
 * unescape function : unescape entities within a serialized XML
 * parse function : parses a serialized XML to load it into this XDocument object
 * load function : gets a serialized XML at the given location to load it into this XDocument object

Writer Class
Writer Class
 * toString method : serializes an XNode object

XMLWriter Class
XMLWriter Class
 * toString method : serializes an XNode object

ArrayExpr Class
XPath Expression Class for array expressions
 * constructor function : initializes exprs property
 * evaluate method : evaluates as a node set this expression object

BinaryExpr Class
XPath Expression Class for binary expressions
 * constructor function : initializes specific properties
 * evaluate method : evaluates this Binary expression object. No precedence treatment required, this being already done at XSLT transformation step.

ExprContext Class
Context for XPath Expression evaluation Class
 * constructor function : initializes specific properties
 * clone method : creates a new expression context based on this Expression Context object
 * setNode method : set node and position properties for this Expression Context object
 * initDeps method : initializes dependency collections for this Expression Context object
 * addDepNode method : adds a node to the corresponding dependency collection for this Expression Context object
 * addDepElement method : adds an element to the corresponding dependency collection for this Expression Context object

TokenExpr Class
XPath Expression Class for token expressions
 * constructor function : initializes the value property
 * evaluate method : evaluates this Binary expression object value as a string value.

UnaryMinusExpr Class
XPath Expression Class for unary minus expressions
 * constructor function : initializes the expr property
 * evaluate method : evaluates this Unary Minus expression object.

CteExpr Class
XPath Expression Class for constant expressions
 * constructor function : initializes the value property
 * evaluate method : gets this Constant expression object value as is.

FilterExpr Class
XPath Expression Class for filtering nodes according to a predicate
 * constructor function : initializes specific properties
 * evaluate method : evaluates this filtering expression object

FunctionCallExpr Class
XPath Expression Class for core function calling
 * constructor function : checks a core function has the given name, initializes specific properties, pushes arguments
 * evaluate method : evaluates this function call expression object calling the corresponding Javascript function with the context and the same arguments

LocationExpr Class
XPath Expression Class for location expressions
 * constructor function : initializes absolute property and stacks successive steps
 * evaluate method : recursively evaluates the successive steps of this location expression object

NodeTestAny Class
XPath Expression Class for any node Expression ("*")
 * constructor function : initializes absolute property and stacks successive steps
 * evaluate method : always true

NodeTestName Class
XPath Expression Class for node test expressions
 * constructor function : initializes prefix and name properties
 * evaluate method : evaluates as a boolean value if a given node has the same namespace and name as this expression object. Wildcard is supported as a valid namespace test as an extension.

NodeTestPI Class
XPath Expression Class for processing instruction test expressions
 * constructor function : initializes target property
 * evaluate method : evaluates as a boolean value if a given node is a processing instruction with the same name as this expression object

NodeTestType Class
XPath Expression Class for node type test expressions
 * constructor function : initializes type property
 * evaluate method : evaluates as a boolean value if a given node has the same type as this expression object

NSResolver Class
XPath Expression Class for namespace resolving
 * constructor function : initializes map property as an empty associative array
 * registerAll method : registers all the namespaces from a given resolver in this Namespace Resolver object
 * register method : registers a prefix and an uri in this Namespace Resolver object
 * registerNotFound method : registers a prefix for a not found uri in this Namespace Resolver object
 * lookupNamespaceURI method : looks up for the corresponding uri for a given prefix in this Namespace Resolver object

PathExpr Class
XPath Expression Class for path expressions composed of a filter and a relative path
 * constructor function : initializes the filter and rel properties
 * evaluate method : first evaluates the filter then evaluates each combination with the relative path for this expression object

PredicateExpr Class
XPath Expression Class for predicate expressions
 * constructor function : initializes expr property
 * evaluate method : evaluates as a boolean value this predicate expression object comparing a number value to current position if possible

StepExpr Class
XPath Expression Class for location step expressions
 * constructor function : initializes axis, nondetest and unlimited number of predicates properties
 * evaluate method : evaluates as a node list this expression object according to the context

UnionExpr Class
XPath Expression Class for binary union expressions
 * constructor function : initializes expr1 and expr2 properties
 * evaluate method : evaluates as a node set this expression object

Miscellaneous Functions

 * stringValue function : string cast
 * booleanValue function : boolean cast
 * numberValue function : number cast
 * booleanValue function : number cast
 * xmlValue function : get the text value for the given node according to its type
 * xmlResolveEntities function : resolves every HTML entities in a given string into corresponding characters
 * stringSplit function : splits a string according to a character

XPath Class
XPath Class
 * constructor function : initializes properties and creates an associated namespace resolver. A compiled argument as string is interpreted as an error detected by the XSLT transformation.
 * evaluate method : evaluates the complete XPath expression et catches occurring exceptions
 * expressions associative array : stores every XPath object
 * get method : get an XPath object according to a given source text
 * new method : creates an XPath object if it doesn't already exists
 * registerNS method : register a namespace for all XPath expressions

XPathFunction Class
XPath Function Class
 * constructor function : initializes properties
 * acceptContext : whether the current context is required as first argument for this XPath Function object
 * defaultTo : default argument
 * DEFAULT_NONE : no default argument
 * DEFAULT_NODE : current node
 * DEFAULT_NODESET : array containing the current node
 * DEFAULT_STRING : text value of the current node
 * returnNodes : unused
 * body : corresponding Javascript function
 * call method : calls the corresponding Javascript function after managing default argument and context presence

XPathCoreFunctions Associative Array
Core XPath Functions
 * last
 * position
 * context
 * count(nodeset)
 * id(node?)
 * local-name(nodeset?)
 * namespace-uri(nodeset?)
 * name(nodeset?)
 * string(nodeset?)
 * concat(string, string, string*)
 * starts-with(string, string)
 * contains(string, string)
 * substring-before(string, string)
 * substring-after(string, string)
 * substring(string, number) and substring(string?, number?, number?)
 * compare(string, string)
 * string-length(string?)
 * normalize-space(string?)
 * translate(string, string, string)
 * boolean(object)
 * not(boolean)
 * true
 * false
 * lang(string)
 * number(object)
 * sum(nodeset)
 * floor(number)
 * ceiling(number)
 * round(number)
 * power(number, number)
 * random
 * boolean-from-string(string)
 * if(boolean, object, object)
 * choose(boolean, object, object)
 * avg(nodeset)
 * min(nodeset)
 * max(nodeset)
 * count-non-empty(nodeset)
 * index(string)
 * nodeindex(string)
 * property(string)
 * instance(string?)
 * now
 * local-date
 * local-dateTime
 * days-from-date(string)
 * days-to-date(number)
 * seconds-from-dateTime(string)
 * seconds-to-dateTime(number)
 * current
 * is-valid(nodeset?)
 * is-card-number(nodeset?)
 * digest(string, string, string?)
 * upper-case(nodeset?)
 * lower-case(nodeset?)
 * transform(nodeset?, string)
 * serialize(nodeset?)

Miscellaneous Functions

 * stringValue function : string cast
 * booleanValue function : boolean cast
 * numberValue function : number cast
 * booleanValue function : number cast
 * xmlValue function : get the text value for the given node according to its type
 * xmlResolveEntities function : resolves every HTML entities in a given string into corresponding characters
 * stringSplit function : splits a string according to a character