This is a kluge to let us shove a declaration for xml: into the
DOM2DTM model. Basically, it creates a proxy node in DOM space to
carry the additional information. This is _NOT_ a full DOM
implementation, and shouldn't be one since it sits alongside the
DOM rather than becoming part of the DOM model.
(This used to be an internal class within DOM2DTM. Moved out because
I need to perform an instanceof operation on it to support a temporary
workaround in DTMManagerDefault.)
%REVIEW% What if the DOM2DTM was built around a DocumentFragment and
there isn't a single root element? I think this fails that case...
%REVIEW% An alternative solution would be to create the node _only_
in DTM space, but given how DOM2DTM is currently written I think
this is simplest.
appendChild
public Node appendChild(Node a)
cloneNode
public Node cloneNode(boolean deep)
compareDocumentPosition
public short compareDocumentPosition(Node other)
throws DOMException
Compares a node with this node with regard to their position in the
document.
other
- The node to compare against this node.
- Returns how the given node is positioned relatively to this
node.
getAttributes
public NamedNodeMap getAttributes()
getBaseURI
public String getBaseURI()
The absolute base URI of this node or null
if undefined.
This value is computed according to . However, when the
Document
supports the feature "HTML" , the base URI is
computed using first the value of the href attribute of the HTML BASE
element if any, and the value of the documentURI
attribute from the Document
interface otherwise.
When the node is an Element
, a Document
or a a ProcessingInstruction
, this attribute represents
the properties [base URI] defined in . When the node is a
Notation
, an Entity
, or an
EntityReference
, this attribute represents the
properties [declaration base URI] in the . How will this be affected
by resolution of relative namespace URIs issue?It's not.Should this
only be on Document, Element, ProcessingInstruction, Entity, and
Notation nodes, according to the infoset? If not, what is it equal to
on other nodes? Null? An empty string? I think it should be the
parent's.No.Should this be read-only and computed or and actual
read-write attribute?Read-only and computed (F2F 19 Jun 2000 and
teleconference 30 May 2001).If the base HTML element is not yet
attached to a document, does the insert change the Document.baseURI?
Yes. (F2F 26 Sep 2001)
getChildNodes
public NodeList getChildNodes()
getFeature
public Object getFeature(String feature,
String version)
This method returns a specialized object which implements the
specialized APIs of the specified feature and version. The
specialized object may also be obtained by using binding-specific
casting methods but is not necessarily expected to, as discussed in Mixed DOM implementations.
feature
- The name of the feature requested (case-insensitive).version
- This is the version number of the feature to test. If
the version is null
or the empty string, supporting
any version of the feature will cause the method to return an
object that supports at least one version of the feature.
- Returns an object which implements the specialized APIs of
the specified feature and version, if any, or
null
if
there is no object which implements interfaces associated with that
feature. If the DOMObject
returned by this method
implements the Node
interface, it must delegate to the
primary core Node
and not return results inconsistent
with the primary core Node
such as attributes,
childNodes, etc.
getFirstChild
public Node getFirstChild()
getHandleOfNode
public int getHandleOfNode()
Non-DOM method, part of the temporary kluge
%REVIEW% This would be a pruning problem, but since it will always be
added to the root element and we prune on elements, we shouldn't have
to worry.
getLastChild
public Node getLastChild()
getLocalName
public String getLocalName()
getName
public String getName()
getNamespaceURI
public String getNamespaceURI()
getNextSibling
public Node getNextSibling()
getNodeName
public String getNodeName()
getNodeType
public short getNodeType()
getNodeValue
public String getNodeValue()
getOwnerDocument
public Document getOwnerDocument()
getOwnerElement
public Element getOwnerElement()
getParentNode
public Node getParentNode()
getPrefix
public String getPrefix()
getPreviousSibling
public Node getPreviousSibling()
getSchemaTypeInfo
public TypeInfo getSchemaTypeInfo()
getSpecified
public boolean getSpecified()
getTextContent
public String getTextContent()
throws DOMException
This attribute returns the text content of this node and its
descendants. When it is defined to be null, setting it has no effect.
When set, any possible children this node may have are removed and
replaced by a single
Text
node containing the string
this attribute is set to. On getting, no serialization is performed,
the returned string does not contain any markup. No whitespace
normalization is performed, the returned string does not contain the
element content whitespaces . Similarly, on setting, no parsing is
performed either, the input string is taken as pure textual content.
The string returned is made of the text content of this node
depending on its type, as defined below:
Node type | Content |
---|
ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
DOCUMENT_FRAGMENT_NODE | concatenation of the textContent
attribute value of every child node, excluding COMMENT_NODE and
PROCESSING_INSTRUCTION_NODE nodes |
ATTRIBUTE_NODE, TEXT_NODE,
CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE |
nodeValue |
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE |
null |
getTypeName
public String getTypeName()
org.w3c.dom.TypeInfo.getTypeName()
getTypeNamespace
public String getTypeNamespace()
org.w3c.dom.TypeInfo.getTypeNamespace()
getUserData
public Object getUserData(String key)
Retrieves the object associated to a key on a this node. The object
must first have been set to this node by calling
setUserData
with the same key.
key
- The key the object is associated to.
- Returns the
DOMObject
associated to the given key
on this node, or null
if there was none.
getValue
public String getValue()
hasAttributes
public boolean hasAttributes()
hasChildNodes
public boolean hasChildNodes()
insertBefore
public Node insertBefore(Node a,
Node b)
isDefaultNamespace
public boolean isDefaultNamespace(String namespaceURI)
DOM Level 3: Experimental
This method checks if the specified namespaceURI
is the
default namespace or not.
namespaceURI
- The namespace URI to look for.
true
if the specified namespaceURI
is the default namespace, false
otherwise.
isDerivedFrom
public boolean isDerivedFrom(String ns,
String localName,
int derivationMethod)
or.gw3c.dom.TypeInfo.isDerivedFrom(String,String,int)
isEqualNode
public boolean isEqualNode(Node arg)
Tests whether two nodes are equal.
This method tests for equality of nodes, not sameness (i.e.,
whether the two nodes are references to the same object) which can be
tested with Node.isSameNode
. All nodes that are the same
will also be equal, though the reverse may not be true.
Two nodes are equal if and only if the following conditions are
satisfied: The two nodes are of the same type.The following string
attributes are equal: nodeName
, localName
,
namespaceURI
, prefix
, nodeValue
, baseURI
. This is: they are both null
, or
they have the same length and are character for character identical.
The attributes
NamedNodeMaps
are equal.
This is: they are both null
, or they have the same
length and for each node that exists in one map there is a node that
exists in the other map and is equal, although not necessarily at the
same index.The childNodes
NodeLists
are
equal. This is: they are both null
, or they have the
same length and contain equal nodes at the same index. This is true
for Attr
nodes as for any other type of node. Note that
normalization can affect equality; to avoid this, nodes should be
normalized before being compared.
For two DocumentType
nodes to be equal, the following
conditions must also be satisfied: The following string attributes
are equal: publicId
, systemId
,
internalSubset
.The entities
NamedNodeMaps
are equal.The notations
NamedNodeMaps
are equal.
On the other hand, the following do not affect equality: the
ownerDocument
attribute, the specified
attribute for Attr
nodes, the
isWhitespaceInElementContent
attribute for
Text
nodes, as well as any user data or event listeners
registered on the nodes.
arg
- The node to compare equality with.
- If the nodes, and possibly subtrees are equal,
true
otherwise false
.
isId
public boolean isId()
isSameNode
public boolean isSameNode(Node other)
Returns whether this node is the same node as the given one.
This method provides a way to determine whether two
Node
references returned by the implementation reference
the same object. When two Node
references are references
to the same object, even if through a proxy, the references may be
used completely interchangably, such that all attributes have the
same values and calling the same DOM method on either reference
always has exactly the same effect.
other
- The node to test against.
- Returns
true
if the nodes are the same,
false
otherwise.
isSupported
public boolean isSupported(String feature,
String version)
lookupNamespaceURI
public String lookupNamespaceURI(String specifiedPrefix)
DOM Level 3 - Experimental:
Look up the namespace URI associated to the given prefix, starting from this node.
Use lookupNamespaceURI(null) to lookup the default namespace
lookupPrefix
public String lookupPrefix(String namespaceURI)
DOM Level 3 - Experimental:
Look up the prefix associated to the given namespace URI, starting from this node.
- the prefix for the namespace
normalize
public void normalize()
removeChild
public Node removeChild(Node a)
replaceChild
public Node replaceChild(Node a,
Node b)
setNodeValue
public void setNodeValue(String value)
setPrefix
public void setPrefix(String value)
setTextContent
public void setTextContent(String textContent)
throws DOMException
This attribute returns the text content of this node and its
descendants. When it is defined to be null, setting it has no effect.
When set, any possible children this node may have are removed and
replaced by a single
Text
node containing the string
this attribute is set to. On getting, no serialization is performed,
the returned string does not contain any markup. No whitespace
normalization is performed, the returned string does not contain the
element content whitespaces . Similarly, on setting, no parsing is
performed either, the input string is taken as pure textual content.
The string returned is made of the text content of this node
depending on its type, as defined below:
Node type | Content |
---|
ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
DOCUMENT_FRAGMENT_NODE | concatenation of the textContent
attribute value of every child node, excluding COMMENT_NODE and
PROCESSING_INSTRUCTION_NODE nodes |
ATTRIBUTE_NODE, TEXT_NODE,
CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE |
nodeValue |
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE |
null |
setUserData
public Object setUserData(String key,
Object data,
UserDataHandler handler)
Associate an object to a key on this node. The object can later be
retrieved from this node by calling getUserData
with the
same key.
key
- The key to associate the object to.data
- The object to associate to the given key, or
null
to remove any existing association to that key.handler
- The handler to associate to that key, or
null
.
- Returns the
DOMObject
previously associated to
the given key on this node, or null
if there was none.
setValue
public void setValue(String value)