<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">// Copyright (c) 1998 by W3C
//
// DOM is a trademark of W3C
// The DOM level 1 specification, from which this
// source is derived, is copyright by W3C.
// See: http://www.w3.org/TR/REC-DOM-Level-1/
//

package org.w3c.dom;

/**
&lt;P&gt;The 
  &lt;code&gt;Node&lt;/code&gt; interface is the primary datatype for the entire Document Object Model. It represents a single node in the document tree. While all objects implementing the 
  &lt;code&gt;Node&lt;/code&gt; interface expose methods for dealing with children, not all objects implementing the 
  &lt;code&gt;Node&lt;/code&gt;
 interface may have children. For example, 
  &lt;code&gt;Text&lt;/code&gt;
 nodes may not have children, and adding children to such nodes results in a 
  &lt;code&gt;DOMException&lt;/code&gt; being raised. 

&lt;P&gt;The attributes 
  &lt;code&gt;nodeName&lt;/code&gt;, 
  &lt;code&gt;nodeValue&lt;/code&gt;  and 
  &lt;code&gt;attributes&lt;/code&gt; are included as a mechanism to get at node information without casting down to the specific derived interface. In cases where there is no obvious mapping of these attributes for a specific 
  &lt;code&gt;nodeType&lt;/code&gt; (e.g., 
  &lt;code&gt;nodeValue&lt;/code&gt; for an Element or 
  &lt;code&gt;attributes&lt;/code&gt;  for a Comment), this returns 
  &lt;code&gt;null&lt;/code&gt;. Note that the specialized interfaces may contain additional and more convenient mechanisms to get and set the relevant information.


&lt;P&gt;The values of 
  &lt;code&gt;nodeName&lt;/code&gt;, 
  &lt;code&gt;nodeValue&lt;/code&gt;, and 
  &lt;code&gt;attributes&lt;/code&gt; vary according to the node type as follows: 
  &lt;center&gt;&lt;table border="1"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
	&lt;td BGCOLOR="#ccccff"&gt;Node Type&lt;/td&gt;
	&lt;td BGCOLOR="#ccccff"&gt;nodeName&lt;/td&gt;
	&lt;td BGCOLOR="#ccccff"&gt;nodeValue&lt;/td&gt;
	&lt;td BGCOLOR="#ccccff"&gt;attributes&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;Element&lt;/td&gt;
	&lt;td&gt;tagName&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
	&lt;td&gt;NamedNodeMap&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;Attr&lt;/td&gt;
	&lt;td&gt;name of attribute&lt;/td&gt;
	&lt;td&gt;value of attribute&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;Text&lt;/td&gt;
	&lt;td&gt;#text&lt;/td&gt;
	&lt;td&gt;content of the text node&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;CDATASection&lt;/td&gt;
	&lt;td&gt;#cdata-section&lt;/td&gt;
	&lt;td&gt;content of the CDATA Section&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;EntityReference&lt;/td&gt;
	&lt;td&gt;name of entity referenced&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;Entity&lt;/td&gt;
	&lt;td&gt;entity name&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;ProcessingInstruction&lt;/td&gt;
	&lt;td&gt;target&lt;/td&gt;
	&lt;td&gt;entire content excluding the target&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;Comment&lt;/td&gt;
	&lt;td&gt;#comment&lt;/td&gt;
	&lt;td&gt;content of the comment&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;Document&lt;/td&gt;
	&lt;td&gt;#document&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;DocumentType&lt;/td&gt;
	&lt;td&gt;document type name&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;DocumentFragment&lt;/td&gt;
	&lt;td&gt;#document-fragment&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
	&lt;td&gt;Notation&lt;/td&gt;
	&lt;td&gt;notation name&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
	&lt;td&gt;null&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;&lt;/center&gt;

 

&lt;HR&gt;

&lt;!-- ======== PROPERTY SUMMARY ======== --&gt;

&lt;A NAME="property_summary"&gt;&lt;!-- --&gt;&lt;/A&gt;
&lt;TABLE BORDER=1 CELLPADDING=3 CELLSPACING=0 WIDTH=100%&gt;
&lt;TR BGCOLOR=#CCCCFF ID=TableHeadingColor&gt;
&lt;TD COLSPAN=3&gt;&lt;FONT SIZE=+2&gt;&lt;B&gt;Property Summary&lt;/B&gt;
&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-nodeName&gt;&lt;CODE&gt;&amp;nbsp;nodeName&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getNodeName()'&gt;getNodeName&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;The name of this node, depending on its type; see the table above. 
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-nodeValue&gt;&lt;CODE&gt;&amp;nbsp;nodeValue&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getNodeValue()'&gt;getNodeValue&lt;/a&gt;
&lt;a href='#setNodeValue(java.lang.String)'&gt;setNodeValue&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;The value of this node, depending on its type; see the table above.
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-nodeType&gt;&lt;CODE&gt;&amp;nbsp;nodeType&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getNodeType()'&gt;getNodeType&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;A code representing the type of the underlying object, as defined above.
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-parentNode&gt;&lt;CODE&gt;&amp;nbsp;parentNode&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getParentNode()'&gt;getParentNode&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;The parent of this node. All nodes, except 
  &lt;code&gt;Document&lt;/code&gt;, 
  &lt;code&gt;DocumentFragment&lt;/code&gt;, and 
  &lt;code&gt;Attr&lt;/code&gt; may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is 
  &lt;code&gt;null&lt;/code&gt;.

&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-childNodes&gt;&lt;CODE&gt;&amp;nbsp;childNodes&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getChildNodes()'&gt;getChildNodes&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;A 
  &lt;code&gt;NodeList&lt;/code&gt; that contains all children of this node. If there are no children, this is a 
  &lt;code&gt;NodeList&lt;/code&gt; containing no nodes. The content of the returned 
  &lt;code&gt;NodeList&lt;/code&gt; is "live" in the sense that, for instance, changes to the children of the node object that it was created from are immediately reflected in the nodes returned by the 
  &lt;code&gt;NodeList&lt;/code&gt; accessors; it is not a static snapshot of the content of the node. This is true for every 
  &lt;code&gt;NodeList&lt;/code&gt;, including the ones returned by the 
  &lt;code&gt;getElementsByTagName&lt;/code&gt; method.

&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-firstChild&gt;&lt;CODE&gt;&amp;nbsp;firstChild&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getFirstChild()'&gt;getFirstChild&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;The first child of this node. If there is no such node, this returns 
  &lt;code&gt;null&lt;/code&gt;.

&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-lastChild&gt;&lt;CODE&gt;&amp;nbsp;lastChild&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getLastChild()'&gt;getLastChild&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;The last child of this node. If there is no such node, this returns 
  &lt;code&gt;null&lt;/code&gt;.

&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-previousSibling&gt;&lt;CODE&gt;&amp;nbsp;previousSibling&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getPreviousSibling()'&gt;getPreviousSibling&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;The node immediately preceding this node. If there is no such node, this returns 
  &lt;code&gt;null&lt;/code&gt;.

&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-nextSibling&gt;&lt;CODE&gt;&amp;nbsp;nextSibling&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getNextSibling()'&gt;getNextSibling&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;The node immediately following this node. If there is no such node, this returns 
  &lt;code&gt;null&lt;/code&gt;.

&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-attributes&gt;&lt;CODE&gt;&amp;nbsp;attributes&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getAttributes()'&gt;getAttributes&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;A 
  &lt;code&gt;NamedNodeMap&lt;/code&gt; containing the attributes of this node (if it is an 
  &lt;code&gt;Element&lt;/code&gt;) or 
  &lt;code&gt;null&lt;/code&gt; otherwise. 

&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;&lt;TD ALIGN=right VALIGN=top WIDTH=1%&gt;
&lt;a name=att-ownerDocument&gt;&lt;CODE&gt;&amp;nbsp;ownerDocument&lt;/CODE&gt;&lt;/a&gt;&lt;/TD&gt;
&lt;TD ALIGN=center VALIGN=top WIDTH=1%&gt;
&lt;a href='#getOwnerDocument()'&gt;getOwnerDocument&lt;/a&gt;
&lt;/TD&gt;
&lt;TD&gt;&lt;P&gt;The 
  &lt;code&gt;Document&lt;/code&gt; object associated with this node. This is also the 
  &lt;code&gt;Document&lt;/code&gt; object used to create new nodes. When this node is a 
  &lt;code&gt;Document&lt;/code&gt; this is 
  &lt;code&gt;null&lt;/code&gt;.

&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TABLE&gt;
&amp;nbsp;
*/
public interface Node
{
/**
The node is a &lt;A HREF='Element.html'&gt;&lt;CODE&gt;Element&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short ELEMENT_NODE = 1;

/**
The node is an &lt;A HREF='Attr.html'&gt;&lt;CODE&gt;Attr&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short ATTRIBUTE_NODE = 2;

/**
The node is a &lt;A HREF='Text.html'&gt;&lt;CODE&gt;Text&lt;/CODE&gt;&lt;/A&gt; node.
*/
public static final short TEXT_NODE = 3;

/**
The node is a &lt;A HREF='CDATASection.html'&gt;&lt;CODE&gt;CDATASection&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short CDATA_SECTION_NODE = 4;

/**
The node is an &lt;A HREF='EntityReference.html'&gt;&lt;CODE&gt;EntityReference&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short ENTITY_REFERENCE_NODE = 5;

/**
The node is an &lt;A HREF='Entity.html'&gt;&lt;CODE&gt;Entity&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short ENTITY_NODE = 6;

/**
The node is a &lt;A HREF='ProcessingInstruction.html'&gt;&lt;CODE&gt;ProcessingInstruction&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short PROCESSING_INSTRUCTION_NODE = 7;

/**
The node is a &lt;A HREF='Comment.html'&gt;&lt;CODE&gt;Comment&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short COMMENT_NODE = 8;

/**
The node is a &lt;A HREF='Document.html'&gt;&lt;CODE&gt;Document&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short DOCUMENT_NODE = 9;

/**
The node is a &lt;A HREF='DocumentType.html'&gt;&lt;CODE&gt;DocumentType&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short DOCUMENT_TYPE_NODE = 10;

/**
The node is a &lt;A HREF='DocumentFragment.html'&gt;&lt;CODE&gt;DocumentFragment&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short DOCUMENT_FRAGMENT_NODE = 11;

/**
The node is a &lt;A HREF='Notation.html'&gt;&lt;CODE&gt;Notation&lt;/CODE&gt;&lt;/A&gt;.
*/
public static final short NOTATION_NODE = 12;

	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-nodeName&gt;nodeName&lt;/a&gt;&lt;/code&gt; property.
	*/
	String getNodeName ();


	/** Assigns the value of the &lt;code&gt;&lt;a href=#att-nodeValue&gt;nodeValue&lt;/a&gt;&lt;/code&gt; property.
	 * @exception DOMException &lt;P&gt;NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.

 */
	void setNodeValue (String nodeValue) throws DOMException;

	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-nodeValue&gt;nodeValue&lt;/a&gt;&lt;/code&gt; property.
	* @exception DOMException &lt;P&gt;DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a 
  &lt;code&gt;DOMString&lt;/code&gt; variable on the implementation platform.


 */
	String getNodeValue () throws DOMException;


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-nodeType&gt;nodeType&lt;/a&gt;&lt;/code&gt; property.
	*/
	short getNodeType ();


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-parentNode&gt;parentNode&lt;/a&gt;&lt;/code&gt; property.
	*/
	Node getParentNode ();


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-childNodes&gt;childNodes&lt;/a&gt;&lt;/code&gt; property.
	*/
	NodeList getChildNodes ();


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-firstChild&gt;firstChild&lt;/a&gt;&lt;/code&gt; property.
	*/
	Node getFirstChild ();


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-lastChild&gt;lastChild&lt;/a&gt;&lt;/code&gt; property.
	*/
	Node getLastChild ();


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-previousSibling&gt;previousSibling&lt;/a&gt;&lt;/code&gt; property.
	*/
	Node getPreviousSibling ();


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-nextSibling&gt;nextSibling&lt;/a&gt;&lt;/code&gt; property.
	*/
	Node getNextSibling ();


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-attributes&gt;attributes&lt;/a&gt;&lt;/code&gt; property.
	*/
	NamedNodeMap getAttributes ();


	/**
	 * Returns the value of the &lt;code&gt;&lt;a href=#att-ownerDocument&gt;ownerDocument&lt;/a&gt;&lt;/code&gt; property.
	*/
	Document getOwnerDocument ();


/**
&lt;P&gt;Inserts the node 
  &lt;code&gt;newChild&lt;/code&gt; before the existing child node 
  &lt;code&gt;refChild&lt;/code&gt;. If 
  &lt;code&gt;refChild&lt;/code&gt; is 
  &lt;code&gt;null&lt;/code&gt;, insert 
  &lt;code&gt;newChild&lt;/code&gt; at the end of the list of children.

&lt;P&gt;If 
  &lt;code&gt;newChild&lt;/code&gt; is a 
  &lt;code&gt;DocumentFragment&lt;/code&gt;
 object, all of its children are inserted, in the same order, before 
  &lt;code&gt;refChild&lt;/code&gt;. If the 
  &lt;code&gt;newChild&lt;/code&gt; is already in the tree, it is first removed.


@return The node being inserted.
@param newChild
The node to insert.
@param refChild
The reference node, i.e., the node before which the new node must be inserted.
@exception HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the &lt;code&gt;newChild&lt;/code&gt;
 node, or if the node to insert is one of this node's ancestors.&lt;P&gt;WRONG_DOCUMENT_ERR: Raised if 
  &lt;code&gt;newChild&lt;/code&gt; was created from a different document than the one that created this node.

&lt;P&gt;NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
&lt;P&gt;NOT_FOUND_ERR: Raised if 
  &lt;code&gt;refChild&lt;/code&gt; is not a child of this node.


*/
Node insertBefore (Node newChild, Node refChild) throws DOMException;

/**
&lt;P&gt;Replaces the child node 
  &lt;code&gt;oldChild&lt;/code&gt; with 
  &lt;code&gt;newChild&lt;/code&gt; in the list of children, and returns the 
  &lt;code&gt;oldChild&lt;/code&gt; node. If the 
  &lt;code&gt;newChild&lt;/code&gt; is already in the tree, it is first removed.


@return The node replaced.
@param newChild
The new node to put in the child list.
@param oldChild
The node being replaced in the list.
@exception HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the &lt;code&gt;newChild&lt;/code&gt;
 node, or it the node to put in is one of this node's ancestors.&lt;P&gt;WRONG_DOCUMENT_ERR: Raised if 
  &lt;code&gt;newChild&lt;/code&gt; was created from a different document than the one that created this node.

&lt;P&gt;NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
&lt;P&gt;NOT_FOUND_ERR: Raised if 
  &lt;code&gt;oldChild&lt;/code&gt; is not a child of this node.


*/
Node replaceChild (Node newChild, Node oldChild) throws DOMException;

/**
&lt;P&gt;Removes the child node indicated by 
  &lt;code&gt;oldChild&lt;/code&gt; from the list of children, and returns it.


@return The node removed.
@param oldChild
The node being removed.
@exception NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.&lt;P&gt;NOT_FOUND_ERR: Raised if 
  &lt;code&gt;oldChild&lt;/code&gt; is not a child of this node.


*/
Node removeChild (Node oldChild) throws DOMException;

/**
&lt;P&gt;Adds the node 
  &lt;code&gt;newChild&lt;/code&gt; to the end of the list of children of this node. If the 
  &lt;code&gt;newChild&lt;/code&gt; is already in the tree, it is first removed.


@return The node added.
@param newChild
The node to add.&lt;P&gt;If it is a 
  &lt;code&gt;DocumentFragment&lt;/code&gt;
 object, the entire contents of the document fragment are moved into the child list of this node


@exception HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the &lt;code&gt;newChild&lt;/code&gt;
 node, or if the node to append is one of this node's ancestors.&lt;P&gt;WRONG_DOCUMENT_ERR: Raised if 
  &lt;code&gt;newChild&lt;/code&gt; was created from a different document than the one that created this node.

&lt;P&gt;NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.

*/
Node appendChild (Node newChild) throws DOMException;

/**
&lt;P&gt; This is a convenience method to allow easy determination of whether a node has any children.

@return  &lt;code&gt;true&lt;/code&gt; if the node has any children, &lt;code&gt;false&lt;/code&gt; if the node has no children.
*/
boolean hasChildNodes ();

/**
&lt;P&gt;Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent (
  &lt;code&gt;parentNode&lt;/code&gt; returns 
  &lt;code&gt;null&lt;/code&gt;.).

&lt;P&gt;Cloning an 
  &lt;code&gt;Element&lt;/code&gt; copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child 
  &lt;code&gt;Text&lt;/code&gt; node. Cloning any other type of node simply returns a copy of this node. 


@return The duplicate node.
@param deep
If &lt;code&gt;true&lt;/code&gt;, recursively clone the subtree under the specified node; if &lt;code&gt;false&lt;/code&gt;, clone only the node itself (and its attributes, if it is an &lt;A HREF='Element.html'&gt;&lt;CODE&gt;Element&lt;/CODE&gt;&lt;/A&gt;). 
*/
Node cloneNode (boolean deep);

}
</pre></body></html>