Package com.icl.saxon.tinytree
Class TinyDocumentImpl
- java.lang.Object
-
- com.icl.saxon.om.AbstractNode
-
- com.icl.saxon.tinytree.TinyDocumentImpl
-
- All Implemented Interfaces:
DocumentInfo
,NodeInfo
,DOMLocator
,Source
,SourceLocator
,Document
,Node
public final class TinyDocumentImpl extends AbstractNode implements DocumentInfo, Document
A node in the XML parse tree representing the Document itself (or equivalently, the root node of the Document).
-
-
Field Summary
Fields Modifier and Type Field Description protected int[]
attCode
protected int[]
attParent
protected String[]
attValue
protected char[]
charBuffer
protected int
charBufferLength
protected StringBuffer
commentBuffer
protected short[]
depth
protected TinyDocumentImpl
document
protected int
lastLevelOneNode
protected int[]
length
protected int[]
nameCode
protected int[]
namespaceCode
protected int[]
namespaceParent
protected int[]
next
protected int
nodeNr
protected byte[]
nodeType
protected int
numberOfAttributes
protected int
numberOfNamespaces
protected int
numberOfNodes
protected int[]
offset
protected com.icl.saxon.tinytree.TinyNodeImpl
parent
protected int[]
prior
-
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
-
-
Constructor Summary
Constructors Constructor Description TinyDocumentImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addAttribute(int parent0, int code0, String type0, String value0)
protected void
addNamespace(int parent0, int nscode0)
protected void
addNode(short type0, int depth0, int offset0, int length0, int nameCode0)
Node
adoptNode(Node source)
Attempts to adopt a node from another document to this document.protected void
appendChars(char[] chars, int start, int length)
int
compareOrder(NodeInfo other)
Determine the relative position of this node and another node, in document order.void
copy(Outputter out)
Copy this node to a given outputtervoid
copyStringValue(Outputter out)
Copy the string-value of this node to a given outputtervoid
diagnosticDump()
Produce diagnostic print of main tree arraysprotected void
ensureAttributeCapacity()
protected void
ensureNamespaceCapacity()
protected void
ensureNodeCapacity()
protected void
ensurePriorIndex()
On demand, make an index for quick access to preceding-sibling nodesString
generateId()
Get a character string that uniquely identifies this node within the documentprotected AxisEnumeration
getAllElements(int fingerprint)
Get a list of all elements with a given name.protected com.icl.saxon.tinytree.TinyAttributeImpl
getAttributeNode(int nr)
Make a (transient) attribute node from the array of attributesString
getAttributeValue(int fingerprint)
Get the value of a given attribute of this nodeString
getAttributeValue(String uri, String localName)
Find the value of a given attribute of this node.String
getBaseURI()
Get the base URI of this root node.String
getDisplayName()
Get the display name of this node.DocumentInfo
getDocumentRoot()
Get the root (document) nodeString
getDocumentURI()
The location of the document ornull
if undefined or if theDocument
was created usingDOMImplementation.createDocument
.DOMConfiguration
getDomConfig()
The configuration used whenDocument.normalizeDocument()
is invoked.AxisEnumeration
getEnumeration(byte axisNumber, NodeTest nodeTest)
Return an enumeration over the nodes reached by the given axis from this nodeint
getFingerprint()
Get the fingerprint of the node, used for matching namesString
getInputEncoding()
An attribute specifying the encoding used for this document at the time of the parsing.Hashtable
getKeyIndex(KeyManager keymanager, int fingerprint)
Get the index for a given keyint
getLineNumber()
Get the line number of this root node.protected int
getLineNumber(int sequence)
Get the line number for an element.String
getLocalName()
Get the local name of this node.int
getNameCode()
Get the name code of the node, used for matching namesNamePool
getNamePool()
Get the name pool used for the names in this documentprotected com.icl.saxon.tinytree.TinyNamespaceImpl
getNamespaceNode(int nr)
Make a (transient) namespace node from the array of namespace declarationscom.icl.saxon.tinytree.TinyNodeImpl
getNode(int nr)
short
getNodeType()
Return the type of node.Node
getOriginatingNode()
Get the node corresponding to this javax.xml.transform.dom.DOMLocatorNodeInfo
getParent()
Find the parent node of this node.String
getPrefix()
Get the prefix part of the name of this node.long
getSequenceNumber()
Get the node sequence number (in document order).boolean
getStrictErrorChecking()
An attribute specifying whether error checking is enforced or not.String
getStringValue()
Return the string-value of the node, that is, the concatenation of the character content of all descendent elements and text nodes.String
getSystemId()
Get the system id of this root nodeprotected String
getSystemId(int seq)
Get the system id of an element in the documentString
getUnparsedEntity(String name)
Get the unparsed entity with a given nameString
getURI()
Get the URI part of the name of this node.String
getXmlEncoding()
An attribute specifying, as part of the XML declaration, the encoding of this document.boolean
getXmlStandalone()
An attribute specifying, as part of the XML declaration, whether this document is standalone.String
getXmlVersion()
An attribute specifying, as part of the XML declaration, the version number of this document.boolean
hasAttributes()
Returns whether this node has any attributes.boolean
hasChildNodes()
Determine if the node has children.boolean
isSameNodeInfo(NodeInfo other)
Determine whether this is the same node as another nodeprotected boolean
isUsingNamespaces()
determine whether this document uses namespacesvoid
normalizeDocument()
This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.void
outputNamespaceNodes(Outputter out, boolean includeAncestors)
Output all namespace nodes associated with this element.Node
renameNode(Node n, String namespaceURI, String qualifiedName)
Rename an existing node of typeELEMENT_NODE
orATTRIBUTE_NODE
.NodeInfo
selectID(String id)
Get the element with a given ID.void
setDocumentURI(String documentURI)
The location of the document ornull
if undefined or if theDocument
was created usingDOMImplementation.createDocument
.void
setKeyIndex(KeyManager keymanager, int fingerprint, Hashtable keyindex)
Set the index for a given key.void
setLineNumber(int line)
Set the line number of the node within its source document entityprotected void
setLineNumber(int sequence, int line)
Set the line number for an element.void
setLineNumbering()
Set line numbering onvoid
setNamePool(NamePool pool)
Set the name pool used for all names in this documentprotected void
setParentNode(com.icl.saxon.tinytree.TinyNodeImpl parent)
Set the parent of this node.void
setStrictErrorChecking(boolean strictErrorChecking)
An attribute specifying whether error checking is enforced or not.protected void
setSystemId(int seq, String uri)
Set the system id of an element in the documentvoid
setSystemId(String uri)
Set the system id of this nodeprotected void
setUnparsedEntity(String name, String uri)
Set an unparsed entity URI associated with this document.void
setXmlStandalone(boolean xmlStandalone)
An attribute specifying, as part of the XML declaration, whether this document is standalone.void
setXmlVersion(String xmlVersion)
An attribute specifying, as part of the XML declaration, the version number of this document.protected void
truncate(int nodes)
Truncate the tree: used in preview mode to delete an element after it has been processed-
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, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getChildNodes, getColumnNumber, getData, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getFirstChild, getImplementation, getLastChild, getLength, getName, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOwnerDocument, getOwnerElement, getParentNode, getPreviousSibling, getPublicId, getSchemaTypeInfo, getSpecified, getTagName, getTextContent, getUserData, getValue, getWholeText, hasAttribute, hasAttributeNS, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isId, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, replaceChild, replaceData, replaceWholeText, setAttributeNode, setAttributeNodeNS, setAttributeNS, 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.w3c.dom.Document
createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getImplementation, importNode
-
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, compareDocumentPosition, getAttributes, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
-
Methods inherited from interface com.icl.saxon.om.NodeInfo
compareOrder, copyStringValue, getAttributeValue, getAttributeValue, getDisplayName, getEnumeration, getFingerprint, getLocalName, getNameCode, getPrefix, getStringValue, getURI, hasChildNodes, isSameNodeInfo, outputNamespaceNodes
-
-
-
-
Field Detail
-
charBuffer
protected char[] charBuffer
-
charBufferLength
protected int charBufferLength
-
commentBuffer
protected StringBuffer commentBuffer
-
numberOfNodes
protected int numberOfNodes
-
lastLevelOneNode
protected int lastLevelOneNode
-
nodeType
protected byte[] nodeType
-
depth
protected short[] depth
-
next
protected int[] next
-
offset
protected int[] offset
-
length
protected int[] length
-
nameCode
protected int[] nameCode
-
prior
protected int[] prior
-
numberOfAttributes
protected int numberOfAttributes
-
attParent
protected int[] attParent
-
attCode
protected int[] attCode
-
attValue
protected String[] attValue
-
numberOfNamespaces
protected int numberOfNamespaces
-
namespaceParent
protected int[] namespaceParent
-
namespaceCode
protected int[] namespaceCode
-
document
protected TinyDocumentImpl document
-
nodeNr
protected int nodeNr
-
parent
protected com.icl.saxon.tinytree.TinyNodeImpl parent
-
-
Method Detail
-
setNamePool
public void setNamePool(NamePool pool)
Set the name pool used for all names in this document- Specified by:
setNamePool
in interfaceDocumentInfo
-
getNamePool
public NamePool getNamePool()
Get the name pool used for the names in this document- Specified by:
getNamePool
in interfaceDocumentInfo
-
ensureNodeCapacity
protected void ensureNodeCapacity()
-
ensureAttributeCapacity
protected void ensureAttributeCapacity()
-
ensureNamespaceCapacity
protected void ensureNamespaceCapacity()
-
addNode
protected void addNode(short type0, int depth0, int offset0, int length0, int nameCode0)
-
appendChars
protected void appendChars(char[] chars, int start, int length)
-
truncate
protected void truncate(int nodes)
Truncate the tree: used in preview mode to delete an element after it has been processed
-
ensurePriorIndex
protected void ensurePriorIndex()
On demand, make an index for quick access to preceding-sibling nodes
-
addNamespace
protected void addNamespace(int parent0, int nscode0)
-
getNode
public com.icl.saxon.tinytree.TinyNodeImpl getNode(int nr)
-
getSequenceNumber
public long getSequenceNumber()
Get the node sequence number (in document order). Sequence numbers are monotonic but not consecutive.
-
getAttributeNode
protected com.icl.saxon.tinytree.TinyAttributeImpl getAttributeNode(int nr)
Make a (transient) attribute node from the array of attributes
-
isUsingNamespaces
protected boolean isUsingNamespaces()
determine whether this document uses namespaces
-
getNamespaceNode
protected com.icl.saxon.tinytree.TinyNamespaceImpl getNamespaceNode(int nr)
Make a (transient) namespace node from the array of namespace declarations
-
setSystemId
public void setSystemId(String uri)
Set the system id of this node- Specified by:
setSystemId
in interfaceSource
-
getSystemId
public String getSystemId()
Get the system id of this root node- Specified by:
getSystemId
in interfaceNodeInfo
- Specified by:
getSystemId
in interfaceSource
- Specified by:
getSystemId
in interfaceSourceLocator
- Returns:
- the System Identifier of the entity in the source document containing the node, or null if not known. Note this is not the same as the base URI: the base URI can be modified by xml:base, but the system ID cannot.
-
getBaseURI
public String getBaseURI()
Get the base URI of this root node. For a root node the base URI is the same as the System ID.- Specified by:
getBaseURI
in interfaceNode
- Specified by:
getBaseURI
in interfaceNodeInfo
-
setSystemId
protected void setSystemId(int seq, String uri)
Set the system id of an element in the document
-
getSystemId
protected String getSystemId(int seq)
Get the system id of an element in the document
-
setLineNumbering
public void setLineNumbering()
Set line numbering on
-
setLineNumber
protected void setLineNumber(int sequence, int line)
Set the line number for an element. Ignored if line numbering is off.
-
getLineNumber
protected int getLineNumber(int sequence)
Get the line number for an element. Return -1 if line numbering is off.
-
getLineNumber
public int getLineNumber()
Get the line number of this root node.- Specified by:
getLineNumber
in interfaceNodeInfo
- Specified by:
getLineNumber
in interfaceSourceLocator
- Returns:
- 0 always
-
getNodeType
public final short getNodeType()
Return the type of node.- Specified by:
getNodeType
in interfaceNode
- Specified by:
getNodeType
in interfaceNodeInfo
- Returns:
- NodeInfo.ROOT (always)
-
getParent
public NodeInfo getParent()
Find the parent node of this node.
-
getDocumentRoot
public DocumentInfo getDocumentRoot()
Get the root (document) node- Specified by:
getDocumentRoot
in interfaceNodeInfo
- Returns:
- the DocumentInfo representing this document
-
generateId
public String generateId()
Get a character string that uniquely identifies this node within the document- Specified by:
generateId
in interfaceNodeInfo
- Returns:
- the empty string
-
getAllElements
protected AxisEnumeration getAllElements(int fingerprint)
Get a list of all elements with a given name. This is implemented as a memo function: the first time it is called for a particular element type, it remembers the result for next time.
-
selectID
public NodeInfo selectID(String id)
Get the element with a given ID.- Specified by:
selectID
in interfaceDocumentInfo
- Parameters:
id
- The unique ID of the required element, previously registered using registerID()- Returns:
- The NodeInfo (always an Element) for the given ID if one has been registered, otherwise null.
-
getKeyIndex
public Hashtable getKeyIndex(KeyManager keymanager, int fingerprint)
Get the index for a given key- Specified by:
getKeyIndex
in interfaceDocumentInfo
- Parameters:
keymanager
- The key manager managing this keyfingerprint
- The fingerprint of the name of the key (unique with the key manager)- Returns:
- The index, if one has been built, in the form of a Hashtable that maps the key value to a set of nodes having that key value. If no index has been built, returns null.
-
setKeyIndex
public void setKeyIndex(KeyManager keymanager, int fingerprint, Hashtable keyindex)
Set the index for a given key. The method is synchronized because the same document can be used by several stylesheets at the same time.- Specified by:
setKeyIndex
in interfaceDocumentInfo
- Parameters:
keymanager
- The key manager managing this keyfingerprint
- The fingerprint of the name of the key (unique with the key manager)keyindex
- the index, in the form of a Hashtable that maps the key value to a set of nodes having that key value. Or the String "under construction", indicating that the index is being built.
-
setUnparsedEntity
protected void setUnparsedEntity(String name, String uri)
Set an unparsed entity URI associated with this document. For system use only, while building the document.
-
getUnparsedEntity
public String getUnparsedEntity(String name)
Get the unparsed entity with a given name- Specified by:
getUnparsedEntity
in interfaceDocumentInfo
- Parameters:
name
- the name of the entity- Returns:
- the URI of the entity if there is one, or empty string if not
-
copy
public void copy(Outputter out) throws TransformerException
Copy this node to a given outputter- Specified by:
copy
in interfaceNodeInfo
- Throws:
TransformerException
-
diagnosticDump
public void diagnosticDump()
Produce diagnostic print of main tree arrays
-
adoptNode
public Node adoptNode(Node source) throws DOMException
Attempts to adopt a node from another document to this document.- Specified by:
adoptNode
in interfaceDocument
- Parameters:
source
- The node to move into this document.- Returns:
- The adopted node, or
null
if this operation fails, such as when the source node comes from a different implementation. - Throws:
DOMException
- NOT_SUPPORTED_ERR: Raised if the source node is of typeDOCUMENT
,DOCUMENT_TYPE
.
NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is readonly.- Since:
- DOM Level 3
-
getDocumentURI
public String getDocumentURI()
The location of the document ornull
if undefined or if theDocument
was created usingDOMImplementation.createDocument
. No lexical checking is performed when setting this attribute; this could result in anull
value returned when usingNode.baseURI
.
Beware that when theDocument
supports the feature "HTML" [DOM Level 2 HTML] , the href attribute of the HTML BASE element takes precedence over this attribute when computingNode.baseURI
.- Specified by:
getDocumentURI
in interfaceDocument
- Since:
- DOM Level 3
-
getDomConfig
public DOMConfiguration getDomConfig()
The configuration used whenDocument.normalizeDocument()
is invoked.- Specified by:
getDomConfig
in interfaceDocument
- Since:
- DOM Level 3
-
getInputEncoding
public String getInputEncoding()
An attribute specifying the encoding used for this document at the time of the parsing. This isnull
when it is not known, such as when theDocument
was created in memory.- Specified by:
getInputEncoding
in interfaceDocument
- Since:
- DOM Level 3
-
getStrictErrorChecking
public boolean getStrictErrorChecking()
An attribute specifying whether error checking is enforced or not. When set tofalse
, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise anyDOMException
on DOM operations or report errors while usingDocument.normalizeDocument()
. In case of error, the behavior is undefined. This attribute istrue
by default.- Specified by:
getStrictErrorChecking
in interfaceDocument
- Since:
- DOM Level 3
-
getXmlEncoding
public String getXmlEncoding()
An attribute specifying, as part of the XML declaration, the encoding of this document. This isnull
when unspecified or when it is not known, such as when theDocument
was created in memory.- Specified by:
getXmlEncoding
in interfaceDocument
- Since:
- DOM Level 3
-
getXmlStandalone
public boolean getXmlStandalone()
An attribute specifying, as part of the XML declaration, whether this document is standalone. This isfalse
when unspecified.Note: No verification is done on the value when setting this attribute. Applications should use
Document.normalizeDocument()
with the "validate" parameter to verify if the value matches the validity constraint for standalone document declaration as defined in [XML 1.0].- Specified by:
getXmlStandalone
in interfaceDocument
- Since:
- DOM Level 3
-
getXmlVersion
public String getXmlVersion()
An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is"1.0"
.- Specified by:
getXmlVersion
in interfaceDocument
- Since:
- DOM Level 3
-
normalizeDocument
public void normalizeDocument()
This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.- Specified by:
normalizeDocument
in interfaceDocument
- Since:
- DOM Level 3
-
renameNode
public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException
Rename an existing node of typeELEMENT_NODE
orATTRIBUTE_NODE
.- Specified by:
renameNode
in interfaceDocument
- Parameters:
n
- The node to rename.namespaceURI
- The new namespace URI.qualifiedName
- The new qualified name.- Returns:
- The renamed node. This is either the specified node or the new node that was created to replace the specified node.
- Throws:
DOMException
- NOT_SUPPORTED_ERR: Raised when the type of the specified node is neitherELEMENT_NODE
norATTRIBUTE_NODE
, or if the implementation does not support the renaming of the document element.
INVALID_CHARACTER_ERR: Raised if the new qualified name is not an XML name according to the XML version in use specified in theDocument.xmlVersion
attribute.
WRONG_DOCUMENT_ERR: Raised when the specified node was created from a different document than this document.
NAMESPACE_ERR: Raised if thequalifiedName
is a malformed qualified name, if thequalifiedName
has a prefix and thenamespaceURI
isnull
, or if thequalifiedName
has a prefix that is "xml" and thenamespaceURI
is different from " http://www.w3.org/XML/1998/namespace" [XML Namespaces] . Also raised, when the node being renamed is an attribute, if thequalifiedName
, or its prefix, is "xmlns" and thenamespaceURI
is different from "http://www.w3.org/2000/xmlns/".- Since:
- DOM Level 3
-
setDocumentURI
public void setDocumentURI(String documentURI)
The location of the document ornull
if undefined or if theDocument
was created usingDOMImplementation.createDocument
. No lexical checking is performed when setting this attribute; this could result in anull
value returned when usingNode.baseURI
.
Beware that when theDocument
supports the feature "HTML" [DOM Level 2 HTML] , the href attribute of the HTML BASE element takes precedence over this attribute when computingNode.baseURI
.- Specified by:
setDocumentURI
in interfaceDocument
- Since:
- DOM Level 3
-
setStrictErrorChecking
public void setStrictErrorChecking(boolean strictErrorChecking)
An attribute specifying whether error checking is enforced or not. When set tofalse
, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise anyDOMException
on DOM operations or report errors while usingDocument.normalizeDocument()
. In case of error, the behavior is undefined. This attribute istrue
by default.- Specified by:
setStrictErrorChecking
in interfaceDocument
- Since:
- DOM Level 3
-
setXmlStandalone
public void setXmlStandalone(boolean xmlStandalone) throws DOMException
An attribute specifying, as part of the XML declaration, whether this document is standalone. This isfalse
when unspecified.Note: No verification is done on the value when setting this attribute. Applications should use
Document.normalizeDocument()
with the "validate" parameter to verify if the value matches the validity constraint for standalone document declaration as defined in [XML 1.0].- Specified by:
setXmlStandalone
in interfaceDocument
- Throws:
DOMException
- NOT_SUPPORTED_ERR: Raised if this document does not support the "XML" feature.- Since:
- DOM Level 3
-
setXmlVersion
public void setXmlVersion(String xmlVersion) throws DOMException
An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is"1.0"
. If this document does not support the "XML" feature, the value is alwaysnull
. Changing this attribute will affect methods that check for invalid characters in XML names. Application should invokeDocument.normalizeDocument()
in order to check for invalid characters in theNode
s that are already part of thisDocument
.
DOM applications may use theDOMImplementation.hasFeature(feature, version)
method with parameter values "XMLVersion" and "1.0" (respectively) to determine if an implementation supports [XML 1.0]. DOM applications may use the same method with parameter values "XMLVersion" and "1.1" (respectively) to determine if an implementation supports [XML 1.1]. In both cases, in order to support XML, an implementation must also support the "XML" feature defined in this specification.Document
objects supporting a version of the "XMLVersion" feature must not raise aNOT_SUPPORTED_ERR
exception for the same version number when usingDocument.xmlVersion
.- Specified by:
setXmlVersion
in interfaceDocument
- Throws:
DOMException
- NOT_SUPPORTED_ERR: Raised if the version is set to a value that is not supported by thisDocument
or if this document does not support the "XML" feature.- Since:
- DOM Level 3
-
hasChildNodes
public boolean hasChildNodes()
Determine if the node has children.- Specified by:
hasChildNodes
in interfaceNode
- Specified by:
hasChildNodes
in interfaceNodeInfo
- Returns:
true
if this node has any attributes,false
otherwise.
-
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 interfaceNodeInfo
- Overrides:
copyStringValue
in classAbstractNode
- Throws:
TransformerException
-
setParentNode
protected void setParentNode(com.icl.saxon.tinytree.TinyNodeImpl parent)
Set the parent of this node. Providing this information is useful, if it is known, because otherwise getParent() has to search backwards through the document.
-
isSameNodeInfo
public boolean isSameNodeInfo(NodeInfo other)
Determine whether this is the same node as another node- Specified by:
isSameNodeInfo
in interfaceNodeInfo
- Specified by:
isSameNodeInfo
in classAbstractNode
- Returns:
- true if this Node object and the supplied Node object represent the same node in the tree.
-
getOriginatingNode
public Node getOriginatingNode()
Get the node corresponding to this javax.xml.transform.dom.DOMLocator- Specified by:
getOriginatingNode
in interfaceDOMLocator
- Overrides:
getOriginatingNode
in classAbstractNode
-
setLineNumber
public void setLineNumber(int line)
Set the line number of the node within its source document entity
-
compareOrder
public final int compareOrder(NodeInfo other)
Determine the relative position of this node and another node, in document order. The other node will always be in the same document.- Specified by:
compareOrder
in interfaceNodeInfo
- Specified by:
compareOrder
in classAbstractNode
- Parameters:
other
- The other node, whose position is to be compared with this node- Returns:
- -1 if this node precedes the other node, +1 if it follows the other node, or 0 if they are the same node. (In this case, isSameNode() will always return true, and the two nodes will produce the same result for generateId())
-
getFingerprint
public int getFingerprint()
Get the fingerprint of the node, used for matching names- Specified by:
getFingerprint
in interfaceNodeInfo
- Specified by:
getFingerprint
in classAbstractNode
-
getNameCode
public int getNameCode()
Get the name code of the node, used for matching names- Specified by:
getNameCode
in interfaceNodeInfo
- Specified by:
getNameCode
in classAbstractNode
- See Also:
allocate
,getFingerprint
-
getPrefix
public String getPrefix()
Get the prefix part of the name of this node. This is the name before the ":" if any.
-
getURI
public String getURI()
Get the URI part of the name of this node. This is the URI corresponding to the prefix, or the URI of the default namespace if appropriate.- Specified by:
getURI
in interfaceNodeInfo
- Specified by:
getURI
in classAbstractNode
- Returns:
- The URI of the namespace of this node. For an unnamed node, or for an element or attribute in the default namespace, return an empty string.
-
getDisplayName
public String getDisplayName()
Get the display name of this node. For elements and attributes this is [prefix:]localname. For unnamed nodes, it is an empty string.- Specified by:
getDisplayName
in interfaceNodeInfo
- Overrides:
getDisplayName
in classAbstractNode
- Returns:
- The display name of this node. For a node with no name, return an empty string.
-
getLocalName
public String getLocalName()
Get the local name of this node.- Specified by:
getLocalName
in interfaceNode
- Specified by:
getLocalName
in interfaceNodeInfo
- Specified by:
getLocalName
in classAbstractNode
- Returns:
- The local name of this node. For a node with no name, return an empty string.
-
getEnumeration
public AxisEnumeration getEnumeration(byte axisNumber, NodeTest nodeTest)
Return an enumeration over the nodes reached by the given axis from this node- Specified by:
getEnumeration
in interfaceNodeInfo
- Specified by:
getEnumeration
in classAbstractNode
- Parameters:
axisNumber
- Identifies the required axis, eg. Axis.CHILD or Axis.PARENTnodeTest
- A pattern to be matched by the returned nodes- Returns:
- a AxisEnumeration that scans the nodes reached by the axis in turn.
-
hasAttributes
public boolean hasAttributes()
Returns whether this node has any attributes.- Specified by:
hasAttributes
in interfaceNode
- Specified by:
hasAttributes
in classAbstractNode
- Returns:
true
if this node has any attributes,false
otherwise.- Since:
- DOM Level 2
-
getAttributeValue
public String getAttributeValue(String uri, String localName)
Find the value of a given attribute of this node.
This method is defined on all nodes to meet XSL requirements, but for nodes other than elements it will always return null.- Specified by:
getAttributeValue
in interfaceNodeInfo
- Specified by:
getAttributeValue
in classAbstractNode
- Parameters:
uri
- the namespace uri of an attributelocalName
- the local name of an attribute- Returns:
- the value of the attribute, if it exists, otherwise null
-
getAttributeValue
public String getAttributeValue(int fingerprint)
Get the value of a given attribute of this node- Specified by:
getAttributeValue
in interfaceNodeInfo
- Specified by:
getAttributeValue
in classAbstractNode
- Parameters:
fingerprint
- The fingerprint of the attribute name- Returns:
- the attribute value if it exists or null if not
-
outputNamespaceNodes
public void outputNamespaceNodes(Outputter out, boolean includeAncestors) throws TransformerException
Output all namespace nodes associated with this element. Does nothing if the node is not an element.- Specified by:
outputNamespaceNodes
in interfaceNodeInfo
- Overrides:
outputNamespaceNodes
in classAbstractNode
- Parameters:
out
- The relevant outputterincludeAncestors
- True if namespaces declared on ancestor elements must be output; false if it is known that these are already on the result tree- Throws:
TransformerException
-
-