⇒ Index (Frames) |  ⇒ Index (No Frames) |  ⇒ Package |  ⇒ Package Tree |  ⇒ Full Tree 
gnu.xml.dom

Class DomDocument

java.lang.Object
|
+--gnu.xml.dom.DomNode
   |
   +--gnu.xml.dom.DomDocument

All Implemented Interfaces:
DocumentTraversal, java.lang.Cloneable, Document, DocumentEvent, EventTarget, Node, NodeList


public class DomDocument
extends DomNode
implements Document, DocumentTraversal

"Document" and "DocumentTraversal" implementation.

Note that when this checks names for legality, it uses an approximation of the XML rules, not the real ones. Specifically, it uses Unicode rules, with sufficient tweaks to pass a majority of basic XML conformance tests. (The huge XML character tables are hairy to implement.)

Author:
David Brownell

Constructor Summary

DomDocument()

Constructs a Document node, associating it with an instance of the DomImpl class.

DomDocument(DOMImplementation impl)

Constructs a Document node, associating it with the specified implementation.

Method Summary

Node

appendChild(Node newChild)

DOM L1 Appends the specified node to this node's list of children, enforcing the constraints that there be only one root element and one document type child.

Attr

createAttribute(java.lang.String name)

DOM L1 Returns a newly created attribute with the specified name.

Attr

createAttributeNS(java.lang.String namespaceURI, java.lang.String name)

DOM L2 Returns a newly created attribute with the specified name and namespace information.

CDATASection

createCDATASection(java.lang.String value)

DOM L1 Returns a newly created CDATA section node with the specified value.

CDATASection

createCDATASection(char buf[] , int off, int len)

Returns a newly created CDATA section node with the specified value.

Comment

createComment(java.lang.String value)

DOM L1 Returns a newly created comment node with the specified value.

DocumentFragment

createDocumentFragment()

DOM L1 Returns a newly created document fragment.

Element

createElement(java.lang.String name)

DOM L1 Returns a newly created element with the specified name.

Element

createElementNS(java.lang.String namespaceURI, java.lang.String name)

DOM L2 Returns a newly created element with the specified name and namespace information.

EntityReference

createEntityReference(java.lang.String name)

DOM L1 Returns a newly created reference to the specified entity.

NodeIterator

createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean expandEntities)

DOM L2 (Traversal) Returns a newly created node iterator.

ProcessingInstruction

createProcessingInstruction(java.lang.String target, java.lang.String data)

DOM L1 Returns a newly created processing instruction.

Text

createTextNode(java.lang.String value)

DOM L1 Returns a newly created text node with the specified value.

Text

createTextNode(char buf[] , int off, int len)

Returns a newly created text node with the specified value.

TreeWalker

createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion)

DocumentType

getDoctype()

DOM L1 Returns the document's DocumentType, or null.

Element

getDocumentElement()

DOM L1 Returns the document's root element, or null.

Element

getElementById(java.lang.String id)

DOM L1 (relocated in DOM L2) Returns the element with the specified "ID" attribute, or null.

DOMImplementation

getImplementation()

DOM L1 Returns the document's DOMImplementation.

java.lang.String

getNodeName()

DOM L1 Returns the constant "#document".

short

getNodeType()

DOM L1 Returns the constant DOCUMENT_NODE.

Node

importNode(Node copiedNode, boolean deep)

DOM L2 Makes a copy of the specified node, with all nodes "owned" by this document and with children optionally copied.

Node

insertBefore(Node newChild, Node refChild)

DOM L1 Inserts the specified node in this node's list of children, enforcing the constraints that there be only one root element and one document type child.

boolean

isCheckingCharacters()

Returns true if certain expensive checks are performed.

Node

replaceChild(Node newChild, Node refChild)

DOM L1 Replaces the specified node in this node's list of children, enforcing the constraints that there be only one root element and one document type child.

void

setCheckingCharacters(boolean value)

Controls whether certain expensive checks, duplicating those that conformant XML parsers must perform, are made.

static void

verifyXmlName(java.lang.String name)

Throws a DOM exception if the specified name is not a legal XML 1.0 name.

Constructor Details

DomDocument

public DomDocument()

Constructs a Document node, associating it with an instance of the DomImpl class.

Note that this constructor disables character checking. It is normally used when connecting a DOM to an XML parser, and duplicating such checks is undesirable. When used for purposes other than connecting to a parser, you should re-enable that checking.

See Also:
setCheckingCharacters

DomDocument

protected DomDocument(DOMImplementation impl)

Constructs a Document node, associating it with the specified implementation. This should only be used in conjunction with a specialized implementation; it will normally be called by that implementation.

Parameters:
impl
See Also:
DomImpl
setCheckingCharacters

Method Details

appendChild

public Node appendChild(Node newChild)

DOM L1 Appends the specified node to this node's list of children, enforcing the constraints that there be only one root element and one document type child.

Parameters:
newChild

createAttribute

public Attr createAttribute(java.lang.String name)

DOM L1 Returns a newly created attribute with the specified name.

Parameters:
name

createAttributeNS

public Attr createAttributeNS(java.lang.String namespaceURI, java.lang.String name)

DOM L2 Returns a newly created attribute with the specified name and namespace information.

Parameters:
namespaceURI
name

createCDATASection

public CDATASection createCDATASection(char buf[] , int off, int len)

Returns a newly created CDATA section node with the specified value.

Parameters:
off
len

createCDATASection

public CDATASection createCDATASection(java.lang.String value)

DOM L1 Returns a newly created CDATA section node with the specified value.

Parameters:
value

createComment

public Comment createComment(java.lang.String value)

DOM L1 Returns a newly created comment node with the specified value.

Parameters:
value

createDocumentFragment

public DocumentFragment createDocumentFragment()

DOM L1 Returns a newly created document fragment.


createElement

public Element createElement(java.lang.String name)

DOM L1 Returns a newly created element with the specified name.

Parameters:
name

createElementNS

public Element createElementNS(java.lang.String namespaceURI, java.lang.String name)

DOM L2 Returns a newly created element with the specified name and namespace information.

Parameters:
namespaceURI
name

createEntityReference

public EntityReference createEntityReference(java.lang.String name)

DOM L1 Returns a newly created reference to the specified entity. The caller should populate this with the appropriate children and then mark it as readonly.

Parameters:
name
See Also:
DomNode.makeReadonly

createNodeIterator

public NodeIterator createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean expandEntities)

DOM L2 (Traversal) Returns a newly created node iterator. Don't forget to detach this iterator when you're done using it!

Parameters:
root
whatToShow
filter
expandEntities
See Also:
DomIterator

createProcessingInstruction

public ProcessingInstruction createProcessingInstruction(java.lang.String target, java.lang.String data)

DOM L1 Returns a newly created processing instruction.

Parameters:
target
data

createTextNode

public Text createTextNode(char buf[] , int off, int len)

Returns a newly created text node with the specified value.

Parameters:
off
len

createTextNode

public Text createTextNode(java.lang.String value)

DOM L1 Returns a newly created text node with the specified value.

Parameters:
value

createTreeWalker

public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion)

Parameters:
root
whatToShow
filter
entityReferenceExpansion

getDoctype

public final DocumentType getDoctype()

DOM L1 Returns the document's DocumentType, or null.


getDocumentElement

public final Element getDocumentElement()

DOM L1 Returns the document's root element, or null.


getElementById

public Element getElementById(java.lang.String id)

DOM L1 (relocated in DOM L2) Returns the element with the specified "ID" attribute, or null.

Returns null unless Consumer was used to populate internal DTD declaration information, using package-private APIs. If that internal DTD information is available, the document may be searched for the element with that ID.

Parameters:
id

getImplementation

public final DOMImplementation getImplementation()

DOM L1 Returns the document's DOMImplementation.


getNodeName

public final String getNodeName()

DOM L1 Returns the constant "#document".


getNodeType

public final short getNodeType()

DOM L1 Returns the constant DOCUMENT_NODE.


importNode

public Node importNode(Node copiedNode, boolean deep)

DOM L2 Makes a copy of the specified node, with all nodes "owned" by this document and with children optionally copied. This type of standard utility has become, well, a standard utility.

Note that EntityReference nodes created through this method (either directly, or recursively) never have children, and that there is no portable way to associate them with such children.

Note also that there is no requirement that the specified node be associated with a different document. This differs from the cloneNode operation in that the node itself is not given an opportunity to participate, so that any information managed by node subclasses will be lost.

Parameters:
copiedNode
deep

insertBefore

public Node insertBefore(Node newChild, Node refChild)

DOM L1 Inserts the specified node in this node's list of children, enforcing the constraints that there be only one root element and one document type child.

Parameters:
newChild
refChild

isCheckingCharacters

public final boolean isCheckingCharacters()

Returns true if certain expensive checks are performed. Those checks are intended to reject illegal names, and characters that are illegal as XML characters.


replaceChild

public Node replaceChild(Node newChild, Node refChild)

DOM L1 Replaces the specified node in this node's list of children, enforcing the constraints that there be only one root element and one document type child.

Parameters:
newChild
refChild

setCheckingCharacters

public final void setCheckingCharacters(boolean value)

Controls whether certain expensive checks, duplicating those that conformant XML parsers must perform, are made.

Parameters:
value

verifyXmlName

public static void verifyXmlName(java.lang.String name)

Throws a DOM exception if the specified name is not a legal XML 1.0 name. Actually this uses a very similar set of rules, closer to Unicode rules than to the rules encoded in the large table at the end of the XML 1.0 specification.

Parameters:
name
Throws:
- INVALID_CHARACTER_ERR if the name isn't legal as an XML name.