com.icl.saxon.style
Class StyleElement

java.lang.Object
  extended by com.icl.saxon.om.AbstractNode
      extended by com.icl.saxon.tree.NodeImpl
          extended by com.icl.saxon.tree.ElementImpl
              extended by com.icl.saxon.tree.ElementWithAttributes
                  extended by com.icl.saxon.style.StyleElement
All Implemented Interfaces:
NodeInfo, DOMLocator, Source, SourceLocator, Element, NamedNodeMap, Node, Locator
Direct Known Subclasses:
AbsentExtensionElement, LiteralResultElement, SAXONDoctype, SAXONEntityRef, SAXONFunction, SAXONItem, SAXONPreview, SAXONWhile, SQLClose, SQLConnect, SQLInsert, XSLApplyImports, XSLApplyTemplates, XSLAttributeSet, XSLCallTemplate, XSLChoose, XSLCopy, XSLCopyOf, XSLDecimalFormat, XSLDocument, XSLElement, XSLFallback, XSLForEach, XSLGeneralIncorporate, XSLGeneralVariable, XSLIf, XSLKey, XSLMessage, XSLNamespaceAlias, XSLNumber, XSLOtherwise, XSLOutput, XSLPreserveSpace, XSLScript, XSLSort, XSLStringConstructor, XSLStyleSheet, XSLTemplate, XSLText, XSLValueOf, XSLWhen

public abstract class StyleElement
extends ElementWithAttributes
implements Locator

Abstract superclass for all element nodes in the stylesheet.
Note: this class implements Locator. The element retains information about its own location in the stylesheet, which is useful when an XSL error is found.


Field Summary
protected  Vector attributeSets
           
protected  short[] extensionNamespaces
           
static int REPORT_ALWAYS
           
static int REPORT_IF_INSTANTIATED
           
static int REPORT_UNLESS_FORWARDS_COMPATIBLE
           
protected  int reportingCircumstances
           
protected  int sequence
           
protected  StaticContext staticContext
           
protected  TransformerConfigurationException validationError
           
protected  String version
           
 
Fields inherited from class com.icl.saxon.tree.ElementWithAttributes
attributeList, namespaceList
 
Fields inherited from class com.icl.saxon.tree.ElementImpl
nameCode, root
 
Fields inherited from class com.icl.saxon.tree.NodeImpl
emptyArray, index, parent
 
Fields inherited from class com.icl.saxon.om.AbstractNode
NODE_LETTER
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Fields inherited from interface com.icl.saxon.om.NodeInfo
ATTRIBUTE, COMMENT, ELEMENT, NAMESPACE, NODE, NONE, NUMBER_OF_TYPES, PI, ROOT, TEXT
 
Constructor Summary
StyleElement()
          Constructor
 
Method Summary
 void addChild(NodeImpl node, int index)
          Add a child node to this node.
 Binding bindVariable(int fingerprint)
          Bind a variable used in this element to the XSLVariable element in which it is declared
 void checkEmpty()
          Convenience method to check that the stylesheet element is empty
 void checkNotTopLevel()
          Convenience method to check that the stylesheet element is not at the top level
 void checkTopLevel()
          Convenience method to check that the stylesheet element is at the top level
protected  void checkUnknownAttribute(int nc)
          Check whether an unknown attribute is permitted.
 void checkWithinTemplate()
          Check that the stylesheet element is within a template body
 void compact(int size)
          Compact the space used by this node
protected  void compileError(String message)
           
protected  void compileError(TransformerException error)
          Construct an exception with diagnostic information
 void copyStringValue(Outputter out)
          Copy the string-value of this node to a given outputter
protected  boolean definesExcludedNamespace(short uriCode)
          Check whether this node excludes a particular namespace from the result.
protected  boolean definesExtensionElement(short uriCode)
          Check whether a particular extension element namespace is defined on this node.
 boolean doesPostProcessing()
          Determine whether this element does any processing after instantiating any children.
 void dropChildren()
          Drop a branch of the tree.
 AxisEnumeration enumerateChildren(NodeTest test)
          Get an enumeration of the children of this node
protected  void fallbackProcessing(StyleElement instruction, Context context)
          Perform fallback processing
protected  void findAttributeSets(String use)
          Determine the list of attribute-sets associated with this element.
 boolean forwardsCompatibleModeIsEnabled()
          Determine whether forwards-compatible mode is enabled for this element
 NodeList getChildNodes()
          Return a NodeList that contains all children of this node.
 XSLStyleSheet getContainingStyleSheet()
          Get the containing XSLStyleSheet element
 Node getFirstChild()
          Get the first child node of the element
 Node getLastChild()
          Get the last child node of the element
 String getNodeValue()
          Get the node value as defined in the DOM.
protected  NodeImpl getNthChild(int n)
          Get the nth child node of the element (numbering from 0)
 int getPrecedence()
          Get the import precedence of this stylesheet element.
 PreparedStyleSheet getPreparedStyleSheet()
          Get the PreparedStyleSheet object.
protected  XSLStyleSheet getPrincipalStyleSheet()
          Get the principal XSLStyleSheet node.
protected  long getSequenceNumber()
          Get the node sequence number (in document order).
 StandardNames getStandardNames()
          Get the StandardNames object
 String getStringValue()
          Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.
 Function getStyleSheetFunction(int fingerprint)
          Get a Function declared using a saxon:function element in the stylesheet
 Binding getVariableBinding(int fprint)
          Bind a variable used in this element to the XSLVariable element in which it is declared
 Enumeration[] getVariableNames()
          List the variables that are in scope for this stylesheet element.
 String getVersion()
          Get the version number on this element, or inherited from its ancestors
protected  Expression handleSortKeys(Expression select)
          Modify the "select" expression to include any sort keys specified.
 boolean hasChildNodes()
          Determine if the node has any children.
 boolean isExcludedNamespace(short uriCode)
          Check whether a namespace uri defines an namespace excluded from the result.
 boolean isExtensionNamespace(short uriCode)
          Check whether a namespace uri defines an extension element.
 boolean isInstruction()
          Determine whether this node is an instruction.
 boolean isTopLevel()
          Test whether this is a top-level element
 Expression makeAttributeValueTemplate(String expression)
          Make an attribute value template in the context of this stylesheet element
 Expression makeExpression(String expression)
          Make an expression in the context of this stylesheet element
 Pattern makePattern(String pattern)
          Make a pattern in the context of this stylesheet element
 boolean mayContainTemplateBody()
          Determine whether this type of element is allowed to contain a template-body
abstract  void prepareAttributes()
          Set the attribute list for the element.
 void preprocess()
          Default preprocessing method does nothing.
abstract  void process(Context context)
          Process: called to do the real work of this stylesheet element.
 void processAllAttributes()
          Process the attributes of this element and all its children
 void processAttributes()
          Process the attribute list for the element.
protected  void processAttributeSets(Context context)
          Expand the attribute sets referenced in this element's use-attribute-sets attribute
 void processChildren(Context context)
          Process the children of this node in the stylesheet
protected  void processExcludedNamespaces(int nc)
          Process the [xsl:]exclude-result-prefixes attribute if there is one
protected  void processExtensionElementAttribute(int nc)
          Process the [xsl:]extension-element-prefixes attribute if there is one
protected  void processVersionAttribute(int nc)
          Process the [xsl:]version attribute if there is one
 void removeChild(int index)
          Remove node at given index.
 void renumberChildren()
          Renumber the children of a given parent node.
 void reportAbsence(String attribute)
          Convenience method to report the absence of a mandatory attribute
protected  void setValidationError(TransformerException reason, int circumstances)
          Set a validation error
protected  TransformerException styleError(String message)
           
protected  TransformerException styleError(TransformerException error)
          Construct an exception with diagnostic information
 void substituteFor(StyleElement temp)
          Make this node a substitute for a temporary one previously added to the tree.
 void useChildrenArray(NodeImpl[] array)
          Supply an array to be used for the array of children.
 void validate()
          Check that the element is valid.
protected  void validateChildren()
           
 void validateSubtree()
          Recursive walk through the stylesheet to validate all nodes
 
Methods inherited from class com.icl.saxon.tree.ElementWithAttributes
addNamespaceNodes, copy, getAttribute, getAttributeList, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributeValue, getAttributeValue, getAttributeValue, getLength, getNamedItem, getNamedItemNS, getNamespaceCodes, getPrefixForURI, getURICodeForPrefix, hasAttribute, hasAttributeNS, hasAttributes, initialise, item, outputNamespaceNodes, removeAttribute, removeAttributeNode, removeAttributeNS, removeNamedItem, removeNamedItemNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setNamedItem, setNamedItemNS, setNamespaceDeclarations
 
Methods inherited from class com.icl.saxon.tree.ElementImpl
copy, generateId, getBaseURI, getDocumentRoot, getLineNumber, getNameCode, getNodeType, getSystemId, makeNameCode, setLineNumber, setNameCode, setSystemId
 
Methods inherited from class com.icl.saxon.tree.NodeImpl
compareOrder, getDisplayName, getDocumentElement, getEnumeration, getFingerprint, getLocalName, getNamePool, getNextInDocument, getNextSibling, getOriginatingNode, getParent, getPrefix, getPreviousInDocument, getPreviousSibling, getURI, isSameNodeInfo, removeNode
 
Methods inherited from class com.icl.saxon.om.AbstractNode
appendChild, appendData, cloneNode, compareDocumentPosition, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, getColumnNumber, getData, getDoctype, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getImplementation, getName, getNamespaceURI, getNodeName, getOwnerDocument, getOwnerElement, getParentNode, getPublicId, getSchemaTypeInfo, getSpecified, getTagName, getTextContent, getUserData, getValue, getWholeText, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isId, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, replaceData, replaceWholeText, setData, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.Locator
getColumnNumber, getLineNumber, getPublicId, getSystemId
 
Methods inherited from interface org.w3c.dom.Element
getElementsByTagName, getElementsByTagNameNS, getSchemaTypeInfo, getTagName, setIdAttribute, setIdAttributeNode, setIdAttributeNS
 
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, compareDocumentPosition, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 

Field Detail

attributeSets

protected Vector attributeSets

extensionNamespaces

protected short[] extensionNamespaces

version

protected String version

staticContext

protected StaticContext staticContext

validationError

protected TransformerConfigurationException validationError

reportingCircumstances

protected int reportingCircumstances

REPORT_ALWAYS

public static final int REPORT_ALWAYS
See Also:
Constant Field Values

REPORT_UNLESS_FORWARDS_COMPATIBLE

public static final int REPORT_UNLESS_FORWARDS_COMPATIBLE
See Also:
Constant Field Values

REPORT_IF_INSTANTIATED

public static final int REPORT_IF_INSTANTIATED
See Also:
Constant Field Values

sequence

protected int sequence
Constructor Detail

StyleElement

public StyleElement()
Constructor

Method Detail

substituteFor

public void substituteFor(StyleElement temp)
Make this node a substitute for a temporary one previously added to the tree. See StyleNodeFactory for details. "A node like the other one in all things but its class". Note that at this stage, the node will not yet be known to its parent, though it will contain a reference to its parent; and it will have no children.


setValidationError

protected void setValidationError(TransformerException reason,
                                  int circumstances)
Set a validation error


isInstruction

public boolean isInstruction()
Determine whether this node is an instruction. The default implementation says it isn't.


doesPostProcessing

public boolean doesPostProcessing()
Determine whether this element does any processing after instantiating any children. The default implementation says it does. Tail recursion only works if call-template is nested entirely in elements that do no such processing. (If the element is empty, this property is irrelevant, because the element cannot contain an xsl:call-template).


mayContainTemplateBody

public boolean mayContainTemplateBody()
Determine whether this type of element is allowed to contain a template-body


getContainingStyleSheet

public XSLStyleSheet getContainingStyleSheet()
Get the containing XSLStyleSheet element


getPrecedence

public int getPrecedence()
Get the import precedence of this stylesheet element.


getStandardNames

public final StandardNames getStandardNames()
Get the StandardNames object


processAllAttributes

public void processAllAttributes()
                          throws TransformerConfigurationException
Process the attributes of this element and all its children

Throws:
TransformerConfigurationException

processAttributes

public final void processAttributes()
                             throws TransformerConfigurationException
Process the attribute list for the element. This is a wrapper method that calls prepareAttributes (provided in the subclass) and traps any exceptions

Throws:
TransformerConfigurationException

checkUnknownAttribute

protected void checkUnknownAttribute(int nc)
                              throws TransformerConfigurationException
Check whether an unknown attribute is permitted.

Parameters:
nc - The name code of the attribute name
Throws:
TransformerConfigurationException

prepareAttributes

public abstract void prepareAttributes()
                                throws TransformerConfigurationException
Set the attribute list for the element. This is called to process the attributes (note the distinction from processAttributes in the superclass). Must be supplied in a subclass

Throws:
TransformerConfigurationException

makeExpression

public Expression makeExpression(String expression)
                          throws TransformerConfigurationException
Make an expression in the context of this stylesheet element

Throws:
TransformerConfigurationException

makePattern

public Pattern makePattern(String pattern)
                    throws TransformerConfigurationException
Make a pattern in the context of this stylesheet element

Throws:
TransformerConfigurationException

makeAttributeValueTemplate

public Expression makeAttributeValueTemplate(String expression)
                                      throws TransformerConfigurationException
Make an attribute value template in the context of this stylesheet element

Throws:
TransformerConfigurationException

processExtensionElementAttribute

protected void processExtensionElementAttribute(int nc)
                                         throws TransformerConfigurationException
Process the [xsl:]extension-element-prefixes attribute if there is one

Parameters:
nc - the name code of the attribute required
Throws:
TransformerConfigurationException

processExcludedNamespaces

protected void processExcludedNamespaces(int nc)
                                  throws TransformerConfigurationException
Process the [xsl:]exclude-result-prefixes attribute if there is one

Parameters:
nc - the name code of the attribute required
Throws:
TransformerConfigurationException

processVersionAttribute

protected void processVersionAttribute(int nc)
Process the [xsl:]version attribute if there is one

Parameters:
nc - the name code of the attribute required

getVersion

public String getVersion()
Get the version number on this element, or inherited from its ancestors


forwardsCompatibleModeIsEnabled

public boolean forwardsCompatibleModeIsEnabled()
Determine whether forwards-compatible mode is enabled for this element


definesExtensionElement

protected boolean definesExtensionElement(short uriCode)
Check whether a particular extension element namespace is defined on this node. This checks this node only, not the ancestor nodes. The implementation checks whether the prefix is included in the [xsl:]extension-element-prefixes attribute.

Parameters:
uriCode - the namespace URI code being tested

isExtensionNamespace

public boolean isExtensionNamespace(short uriCode)
Check whether a namespace uri defines an extension element. This checks whether the namespace is defined as an extension namespace on this or any ancestor node.

Parameters:
uriCode - the namespace URI code being tested

definesExcludedNamespace

protected boolean definesExcludedNamespace(short uriCode)
Check whether this node excludes a particular namespace from the result. This method checks this node only, not the ancestor nodes.

Parameters:
uriCode - the code of the namespace URI being tested

isExcludedNamespace

public boolean isExcludedNamespace(short uriCode)
Check whether a namespace uri defines an namespace excluded from the result. This checks whether the namespace is defined as an excluded namespace on this or any ancestor node.

Parameters:
uriCode - the code of the namespace URI being tested

validate

public void validate()
              throws TransformerConfigurationException
Check that the element is valid. This is called once for each element, after the entire tree has been built. As well as validation, it can perform first-time initialisation. The default implementation does nothing; it is normally overriden in subclasses.

Throws:
TransformerConfigurationException

preprocess

public void preprocess()
                throws TransformerConfigurationException
Default preprocessing method does nothing. It is implemented for those top-level elements that can be evaluated before the source document is available, for example xsl:key, xsl:attribute-set, xsl:template, xsl:locale

Throws:
TransformerConfigurationException

validateSubtree

public void validateSubtree()
                     throws TransformerConfigurationException
Recursive walk through the stylesheet to validate all nodes

Throws:
TransformerConfigurationException

validateChildren

protected void validateChildren()
                         throws TransformerConfigurationException
Throws:
TransformerConfigurationException

getPrincipalStyleSheet

protected XSLStyleSheet getPrincipalStyleSheet()
Get the principal XSLStyleSheet node. This gets the principal style sheet, i.e. the one originally loaded, that forms the root of the import/include tree


getPreparedStyleSheet

public PreparedStyleSheet getPreparedStyleSheet()
Get the PreparedStyleSheet object.

Returns:
the PreparedStyleSheet to which this stylesheet element belongs

checkWithinTemplate

public void checkWithinTemplate()
                         throws TransformerConfigurationException
Check that the stylesheet element is within a template body

Throws:
TransformerConfigurationException - if not within a template body

checkTopLevel

public void checkTopLevel()
                   throws TransformerConfigurationException
Convenience method to check that the stylesheet element is at the top level

Throws:
TransformerConfigurationException - if not at top level

checkNotTopLevel

public void checkNotTopLevel()
                      throws TransformerConfigurationException
Convenience method to check that the stylesheet element is not at the top level

Throws:
TransformerConfigurationException - if it is at the top level

checkEmpty

public void checkEmpty()
                throws TransformerConfigurationException
Convenience method to check that the stylesheet element is empty

Throws:
TransformerConfigurationException - if it is not empty

reportAbsence

public void reportAbsence(String attribute)
                   throws TransformerConfigurationException
Convenience method to report the absence of a mandatory attribute

Throws:
TransformerConfigurationException - if the attribute is missing

process

public abstract void process(Context context)
                      throws TransformerException
Process: called to do the real work of this stylesheet element. This method must be implemented in each subclass.

Parameters:
context - The context in the source XML document, giving access to the current node, the current variables, etc.
Throws:
TransformerException

processChildren

public void processChildren(Context context)
                     throws TransformerException
Process the children of this node in the stylesheet

Parameters:
context - The context in the source XML document, giving access to the current node, the current variables, etc.
Throws:
TransformerException

fallbackProcessing

protected void fallbackProcessing(StyleElement instruction,
                                  Context context)
                           throws TransformerException
Perform fallback processing

Throws:
TransformerException

handleSortKeys

protected Expression handleSortKeys(Expression select)
                             throws TransformerConfigurationException
Modify the "select" expression to include any sort keys specified. Used in XSLForEach and XSLApplyTemplates

Throws:
TransformerConfigurationException

findAttributeSets

protected void findAttributeSets(String use)
                          throws TransformerConfigurationException
Determine the list of attribute-sets associated with this element. This is used for xsl:element, xsl:copy, xsl:attribute-set, and on literal result elements

Throws:
TransformerConfigurationException

processAttributeSets

protected void processAttributeSets(Context context)
                             throws TransformerException
Expand the attribute sets referenced in this element's use-attribute-sets attribute

Throws:
TransformerException

styleError

protected TransformerException styleError(TransformerException error)
Construct an exception with diagnostic information


styleError

protected TransformerException styleError(String message)

compileError

protected void compileError(TransformerException error)
                     throws TransformerConfigurationException
Construct an exception with diagnostic information

Throws:
TransformerConfigurationException

compileError

protected void compileError(String message)
                     throws TransformerConfigurationException
Throws:
TransformerConfigurationException

isTopLevel

public boolean isTopLevel()
Test whether this is a top-level element


bindVariable

public Binding bindVariable(int fingerprint)
                     throws XPathException
Bind a variable used in this element to the XSLVariable element in which it is declared

Parameters:
fingerprint - The fingerprint of the name of the variable
Returns:
a Binding for the variable
Throws:
XPathException - if the variable has not been declared

getVariableBinding

public Binding getVariableBinding(int fprint)
Bind a variable used in this element to the XSLVariable element in which it is declared

Parameters:
fprint - The absolute name of the variable (as a namepool fingerprint)
Returns:
a Binding for the variable, or null if it has not been declared

getVariableNames

public Enumeration[] getVariableNames()
List the variables that are in scope for this stylesheet element. Designed for a debugger, not used by the processor.

Returns:
two Enumeration of Strings, the global ones [0] and the local ones [1]

getStyleSheetFunction

public Function getStyleSheetFunction(int fingerprint)
Get a Function declared using a saxon:function element in the stylesheet

Parameters:
fingerprint - the fingerprint of the name of the function
Returns:
the Function object represented by this saxon:function; or null if not found

getSequenceNumber

protected final long getSequenceNumber()
Get the node sequence number (in document order). Sequence numbers are monotonic but not consecutive. In the current implementation, parent nodes (elements and roots) have a zero least-significant word, while namespaces, attributes, text nodes, comments, and PIs have the top word the same as their owner and the bottom half reflecting their relative position.

Overrides:
getSequenceNumber in class NodeImpl

hasChildNodes

public final boolean hasChildNodes()
Determine if the node has any children.

Specified by:
hasChildNodes in interface NodeInfo
Specified by:
hasChildNodes in interface Node
Overrides:
hasChildNodes in class NodeImpl
Returns:
true if the node has any children, false if the node has no children.

enumerateChildren

public final AxisEnumeration enumerateChildren(NodeTest test)
Get an enumeration of the children of this node


getFirstChild

public final Node getFirstChild()
Get the first child node of the element

Specified by:
getFirstChild in interface Node
Overrides:
getFirstChild in class NodeImpl
Returns:
the first child node of the required type, or null if there are no children

getLastChild

public final Node getLastChild()
Get the last child node of the element

Specified by:
getLastChild in interface Node
Overrides:
getLastChild in class NodeImpl
Returns:
the last child of the element, or null if there are no children

getChildNodes

public final NodeList getChildNodes()
Return a NodeList that contains all children of this node. If there are no children, this is a NodeList containing no nodes.

Specified by:
getChildNodes in interface Node
Overrides:
getChildNodes in class NodeImpl

getNthChild

protected final NodeImpl getNthChild(int n)
Get the nth child node of the element (numbering from 0)

Returns:
the last child of the element, or null if there is no n'th child

getStringValue

public String getStringValue()
Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.

Returns:
the accumulated character content of the element, including descendant elements.

copyStringValue

public void copyStringValue(Outputter out)
                     throws TransformerException
Copy the string-value of this node to a given outputter

Specified by:
copyStringValue in interface NodeInfo
Overrides:
copyStringValue in class AbstractNode
Throws:
TransformerException

useChildrenArray

public void useChildrenArray(NodeImpl[] array)
Supply an array to be used for the array of children. For system use only.


addChild

public void addChild(NodeImpl node,
                     int index)
Add a child node to this node. For system use only. Note: normalizing adjacent text nodes is the responsibility of the caller.


removeChild

public void removeChild(int index)
Remove node at given index. Will always be followed by a renumberChildren().


renumberChildren

public void renumberChildren()
Renumber the children of a given parent node. For system use only


dropChildren

public void dropChildren()
Drop a branch of the tree. The target element remains in the tree, but its children are disconnected from the parent. Unless there are other references to the children (e.g. in a variable) they will be deleted from memory next time the garbage collector comes round.


compact

public void compact(int size)
Compact the space used by this node


getNodeValue

public String getNodeValue()
Get the node value as defined in the DOM. This is not the same as the XPath string-value.

Specified by:
getNodeValue in interface Node
Overrides:
getNodeValue in class AbstractNode