Methods Summary |
---|
public org.w3c.dom.Node | appendChild(org.w3c.dom.Node a)throw new DTMException(NOT_SUPPORTED_ERR);
|
public org.w3c.dom.Node | cloneNode(boolean deep)throw new DTMException(NOT_SUPPORTED_ERR);
|
public short | compareDocumentPosition(org.w3c.dom.Node other)Compares a node with this node with regard to their position in the
document.
return 0;
|
public org.w3c.dom.NamedNodeMap | getAttributes()return null;
|
public java.lang.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)
return null;
|
public org.w3c.dom.NodeList | getChildNodes()return null;
|
public java.lang.Object | getFeature(java.lang.String feature, java.lang.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.
// we don't have any alternate node, either this node does the job
// or we don't have anything that does
return isSupported(feature, version) ? this : null;
|
public org.w3c.dom.Node | getFirstChild()return null;
|
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.
return handle;
|
public org.w3c.dom.Node | getLastChild()return null;
|
public java.lang.String | getLocalName()return prefix;
|
public java.lang.String | getName()return nodename;
|
public java.lang.String | getNamespaceURI()return "http://www.w3.org/2000/xmlns/";
|
public org.w3c.dom.Node | getNextSibling()return null;
|
public java.lang.String | getNodeName()return nodename;
|
public short | getNodeType()return Node.ATTRIBUTE_NODE;
|
public java.lang.String | getNodeValue()return uri;
|
public org.w3c.dom.Document | getOwnerDocument()return pseudoparent.getOwnerDocument();
|
public org.w3c.dom.Element | getOwnerElement()return pseudoparent;
|
public org.w3c.dom.Node | getParentNode()return null;
|
public java.lang.String | getPrefix()return prefix;
|
public org.w3c.dom.Node | getPreviousSibling()return null;
|
public org.w3c.dom.TypeInfo | getSchemaTypeInfo() return this;
|
public boolean | getSpecified()return false;
|
public java.lang.String | getTextContent()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 |
return getNodeValue(); // overriden in some subclasses
|
public java.lang.String | getTypeName()return null;
|
public java.lang.String | getTypeNamespace() return null;
|
public java.lang.Object | getUserData(java.lang.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.
return getOwnerDocument().getUserData( key);
|
public java.lang.String | getValue()return uri;
|
public boolean | hasAttributes()return false;
|
public boolean | hasChildNodes()return false;
|
public org.w3c.dom.Node | insertBefore(org.w3c.dom.Node a, org.w3c.dom.Node b)throw new DTMException(NOT_SUPPORTED_ERR);
|
public boolean | isDefaultNamespace(java.lang.String namespaceURI)DOM Level 3: Experimental
This method checks if the specified namespaceURI is the
default namespace or not.
/*
// REVISIT: remove casts when DOM L3 becomes REC.
short type = this.getNodeType();
switch (type) {
case Node.ELEMENT_NODE: {
String namespace = this.getNamespaceURI();
String prefix = this.getPrefix();
// REVISIT: is it possible that prefix is empty string?
if (prefix == null || prefix.length() == 0) {
if (namespaceURI == null) {
return (namespace == namespaceURI);
}
return namespaceURI.equals(namespace);
}
if (this.hasAttributes()) {
ElementImpl elem = (ElementImpl)this;
NodeImpl attr = (NodeImpl)elem.getAttributeNodeNS("http://www.w3.org/2000/xmlns/", "xmlns");
if (attr != null) {
String value = attr.getNodeValue();
if (namespaceURI == null) {
return (namespace == value);
}
return namespaceURI.equals(value);
}
}
NodeImpl ancestor = (NodeImpl)getElementAncestor(this);
if (ancestor != null) {
return ancestor.isDefaultNamespace(namespaceURI);
}
return false;
}
case Node.DOCUMENT_NODE:{
return((NodeImpl)((Document)this).getDocumentElement()).isDefaultNamespace(namespaceURI);
}
case Node.ENTITY_NODE :
case Node.NOTATION_NODE:
case Node.DOCUMENT_FRAGMENT_NODE:
case Node.DOCUMENT_TYPE_NODE:
// type is unknown
return false;
case Node.ATTRIBUTE_NODE:{
if (this.ownerNode.getNodeType() == Node.ELEMENT_NODE) {
return ownerNode.isDefaultNamespace(namespaceURI);
}
return false;
}
default:{
NodeImpl ancestor = (NodeImpl)getElementAncestor(this);
if (ancestor != null) {
return ancestor.isDefaultNamespace(namespaceURI);
}
return false;
}
}
*/
return false;
|
public boolean | isDerivedFrom(java.lang.String ns, java.lang.String localName, int derivationMethod)
return false;
|
public boolean | isEqualNode(org.w3c.dom.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.
if (arg == this) {
return true;
}
if (arg.getNodeType() != getNodeType()) {
return false;
}
// in theory nodeName can't be null but better be careful
// who knows what other implementations may be doing?...
if (getNodeName() == null) {
if (arg.getNodeName() != null) {
return false;
}
}
else if (!getNodeName().equals(arg.getNodeName())) {
return false;
}
if (getLocalName() == null) {
if (arg.getLocalName() != null) {
return false;
}
}
else if (!getLocalName().equals(arg.getLocalName())) {
return false;
}
if (getNamespaceURI() == null) {
if (arg.getNamespaceURI() != null) {
return false;
}
}
else if (!getNamespaceURI().equals(arg.getNamespaceURI())) {
return false;
}
if (getPrefix() == null) {
if (arg.getPrefix() != null) {
return false;
}
}
else if (!getPrefix().equals(arg.getPrefix())) {
return false;
}
if (getNodeValue() == null) {
if (arg.getNodeValue() != null) {
return false;
}
}
else if (!getNodeValue().equals(arg.getNodeValue())) {
return false;
}
/*
if (getBaseURI() == null) {
if (((NodeImpl) arg).getBaseURI() != null) {
return false;
}
}
else if (!getBaseURI().equals(((NodeImpl) arg).getBaseURI())) {
return false;
}
*/
return true;
|
public boolean | isId() return false;
|
public boolean | isSameNode(org.w3c.dom.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.
// we do not use any wrapper so the answer is obvious
return this == other;
|
public boolean | isSupported(java.lang.String feature, java.lang.String version)return false;
|
public java.lang.String | lookupNamespaceURI(java.lang.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
short type = this.getNodeType();
switch (type) {
case Node.ELEMENT_NODE : {
String namespace = this.getNamespaceURI();
String prefix = this.getPrefix();
if (namespace !=null) {
// REVISIT: is it possible that prefix is empty string?
if (specifiedPrefix== null && prefix==specifiedPrefix) {
// looking for default namespace
return namespace;
} else if (prefix != null && prefix.equals(specifiedPrefix)) {
// non default namespace
return namespace;
}
}
if (this.hasAttributes()) {
NamedNodeMap map = this.getAttributes();
int length = map.getLength();
for (int i=0;i<length;i++) {
Node attr = map.item(i);
String attrPrefix = attr.getPrefix();
String value = attr.getNodeValue();
namespace = attr.getNamespaceURI();
if (namespace !=null && namespace.equals("http://www.w3.org/2000/xmlns/")) {
// at this point we are dealing with DOM Level 2 nodes only
if (specifiedPrefix == null &&
attr.getNodeName().equals("xmlns")) {
// default namespace
return value;
} else if (attrPrefix !=null &&
attrPrefix.equals("xmlns") &&
attr.getLocalName().equals(specifiedPrefix)) {
// non default namespace
return value;
}
}
}
}
/*
NodeImpl ancestor = (NodeImpl)getElementAncestor(this);
if (ancestor != null) {
return ancestor.lookupNamespaceURI(specifiedPrefix);
}
*/
return null;
}
/*
case Node.DOCUMENT_NODE : {
return((NodeImpl)((Document)this).getDocumentElement()).lookupNamespaceURI(specifiedPrefix) ;
}
*/
case Node.ENTITY_NODE :
case Node.NOTATION_NODE:
case Node.DOCUMENT_FRAGMENT_NODE:
case Node.DOCUMENT_TYPE_NODE:
// type is unknown
return null;
case Node.ATTRIBUTE_NODE:{
if (this.getOwnerElement().getNodeType() == Node.ELEMENT_NODE) {
return getOwnerElement().lookupNamespaceURI(specifiedPrefix);
}
return null;
}
default:{
/*
NodeImpl ancestor = (NodeImpl)getElementAncestor(this);
if (ancestor != null) {
return ancestor.lookupNamespaceURI(specifiedPrefix);
}
*/
return null;
}
}
|
public java.lang.String | lookupPrefix(java.lang.String namespaceURI)DOM Level 3 - Experimental:
Look up the prefix associated to the given namespace URI, starting from this node.
// REVISIT: When Namespaces 1.1 comes out this may not be true
// Prefix can't be bound to null namespace
if (namespaceURI == null) {
return null;
}
short type = this.getNodeType();
switch (type) {
/*
case Node.ELEMENT_NODE: {
String namespace = this.getNamespaceURI(); // to flip out children
return lookupNamespacePrefix(namespaceURI, (ElementImpl)this);
}
case Node.DOCUMENT_NODE:{
return((NodeImpl)((Document)this).getDocumentElement()).lookupPrefix(namespaceURI);
}
*/
case Node.ENTITY_NODE :
case Node.NOTATION_NODE:
case Node.DOCUMENT_FRAGMENT_NODE:
case Node.DOCUMENT_TYPE_NODE:
// type is unknown
return null;
case Node.ATTRIBUTE_NODE:{
if (this.getOwnerElement().getNodeType() == Node.ELEMENT_NODE) {
return getOwnerElement().lookupPrefix(namespaceURI);
}
return null;
}
default:{
/*
NodeImpl ancestor = (NodeImpl)getElementAncestor(this);
if (ancestor != null) {
return ancestor.lookupPrefix(namespaceURI);
}
*/
return null;
}
}
|
public void | normalize()return;
|
public org.w3c.dom.Node | removeChild(org.w3c.dom.Node a)throw new DTMException(NOT_SUPPORTED_ERR);
|
public org.w3c.dom.Node | replaceChild(org.w3c.dom.Node a, org.w3c.dom.Node b)throw new DTMException(NOT_SUPPORTED_ERR);
|
public void | setNodeValue(java.lang.String value)throw new DTMException(NOT_SUPPORTED_ERR);
|
public void | setPrefix(java.lang.String value)throw new DTMException(NOT_SUPPORTED_ERR);
|
public void | setTextContent(java.lang.String textContent)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 |
setNodeValue(textContent);
|
public java.lang.Object | setUserData(java.lang.String key, java.lang.Object data, org.w3c.dom.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.
return getOwnerDocument().setUserData( key, data, handler);
|
public void | setValue(java.lang.String value)throw new DTMException(NOT_SUPPORTED_ERR);
|