You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by le...@locus.apache.org on 2000/10/02 23:58:45 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/domx Makefile DOMException.java

lehors      00/10/02 14:58:43

  Modified:    java/src/org/w3c/dom Attr.java CDATASection.java
                        CharacterData.java Comment.java DOMException.java
                        DOMImplementation.java Document.java
                        DocumentFragment.java DocumentType.java
                        Element.java Entity.java EntityReference.java
                        NamedNodeMap.java Node.java NodeList.java
                        Notation.java ProcessingInstruction.java Text.java
               java/src/org/w3c/dom/events DocumentEvent.java Event.java
                        EventException.java EventListener.java
                        EventTarget.java MutationEvent.java
               java/src/org/w3c/dom/traversal DocumentTraversal.java
                        NodeFilter.java NodeIterator.java TreeWalker.java
               java/src/org/apache/xerces/dom AttrImpl.java AttrNSImpl.java
                        AttributeMap.java CharacterDataImpl.java
                        ChildAndParentNode.java DOMImplementationImpl.java
                        DocumentImpl.java ElementImpl.java
                        ElementNSImpl.java Makefile NamedNodeMapImpl.java
                        NodeImpl.java NodeIteratorImpl.java
                        NotationImpl.java ParentNode.java RangeImpl.java
                        TextImpl.java
               java/src/org/apache/xerces/dom/events EventImpl.java
                        MutationEventImpl.java
               java/src/org/apache/xerces/domx Makefile
  Removed:     java/src/org/apache/xerces/dom DOMExceptionImpl.java
               java/src/org/apache/xerces/domx DOMException.java
  Log:
  updated to DOM Level 2 PR.
  changed code to use DOMException instead of DOMExceptionImpl,
  which is no longer needed
  
  Revision  Changes    Path
  1.4       +57 -51    xml-xerces/java/src/org/w3c/dom/Attr.java
  
  Index: Attr.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/Attr.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Attr.java	2000/02/22 00:14:57	1.3
  +++ Attr.java	2000/10/02 21:57:38	1.4
  @@ -6,8 +6,8 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
  @@ -16,90 +16,96 @@
    *  The <code>Attr</code> interface represents an attribute in an 
    * <code>Element</code> object. Typically the allowable values for the 
    * attribute are defined in a document type definition.
  - * <p><code>Attr</code> objects inherit the <code>Node</code>  interface, but 
  - * since they are not actually child nodes of the element  they describe, the 
  - * DOM does not consider them part of the document  tree.  Thus, the 
  - * <code>Node</code> attributes <code>parentNode</code> ,  
  - * <code>previousSibling</code> , and <code>nextSibling</code> have a  
  - * <code>null</code> value for <code>Attr</code> objects. The DOM takes the  
  - * view that attributes are properties of elements rather than having a  
  - * separate identity from the elements they are associated with;  this should 
  + * <p><code>Attr</code> objects inherit the <code>Node</code> interface, but 
  + * since they are not actually child nodes of the element they describe, the 
  + * DOM does not consider them part of the document tree. Thus, the 
  + * <code>Node</code> attributes <code>parentNode</code>, 
  + * <code>previousSibling</code>, and <code>nextSibling</code> have a 
  + * <code>null</code> value for <code>Attr</code> objects. The DOM takes the 
  + * view that attributes are properties of elements rather than having a 
  + * separate identity from the elements they are associated with; this should 
    * make it more efficient to implement such features as default attributes 
  - * associated with all elements of a  given type.  Furthermore, 
  + * associated with all elements of a given type. Furthermore, 
    * <code>Attr</code> nodes may not be immediate children of a 
  - * <code>DocumentFragment</code> . However, they can be associated with 
  - * <code>Element</code> nodes contained within a <code>DocumentFragment</code>
  - *  . In short, users and implementors of the DOM need to be aware that  
  - * <code>Attr</code> nodes have some things in  common with other objects 
  - * inheriting the <code>Node</code> interface,  but they also are quite 
  - * distinct.
  - * <p> The attribute's effective value is determined as follows: if this  
  - * attribute has been explicitly assigned any value, that value is the  
  - * attribute's effective value; otherwise, if there is a declaration for  
  - * this attribute, and that declaration includes a default value, then  that 
  - * default value is the attribute's effective value; otherwise, the  
  - * attribute does not exist on this element in the structure model until  it 
  - * has been explicitly added.  Note that the <code>nodeValue</code>  
  - * attribute on the <code>Attr</code> instance can also be used to retrieve 
  - * the string version of the attribute's value(s). 
  - * <p> In XML, where the value of an attribute can contain entity references, 
  + * <code>DocumentFragment</code>. However, they can be associated with 
  + * <code>Element</code> nodes contained within a 
  + * <code>DocumentFragment</code>. In short, users and implementors of the 
  + * DOM need to be aware that <code>Attr</code> nodes have some things in 
  + * common with other objects inheriting the <code>Node</code> interface, but 
  + * they also are quite distinct.
  + * <p> The attribute's effective value is determined as follows: if this 
  + * attribute has been explicitly assigned any value, that value is the 
  + * attribute's effective value; otherwise, if there is a declaration for 
  + * this attribute, and that declaration includes a default value, then that 
  + * default value is the attribute's effective value; otherwise, the 
  + * attribute does not exist on this element in the structure model until it 
  + * has been explicitly added. Note that the <code>nodeValue</code> attribute 
  + * on the <code>Attr</code> instance can also be used to retrieve the string 
  + * version of the attribute's value(s). 
  + * <p>In XML, where the value of an attribute can contain entity references, 
    * the child nodes of the <code>Attr</code> node provide a representation in 
    * which entity references are not expanded. These child nodes may be either 
  - * <code>Text</code> or <code>EntityReference</code> nodes. Because the 
  - * attribute type may be unknown, there are no tokenized attribute values. 
  + * <code>Text</code> or <code>EntityReference</code> nodes. Because the DOM 
  + * Core is not aware of attribute types, it treats all attribute values as 
  + * simple strings, even if the DTD or schema declares them as having 
  + * tokenized types. 
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface Attr extends Node {
       /**
  -     *  Returns the name of this attribute. 
  +     * Returns the name of this attribute. 
        */
       public String getName();
   
       /**
  -     *  If this attribute was explicitly given a value in the original 
  -     * document, this is <code>true</code> ; otherwise, it is 
  -     * <code>false</code> . Note that the implementation is in charge of this 
  +     * If this attribute was explicitly given a value in the original 
  +     * document, this is <code>true</code>; otherwise, it is 
  +     * <code>false</code>. Note that the implementation is in charge of this 
        * attribute, not the user. If the user changes the value of the 
        * attribute (even if it ends up having the same value as the default 
        * value) then the <code>specified</code> flag is automatically flipped 
  -     * to <code>true</code> .  To re-specify the attribute as the default 
  +     * to <code>true</code>. To re-specify the attribute as the default 
        * value from the DTD, the user must delete the attribute. The 
        * implementation will then make a new attribute available with 
  -     * <code>specified</code> set to <code>false</code> and the default value 
  -     * (if one exists).
  -     * <br> In summary: If the attribute has an assigned value in the document 
  -     * then  <code>specified</code> is <code>true</code> , and the value is 
  -     * the  assigned value. If the attribute has no assigned value in the 
  -     * document and has  a default value in the DTD, then 
  -     * <code>specified</code> is <code>false</code> ,  and the value is the 
  +     * <code>specified</code> set to <code>false</code> and the default 
  +     * value (if one exists).
  +     * <br>In summary:  If the attribute has an assigned value in the document 
  +     * then <code>specified</code> is <code>true</code>, and the value is 
  +     * the assigned value.  If the attribute has no assigned value in the 
  +     * document and has a default value in the DTD, then 
  +     * <code>specified</code> is <code>false</code>, and the value is the 
        * default value in the DTD. If the attribute has no assigned value in 
  -     * the document and has  a value of #IMPLIED in the DTD, then the  
  -     * attribute does not appear  in the structure model of the document.
  +     * the document and has a value of #IMPLIED in the DTD, then the 
  +     * attribute does not appear in the structure model of the document. If 
  +     * the <code>ownerElement</code> attribute is <code>null</code> (i.e. 
  +     * because it was just created or was set to <code>null</code> by the 
  +     * various removal and cloning operations) <code>specified</code> is 
  +     * <code>true</code>. 
        */
       public boolean getSpecified();
   
       /**
  -     *  On retrieval, the value of the attribute is returned as a string. 
  +     * On retrieval, the value of the attribute is returned as a string. 
        * Character and general entity references are replaced with their 
  -     * values. See also the method <code>getAttribute</code> on the  
  +     * values. See also the method <code>getAttribute</code> on the 
        * <code>Element</code> interface.
  -     * <br> On setting, this creates a <code>Text</code> node with the unparsed
  -     *  contents of the string. I.e. any characters that an XML processor 
  +     * <br>On setting, this creates a <code>Text</code> node with the unparsed 
  +     * contents of the string. I.e. any characters that an XML processor 
        * would recognize as markup are instead treated as literal text. See 
  -     * also the method <code>setAttribute</code> on the  <code>Element</code> 
  +     * also the method <code>setAttribute</code> on the <code>Element</code> 
        * interface.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
        */
       public String getValue();
       public void setValue(String value)
                               throws DOMException;
   
       /**
  -     *  The <code>Element</code> node this attribute is attached to or 
  +     * The <code>Element</code> node this attribute is attached to or 
        * <code>null</code> if this attribute is not in use.
        * @since DOM Level 2
        */
       public Element getOwnerElement();
   
   }
  -
  
  
  
  1.4       +17 -17    xml-xerces/java/src/org/w3c/dom/CDATASection.java
  
  Index: CDATASection.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/CDATASection.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CDATASection.java	2000/02/22 00:14:57	1.3
  +++ CDATASection.java	2000/10/02 21:57:39	1.4
  @@ -6,43 +6,43 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  CDATA sections are used to escape blocks of text containing  characters 
  - * that would otherwise be regarded as markup. The only  delimiter that is 
  - * recognized in a CDATA section is the "]]&gt;" string  that ends the CDATA 
  - * section. CDATA sections cannot be  nested. Their primary purpose is for 
  + * CDATA sections are used to escape blocks of text containing characters that 
  + * would otherwise be regarded as markup. The only delimiter that is 
  + * recognized in a CDATA section is the "]]&gt;" string that ends the CDATA 
  + * section. CDATA sections cannot be nested. Their primary purpose is for 
    * including material such as XML fragments, without needing to escape all 
    * the delimiters.
  - * <p> The <code>DOMString</code> attribute of the <code>Text</code> node 
  - * holds the text that is contained by the CDATA section. Note that this  may 
  + * <p>The <code>DOMString</code> attribute of the <code>Text</code> node holds 
  + * the text that is contained by the CDATA section. Note that this may 
    * contain characters that need to be escaped outside of CDATA sections and 
    * that, depending on the character encoding ("charset") chosen for 
    * serialization, it may be impossible to write out some characters as part 
    * of a CDATA section. 
    * <p> The <code>CDATASection</code> interface inherits from the 
    * <code>CharacterData</code> interface through the <code>Text</code> 
  - * interface. Adjacent <code>CDATASections</code> nodes are not merged by use 
  - * of the <code>normalize</code> method of the <code>Element</code> interface.
  - *  Because no markup is recognized within a <code>CDATASection</code> , 
  + * interface. Adjacent <code>CDATASection</code> nodes are not merged by use 
  + * of the <code>normalize</code> method of the <code>Node</code> interface.
  + * Because no markup is recognized within a <code>CDATASection</code>, 
    * character numeric references cannot be used as an escape mechanism when 
    * serializing. Therefore, action needs to be taken when serializing a 
    * <code>CDATASection</code> with a character encoding where some of the 
    * contained characters cannot be represented. Failure to do so would not 
  - * produce well-formed XML. One potential solution in the serialization 
  + * produce well-formed XML.One potential solution in the serialization 
    * process is to end the CDATA section before the character, output the 
  - * character using a  character reference or entity reference, and open a new 
  - * CDATA section  for any further characters in the text node. Note, however, 
  - * that some  code conversion libraries at the time of writing do not return 
  - * an error or exception when a character is missing from the encoding,  
  + * character using a character reference or entity reference, and open a new 
  + * CDATA section for any further characters in the text node. Note, however, 
  + * that some code conversion libraries at the time of writing do not return 
  + * an error or exception when a character is missing from the encoding, 
    * making the task of ensuring that data is not corrupted on serialization 
    * more difficult.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface CDATASection extends Text {
   }
  -
  
  
  
  1.4       +58 -59    xml-xerces/java/src/org/w3c/dom/CharacterData.java
  
  Index: CharacterData.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/CharacterData.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CharacterData.java	2000/02/22 00:14:57	1.3
  +++ CharacterData.java	2000/10/02 21:57:39	1.4
  @@ -6,135 +6,135 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  The <code>CharacterData</code> interface extends Node with a set of 
  - * attributes and methods for accessing character data in the DOM.  For 
  + * The <code>CharacterData</code> interface extends Node with a set of 
  + * attributes and methods for accessing character data in the DOM. For 
    * clarity this set is defined here rather than on each object that uses 
    * these attributes and methods. No DOM objects correspond directly to 
  - * <code>CharacterData</code> , though <code>Text</code> and others do 
  + * <code>CharacterData</code>, though <code>Text</code> and others do 
    * inherit the interface from it. All <code>offsets</code> in this interface 
  - * start from 0.
  - * <p> As explained in the <code>DOMString</code> interface, text strings in 
  - * the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units.  In 
  - * the following, the term  16-bit units is used whenever necessary to 
  + * start from <code>0</code>.
  + * <p>As explained in the <code>DOMString</code> interface, text strings in 
  + * the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In 
  + * the following, the term 16-bit units is used whenever necessary to 
    * indicate that indexing on CharacterData is done in 16-bit units.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface CharacterData extends Node {
       /**
  -     *  The character data of the node that implements this interface. The DOM 
  -     * implementation may not put arbitrary limits on the amount of data that 
  -     * may be stored in a  <code>CharacterData</code> node. However, 
  -     * implementation limits may  mean that the entirety of a node's data may 
  -     * not fit into a single <code>DOMString</code> . In such cases, the user 
  +     * The character data of the node that implements this interface. The DOM 
  +     * implementation may not put arbitrary limits on the amount of data 
  +     * that may be stored in a <code>CharacterData</code> node. However, 
  +     * implementation limits may mean that the entirety of a node's data may 
  +     * not fit into a single <code>DOMString</code>. In such cases, the user 
        * may call <code>substringData</code> to retrieve the data in 
        * appropriately sized pieces.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
        * @exception DOMException
  -     *    DOMSTRING_SIZE_ERR: Raised when it would return more characters 
  -     *   than fit in a <code>DOMString</code> variable on the implementation 
  +     *   DOMSTRING_SIZE_ERR: Raised when it would return more characters than 
  +     *   fit in a <code>DOMString</code> variable on the implementation 
        *   platform.
        */
       public String getData()
  -                                  throws DOMException;
  +                            throws DOMException;
       public void setData(String data)
  -                                  throws DOMException;
  +                            throws DOMException;
   
       /**
  -     *  The number of  16-bit units that are available through 
  -     * <code>data</code> and the <code>substringData</code> method below.  
  -     * This may have the value zero, i.e., <code>CharacterData</code> nodes 
  -     * may be empty.
  +     * The number of 16-bit units that are available through <code>data</code> 
  +     * and the <code>substringData</code> method below. This may have the 
  +     * value zero, i.e., <code>CharacterData</code> nodes may be empty.
        */
       public int getLength();
   
       /**
  -     *  Extracts a range of data from the node.
  -     * @param offset  Start offset of substring to extract.
  -     * @param count  The number of 16-bit units to extract.
  -     * @return  The specified substring. If the sum of <code>offset</code> and 
  -     *   <code>count</code> exceeds the <code>length</code> , then all 16-bit 
  +     * Extracts a range of data from the node.
  +     * @param offsetStart offset of substring to extract.
  +     * @param countThe number of 16-bit units to extract.
  +     * @return The specified substring. If the sum of <code>offset</code> and 
  +     *   <code>count</code> exceeds the <code>length</code>, then all 16-bit 
        *   units to the end of the data are returned.
        * @exception DOMException
  -     *    INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
  +     *   INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
        *   negative or greater than the number of 16-bit units in 
  -     *   <code>data</code> , or if the specified <code>count</code> is 
  +     *   <code>data</code>, or if the specified <code>count</code> is 
        *   negative.
  -     *   <br> DOMSTRING_SIZE_ERR: Raised if the specified range of text does 
  -     *   not fit into a <code>DOMString</code> .
  +     *   <br>DOMSTRING_SIZE_ERR: Raised if the specified range of text does 
  +     *   not fit into a <code>DOMString</code>.
        */
       public String substringData(int offset, 
                                   int count)
                                   throws DOMException;
   
       /**
  -     *  Append the string to the end of the character data of the node. Upon 
  +     * Append the string to the end of the character data of the node. Upon 
        * success, <code>data</code> provides access to the concatenation of 
        * <code>data</code> and the <code>DOMString</code> specified.
  -     * @param arg  The <code>DOMString</code> to append.
  +     * @param argThe <code>DOMString</code> to append.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        */
       public void appendData(String arg)
                              throws DOMException;
   
       /**
  -     *  Insert a string at the specified character offset.
  -     * @param offset  The character offset at which to insert.
  -     * @param arg  The <code>DOMString</code> to insert.
  +     * Insert a string at the specified 16-bit unit offset.
  +     * @param offsetThe character offset at which to insert.
  +     * @param argThe <code>DOMString</code> to insert.
        * @exception DOMException
  -     *    INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
  +     *   INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
        *   negative or greater than the number of 16-bit units in 
  -     *   <code>data</code> .
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <code>data</code>.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        */
       public void insertData(int offset, 
                              String arg)
                              throws DOMException;
   
       /**
  -     *  Remove a range of  16-bit units from the node. Upon success, 
  +     * Remove a range of 16-bit units from the node. Upon success, 
        * <code>data</code> and <code>length</code> reflect the change.
  -     * @param offset  The offset from which to start removing.
  -     * @param count  The number of 16-bit units to delete. If the sum of 
  +     * @param offsetThe offset from which to start removing.
  +     * @param countThe number of 16-bit units to delete. If the sum of 
        *   <code>offset</code> and <code>count</code> exceeds 
        *   <code>length</code> then all 16-bit units from <code>offset</code> 
        *   to the end of the data are deleted.
        * @exception DOMException
  -     *    INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
  +     *   INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
        *   negative or greater than the number of 16-bit units in 
  -     *   <code>data</code> , or if the specified <code>count</code> is 
  +     *   <code>data</code>, or if the specified <code>count</code> is 
        *   negative.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        */
       public void deleteData(int offset, 
                              int count)
                              throws DOMException;
   
       /**
  -     *  Replace the characters starting at the specified  16-bit unit offset 
  +     * Replace the characters starting at the specified 16-bit unit offset 
        * with the specified string.
  -     * @param offset  The offset from which to start replacing.
  -     * @param count  The number of 16-bit units to replace. If the sum of 
  +     * @param offsetThe offset from which to start replacing.
  +     * @param countThe number of 16-bit units to replace. If the sum of 
        *   <code>offset</code> and <code>count</code> exceeds 
  -     *   <code>length</code> , then all 16-bit units to the end of the data 
  -     *   are replaced; (i.e., the effect is the same as a <code>remove</code> 
  -     *   method call with the same range, followed by an <code>append</code> 
  -     *   method invocation).
  -     * @param arg  The <code>DOMString</code> with which the range must be 
  +     *   <code>length</code>, then all 16-bit units to the end of the data 
  +     *   are replaced; (i.e., the effect is the same as a <code>remove</code>
  +     *    method call with the same range, followed by an <code>append</code>
  +     *    method invocation).
  +     * @param argThe <code>DOMString</code> with which the range must be 
        *   replaced.
        * @exception DOMException
  -     *    INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
  +     *   INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is 
        *   negative or greater than the number of 16-bit units in 
  -     *   <code>data</code> , or if the specified <code>count</code> is 
  +     *   <code>data</code>, or if the specified <code>count</code> is 
        *   negative.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        */
       public void replaceData(int offset, 
                               int count, 
  @@ -142,4 +142,3 @@
                               throws DOMException;
   
   }
  -
  
  
  
  1.4       +7 -7      xml-xerces/java/src/org/w3c/dom/Comment.java
  
  Index: Comment.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/Comment.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Comment.java	2000/02/22 00:14:57	1.3
  +++ Comment.java	2000/10/02 21:57:40	1.4
  @@ -6,19 +6,19 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  This interface inherits from <code>CharacterData</code> and represents the 
  + * This interface inherits from <code>CharacterData</code> and represents the 
    * content of a comment, i.e., all the characters between the starting '
  - * <code>&lt;!--</code> ' and ending '<code>--&gt;</code> '. Note that this 
  - * is the definition of a comment in XML, and, in practice, HTML, although 
  - * some HTML tools may implement the full SGML comment structure.
  + * <code>&lt;!--</code>' and ending '<code>--&gt;</code>'. Note that this is 
  + * the definition of a comment in XML, and, in practice, HTML, although some 
  + * HTML tools may implement the full SGML comment structure.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface Comment extends CharacterData {
   }
  -
  
  
  
  1.5       +70 -25    xml-xerces/java/src/org/w3c/dom/DOMException.java
  
  Index: DOMException.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/DOMException.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DOMException.java	2000/02/22 00:14:57	1.4
  +++ DOMException.java	2000/10/02 21:57:40	1.5
  @@ -6,27 +6,28 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  DOM operations only raise exceptions in "exceptional" circumstances, 
  - * i.e., when an operation is impossible to perform (either for logical 
  - * reasons, because data is lost, or  because the implementation has become 
  - * unstable). In general, DOM methods return specific error values in ordinary
  - *  processing situations, such as out-of-bound errors when using 
  - * <code>NodeList</code> .  
  - * <p> Implementations may raise other exceptions under other circumstances. 
  - * For example, implementations may raise an implementation-dependent  
  + * DOM operations only raise exceptions in "exceptional" circumstances, i.e., 
  + * when an operation is impossible to perform (either for logical reasons, 
  + * because data is lost, or because the implementation has become unstable). 
  + * In general, DOM methods return specific error values in ordinary 
  + * processing situations, such as out-of-bound errors when using 
  + * <code>NodeList</code>. 
  + * <p>Implementations may raise other exceptions under other circumstances. 
  + * For example, implementations may raise an implementation-dependent 
    * exception if a <code>null</code> argument is passed. 
  - * <p> Some languages and object systems do not support the concept of 
  + * <p>Some languages and object systems do not support the concept of 
    * exceptions. For such systems, error conditions may be indicated using 
  - * native error reporting mechanisms. For some bindings, for example, methods 
  - * may return error codes similar to those listed in the corresponding method 
  - * descriptions.
  + * native error reporting mechanisms. For some bindings, for example, 
  + * methods may return error codes similar to those listed in the 
  + * corresponding method descriptions.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public class DOMException extends RuntimeException {
       public DOMException(short code, String message) {
  @@ -35,36 +36,80 @@
       }
       public short   code;
       // ExceptionCode
  +    /**
  +     * If index or size is negative, or greater than the allowed value
  +     */
       public static final short INDEX_SIZE_ERR            = 1;
  +    /**
  +     * If the specified range of text does not fit into a DOMString
  +     */
       public static final short DOMSTRING_SIZE_ERR        = 2;
  +    /**
  +     * If any node is inserted somewhere it doesn't belong
  +     */
       public static final short HIERARCHY_REQUEST_ERR     = 3;
  +    /**
  +     * If a node is used in a different document than the one that created it 
  +     * (that doesn't support it)
  +     */
       public static final short WRONG_DOCUMENT_ERR        = 4;
  +    /**
  +     * If an invalid or illegal character is specified, such as in a name. See 
  +     * production 2 in the XML specification for the definition of a legal 
  +     * character, and production 5 for the definition of a legal name 
  +     * character.
  +     */
       public static final short INVALID_CHARACTER_ERR     = 5;
  +    /**
  +     * If data is specified for a node which does not support data
  +     */
       public static final short NO_DATA_ALLOWED_ERR       = 6;
  +    /**
  +     * If an attempt is made to modify an object where modifications are not 
  +     * allowed
  +     */
       public static final short NO_MODIFICATION_ALLOWED_ERR = 7;
  +    /**
  +     * If an attempt is made to reference a node in a context where it does 
  +     * not exist
  +     */
       public static final short NOT_FOUND_ERR             = 8;
  +    /**
  +     * If the implementation does not support the type of object requested
  +     */
       public static final short NOT_SUPPORTED_ERR         = 9;
  +    /**
  +     * If an attempt is made to add an attribute that is already in use 
  +     * elsewhere
  +     */
       public static final short INUSE_ATTRIBUTE_ERR       = 10;
  -    /** 
  +    /**
  +     * If an attempt is made to use an object that is not, or is no longer, 
  +     * usable.
        * @since DOM Level 2
  -     */ 
  +     */
       public static final short INVALID_STATE_ERR         = 11;
  -    /** 
  +    /**
  +     * If an invalid or illegal string is specified.
        * @since DOM Level 2
  -     */ 
  +     */
       public static final short SYNTAX_ERR                = 12;
  -    /** 
  +    /**
  +     * If an attempt is made to modify the type of the underlying object.
        * @since DOM Level 2
  -     */ 
  +     */
       public static final short INVALID_MODIFICATION_ERR  = 13;
  -    /** 
  +    /**
  +     * If an attempt is made to create or change an object in a way which is 
  +     * incorrect with regard to namespaces.
        * @since DOM Level 2
  -     */ 
  +     */
       public static final short NAMESPACE_ERR             = 14;
  -    /** 
  +    /**
  +     * If a parameter or an operation is not supported by the underlying 
  +     * object.
        * @since DOM Level 2
  -     */ 
  +     */
       public static final short INVALID_ACCESS_ERR        = 15;
   
   }
  -
  
  
  
  1.5       +47 -44    xml-xerces/java/src/org/w3c/dom/DOMImplementation.java
  
  Index: DOMImplementation.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/DOMImplementation.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DOMImplementation.java	2000/02/22 00:14:58	1.4
  +++ DOMImplementation.java	2000/10/02 21:57:41	1.5
  @@ -6,33 +6,35 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  The <code>DOMImplementation</code> interface provides a number of methods 
  + * The <code>DOMImplementation</code> interface provides a number of methods 
    * for performing operations that are independent of any particular instance 
    * of the document object model.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface DOMImplementation {
       /**
  -     *  Test if the DOM implementation implements a specific feature.
  -     * @param feature  The name of the feature to test (case-insensitive). The 
  -     *   legal values are defined throughout this specification and listed in 
  -     *   the  section. The name must be an  XML name . To avoid possible 
  -     *   conflicts, as a convention, names referring to features defined 
  -     *   outside the DOM spec should be made unique by reversing the name of 
  -     *   the Internet domain name of the person (or the organization that 
  -     *   person belongs to) who defines the feature, component by component, 
  -     *   and use this as a prefix. For instance, the W3C SYMM Working Group 
  -     *   defines the feature "org.w3c.dom.smil".
  -     * @param version  This is the version number of the feature to test. In 
  -     *   Level 2, this is the string "2.0". If the version is not specified, 
  -     *   supporting any version of the feature causes the method to return 
  -     *   <code>true</code> .
  +     * Test if the DOM implementation implements a specific feature.
  +     * @param featureThe name of the feature to test (case-insensitive). The 
  +     *   values used by DOM features are defined throughout the DOM Level 2 
  +     *   specifications and listed in the  section. The name must be an XML 
  +     *   name. To avoid possible conflicts, as a convention, names referring 
  +     *   to features defined outside the DOM specification should be made 
  +     *   unique by reversing the name of the Internet domain name of the 
  +     *   person (or the organization that the person belongs to) who defines 
  +     *   the feature, component by component, and using this as a prefix. 
  +     *   For instance, the W3C SVG Working Group defines the feature 
  +     *   "org.w3c.dom.svg".
  +     * @param versionThis is the version number of the feature to test. In 
  +     *   Level 2, the string can be either "2.0" or "1.0". If the version is 
  +     *   not specified, supporting any version of the feature causes the 
  +     *   method to return <code>true</code>.
        * @return <code>true</code> if the feature is implemented in the 
        *   specified version, <code>false</code> otherwise.
        */
  @@ -40,22 +42,22 @@
                                 String version);
   
       /**
  -     *  Creates an empty <code>DocumentType</code> node. Entity declarations 
  +     * Creates an empty <code>DocumentType</code> node. Entity declarations 
        * and notations are not made available. Entity reference expansions and 
  -     * default attribute additions do not occur. It is expected that a future 
  -     * version of the DOM will provide a way for populating a 
  -     * <code>DocumentType</code> .
  -     * <br> HTML-only DOM implementations do not need to implement this method.
  -     * @param qualifiedName  The  qualified name of the document type to be 
  +     * default attribute additions do not occur. It is expected that a 
  +     * future version of the DOM will provide a way for populating a 
  +     * <code>DocumentType</code>.
  +     * <br>HTML-only DOM implementations do not need to implement this method.
  +     * @param qualifiedNameThe qualified name of the document type to be 
        *   created. 
  -     * @param publicId  The external subset public identifier.
  -     * @param systemId  The external subset system identifier.
  -     * @return  A new <code>DocumentType</code> node with 
  -     *   <code>Node.ownerDocument</code> set to <code>null</code> .
  +     * @param publicIdThe external subset public identifier.
  +     * @param systemIdThe external subset system identifier.
  +     * @return A new <code>DocumentType</code> node with 
  +     *   <code>Node.ownerDocument</code> set to <code>null</code>.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified qualified name 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name 
        *   contains an illegal character.
  -     *   <br> NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
  +     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
        *   malformed.
        * @since DOM Level 2
        */
  @@ -65,27 +67,29 @@
                                              throws DOMException;
   
       /**
  -     *  Creates an XML <code>Document</code> object of the specified type with 
  +     * Creates an XML <code>Document</code> object of the specified type with 
        * its document element. HTML-only DOM implementations do not need to 
        * implement this method.
  -     * @param namespaceURI  The  namespace URI of the document element to 
  -     *   create, or <code>null</code> .
  -     * @param qualifiedName  The  qualified name of the document element to be 
  +     * @param namespaceURIThe namespace URI of the document element to create.
  +     * @param qualifiedNameThe qualified name of the document element to be 
        *   created.
  -     * @param doctype  The type of document to be created or <code>null</code> 
  -     *   . When <code>doctype</code> is not <code>null</code> , its 
  +     * @param doctypeThe type of document to be created or <code>null</code>.
  +     *   When <code>doctype</code> is not <code>null</code>, its 
        *   <code>Node.ownerDocument</code> attribute is set to the document 
        *   being created.
  -     * @return  A new <code>Document</code> object.
  +     * @return A new <code>Document</code> object.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified qualified name 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name 
        *   contains an illegal character.
  -     *   <br> NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
  -     *   malformed, or if the <code>qualifiedName</code> has a prefix that is 
  -     *   "xml" and the <code>namespaceURI</code> is different from 
  -     *   "http://www.w3.org/XML/1998/namespace".
  -     *   <br> WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already 
  -     *   been used with a different document.
  +     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
  +     *   malformed, if the <code>qualifiedName</code> has a prefix and the 
  +     *   <code>namespaceURI</code> is <code>null</code>, or if the 
  +     *   <code>qualifiedName</code> has a prefix that is "xml" and the 
  +     *   <code>namespaceURI</code> is different from "
  +     *   http://www.w3.org/XML/1998/namespace" .
  +     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already 
  +     *   been used with a different document or was created from a different 
  +     *   implementation.
        * @since DOM Level 2
        */
       public Document createDocument(String namespaceURI, 
  @@ -94,4 +98,3 @@
                                      throws DOMException;
   
   }
  -
  
  
  
  1.4       +203 -206  xml-xerces/java/src/org/w3c/dom/Document.java
  
  Index: Document.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/Document.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Document.java	2000/02/22 00:14:58	1.3
  +++ Document.java	2000/10/02 21:57:42	1.4
  @@ -6,263 +6,264 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  The <code>Document</code> interface represents the entire HTML or XML 
  + * The <code>Document</code> interface represents the entire HTML or XML 
    * document. Conceptually, it is the root of the document tree, and provides 
  - * the  primary access to the document's data.
  - * <p> Since elements, text nodes, comments, processing instructions, etc. 
  - * cannot exist outside the context of a <code>Document</code> , the 
  + * the primary access to the document's data.
  + * <p>Since elements, text nodes, comments, processing instructions, etc. 
  + * cannot exist outside the context of a <code>Document</code>, the 
    * <code>Document</code> interface also contains the factory methods needed 
    * to create these objects. The <code>Node</code> objects created have a 
    * <code>ownerDocument</code> attribute which associates them with the 
    * <code>Document</code> within whose context they were created.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface Document extends Node {
       /**
  -     *  The Document Type Declaration (see <code>DocumentType</code> ) 
  +     * The Document Type Declaration (see <code>DocumentType</code>) 
        * associated with this document. For HTML documents as well as XML 
        * documents without a document type declaration this returns 
  -     * <code>null</code> . The DOM Level 2 does not support editing the 
  -     * Document Type Declaration, therefore <code>docType</code> cannot be 
  -     * altered in any way, including through the use of methods, such as 
  -     * <code>insertNode</code> or <code>removeNode</code> , inherited from 
  -     * <code>Node</code> .
  +     * <code>null</code>. The DOM Level 2 does not support editing the 
  +     * Document Type Declaration. <code>docType</code> cannot be altered in 
  +     * any way, including through the use of methods inherited from the 
  +     * <code>Node</code> interface, such as <code>insertNode</code> or 
  +     * <code>removeNode</code>.
        */
       public DocumentType getDoctype();
   
       /**
  -     *  The <code>DOMImplementation</code> object that handles this document. 
  -     * A DOM application may use objects from multiple  implementations.
  +     * The <code>DOMImplementation</code> object that handles this document. A 
  +     * DOM application may use objects from multiple implementations.
        */
       public DOMImplementation getImplementation();
   
       /**
  -     *  This is a convenience attribute that allows direct access to the child 
  -     * node that is the root element of  the document. For HTML documents, 
  +     * This is a convenience attribute that allows direct access to the child 
  +     * node that is the root element of the document. For HTML documents, 
        * this is the element with the tagName "HTML".
        */
       public Element getDocumentElement();
   
       /**
  -     *  Creates an element of the type specified. Note that the instance 
  +     * Creates an element of the type specified. Note that the instance 
        * returned implements the <code>Element</code> interface, so attributes 
  -     * can be specified directly  on the returned object.
  -     * <br> In addition, if there are known attributes with default values, 
  -     * <code>Attr</code> nodes representing them are automatically created and
  -     *  attached to the element.
  -     * <br> To create an element with a qualified name and namespace URI, use 
  +     * can be specified directly on the returned object.
  +     * <br>In addition, if there are known attributes with default values, 
  +     * <code>Attr</code> nodes representing them are automatically created 
  +     * and attached to the element.
  +     * <br>To create an element with a qualified name and namespace URI, use 
        * the <code>createElementNS</code> method.
  -     * @param tagName  The name of the element type to instantiate. For XML, 
  -     *   this is case-sensitive. For HTML, the  <code>tagName</code> 
  -     *   parameter may be provided in any case,  but it must be mapped to the 
  -     *   canonical uppercase form by  the DOM implementation. 
  -     * @return  A new <code>Element</code> object with the 
  -     *   <code>nodeName</code> attribute set to <code>tagName</code> , and 
  -     *   <code>localName</code> , <code>prefix</code> , and 
  -     *   <code>namespaceURI</code> set to <code>null</code> .
  +     * @param tagNameThe name of the element type to instantiate. For XML, 
  +     *   this is case-sensitive. For HTML, the <code>tagName</code> 
  +     *   parameter may be provided in any case, but it must be mapped to the 
  +     *   canonical uppercase form by the DOM implementation. 
  +     * @return A new <code>Element</code> object with the 
  +     *   <code>nodeName</code> attribute set to <code>tagName</code>, and 
  +     *   <code>localName</code>, <code>prefix</code>, and 
  +     *   <code>namespaceURI</code> set to <code>null</code>.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified name contains an 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an 
        *   illegal character.
        */
       public Element createElement(String tagName)
                                    throws DOMException;
   
       /**
  -     *  Creates an empty <code>DocumentFragment</code> object. 
  -     * @return  A new <code>DocumentFragment</code> .
  +     * Creates an empty <code>DocumentFragment</code> object. 
  +     * @return A new <code>DocumentFragment</code>.
        */
       public DocumentFragment createDocumentFragment();
   
       /**
  -     *  Creates a <code>Text</code> node given the specified string.
  -     * @param data  The data for the node.
  -     * @return  The new <code>Text</code> object.
  +     * Creates a <code>Text</code> node given the specified string.
  +     * @param dataThe data for the node.
  +     * @return The new <code>Text</code> object.
        */
       public Text createTextNode(String data);
   
       /**
  -     *  Creates a <code>Comment</code> node given the specified string.
  -     * @param data  The data for the node.
  -     * @return  The new <code>Comment</code> object.
  +     * Creates a <code>Comment</code> node given the specified string.
  +     * @param dataThe data for the node.
  +     * @return The new <code>Comment</code> object.
        */
       public Comment createComment(String data);
   
       /**
  -     *  Creates a <code>CDATASection</code> node whose value  is the specified 
  +     * Creates a <code>CDATASection</code> node whose value is the specified 
        * string.
  -     * @param data  The data for the <code>CDATASection</code> contents.
  -     * @return  The new <code>CDATASection</code> object.
  +     * @param dataThe data for the <code>CDATASection</code> contents.
  +     * @return The new <code>CDATASection</code> object.
        * @exception DOMException
  -     *    NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
  +     *   NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
        */
       public CDATASection createCDATASection(String data)
                                              throws DOMException;
   
       /**
  -     *  Creates a <code>ProcessingInstruction</code> node given the specified 
  +     * Creates a <code>ProcessingInstruction</code> node given the specified 
        * name and data strings.
  -     * @param target  The target part of the processing instruction.
  -     * @param data  The data for the node.
  -     * @return  The new <code>ProcessingInstruction</code> object.
  +     * @param targetThe target part of the processing instruction.
  +     * @param dataThe data for the node.
  +     * @return The new <code>ProcessingInstruction</code> object.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified target contains an 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified target contains an 
        *   illegal character.
  -     *   <br> NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
  +     *   <br>NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
        */
       public ProcessingInstruction createProcessingInstruction(String target, 
                                                                String data)
                                                                throws DOMException;
   
       /**
  -     *  Creates an <code>Attr</code> of the given name. Note that the 
  +     * Creates an <code>Attr</code> of the given name. Note that the 
        * <code>Attr</code> instance can then be set on an <code>Element</code> 
  -     * using the <code>setAttribute</code> method. 
  -     * <br> To create an attribute with a qualified name and namespace URI, use
  -     *  the <code>createAttributeNS</code> method.
  -     * @param name  The name of the attribute.
  -     * @return  A new <code>Attr</code> object with the <code>nodeName</code> 
  -     *   attribute set to <code>name</code> , and <code>localName</code> , 
  -     *   <code>prefix</code> , and <code>namespaceURI</code> set to 
  -     *   <code>null</code> .
  +     * using the <code>setAttributeNode</code> method. 
  +     * <br>To create an attribute with a qualified name and namespace URI, use 
  +     * the <code>createAttributeNS</code> method.
  +     * @param nameThe name of the attribute.
  +     * @return A new <code>Attr</code> object with the <code>nodeName</code> 
  +     *   attribute set to <code>name</code>, and <code>localName</code>, 
  +     *   <code>prefix</code>, and <code>namespaceURI</code> set to 
  +     *   <code>null</code>. The value of the attribute is the empty string.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified name contains an 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an 
        *   illegal character.
        */
       public Attr createAttribute(String name)
                                   throws DOMException;
   
       /**
  -     *  Creates an <code>EntityReference</code> object. In addition, if the 
  +     * Creates an <code>EntityReference</code> object. In addition, if the 
        * referenced entity is known, the child list of the 
        * <code>EntityReference</code> node is made the same as that of the 
  -     * corresponding <code>Entity</code> node. If any descendant of the 
  -     * <code>Entity</code> node has an unbound  namespace prefix , the 
  +     * corresponding <code>Entity</code> node.If any descendant of the 
  +     * <code>Entity</code> node has an unbound namespace prefix, the 
        * corresponding descendant of the created <code>EntityReference</code> 
        * node is also unbound; (its <code>namespaceURI</code> is 
  -     * <code>null</code> ). The DOM Level 2 does not support any mechanism to 
  +     * <code>null</code>). The DOM Level 2 does not support any mechanism to 
        * resolve namespace prefixes.
  -     * @param name  The name of the entity to reference. 
  -     * @return  The new <code>EntityReference</code> object.
  +     * @param nameThe name of the entity to reference. 
  +     * @return The new <code>EntityReference</code> object.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified name contains an 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an 
        *   illegal character.
  -     *   <br> NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
  +     *   <br>NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
        */
       public EntityReference createEntityReference(String name)
                                                    throws DOMException;
   
       /**
  -     *  Returns a <code>NodeList</code> of all the <code>Elements</code> with 
  -     * a given tag name in the order in which they would be encountered in a 
  +     * Returns a <code>NodeList</code> of all the <code>Elements</code> with a 
  +     * given tag name in the order in which they are encountered in a 
        * preorder traversal of the <code>Document</code> tree. 
  -     * @param tagname  The name of the tag to match on. The special value "*" 
  +     * @param tagnameThe name of the tag to match on. The special value "*" 
        *   matches all tags.
  -     * @return  A new <code>NodeList</code> object containing all the matched 
  -     *   <code>Elements</code> .
  +     * @return A new <code>NodeList</code> object containing all the matched 
  +     *   <code>Elements</code>.
        */
       public NodeList getElementsByTagName(String tagname);
   
       /**
  -     *  Imports a node from another document to this document. The returned 
  -     * node has no parent; (<code>parentNode</code> is <code>null</code> ). 
  +     * Imports a node from another document to this document. The returned 
  +     * node has no parent; (<code>parentNode</code> is <code>null</code>). 
        * The source node is not altered or removed from the original document; 
        * this method creates a new copy of the source node.
  -     * <br> For all nodes, importing a node creates a node object owned by the 
  +     * <br>For all nodes, importing a node creates a node object owned by the 
        * importing document, with attribute values identical to the source 
  -     * node's <code>nodeName</code> and <code>nodeType</code> , plus the 
  -     * attributes related to namespaces (<code>prefix</code> , 
  -     * <code>localName</code> , and <code>namespaceURI</code> ). As in the 
  -     * <code>cloneNode</code> operation on a <code>Node</code> , the source 
  +     * node's <code>nodeName</code> and <code>nodeType</code>, plus the 
  +     * attributes related to namespaces (<code>prefix</code>, 
  +     * <code>localName</code>, and <code>namespaceURI</code>). As in the 
  +     * <code>cloneNode</code> operation on a <code>Node</code>, the source 
        * node is not altered.
  -     * <br> Additional information is copied as appropriate to the 
  -     * <code>nodeType</code> , attempting to mirror the behavior expected if a
  -     *  fragment of XML or HTML source was copied from one document to 
  -     * another, recognizing that the two documents may have different DTDs in 
  -     * the XML case. The following list describes the specifics for every 
  +     * <br>Additional information is copied as appropriate to the 
  +     * <code>nodeType</code>, attempting to mirror the behavior expected if 
  +     * a fragment of XML or HTML source was copied from one document to 
  +     * another, recognizing that the two documents may have different DTDs 
  +     * in the XML case. The following list describes the specifics for each 
        * type of node. 
        * <dl>
  -     * <dt> ELEMENT_NODE</dt>
  -     * <dd> Specified attribute nodes of the source 
  -     * element are imported, and the generated <code>Attr</code> nodes are 
  -     * attached to the generated <code>Element</code> . Default attributes 
  -     * are  not copied, though if the document being imported into defines 
  -     * default attributes for this element name, those are assigned. If the 
  -     * <code>importNode</code> <code>deep</code> parameter was set to 
  -     * <code>true</code> , the descendants of the source element will be 
  -     * recursively imported and the resulting nodes reassembled to form the 
  -     * corresponding subtree.</dd>
  -     * <dt> ATTRIBUTE_NODE</dt>
  -     * <dd> The <code>specified</code> flag 
  -     * is set to <code>true</code> on the generated <code>Attr</code> . The 
  +     * <dt>ATTRIBUTE_NODE</dt>
  +     * <dd>The <code>ownerElement</code> attribute 
  +     * is set to <code>null</code> and the <code>specified</code> flag is 
  +     * set to <code>true</code> on the generated <code>Attr</code>. The 
        * descendants of the source <code>Attr</code> are recursively imported 
  -     * and the resulting nodes reassembled to form the corresponding subtree. 
  -     * Note that the <code>deep</code> parameter does not apply to 
  +     * and the resulting nodes reassembled to form the corresponding subtree.
  +     * Note that the <code>deep</code> parameter has no effect on 
        * <code>Attr</code> nodes; they always carry their children with them 
        * when imported.</dd>
  -     * <dt> TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</dt>
  -     * <dd> These three 
  -     * types of nodes inheriting from <code>CharacterData</code> copy their 
  -     * <code>data</code> and <code>length</code> attributes from those of the 
  -     * source node.</dd>
  -     * <dt> ENTITY_REFERENCE_NODE</dt>
  -     * <dd> Only the 
  -     * <code>EntityReference</code> itself is copied, even if a 
  -     * <code>deep</code> import is requested, since the source and 
  -     * destination documents might have defined the entity differently. If 
  -     * the document being imported into provides a definition for this entity 
  -     * name, its value is assigned.</dd>
  -     * <dt> ENTITY_NODE</dt>
  -     * <dd><code>Entity</code> nodes can 
  -     * be imported, however in the current release of the DOM the 
  +     * <dt>DOCUMENT_FRAGMENT_NODE</dt>
  +     * <dd>If the <code>deep</code> option 
  +     * was set to <code>true</code>, the descendants of the source element 
  +     * are recursively imported and the resulting nodes reassembled to form 
  +     * the corresponding subtree. Otherwise, this simply generates an empty 
  +     * <code>DocumentFragment</code>.</dd>
  +     * <dt>DOCUMENT_NODE</dt>
  +     * <dd><code>Document</code> 
  +     * nodes cannot be imported.</dd>
  +     * <dt>DOCUMENT_TYPE_NODE</dt>
  +     * <dd><code>DocumentType</code> 
  +     * nodes cannot be imported.</dd>
  +     * <dt>ELEMENT_NODE</dt>
  +     * <dd>Specified attribute nodes of the 
  +     * source element are imported, and the generated <code>Attr</code> 
  +     * nodes are attached to the generated <code>Element</code>. Default 
  +     * attributes are not copied, though if the document being imported into 
  +     * defines default attributes for this element name, those are assigned. 
  +     * If the <code>importNode</code> <code>deep</code> parameter was set to 
  +     * <code>true</code>, the descendants of the source element are 
  +     * recursively imported and the resulting nodes reassembled to form the 
  +     * corresponding subtree.</dd>
  +     * <dt>ENTITY_NODE</dt>
  +     * <dd><code>Entity</code> nodes can be 
  +     * imported, however in the current release of the DOM the 
        * <code>DocumentType</code> is readonly. Ability to add these imported 
        * nodes to a <code>DocumentType</code> will be considered for addition 
  -     * to a future release of the DOM. On import, the <code>publicId</code> , 
  -     * <code>systemId</code> , and <code>notationName</code> attributes are 
  -     * copied. If a <code>deep</code> import is requested, the descendants of 
  -     * the the source <code>Entity</code> is recursively imported and the 
  -     * resulting nodes reassembled to form the corresponding subtree.</dd>
  -     * <dt> 
  +     * to a future release of the DOM.On import, the <code>publicId</code>, 
  +     * <code>systemId</code>, and <code>notationName</code> attributes are 
  +     * copied. If a <code>deep</code> import is requested, the descendants 
  +     * of the the source <code>Entity</code> are recursively imported and 
  +     * the resulting nodes reassembled to form the corresponding subtree.</dd>
  +     * <dt>
  +     * ENTITY_REFERENCE_NODE</dt>
  +     * <dd>Only the <code>EntityReference</code> itself is 
  +     * copied, even if a <code>deep</code> import is requested, since the 
  +     * source and destination documents might have defined the entity 
  +     * differently. If the document being imported into provides a 
  +     * definition for this entity name, its value is assigned.</dd>
  +     * <dt>NOTATION_NODE</dt>
  +     * <dd>
  +     * <code>Notation</code> nodes can be imported, however in the current 
  +     * release of the DOM the <code>DocumentType</code> is readonly. Ability 
  +     * to add these imported nodes to a <code>DocumentType</code> will be 
  +     * considered for addition to a future release of the DOM.On import, the 
  +     * <code>publicId</code> and <code>systemId</code> attributes are copied.
  +     * Note that the <code>deep</code> parameter has no effect on 
  +     * <code>Notation</code> nodes since they never have any children.</dd>
  +     * <dt>
        * PROCESSING_INSTRUCTION_NODE</dt>
  -     * <dd> The imported node copies its 
  +     * <dd>The imported node copies its 
        * <code>target</code> and <code>data</code> values from those of the 
        * source node.</dd>
  -     * <dt> DOCUMENT_NODE</dt>
  -     * <dd><code>Document</code> nodes cannot be 
  -     * imported.</dd>
  -     * <dt> DOCUMENT_TYPE_NODE</dt>
  -     * <dd><code>DocumentType</code> nodes cannot be 
  -     * imported.</dd>
  -     * <dt> DOCUMENT_FRAGMENT_NODE</dt>
  -     * <dd> If the <code>deep</code> option was 
  -     * set <code>true</code> , the descendants of the source element will be 
  -     * recursively imported and the resulting nodes reassembled to form the 
  -     * corresponding subtree. Otherwise, this simply generates an empty 
  -     * <code>DocumentFragment</code> .</dd>
  -     * <dt> NOTATION_NODE</dt>
  -     * <dd><code>Notation</code> 
  -     * nodes can be imported, however in the current release of the DOM the 
  -     * <code>DocumentType</code> is readonly. Ability to add these imported 
  -     * nodes to a <code>DocumentType</code> will be considered for addition 
  -     * to a future release of the DOM. On import, the <code>publicId</code> 
  -     * and <code>systemId</code> attributes are copied. Note that the 
  -     * <code>deep</code> parameter does not apply to <code>Notation</code> 
  -     * nodes since they never have any children.</dd>
  -     * </dl> 
  -     * @param importedNode  The node to import.
  -     * @param deep  If <code>true</code> , recursively import the subtree 
  -     *   under the specified node; if <code>false</code> , import only the 
  -     *   node itself, as explained above. This does not apply to 
  -     *   <code>Attr</code> , <code>EntityReference</code> , and 
  -     *   <code>Notation</code> nodes.
  -     * @return  The imported node that belongs to this <code>Document</code> .
  +     * <dt>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</dt>
  +     * <dd>These three 
  +     * types of nodes inheriting from <code>CharacterData</code> copy their 
  +     * <code>data</code> and <code>length</code> attributes from those of 
  +     * the source node.</dd>
  +     *  
  +     * @param importedNodeThe node to import.
  +     * @param deepIf <code>true</code>, recursively import the subtree under 
  +     *   the specified node; if <code>false</code>, import only the node 
  +     *   itself, as explained above. This has no effect on <code>Attr</code>
  +     *   , <code>EntityReference</code>, and <code>Notation</code> nodes.
  +     * @return The imported node that belongs to this <code>Document</code>.
        * @exception DOMException
  -     *    NOT_SUPPORTED_ERR: Raised if the type of node being imported is not 
  +     *   NOT_SUPPORTED_ERR: Raised if the type of node being imported is not 
        *   supported.
        * @since DOM Level 2
        */
  @@ -271,28 +272,28 @@
                              throws DOMException;
   
       /**
  -     *  Creates an element of the given qualified name and namespace URI. 
  +     * Creates an element of the given qualified name and namespace URI. 
        * HTML-only DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the element to create.
  -     * @param qualifiedName  The  qualified name of the element type to 
  +     * @param namespaceURIThe namespace URI of the element to create.
  +     * @param qualifiedNameThe qualified name of the element type to 
        *   instantiate.
  -     * @return  A new <code>Element</code> object with the following 
  -     *   attributes: Attribute Value<code>Node.nodeName</code>
  +     * @return A new <code>Element</code> object with the following 
  +     *   attributes:AttributeValue<code>Node.nodeName</code>
        *   <code>qualifiedName</code><code>Node.namespaceURI</code>
  -     *   <code>namespaceURI</code><code>Node.prefix</code> prefix, extracted 
  -     *   from <code>qualifiedName</code> , or <code>null</code> if there is no
  -     *    prefix<code>Node.localName</code> local name , extracted from 
  +     *   <code>namespaceURI</code><code>Node.prefix</code>prefix, extracted 
  +     *   from <code>qualifiedName</code>, or <code>null</code> if there is 
  +     *   no prefix<code>Node.localName</code>local name, extracted from 
        *   <code>qualifiedName</code><code>Element.tagName</code>
        *   <code>qualifiedName</code>
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified qualified name 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name 
        *   contains an illegal character.
  -     *   <br> NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
  +     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
        *   malformed, if the <code>qualifiedName</code> has a prefix and the 
  -     *   <code>namespaceURI</code> is <code>null</code> or an empty string, 
  -     *   or if the <code>qualifiedName</code> has a prefix that is "xml" and 
  -     *   the <code>namespaceURI</code> is different from 
  -     *   "http://www.w3.org/XML/1998/namespace"  .
  +     *   <code>namespaceURI</code> is <code>null</code>, or if the 
  +     *   <code>qualifiedName</code> has a prefix that is "xml" and the 
  +     *   <code>namespaceURI</code> is different from "
  +     *   http://www.w3.org/XML/1998/namespace" .
        * @since DOM Level 2
        */
       public Element createElementNS(String namespaceURI, 
  @@ -300,33 +301,31 @@
                                      throws DOMException;
   
       /**
  -     *  Creates an attribute of the given qualified name and namespace URI. 
  +     * Creates an attribute of the given qualified name and namespace URI. 
        * HTML-only DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the attribute to create.
  -     * @param qualifiedName  The  qualified name of the attribute to 
  -     *   instantiate.
  -     * @return  A new <code>Attr</code> object with the following attributes: 
  -     *   Attribute Value<code>Node.nodeName</code> qualifiedName
  +     * @param namespaceURIThe namespace URI of the attribute to create.
  +     * @param qualifiedNameThe qualified name of the attribute to instantiate.
  +     * @return A new <code>Attr</code> object with the following attributes:
  +     *   AttributeValue<code>Node.nodeName</code>qualifiedName
        *   <code>Node.namespaceURI</code><code>namespaceURI</code>
  -     *   <code>Node.prefix</code> prefix, extracted from 
  -     *   <code>qualifiedName</code> , or <code>null</code> if there is no 
  -     *   prefix<code>Node.localName</code> local name , extracted from 
  +     *   <code>Node.prefix</code>prefix, extracted from 
  +     *   <code>qualifiedName</code>, or <code>null</code> if there is no 
  +     *   prefix<code>Node.localName</code>local name, extracted from 
        *   <code>qualifiedName</code><code>Attr.name</code>
  -     *   <code>qualifiedName</code>
  +     *   <code>qualifiedName</code><code>Node.nodeValue</code>the empty 
  +     *   string
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified qualified name 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name 
        *   contains an illegal character.
  -     *   <br> NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
  +     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
        *   malformed, if the <code>qualifiedName</code> has a prefix and the 
  -     *   <code>namespaceURI</code> is <code>null</code> or an empty string, 
  -     *   if the <code>qualifiedName</code> has a prefix that is "xml" and the 
  -     *   <code>namespaceURI</code> is different from 
  -     *   "http://www.w3.org/XML/1998/namespace", if the 
  -     *   <code>qualifiedName</code> has a prefix that is "xmlns" and the 
  -     *   <code>namespaceURI</code> is different from 
  -     *   "http://www.w3.org/2000/xmlns/", or if the <code>qualifiedName</code>
  -     *    is "xmlns" and the <code>namespaceURI</code> is different from 
  -     *   "http://www.w3.org/2000/xmlns/".
  +     *   <code>namespaceURI</code> is <code>null</code>, if the 
  +     *   <code>qualifiedName</code> has a prefix that is "xml" and the 
  +     *   <code>namespaceURI</code> is different from "
  +     *   http://www.w3.org/XML/1998/namespace", or if the 
  +     *   <code>qualifiedName</code> is "xmlns" and the 
  +     *   <code>namespaceURI</code> is different from "
  +     *   http://www.w3.org/2000/xmlns/".
        * @since DOM Level 2
        */
       public Attr createAttributeNS(String namespaceURI, 
  @@ -334,35 +333,33 @@
                                     throws DOMException;
   
       /**
  -     *  Returns a <code>NodeList</code> of all the <code>Elements</code> with 
  -     * a given  local name and namespace URI in the order in which they would 
  -     * be encountered in a preorder traversal of the <code>Document</code> 
  -     * tree.
  -     * @param namespaceURI  The  namespace URI of the elements to match on. 
  -     *   The special value "*" matches all namespaces.
  -     * @param localName  The  local name of the elements to match on. The 
  +     * Returns a <code>NodeList</code> of all the <code>Elements</code> with a 
  +     * given local name and namespace URI in the order in which they are 
  +     * encountered in a preorder traversal of the <code>Document</code> tree.
  +     * @param namespaceURIThe namespace URI of the elements to match on. The 
  +     *   special value "*" matches all namespaces.
  +     * @param localNameThe local name of the elements to match on. The 
        *   special value "*" matches all local names.
  -     * @return  A new <code>NodeList</code> object containing all the matched 
  -     *   <code>Elements</code> .
  +     * @return A new <code>NodeList</code> object containing all the matched 
  +     *   <code>Elements</code>.
        * @since DOM Level 2
        */
       public NodeList getElementsByTagNameNS(String namespaceURI, 
                                              String localName);
   
       /**
  -     *  Returns the <code>Element</code> whose <code>ID</code> is given by 
  -     * <code>elementId</code> . If no such element exists, returns 
  -     * <code>null</code> . Behavior is not defined if more than one element 
  -     * has this <code>ID</code> .  The DOM implementation must have 
  -     * information that says which attributes are of type ID. Attributes with 
  -     * the name "ID" are not of type ID unless so defined. Implementations 
  -     * that do not know whether attributes are of type ID or not are expected 
  -     * to return <code>null</code> .
  -     * @param elementId  The unique <code>id</code> value for an element.
  -     * @return  The matching element.
  +     * Returns the <code>Element</code> whose <code>ID</code> is given by 
  +     * <code>elementId</code>. If no such element exists, returns 
  +     * <code>null</code>. Behavior is not defined if more than one element 
  +     * has this <code>ID</code>. The DOM implementation must have 
  +     * information that says which attributes are of type ID. Attributes 
  +     * with the name "ID" are not of type ID unless so defined. 
  +     * Implementations that do not know whether attributes are of type ID or 
  +     * not are expected to return <code>null</code>.
  +     * @param elementIdThe unique <code>id</code> value for an element.
  +     * @return The matching element.
        * @since DOM Level 2
        */
       public Element getElementById(String elementId);
   
   }
  -
  
  
  
  1.4       +14 -14    xml-xerces/java/src/org/w3c/dom/DocumentFragment.java
  
  Index: DocumentFragment.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/DocumentFragment.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DocumentFragment.java	2000/02/22 00:14:58	1.3
  +++ DocumentFragment.java	2000/10/02 21:57:42	1.4
  @@ -6,8 +6,8 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
  @@ -24,29 +24,29 @@
    * heavyweight object, depending on the underlying implementation. What is 
    * really needed for this is a very lightweight object. 
    * <code>DocumentFragment</code> is such an object.
  - * <p> Furthermore, various operations -- such as inserting nodes as children 
  + * <p>Furthermore, various operations -- such as inserting nodes as children 
    * of another <code>Node</code> -- may take <code>DocumentFragment</code> 
  - * objects as arguments;  this results in all the child nodes of the 
  + * objects as arguments; this results in all the child nodes of the 
    * <code>DocumentFragment</code> being moved to the child list of this node.
  - * <p> The children of a <code>DocumentFragment</code> node are zero or more 
  - * nodes representing the tops of any sub-trees defining the structure of the 
  - * document. <code>DocumentFragment</code> nodes do not need to be 
  + * <p>The children of a <code>DocumentFragment</code> node are zero or more 
  + * nodes representing the tops of any sub-trees defining the structure of 
  + * the document. <code>DocumentFragment</code> nodes do not need to be 
    * well-formed XML documents (although they do need to follow the rules 
    * imposed upon well-formed XML parsed entities, which can have multiple top 
    * nodes). For example, a <code>DocumentFragment</code> might have only one 
    * child and that child node could be a <code>Text</code> node. Such a 
    * structure model represents neither an HTML document nor a well-formed XML 
    * document.
  - * <p> When a <code>DocumentFragment</code> is inserted into a 
  - * <code>Document</code> (or indeed any other <code>Node</code> that may take 
  - * children) the children of the <code>DocumentFragment</code> and not the 
  - * <code>DocumentFragment</code> itself are inserted into the 
  - * <code>Node</code> . This makes the <code>DocumentFragment</code> very 
  + * <p>When a <code>DocumentFragment</code> is inserted into a 
  + * <code>Document</code> (or indeed any other <code>Node</code> that may 
  + * take children) the children of the <code>DocumentFragment</code> and not 
  + * the <code>DocumentFragment</code> itself are inserted into the 
  + * <code>Node</code>. This makes the <code>DocumentFragment</code> very 
    * useful when the user wishes to create nodes that are siblings; the 
    * <code>DocumentFragment</code> acts as the parent of these nodes so that 
    * the user can use the standard methods from the <code>Node</code> 
  - * interface, such as <code>insertBefore</code> and <code>appendChild</code> .
  + * interface, such as <code>insertBefore</code> and <code>appendChild</code>.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface DocumentFragment extends Node {
   }
  -
  
  
  
  1.4       +31 -34    xml-xerces/java/src/org/w3c/dom/DocumentType.java
  
  Index: DocumentType.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/DocumentType.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DocumentType.java	2000/02/22 00:14:58	1.3
  +++ DocumentType.java	2000/10/02 21:57:43	1.4
  @@ -6,77 +6,74 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  Each <code>Document</code> has a <code>doctype</code> attribute whose 
  - * value is either <code>null</code> or a <code>DocumentType</code> object. 
  - * The <code>DocumentType</code> interface in the DOM Core provides an 
  - * interface to the list of entities that are defined for the document, and 
  - * little else because the effect of namespaces and the various XML schema 
  - * efforts on DTD representation are not clearly understood as of this 
  - * writing.
  - * <p> The DOM Level 2 doesn't support editing <code>DocumentType</code> nodes.
  + * Each <code>Document</code> has a <code>doctype</code> attribute whose value 
  + * is either <code>null</code> or a <code>DocumentType</code> object. The 
  + * <code>DocumentType</code> interface in the DOM Core provides an interface 
  + * to the list of entities that are defined for the document, and little 
  + * else because the effect of namespaces and the various XML schema efforts 
  + * on DTD representation are not clearly understood as of this writing.
  + * <p>The DOM Level 2 doesn't support editing <code>DocumentType</code> nodes.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface DocumentType extends Node {
       /**
  -     *  The name of DTD; i.e., the name immediately following the 
  +     * The name of DTD; i.e., the name immediately following the 
        * <code>DOCTYPE</code> keyword.
        */
       public String getName();
   
       /**
  -     *  A <code>NamedNodeMap</code> containing the general entities, both 
  -     * external and internal, declared in the DTD. Parameter entities are not 
  -     *  contained. Duplicates are discarded. For example in:
  -     * <pre>
  -     * &lt;!DOCTYPE ex SYSTEM "ex.dtd" [
  -     *   &lt;!ENTITY foo "foo"&gt;
  -     *   &lt;!ENTITY bar "bar"&gt;
  -     *   &lt;!ENTITY bar "bar2"&gt;
  -     *   &lt;!ENTITY % baz "baz"&gt;
  -     * ]&gt;
  -     * &lt;ex/&gt;</pre>
  -     *   the interface 
  -     * provides access to <code>foo</code> and the first declaration of 
  -     * <code>bar</code> but not the second declaration of  <code>bar</code> 
  -     * or <code>baz</code> . Every node in this map also implements the 
  -     * <code>Entity</code> interface.
  -     * <br> The DOM Level 2 does not support editing entities, therefore 
  +     * A <code>NamedNodeMap</code> containing the general entities, both 
  +     * external and internal, declared in the DTD. Parameter entities are 
  +     * not contained. Duplicates are discarded. For example in: 
  +     * <pre>&lt;!DOCTYPE 
  +     * ex SYSTEM "ex.dtd" [ &lt;!ENTITY foo "foo"&gt; &lt;!ENTITY bar 
  +     * "bar"&gt; &lt;!ENTITY bar "bar2"&gt; &lt;!ENTITY % baz "baz"&gt; 
  +     * ]&gt; &lt;ex/&gt;</pre>
  +     *  the interface provides access to <code>foo</code> 
  +     * and the first declaration of <code>bar</code> but not the second 
  +     * declaration of <code>bar</code> or <code>baz</code>. Every node in 
  +     * this map also implements the <code>Entity</code> interface.
  +     * <br>The DOM Level 2 does not support editing entities, therefore 
        * <code>entities</code> cannot be altered in any way.
        */
       public NamedNodeMap getEntities();
   
       /**
  -     *  A <code>NamedNodeMap</code> containing  the notations declared in the 
  +     * A <code>NamedNodeMap</code> containing the notations declared in the 
        * DTD. Duplicates are discarded. Every node in this map also implements 
        * the <code>Notation</code> interface.
  -     * <br> The DOM Level 2 does not support editing notations, therefore 
  +     * <br>The DOM Level 2 does not support editing notations, therefore 
        * <code>notations</code> cannot be altered in any way.
        */
       public NamedNodeMap getNotations();
   
       /**
  -     *  The public identifier of the external subset.
  +     * The public identifier of the external subset.
        * @since DOM Level 2
        */
       public String getPublicId();
   
       /**
  -     *  The system identifier of the external subset.
  +     * The system identifier of the external subset.
        * @since DOM Level 2
        */
       public String getSystemId();
   
       /**
  -     *  The internal subset as a string.
  +     * The internal subset as a string.The actual content returned depends on 
  +     * how much information is available to the implementation. This may 
  +     * vary depending on various parameters, including the XML processor 
  +     * used to build the document.
        * @since DOM Level 2
        */
       public String getInternalSubset();
   
   }
  -
  
  
  
  1.7       +145 -150  xml-xerces/java/src/org/w3c/dom/Element.java
  
  Index: Element.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/Element.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Element.java	2000/07/20 18:12:20	1.6
  +++ Element.java	2000/10/02 21:57:43	1.7
  @@ -6,16 +6,16 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  The <code>Element</code> interface represents an element in an HTML or XML 
  + * The <code>Element</code> interface represents an element in an HTML or XML 
    * document. Elements may have attributes associated with them; since the 
  - * <code>Element</code> interface inherits from <code>Node</code> , the 
  + * <code>Element</code> interface inherits from <code>Node</code>, the 
    * generic <code>Node</code> interface attribute <code>attributes</code> may 
    * be used to retrieve the set of all attributes for an element. There are 
    * methods on the <code>Element</code> interface to retrieve either an 
  @@ -24,182 +24,178 @@
    * <code>Attr</code> object should be retrieved to examine the possibly 
    * fairly complex sub-tree representing the attribute value. On the other 
    * hand, in HTML, where all attributes have simple string values, methods to 
  - * directly access an attribute value can safely be used as a convenience. In 
  + * directly access an attribute value can safely be used as a convenience.In 
    * DOM Level 2, the method <code>normalize</code> is inherited from the 
    * <code>Node</code> interface where it was moved.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface Element extends Node {
       /**
  -     *  The name of the element. For example, in: 
  -     * <pre>
  -     * &lt;elementExample id="demo"&gt; 
  -     *         ... 
  -     * &lt;/elementExample&gt; ,</pre>
  +     * The name of the element. For example, in: 
  +     * <pre> &lt;elementExample 
  +     * id="demo"&gt; ... &lt;/elementExample&gt; , </pre>
        *  <code>tagName</code> has 
  -     * the value <code>"elementExample"</code> . Note that this is 
  +     * the value <code>"elementExample"</code>. Note that this is 
        * case-preserving in XML, as are all of the operations of the DOM. The 
        * HTML DOM returns the <code>tagName</code> of an HTML element in the 
  -     * canonical uppercase form, regardless of the case in the  source HTML 
  +     * canonical uppercase form, regardless of the case in the source HTML 
        * document. 
        */
       public String getTagName();
   
       /**
  -     *  Retrieves an attribute value by name.
  -     * @param name  The name of the attribute to retrieve.
  -     * @return  The <code>Attr</code> value as a string, or the empty string if
  -     *    that attribute does not have a specified or default value.
  +     * Retrieves an attribute value by name.
  +     * @param nameThe name of the attribute to retrieve.
  +     * @return The <code>Attr</code> value as a string, or the empty string 
  +     *   if that attribute does not have a specified or default value.
        */
       public String getAttribute(String name);
   
       /**
  -     *  Adds a new attribute. If an attribute with that name is already 
  -     * present in the element, its value is changed to be that of the value 
  +     * Adds a new attribute. If an attribute with that name is already present 
  +     * in the element, its value is changed to be that of the value 
        * parameter. This value is a simple string; it is not parsed as it is 
  -     * being set. So any markup (such as syntax to be recognized as an entity 
  -     * reference) is treated as literal text, and needs to be appropriately 
  -     * escaped by the implementation when it is written out. In order to 
  -     * assign an attribute value that contains entity references, the user 
  -     * must create an <code>Attr</code> node plus any <code>Text</code> and 
  -     * <code>EntityReference</code> nodes, build the appropriate subtree, and 
  -     * use <code>setAttributeNode</code> to assign it as the value of an 
  -     * attribute.
  -     * <br> To set an attribute with a qualified name and namespace URI, use 
  +     * being set. So any markup (such as syntax to be recognized as an 
  +     * entity reference) is treated as literal text, and needs to be 
  +     * appropriately escaped by the implementation when it is written out. 
  +     * In order to assign an attribute value that contains entity 
  +     * references, the user must create an <code>Attr</code> node plus any 
  +     * <code>Text</code> and <code>EntityReference</code> nodes, build the 
  +     * appropriate subtree, and use <code>setAttributeNode</code> to assign 
  +     * it as the value of an attribute.
  +     * <br>To set an attribute with a qualified name and namespace URI, use 
        * the <code>setAttributeNS</code> method.
  -     * @param name  The name of the attribute to create or alter.
  -     * @param value  Value to set in string form.
  +     * @param nameThe name of the attribute to create or alter.
  +     * @param valueValue to set in string form.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified name contains an 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified name contains an 
        *   illegal character.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        */
       public void setAttribute(String name, 
                                String value)
                                throws DOMException;
   
       /**
  -     *  Removes an attribute by name. If the removed attribute is known to 
  -     * have a default value, an attribute immediately appears containing the 
  +     * Removes an attribute by name. If the removed attribute is known to have 
  +     * a default value, an attribute immediately appears containing the 
        * default value as well as the corresponding namespace URI, local name, 
        * and prefix when applicable.
  -     * <br> To remove an attribute by local name and namespace URI, use the 
  +     * <br>To remove an attribute by local name and namespace URI, use the 
        * <code>removeAttributeNS</code> method.
  -     * @param name  The name of the attribute to remove.
  +     * @param nameThe name of the attribute to remove.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        */
       public void removeAttribute(String name)
                                   throws DOMException;
   
       /**
  -     *  Retrieves an attribute node by name.
  -     * <br> To retrieve an attribute node by qualified name and namespace URI, 
  +     * Retrieves an attribute node by name.
  +     * <br>To retrieve an attribute node by qualified name and namespace URI, 
        * use the <code>getAttributeNodeNS</code> method.
  -     * @param name  The name (<code>nodeName</code> ) of the attribute to 
  +     * @param nameThe name (<code>nodeName</code>) of the attribute to 
        *   retrieve.
  -     * @return  The <code>Attr</code> node with the specified name (
  -     *   <code>nodeName</code> ) or <code>null</code> if there is no such 
  +     * @return The <code>Attr</code> node with the specified name (
  +     *   <code>nodeName</code>) or <code>null</code> if there is no such 
        *   attribute.
        */
       public Attr getAttributeNode(String name);
   
       /**
  -     *  Adds a new attribute node. If an attribute with that name (
  -     * <code>nodeName</code> ) is already present in the element, it is 
  +     * Adds a new attribute node. If an attribute with that name (
  +     * <code>nodeName</code>) is already present in the element, it is 
        * replaced by the new one.
  -     * <br> To add a new attribute node with a qualified name and namespace 
  +     * <br>To add a new attribute node with a qualified name and namespace 
        * URI, use the <code>setAttributeNodeNS</code> method.
  -     * @param newAttr  The <code>Attr</code> node to add to the attribute list.
  -     * @return  If the <code>newAttr</code> attribute replaces an existing 
  +     * @param newAttrThe <code>Attr</code> node to add to the attribute list.
  +     * @return If the <code>newAttr</code> attribute replaces an existing 
        *   attribute, the replaced <code>Attr</code> node is returned, 
        *   otherwise <code>null</code> is returned.
        * @exception DOMException
  -     *    WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from 
  -     *   a different document than the one that created the element.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  -     *   <br> INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already 
  -     *   an attribute of another <code>Element</code> object. The DOM user 
  -     *   must explicitly clone <code>Attr</code> nodes to re-use them in 
  -     *   other elements.
  +     *   WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a 
  +     *   different document than the one that created the element.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an 
  +     *   attribute of another <code>Element</code> object. The DOM user must 
  +     *   explicitly clone <code>Attr</code> nodes to re-use them in other 
  +     *   elements.
        */
       public Attr setAttributeNode(Attr newAttr)
                                    throws DOMException;
   
       /**
  -     *  Removes the specified attribute node. If the removed <code>Attr</code> 
  +     * Removes the specified attribute node. If the removed <code>Attr</code> 
        * has a default value it is immediately replaced. The replacing 
        * attribute has the same namespace URI and local name, as well as the 
        * original prefix, when applicable.
  -     * @param oldAttr  The <code>Attr</code> node to remove from the attribute 
  +     * @param oldAttrThe <code>Attr</code> node to remove from the attribute 
        *   list.
  -     * @return  The <code>Attr</code> node that was removed.
  +     * @return The <code>Attr</code> node that was removed.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  -     *   <br> NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an 
  -     *   attribute of the element.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an attribute 
  +     *   of the element.
        */
       public Attr removeAttributeNode(Attr oldAttr)
                                       throws DOMException;
   
       /**
  -     *  Returns a <code>NodeList</code> of all descendant elements with a 
  -     * given tag name, in the order in which they would be encountered in a 
  -     * preorder traversal of the <code>Element</code> tree.
  -     * @param name  The name of the tag to match on. The special value "*" 
  +     * Returns a <code>NodeList</code> of all descendant <code>Elements</code> 
  +     * with a given tag name, in the order in which they are encountered in 
  +     * a preorder traversal of this <code>Element</code> tree.
  +     * @param nameThe name of the tag to match on. The special value "*" 
        *   matches all tags.
  -     * @return  A list of matching <code>Element</code> nodes.
  +     * @return A list of matching <code>Element</code> nodes.
        */
       public NodeList getElementsByTagName(String name);
   
       /**
  -     *  Retrieves an attribute value by local name and namespace URI. 
  -     * HTML-only DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the attribute to retrieve.
  -     * @param localName  The  local name of the attribute to retrieve.
  -     * @return  The <code>Attr</code> value as a string, or an 
  -     *   <code>null</code> if that attribute does not have a specified or 
  -     *   default value.  This is different from <code>getAttribute</code> 
  -     *   which never return <code>null</code> . 
  +     * Retrieves an attribute value by local name and namespace URI. HTML-only 
  +     * DOM implementations do not need to implement this method.
  +     * @param namespaceURIThe namespace URI of the attribute to retrieve.
  +     * @param localNameThe local name of the attribute to retrieve.
  +     * @return The <code>Attr</code> value as a string, or the empty string 
  +     *   if that attribute does not have a specified or default value.
        * @since DOM Level 2
        */
       public String getAttributeNS(String namespaceURI, 
                                    String localName);
   
       /**
  -     *  Adds a new attribute. If an attribute with the same local name and 
  -     * namespace URI is already present on the element, its prefix is changed 
  -     * to be the prefix part of the <code>qualifiedName</code> , and its 
  -     * value is changed to be the <code>value</code> parameter. This value is 
  -     * a simple string; it is not parsed as it is being set. So any markup 
  -     * (such as syntax to be recognized as an entity reference) is treated as 
  -     * literal text, and needs to be appropriately escaped by the 
  -     * implementation when it is written out. In order to assign an attribute 
  -     * value that contains entity references, the user must create an 
  -     * <code>Attr</code> node plus any <code>Text</code> and 
  -     * <code>EntityReference</code> nodes, build the appropriate subtree, and 
  -     * use <code>setAttributeNodeNS</code> or <code>setAttributeNode</code> to
  -     *  assign it as the value of an attribute.
  -     * <br> HTML-only DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the attribute to create or 
  +     * Adds a new attribute. If an attribute with the same local name and 
  +     * namespace URI is already present on the element, its prefix is 
  +     * changed to be the prefix part of the <code>qualifiedName</code>, and 
  +     * its value is changed to be the <code>value</code> parameter. This 
  +     * value is a simple string; it is not parsed as it is being set. So any 
  +     * markup (such as syntax to be recognized as an entity reference) is 
  +     * treated as literal text, and needs to be appropriately escaped by the 
  +     * implementation when it is written out. In order to assign an 
  +     * attribute value that contains entity references, the user must create 
  +     * an <code>Attr</code> node plus any <code>Text</code> and 
  +     * <code>EntityReference</code> nodes, build the appropriate subtree, 
  +     * and use <code>setAttributeNodeNS</code> or 
  +     * <code>setAttributeNode</code> to assign it as the value of an 
  +     * attribute.
  +     * <br>HTML-only DOM implementations do not need to implement this method.
  +     * @param namespaceURIThe namespace URI of the attribute to create or 
        *   alter.
  -     * @param qualifiedName  The  qualified name of the attribute to create or 
  +     * @param qualifiedNameThe qualified name of the attribute to create or 
        *   alter.
  -     * @param value  The value to set in string form.
  +     * @param valueThe value to set in string form.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified qualified name 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified qualified name 
        *   contains an illegal character.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  -     *   <br> NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
        *   malformed, if the <code>qualifiedName</code> has a prefix and the 
  -     *   <code>namespaceURI</code> is <code>null</code> or an empty string, 
  -     *   if the <code>qualifiedName</code> has a prefix that is "xml" and the 
  -     *   <code>namespaceURI</code> is different from 
  -     *   "http://www.w3.org/XML/1998/namespace", if the 
  -     *   <code>qualifiedName</code> has a prefix that is "xmlns" and the 
  -     *   <code>namespaceURI</code> is different from 
  -     *   "http://www.w3.org/2000/xmlns/", or if the <code>qualifiedName</code>
  -     *    is "xmlns" and the <code>namespaceURI</code> is different from 
  -     *   "http://www.w3.org/2000/xmlns/".
  +     *   <code>namespaceURI</code> is <code>null</code>, if the 
  +     *   <code>qualifiedName</code> has a prefix that is "xml" and the 
  +     *   <code>namespaceURI</code> is different from "
  +     *   http://www.w3.org/XML/1998/namespace", or if the 
  +     *   <code>qualifiedName</code> is "xmlns" and the 
  +     *   <code>namespaceURI</code> is different from "
  +     *   http://www.w3.org/2000/xmlns/".
        * @since DOM Level 2
        */
       public void setAttributeNS(String namespaceURI, 
  @@ -208,15 +204,15 @@
                                  throws DOMException;
   
       /**
  -     *  Removes an attribute by local name and namespace URI. If the removed 
  +     * Removes an attribute by local name and namespace URI. If the removed 
        * attribute has a default value it is immediately replaced. The 
  -     * replacing attribute has the same namespace URI and local name, as well 
  -     * as the original prefix.
  -     * <br> HTML-only DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the attribute to remove.
  -     * @param localName  The  local name of the attribute to remove.
  +     * replacing attribute has the same namespace URI and local name, as 
  +     * well as the original prefix.
  +     * <br>HTML-only DOM implementations do not need to implement this method.
  +     * @param namespaceURIThe namespace URI of the attribute to remove.
  +     * @param localNameThe local name of the attribute to remove.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        * @since DOM Level 2
        */
       public void removeAttributeNS(String namespaceURI, 
  @@ -224,11 +220,11 @@
                                     throws DOMException;
   
       /**
  -     *  Retrieves an <code>Attr</code> node by local name and namespace URI. 
  +     * Retrieves an <code>Attr</code> node by local name and namespace URI. 
        * HTML-only DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the attribute to retrieve.
  -     * @param localName  The  local name of the attribute to retrieve.
  -     * @return  The <code>Attr</code> node with the specified attribute local 
  +     * @param namespaceURIThe namespace URI of the attribute to retrieve.
  +     * @param localNameThe local name of the attribute to retrieve.
  +     * @return The <code>Attr</code> node with the specified attribute local 
        *   name and namespace URI or <code>null</code> if there is no such 
        *   attribute.
        * @since DOM Level 2
  @@ -237,71 +233,70 @@
                                      String localName);
   
       /**
  -     *  Adds a new attribute. If an attribute with that local name and that 
  -     * namespace URI is already present in the element, it is replaced by the 
  -     * new one.
  -     * <br> HTML-only DOM implementations do not need to implement this method.
  -     * @param newAttr  The <code>Attr</code> node to add to the attribute list.
  -     * @return  If the <code>newAttr</code> attribute replaces an existing 
  -     *   attribute with the same  local name and  namespace URI , the 
  -     *   replaced <code>Attr</code> node is returned, otherwise 
  -     *   <code>null</code> is returned.
  +     * Adds a new attribute. If an attribute with that local name and that 
  +     * namespace URI is already present in the element, it is replaced by 
  +     * the new one.
  +     * <br>HTML-only DOM implementations do not need to implement this method.
  +     * @param newAttrThe <code>Attr</code> node to add to the attribute list.
  +     * @return If the <code>newAttr</code> attribute replaces an existing 
  +     *   attribute with the same local name and namespace URI, the replaced 
  +     *   <code>Attr</code> node is returned, otherwise <code>null</code> is 
  +     *   returned.
        * @exception DOMException
  -     *    WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from 
  -     *   a different document than the one that created the element.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  -     *   <br> INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already 
  -     *   an attribute of another <code>Element</code> object. The DOM user 
  -     *   must explicitly clone <code>Attr</code> nodes to re-use them in 
  -     *   other elements.
  +     *   WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a 
  +     *   different document than the one that created the element.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an 
  +     *   attribute of another <code>Element</code> object. The DOM user must 
  +     *   explicitly clone <code>Attr</code> nodes to re-use them in other 
  +     *   elements.
        * @since DOM Level 2
        */
       public Attr setAttributeNodeNS(Attr newAttr)
                                      throws DOMException;
   
       /**
  -     *  Returns a <code>NodeList</code> of all the <code>Elements</code> with 
  -     * a given local name and namespace URI in the order in which they would 
  -     * be encountered in a preorder traversal of the <code>Document</code> 
  -     * tree, starting from this node.
  -     * <br> HTML-only DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the elements to match on. 
  -     *   The special value "*" matches all namespaces.
  -     * @param localName  The  local name of the elements to match on. The 
  +     * Returns a <code>NodeList</code> of all the descendant 
  +     * <code>Elements</code> with a given local name and namespace URI in 
  +     * the order in which they are encountered in a preorder traversal of 
  +     * this <code>Element</code> tree.
  +     * <br>HTML-only DOM implementations do not need to implement this method.
  +     * @param namespaceURIThe namespace URI of the elements to match on. The 
  +     *   special value "*" matches all namespaces.
  +     * @param localNameThe local name of the elements to match on. The 
        *   special value "*" matches all local names.
  -     * @return  A new <code>NodeList</code> object containing all the matched 
  -     *   <code>Elements</code> .
  +     * @return A new <code>NodeList</code> object containing all the matched 
  +     *   <code>Elements</code>.
        * @since DOM Level 2
        */
       public NodeList getElementsByTagNameNS(String namespaceURI, 
                                              String localName);
   
       /**
  -     *  Returns <code>true</code> when an attribute with a given name is 
  +     * Returns <code>true</code> when an attribute with a given name is 
        * specified on this element or has a default value, <code>false</code> 
        * otherwise.
  -     * @param name  The name of the attribute to look for.
  +     * @param nameThe name of the attribute to look for.
        * @return <code>true</code> if an attribute with the given name is 
  -     *   specified on this element or has a default value, <code>false</code> 
  -     *   otherwise.
  +     *   specified on this element or has a default value, <code>false</code>
  +     *    otherwise.
        * @since DOM Level 2
        */
       public boolean hasAttribute(String name);
   
       /**
  -     *  Returns <code>true</code> when an attribute with a given local name 
  -     * and namespace URI is specified on this element or has a default value, 
  +     * Returns <code>true</code> when an attribute with a given local name and 
  +     * namespace URI is specified on this element or has a default value, 
        * <code>false</code> otherwise. HTML-only DOM implementations do not 
        * need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the attribute to look for.
  -     * @param localName  The  local name of the attribute to look for.
  -     * @return <code>true</code> if an attribute with the given local name and 
  -     *   namespace URI is specified or has a default value on this element, 
  -     *   <code>false</code> otherwise.
  +     * @param namespaceURIThe namespace URI of the attribute to look for.
  +     * @param localNameThe local name of the attribute to look for.
  +     * @return <code>true</code> if an attribute with the given local name 
  +     *   and namespace URI is specified or has a default value on this 
  +     *   element, <code>false</code> otherwise.
        * @since DOM Level 2
        */
       public boolean hasAttributeNS(String namespaceURI, 
                                     String localName);
   
   }
  -
  
  
  
  1.4       +24 -24    xml-xerces/java/src/org/w3c/dom/Entity.java
  
  Index: Entity.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/Entity.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Entity.java	2000/02/22 00:14:58	1.3
  +++ Entity.java	2000/10/02 21:57:44	1.4
  @@ -6,63 +6,63 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  This interface represents an entity, either parsed or unparsed, in an XML 
  - * document. Note that this models the entity itself  not the entity 
  + * This interface represents an entity, either parsed or unparsed, in an XML 
  + * document. Note that this models the entity itself not the entity 
    * declaration. <code>Entity</code> declaration modeling has been left for a 
    * later Level of the DOM specification.
  - * <p> The <code>nodeName</code> attribute that is inherited from 
  + * <p>The <code>nodeName</code> attribute that is inherited from 
    * <code>Node</code> contains the name of the entity.
  - * <p> An XML processor may choose to completely expand entities before  the 
  + * <p>An XML processor may choose to completely expand entities before the 
    * structure model is passed to the DOM; in this case there will be no 
    * <code>EntityReference</code> nodes in the document tree.
  - * <p> XML does not mandate that a non-validating XML processor read and 
  + * <p>XML does not mandate that a non-validating XML processor read and 
    * process entity declarations made in the external subset or declared in 
    * external parameter entities. This means that parsed entities declared in 
    * the external subset need not be expanded by some classes of applications, 
  - * and that the replacement value of the entity may not be available. When the
  - *  replacement value is available, the corresponding  <code>Entity</code> 
  + * and that the replacement value of the entity may not be available. When 
  + * the replacement value is available, the corresponding <code>Entity</code> 
    * node's child list represents the structure of that replacement text. 
    * Otherwise, the child list is empty.
  - * <p> The DOM Level 2 does not support editing <code>Entity</code> nodes; if 
  - * a user wants to make changes to the contents of an <code>Entity</code> , 
  + * <p>The DOM Level 2 does not support editing <code>Entity</code> nodes; if a 
  + * user wants to make changes to the contents of an <code>Entity</code>, 
    * every related <code>EntityReference</code> node has to be replaced in the 
  - * structure model by a clone of the <code>Entity</code> 's contents, and 
  - * then the desired changes must be made to each of those clones instead. All 
  - * the descendants of an <code>Entity</code> node are readonly.
  - * <p> An <code>Entity</code> node does not have any parent. If the entity 
  - * contains an unbound  namespace prefix , the <code>namespaceURI</code> of 
  + * structure model by a clone of the <code>Entity</code>'s contents, and 
  + * then the desired changes must be made to each of those clones instead. 
  + * <code>Entity</code> nodes and all their descendants are readonly.
  + * <p>An <code>Entity</code> node does not have any parent.If the entity 
  + * contains an unbound namespace prefix, the <code>namespaceURI</code> of 
    * the corresponding node in the <code>Entity</code> node subtree is 
  - * <code>null</code> . The same is true for <code>EntityReference</code> 
  + * <code>null</code>. The same is true for <code>EntityReference</code> 
    * nodes that refer to this entity, when they are created using the 
    * <code>createEntityReference</code> method of the <code>Document</code> 
    * interface. The DOM Level 2 does not support any mechanism to resolve 
    * namespace prefixes.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface Entity extends Node {
       /**
  -     *  The public identifier associated with the entity, if specified. If the 
  -     * public identifier was not specified, this is <code>null</code> .
  +     * The public identifier associated with the entity, if specified. If the 
  +     * public identifier was not specified, this is <code>null</code>.
        */
       public String getPublicId();
   
       /**
  -     *  The system identifier associated with the entity, if specified. If the 
  -     * system identifier was not specified, this is <code>null</code> .
  +     * The system identifier associated with the entity, if specified. If the 
  +     * system identifier was not specified, this is <code>null</code>.
        */
       public String getSystemId();
   
       /**
  -     *  For unparsed entities, the name of the notation for the entity. For 
  -     * parsed entities, this is <code>null</code> . 
  +     * For unparsed entities, the name of the notation for the entity. For 
  +     * parsed entities, this is <code>null</code>. 
        */
       public String getNotationName();
   
   }
  -
  
  
  
  1.4       +20 -19    xml-xerces/java/src/org/w3c/dom/EntityReference.java
  
  Index: EntityReference.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/EntityReference.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EntityReference.java	2000/02/22 00:14:58	1.3
  +++ EntityReference.java	2000/10/02 21:57:44	1.4
  @@ -6,33 +6,34 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
    * <code>EntityReference</code> objects may be inserted into the structure 
  - * model when an entity reference is in the source document, or when the user 
  - * wishes to insert an entity reference. Note that character references and 
  - * references to predefined entities are considered to be expanded by the 
  - * HTML or XML processor so that characters are represented by their Unicode 
  - * equivalent rather than by an entity reference. Moreover, the XML processor 
  - * may completely expand references to entities while building the structure 
  - * model, instead of providing <code>EntityReference</code> objects. If it 
  - * does provide such objects, then for a given <code>EntityReference</code> 
  - * node, it may be that there is no <code>Entity</code> node representing the 
  - * referenced entity. If such an <code>Entity</code> exists, then the child 
  - * list of the <code>EntityReference</code> node is in general the same as 
  - * that of the <code>Entity</code> node. They may differ when an entity 
  - * contains an unbound  namespace prefix . In such a case, because the 
  + * model when an entity reference is in the source document, or when the 
  + * user wishes to insert an entity reference. Note that character references 
  + * and references to predefined entities are considered to be expanded by 
  + * the HTML or XML processor so that characters are represented by their 
  + * Unicode equivalent rather than by an entity reference. Moreover, the XML 
  + * processor may completely expand references to entities while building the 
  + * structure model, instead of providing <code>EntityReference</code> 
  + * objects. If it does provide such objects, then for a given 
  + * <code>EntityReference</code> node, it may be that there is no 
  + * <code>Entity</code> node representing the referenced entity. If such an 
  + * <code>Entity</code> exists, then the subtree of the 
  + * <code>EntityReference</code> node is in general a copy of the 
  + * <code>Entity</code> node subtree. However, this may not be true when an 
  + * entity contains an unbound namespace prefix. In such a case, because the 
    * namespace prefix resolution depends on where the entity reference is, the 
    * descendants of the <code>EntityReference</code> node may be bound to 
  - * different  namespace URIs .
  - * <p> As with the <code>Entity</code> node, all descendants of the 
  - * <code>EntityReference</code> are readonly.
  + * different namespace URIs.
  + * <p>As for <code>Entity</code> nodes, <code>EntityReference</code> nodes and 
  + * all their descendants are readonly.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface EntityReference extends Node {
   }
  -
  
  
  
  1.4       +55 -55    xml-xerces/java/src/org/w3c/dom/NamedNodeMap.java
  
  Index: NamedNodeMap.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/NamedNodeMap.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NamedNodeMap.java	2000/02/22 00:14:58	1.3
  +++ NamedNodeMap.java	2000/10/02 21:57:44	1.4
  @@ -6,51 +6,53 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  Objects implementing the <code>NamedNodeMap</code> interface are used to 
  + * Objects implementing the <code>NamedNodeMap</code> interface are used to 
    * represent collections of nodes that can be accessed by name. Note that 
  - * <code>NamedNodeMap</code> does not inherit from <code>NodeList</code> ; 
  + * <code>NamedNodeMap</code> does not inherit from <code>NodeList</code>; 
    * <code>NamedNodeMaps</code> are not maintained in any particular order. 
    * Objects contained in an object implementing <code>NamedNodeMap</code> may 
    * also be accessed by an ordinal index, but this is simply to allow 
  - * convenient enumeration of the contents of a <code>NamedNodeMap</code> , 
  + * convenient enumeration of the contents of a <code>NamedNodeMap</code>, 
    * and does not imply that the DOM specifies an order to these Nodes. 
  + * <p><code>NamedNodeMap</code> objects in the DOM are live.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface NamedNodeMap {
       /**
  -     *  Retrieves a node specified by name.
  -     * @param name  The <code>nodeName</code> of a node to retrieve.
  -     * @return  A <code>Node</code> (of any type) with the specified 
  -     *   <code>nodeName</code> , or <code>null</code> if it does not identify 
  +     * Retrieves a node specified by name.
  +     * @param nameThe <code>nodeName</code> of a node to retrieve.
  +     * @return A <code>Node</code> (of any type) with the specified 
  +     *   <code>nodeName</code>, or <code>null</code> if it does not identify 
        *   any node in this map.
        */
       public Node getNamedItem(String name);
   
       /**
  -     *  Adds a node using its <code>nodeName</code> attribute. If a node with 
  +     * Adds a node using its <code>nodeName</code> attribute. If a node with 
        * that name is already present in this map, it is replaced by the new 
        * one.
  -     * <br> As the <code>nodeName</code> attribute is used to derive the name 
  +     * <br>As the <code>nodeName</code> attribute is used to derive the name 
        * which the node must be stored under, multiple nodes of certain types 
        * (those that have a "special" string value) cannot be stored as the 
        * names would clash. This is seen as preferable to allowing nodes to be 
        * aliased.
  -     * @param arg  A node to store in this map. The node will later be 
  +     * @param argA node to store in this map. The node will later be 
        *   accessible using the value of its <code>nodeName</code> attribute.
  -     * @return  If the new <code>Node</code> replaces an existing node the 
  +     * @return If the new <code>Node</code> replaces an existing node the 
        *   replaced <code>Node</code> is returned, otherwise <code>null</code> 
        *   is returned.
        * @exception DOMException
  -     *    WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a 
  +     *   WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a 
        *   different document than the one that created this map.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
  -     *   <br> INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an 
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
  +     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an 
        *   <code>Attr</code> that is already an attribute of another 
        *   <code>Element</code> object. The DOM user must explicitly clone 
        *   <code>Attr</code> nodes to re-use them in other elements.
  @@ -59,69 +61,68 @@
                                throws DOMException;
   
       /**
  -     *  Removes a node specified by name. A removed attribute may be known to 
  -     * have a default value when this map contains the attributes attached to 
  -     * an element, as returned by the attributes attribute of the 
  -     * <code>Node</code> interface. If so, an attribute immediately appears 
  -     * containing the default value as well as the corresponding namespace 
  -     * URI, local name, and prefix when applicable.
  -     * @param name  The <code>nodeName</code> of the node to remove.
  -     * @return  The node removed from this map if a node with such a name 
  +     * Removes a node specified by name. When this map contains the attributes 
  +     * attached to an element, if the removed attribute is known to have a 
  +     * default value, an attribute immediately appears containing the 
  +     * default value as well as the corresponding namespace URI, local name, 
  +     * and prefix when applicable.
  +     * @param nameThe <code>nodeName</code> of the node to remove.
  +     * @return The node removed from this map if a node with such a name 
        *   exists.
        * @exception DOMException
  -     *    NOT_FOUND_ERR: Raised if there is no node named <code>name</code> 
  -     *   in this map.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
  +     *   NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in 
  +     *   this map.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
        */
       public Node removeNamedItem(String name)
                                   throws DOMException;
   
       /**
  -     *  Returns the <code>index</code> th item in the map. If 
  -     * <code>index</code> is greater than or equal to the number of nodes in 
  -     * this map, this returns <code>null</code> .
  -     * @param index  Index into this map.
  -     * @return  The node at the <code>index</code> th position in the map, or 
  +     * Returns the <code>index</code>th item in the map. If <code>index</code> 
  +     * is greater than or equal to the number of nodes in this map, this 
  +     * returns <code>null</code>.
  +     * @param indexIndex into this map.
  +     * @return The node at the <code>index</code>th position in the map, or 
        *   <code>null</code> if that is not a valid index.
        */
       public Node item(int index);
   
       /**
  -     *  The number of nodes in this map. The range of valid child node indices 
  +     * The number of nodes in this map. The range of valid child node indices 
        * is <code>0</code> to <code>length-1</code> inclusive. 
        */
       public int getLength();
   
       /**
  -     *  Retrieves a node specified by local name and namespace URI. HTML-only 
  +     * Retrieves a node specified by local name and namespace URI. HTML-only 
        * DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the node to retrieve.
  -     * @param localName  The  local name of the node to retrieve.
  -     * @return  A <code>Node</code> (of any type) with the specified local 
  -     *   name and namespace URI, or <code>null</code> if they do not identify 
  -     *   any node in this map.
  +     * @param namespaceURIThe namespace URI of the node to retrieve.
  +     * @param localNameThe local name of the node to retrieve.
  +     * @return A <code>Node</code> (of any type) with the specified local 
  +     *   name and namespace URI, or <code>null</code> if they do not 
  +     *   identify any node in this map.
        * @since DOM Level 2
        */
       public Node getNamedItemNS(String namespaceURI, 
                                  String localName);
   
       /**
  -     *  Adds a node using its <code>namespaceURI</code> and 
  -     * <code>localName</code> . If a node with that namespace URI and that 
  +     * Adds a node using its <code>namespaceURI</code> and 
  +     * <code>localName</code>. If a node with that namespace URI and that 
        * local name is already present in this map, it is replaced by the new 
        * one.
  -     * <br> HTML-only DOM implementations do not need to implement this method.
  -     * @param arg  A node to store in this map. The node will later be 
  +     * <br>HTML-only DOM implementations do not need to implement this method.
  +     * @param argA node to store in this map. The node will later be 
        *   accessible using the value of its <code>namespaceURI</code> and 
        *   <code>localName</code> attributes.
  -     * @return  If the new <code>Node</code> replaces an existing node the 
  +     * @return If the new <code>Node</code> replaces an existing node the 
        *   replaced <code>Node</code> is returned, otherwise <code>null</code> 
        *   is returned.
        * @exception DOMException
  -     *    WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a 
  +     *   WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a 
        *   different document than the one that created this map.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
  -     *   <br> INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an 
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
  +     *   <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an 
        *   <code>Attr</code> that is already an attribute of another 
        *   <code>Element</code> object. The DOM user must explicitly clone 
        *   <code>Attr</code> nodes to re-use them in other elements.
  @@ -131,21 +132,21 @@
                                  throws DOMException;
   
       /**
  -     *  Removes a node specified by local name and namespace URI. A removed 
  +     * Removes a node specified by local name and namespace URI. A removed 
        * attribute may be known to have a default value when this map contains 
        * the attributes attached to an element, as returned by the attributes 
        * attribute of the <code>Node</code> interface. If so, an attribute 
        * immediately appears containing the default value as well as the 
        * corresponding namespace URI, local name, and prefix when applicable.
  -     * <br> HTML-only DOM implementations do not need to implement this method.
  -     * @param namespaceURI  The  namespace URI of the node to remove.
  -     * @param localName  The  local name of the node to remove.
  -     * @return  The node removed from this map if a node with such a local 
  +     * <br>HTML-only DOM implementations do not need to implement this method.
  +     * @param namespaceURIThe namespace URI of the node to remove.
  +     * @param localNameThe local name of the node to remove.
  +     * @return The node removed from this map if a node with such a local 
        *   name and namespace URI exists.
        * @exception DOMException
  -     *    NOT_FOUND_ERR: Raised if there is no node with the specified 
  +     *   NOT_FOUND_ERR: Raised if there is no node with the specified 
        *   <code>namespaceURI</code> and <code>localName</code> in this map.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
        * @since DOM Level 2
        */
       public Node removeNamedItemNS(String namespaceURI, 
  @@ -153,4 +154,3 @@
                                     throws DOMException;
   
   }
  -
  
  
  
  1.5       +206 -168  xml-xerces/java/src/org/w3c/dom/Node.java
  
  Index: Node.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/Node.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Node.java	2000/07/20 18:12:21	1.4
  +++ Node.java	2000/10/02 21:57:45	1.5
  @@ -6,347 +6,385 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  The <code>Node</code> interface is the primary datatype for the entire 
  + * The <code>Node</code> 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 <code>Node</code> interface expose 
    * methods for dealing with children, not all objects implementing the 
    * <code>Node</code> interface may have children. For example, 
  - * <code>Text</code> nodes may not have children, and adding children to such 
  - * nodes results in a <code>DOMException</code> being raised.
  - * <p> The attributes <code>nodeName</code> , <code>nodeValue</code> and 
  + * <code>Text</code> nodes may not have children, and adding children to 
  + * such nodes results in a <code>DOMException</code> being raised.
  + * <p>The attributes <code>nodeName</code>, <code>nodeValue</code> and 
    * <code>attributes</code> 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 
  - * <code>nodeType</code> (e.g., <code>nodeValue</code> for an 
  - * <code>Element</code> or <code>attributes</code> for a <code>Comment</code> 
  - * ), this returns <code>null</code> . Note that the specialized interfaces 
  + * cases where there is no obvious mapping of these attributes for a 
  + * specific <code>nodeType</code> (e.g., <code>nodeValue</code> for an 
  + * <code>Element</code> or <code>attributes</code> for a <code>Comment</code>
  + * ), this returns <code>null</code>. Note that the specialized interfaces 
    * may contain additional and more convenient mechanisms to get and set the 
    * relevant information.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface Node {
       // NodeType
  +    /**
  +     * The node is an <code>Element</code>.
  +     */
       public static final short ELEMENT_NODE              = 1;
  +    /**
  +     * The node is an <code>Attr</code>.
  +     */
       public static final short ATTRIBUTE_NODE            = 2;
  +    /**
  +     * The node is a <code>Text</code> node.
  +     */
       public static final short TEXT_NODE                 = 3;
  +    /**
  +     * The node is a <code>CDATASection</code>.
  +     */
       public static final short CDATA_SECTION_NODE        = 4;
  +    /**
  +     * The node is an <code>EntityReference</code>.
  +     */
       public static final short ENTITY_REFERENCE_NODE     = 5;
  +    /**
  +     * The node is an <code>Entity</code>.
  +     */
       public static final short ENTITY_NODE               = 6;
  +    /**
  +     * The node is a <code>ProcessingInstruction</code>.
  +     */
       public static final short PROCESSING_INSTRUCTION_NODE = 7;
  +    /**
  +     * The node is a <code>Comment</code>.
  +     */
       public static final short COMMENT_NODE              = 8;
  +    /**
  +     * The node is a <code>Document</code>.
  +     */
       public static final short DOCUMENT_NODE             = 9;
  +    /**
  +     * The node is a <code>DocumentType</code>.
  +     */
       public static final short DOCUMENT_TYPE_NODE        = 10;
  +    /**
  +     * The node is a <code>DocumentFragment</code>.
  +     */
       public static final short DOCUMENT_FRAGMENT_NODE    = 11;
  +    /**
  +     * The node is a <code>Notation</code>.
  +     */
       public static final short NOTATION_NODE             = 12;
   
       /**
  -     *  The name of this node, depending on its type; see the table above. 
  +     * The name of this node, depending on its type; see the table above. 
        */
       public String getNodeName();
   
       /**
  -     *  The value of this node, depending on its type; see the table above. 
  -     * When it is defined to be <code>null</code> , setting it has no effect.
  +     * The value of this node, depending on its type; see the table above. 
  +     * When it is defined to be <code>null</code>, setting it has no effect.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
        * @exception DOMException
  -     *    DOMSTRING_SIZE_ERR: Raised when it would return more characters 
  -     *   than fit in a <code>DOMString</code> variable on the implementation 
  +     *   DOMSTRING_SIZE_ERR: Raised when it would return more characters than 
  +     *   fit in a <code>DOMString</code> variable on the implementation 
        *   platform.
        */
       public String getNodeValue()
  -                                  throws DOMException;
  +                                 throws DOMException;
       public void setNodeValue(String nodeValue)
  -                                  throws DOMException;
  +                                 throws DOMException;
   
       /**
  -     *  A code representing the type of the underlying object, as defined 
  -     * above.
  +     * A code representing the type of the underlying object, as defined above.
        */
       public short getNodeType();
   
       /**
  -     *  The parent of this node. All nodes, except <code>Attr</code> , 
  -     * <code>Document</code> , <code>DocumentFragment</code> , 
  -     * <code>Entity</code> , and <code>Notation</code> may have a parent. 
  -     * However, if a	node has just been created and not yet added to the 
  +     * The parent of this node. All nodes, except <code>Attr</code>, 
  +     * <code>Document</code>, <code>DocumentFragment</code>, 
  +     * <code>Entity</code>, and <code>Notation</code> 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 
  -     * <code>null</code> .
  +     * <code>null</code>.
        */
       public Node getParentNode();
   
       /**
  -     *  A <code>NodeList</code> that contains all children of this node. If 
  +     * A <code>NodeList</code> that contains all children of this node. If 
        * there are no children, this is a <code>NodeList</code> containing no 
  -     * nodes. The content of the returned <code>NodeList</code> 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 <code>NodeList</code> accessors; it is not a static 
  -     * snapshot of the content of the node. This is true for every 
  -     * <code>NodeList</code> , including the ones returned by the 
  -     * <code>getElementsByTagName</code> method.
  +     * nodes.
        */
       public NodeList getChildNodes();
   
       /**
  -     *  The first child of this node. If there is no such node, this returns 
  -     * <code>null</code> .
  +     * The first child of this node. If there is no such node, this returns 
  +     * <code>null</code>.
        */
       public Node getFirstChild();
   
       /**
  -     *  The last child of this node. If there is no such node, this returns 
  -     * <code>null</code> .
  +     * The last child of this node. If there is no such node, this returns 
  +     * <code>null</code>.
        */
       public Node getLastChild();
   
       /**
  -     *  The node immediately preceding this node. If there is no such node, 
  -     * this returns <code>null</code> .
  +     * The node immediately preceding this node. If there is no such node, 
  +     * this returns <code>null</code>.
        */
       public Node getPreviousSibling();
   
       /**
  -     *  The node immediately following this node. If there is no such node, 
  -     * this returns <code>null</code> .
  +     * The node immediately following this node. If there is no such node, 
  +     * this returns <code>null</code>.
        */
       public Node getNextSibling();
   
       /**
  -     *  A <code>NamedNodeMap</code> containing the attributes of this node (if 
  -     * it is an <code>Element</code> ) or <code>null</code> otherwise. 
  +     * A <code>NamedNodeMap</code> containing the attributes of this node (if 
  +     * it is an <code>Element</code>) or <code>null</code> otherwise. 
        */
       public NamedNodeMap getAttributes();
   
       /**
  -     *  The <code>Document</code> object associated with this node. This is 
  +     * The <code>Document</code> object associated with this node. This is 
        * also the <code>Document</code> object used to create new nodes. When 
        * this node is a <code>Document</code> or a <code>DocumentType</code> 
        * which is not used with any <code>Document</code> yet, this is 
  -     * <code>null</code> .
  +     * <code>null</code>.
        * @version DOM Level 2
        */
       public Document getOwnerDocument();
   
       /**
  -     *  Inserts the node <code>newChild</code> before the existing child node 
  -     * <code>refChild</code> . If <code>refChild</code> is <code>null</code> 
  -     * , insert <code>newChild</code> at the end of the list of children.
  -     * <br> If <code>newChild</code> is a <code>DocumentFragment</code> 
  -     * object, all of its children are inserted, in the same order, before 
  -     * <code>refChild</code> . If the <code>newChild</code> is already in the 
  +     * Inserts the node <code>newChild</code> before the existing child node 
  +     * <code>refChild</code>. If <code>refChild</code> is <code>null</code>, 
  +     * insert <code>newChild</code> at the end of the list of children.
  +     * <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, 
  +     * all of its children are inserted, in the same order, before 
  +     * <code>refChild</code>. If the <code>newChild</code> is already in the 
        * tree, it is first removed.
  -     * @param newChild  The node to insert.
  -     * @param refChild  The reference node, i.e., the node before which the 
  -     *   new node must be inserted.
  -     * @return  The node being inserted.
  +     * @param newChildThe node to insert.
  +     * @param refChildThe reference node, i.e., the node before which the new 
  +     *   node must be inserted.
  +     * @return The node being inserted.
        * @exception DOMException
  -     *    HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does 
  -     *   not allow children of the type of the <code>newChild</code> node, or 
  -     *   if the node to insert is one of this node's ancestors.
  -     *   <br> WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created 
  +     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not 
  +     *   allow children of the type of the <code>newChild</code> node, or if 
  +     *   the node to insert is one of this node's ancestors.
  +     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created 
        *   from a different document than the one that created this node.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node 
  -     *   being inserted is readonly.
  -     *   <br> NOT_FOUND_ERR: Raised if <code>refChild</code> is not a child 
  -     *   of this node.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or 
  +     *   if the parent of the node being inserted is readonly.
  +     *   <br>NOT_FOUND_ERR: Raised if <code>refChild</code> is not a child of 
  +     *   this node.
        */
       public Node insertBefore(Node newChild, 
                                Node refChild)
                                throws DOMException;
   
       /**
  -     *  Replaces the child node <code>oldChild</code> with 
  -     * <code>newChild</code> in the list of children, and returns the 
  -     * <code>oldChild</code> node.
  -     * <br> If <code>newChild</code> is a <code>DocumentFragment</code> object,
  -     *  <code>oldChild</code> is replaced by all of the 
  -     * <code>DocumentFragment</code> children, which are inserted in the same 
  -     * order. If the <code>newChild</code> is already in the tree, it is 
  -     * first removed.
  -     * @param newChild  The new node to put in the child list.
  -     * @param oldChild  The node being replaced in the list.
  -     * @return  The node replaced.
  +     * Replaces the child node <code>oldChild</code> with <code>newChild</code>
  +     *  in the list of children, and returns the <code>oldChild</code> node.
  +     * <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, 
  +     * <code>oldChild</code> is replaced by all of the 
  +     * <code>DocumentFragment</code> children, which are inserted in the 
  +     * same order. If the <code>newChild</code> is already in the tree, it 
  +     * is first removed.
  +     * @param newChildThe new node to put in the child list.
  +     * @param oldChildThe node being replaced in the list.
  +     * @return The node replaced.
        * @exception DOMException
  -     *    HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does 
  -     *   not allow children of the type of the <code>newChild</code> node, or 
  -     *   if the node to put in is one of this node's ancestors.
  -     *   <br> WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created 
  +     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not 
  +     *   allow children of the type of the <code>newChild</code> node, or if 
  +     *   the node to put in is one of this node's ancestors.
  +     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created 
        *   from a different document than the one that created this node.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the new 
  -     *   node is readonly.
  -     *   <br> NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child 
  -     *   of this node.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent of 
  +     *   the new node is readonly.
  +     *   <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of 
  +     *   this node.
        */
       public Node replaceChild(Node newChild, 
                                Node oldChild)
                                throws DOMException;
   
       /**
  -     *  Removes the child node indicated by <code>oldChild</code> from the 
  -     * list of children, and returns it.
  -     * @param oldChild  The node being removed.
  -     * @return  The node removed.
  +     * Removes the child node indicated by <code>oldChild</code> from the list 
  +     * of children, and returns it.
  +     * @param oldChildThe node being removed.
  +     * @return The node removed.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  -     *   <br> NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child 
  -     *   of this node.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of 
  +     *   this node.
        */
       public Node removeChild(Node oldChild)
                               throws DOMException;
   
       /**
  -     *  Adds the node <code>newChild</code> to the end of the list of children 
  +     * Adds the node <code>newChild</code> to the end of the list of children 
        * of this node. If the <code>newChild</code> is already in the tree, it 
        * is first removed.
  -     * @param newChild  The node to add. If it is a  
  -     *   <code>DocumentFragment</code> object, the entire contents of the 
  -     *   document fragment are moved into the child list of this node
  -     * @return  The node added.
  +     * @param newChildThe node to add.If it is a <code>DocumentFragment</code>
  +     *    object, the entire contents of the document fragment are moved 
  +     *   into the child list of this node
  +     * @return The node added.
        * @exception DOMException
  -     *    HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does 
  -     *   not allow children of the type of the <code>newChild</code> node, or 
  -     *   if the node to append is one of this node's ancestors.
  -     *   <br> WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created 
  +     *   HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not 
  +     *   allow children of the type of the <code>newChild</code> node, or if 
  +     *   the node to append is one of this node's ancestors.
  +     *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created 
        *   from a different document than the one that created this node.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node 
  -     *   being appended is readonly.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        */
       public Node appendChild(Node newChild)
                               throws DOMException;
   
       /**
  -     *  This is a convenience method to allow easy determination of whether a 
  -     * node has any children.
  -     * @return  <code>true</code> if the node has any children, 
  -     *   <code>false</code> if the node has no children.
  +     * Returns whether this node has any children.
  +     * @return  <code>true</code> if this node has any children, 
  +     *   <code>false</code> otherwise.
        */
       public boolean hasChildNodes();
   
       /**
  -     *  Returns a duplicate of this node, i.e., serves as a generic copy 
  +     * Returns a duplicate of this node, i.e., serves as a generic copy 
        * constructor for nodes. The duplicate node has no parent; (
  -     * <code>parentNode</code> returns <code>null</code> .).
  -     * <br> Cloning an <code>Element</code> copies all attributes and their 
  +     * <code>parentNode</code> is <code>null</code>.).
  +     * <br>Cloning an <code>Element</code> 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 <code>Text</code> node. Cloning any other type of node simply 
  -     * returns a copy of this node.
  -     * <br> Note that cloning an immutable subtree results in a mutable copy, 
  -     * but the children of an <code>EntityReference</code> clone are readonly.
  -     * @param deep  If <code>true</code> , recursively clone the subtree under 
  -     *   the specified node; if <code>false</code> , clone only the node 
  -     *   itself (and its attributes, if it is an <code>Element</code> ).  
  -     * @return  The duplicate node.
  +     * child <code>Text</code> node. Cloning an <code>Attribute</code> 
  +     * directly, as opposed to be cloned as part of an <code>Element</code> 
  +     * cloning operation, returns a specified attribute (
  +     * <code>specified</code> is <code>true</code>). Cloning any other type 
  +     * of node simply returns a copy of this node.
  +     * <br>Note that cloning an immutable subtree results in a mutable copy, 
  +     * but the children of an <code>EntityReference</code> clone are readonly
  +     * . In addition, clones of unspecified <code>Attr</code> nodes are 
  +     * specified. And, cloning <code>Document</code>, 
  +     * <code>DocumentType</code>, <code>Entity</code>, and 
  +     * <code>Notation</code> nodes is implementation dependent.
  +     * @param deepIf <code>true</code>, recursively clone the subtree under 
  +     *   the specified node; if <code>false</code>, clone only the node 
  +     *   itself (and its attributes, if it is an <code>Element</code>). 
  +     * @return The duplicate node.
        */
       public Node cloneNode(boolean deep);
   
       /**
  -     *  Puts all <code>Text</code> nodes in the full depth of the sub-tree 
  -     * underneath this <code>Node</code> , including attribute nodes, into a 
  -     * "normal" form where only markup (e.g., tags, comments, processing 
  -     * instructions, CDATA sections, and entity references) separates 
  -     * <code>Text</code> nodes, i.e., there are neither adjacent 
  -     * <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be 
  -     * used to ensure that the DOM view  of a document is the same as if it 
  -     * were saved and re-loaded, and is useful when operations (such as 
  -     * XPointer lookups) that depend on a particular document tree structure 
  -     * are to be used. In cases where the document contains 
  -     * <code>CDATASections</code> , the normalize operation alone may not be 
  +     * Puts all <code>Text</code> nodes in the full depth of the sub-tree 
  +     * underneath this <code>Node</code>, including attribute nodes, into a 
  +     * "normal" form where only structure (e.g., elements, comments, 
  +     * processing instructions, CDATA sections, and entity references) 
  +     * separates <code>Text</code> nodes, i.e., there are neither adjacent 
  +     * <code>Text</code> nodes nor empty <code>Text</code> nodes. This can 
  +     * be used to ensure that the DOM view of a document is the same as if 
  +     * it were saved and re-loaded, and is useful when operations (such as 
  +     * XPointer  lookups) that depend on a particular document tree 
  +     * structure are to be used.In cases where the document contains 
  +     * <code>CDATASections</code>, the normalize operation alone may not be 
        * sufficient, since XPointers do not differentiate between 
        * <code>Text</code> nodes and <code>CDATASection</code> nodes.
  -     * @since DOM Level 2
  +     * @version DOM Level 2
        */
       public void normalize();
   
       /**
  -     *  Tests whether the DOM implementation implements a specific feature and 
  +     * Tests whether the DOM implementation implements a specific feature and 
        * that feature is supported by this node.
  -     * @param feature  The name of the feature to test. This is the same name 
  +     * @param featureThe name of the feature to test. This is the same name 
        *   which can be passed to the method <code>hasFeature</code> on 
  -     *   <code>DOMImplementation</code> .
  -     * @param version  This is the version number of the feature to test. In 
  +     *   <code>DOMImplementation</code>.
  +     * @param versionThis is the version number of the feature to test. In 
        *   Level 2, version 1, this is the string "2.0". If the version is not 
        *   specified, supporting any version of the feature will cause the 
  -     *   method to return <code>true</code> .
  -     * @return  Returns <code>true</code> if the specified feature is supported
  -     *    on this node, <code>false</code> otherwise.
  +     *   method to return <code>true</code>.
  +     * @return Returns <code>true</code> if the specified feature is 
  +     *   supported on this node, <code>false</code> otherwise.
        * @since DOM Level 2
        */
  -    public boolean supports(String feature, 
  -                            String version);
  +    public boolean isSupported(String feature, 
  +                               String version);
   
       /**
  -     *  The  namespace URI of this node, or <code>null</code> if it is 
  +     * The namespace URI of this node, or <code>null</code> if it is 
        * unspecified.
  -     * <br> This is not a computed value that is the result of a namespace 
  -     * lookup based on an examination of the namespace declarations in scope. 
  -     * It is merely the namespace URI given at creation time.
  -     * <br> For nodes of any type other than <code>ELEMENT_NODE</code> and 
  +     * <br>This is not a computed value that is the result of a namespace 
  +     * lookup based on an examination of the namespace declarations in 
  +     * scope. It is merely the namespace URI given at creation time.
  +     * <br>For nodes of any type other than <code>ELEMENT_NODE</code> and 
        * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 
        * method, such as <code>createElement</code> from the 
  -     * <code>Document</code> interface, this is always <code>null</code> . 
  -     * Per the  Namespaces in XML Specification  an attribute does not 
  -     * inherit its namespace from the element it is attached to. If an 
  -     * attribute is not explicitly given a namespace, it simply has no 
  -     * namespace.
  +     * <code>Document</code> interface, this is always <code>null</code>.Per 
  +     * the Namespaces in XML Specification  an attribute does not inherit 
  +     * its namespace from the element it is attached to. If an attribute is 
  +     * not explicitly given a namespace, it simply has no namespace.
        * @since DOM Level 2
        */
       public String getNamespaceURI();
   
       /**
  -     *  The  namespace prefix of this node, or <code>null</code> if it is 
  +     * The namespace prefix of this node, or <code>null</code> if it is 
        * unspecified.
  -     * <br> Note that setting this attribute, when permitted, changes the 
  -     * <code>nodeName</code> attribute, which holds the  qualified name , as 
  +     * <br>Note that setting this attribute, when permitted, changes the 
  +     * <code>nodeName</code> attribute, which holds the qualified name, as 
        * well as the <code>tagName</code> and <code>name</code> attributes of 
        * the <code>Element</code> and <code>Attr</code> interfaces, when 
        * applicable.
  -     * <br> Note also that changing the prefix of an attribute that is known to
  -     *  have a default value, does not make a new attribute with the default 
  +     * <br>Note also that changing the prefix of an attribute that is known to 
  +     * have a default value, does not make a new attribute with the default 
        * value and the original prefix appear, since the 
        * <code>namespaceURI</code> and <code>localName</code> do not change.
  +     * <br>For nodes of any type other than <code>ELEMENT_NODE</code> and 
  +     * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 
  +     * method, such as <code>createElement</code> from the 
  +     * <code>Document</code> interface, this is always <code>null</code>.
        * @exception DOMException
  -     *    INVALID_CHARACTER_ERR: Raised if the specified prefix contains an 
  +     *   INVALID_CHARACTER_ERR: Raised if the specified prefix contains an 
        *   illegal character.
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  -     *   <br> NAMESPACE_ERR: Raised if the specified <code>prefix</code> is 
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is 
        *   malformed, if the <code>namespaceURI</code> of this node is 
  -     *   <code>null</code> , if the specified prefix is "xml" and the 
  -     *   <code>namespaceURI</code> of this node is different from 
  -     *   "http://www.w3.org/XML/1998/namespace", if this node is an attribute 
  -     *   and the specified prefix is "xmlns" and the <code>namespaceURI</code>
  -     *    of this node is different from "http://www.w3.org/2000/xmlns/", or 
  -     *   if this node is an attribute and the <code>qualifiedName</code> of 
  -     *   this node is "xmlns"  .
  +     *   <code>null</code>, if the specified prefix is "xml" and the 
  +     *   <code>namespaceURI</code> of this node is different from "
  +     *   http://www.w3.org/XML/1998/namespace", if this node is an attribute 
  +     *   and the specified prefix is "xmlns" and the 
  +     *   <code>namespaceURI</code> of this node is different from "
  +     *   http://www.w3.org/2000/xmlns/", or if this node is an attribute and 
  +     *   the <code>qualifiedName</code> of this node is "xmlns" .
        * @since DOM Level 2
        */
       public String getPrefix();
       public void setPrefix(String prefix)
  -                            throws DOMException;
  +                               throws DOMException;
   
       /**
  -     *  Returns the local part of the  qualified name of this node.
  -     * <br> For nodes created with a DOM Level 1 method, such as 
  -     * <code>createElement</code> from the <code>Document</code> interface, 
  -     * it is <code>null</code> .
  +     * Returns the local part of the qualified name of this node.
  +     * <br>For nodes of any type other than <code>ELEMENT_NODE</code> and 
  +     * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 
  +     * method, such as <code>createElement</code> from the 
  +     * <code>Document</code> interface, this is always <code>null</code>.
        * @since DOM Level 2
        */
       public String getLocalName();
   
       /**
  -     *  Returns whether this node (if it is an element) has any attributes.
  +     * Returns whether this node (if it is an element) has any attributes.
        * @return <code>true</code> if this node has any attributes, 
        *   <code>false</code> otherwise.
        * @since DOM Level 2
        */
       public boolean hasAttributes();
  -}
   
  +}
  
  
  
  1.4       +13 -13    xml-xerces/java/src/org/w3c/dom/NodeList.java
  
  Index: NodeList.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/NodeList.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NodeList.java	2000/02/22 00:14:58	1.3
  +++ NodeList.java	2000/10/02 21:57:45	1.4
  @@ -6,36 +6,36 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  The <code>NodeList</code> interface provides the abstraction of an ordered 
  + * The <code>NodeList</code> interface provides the abstraction of an ordered 
    * collection of nodes, without defining or constraining how this collection 
  - * is implemented.
  - * <p> The items in the <code>NodeList</code> are accessible via an integral 
  - * index, starting from 0. 
  + * is implemented. <code>NodeList</code> objects in the DOM are live.
  + * <p>The items in the <code>NodeList</code> are accessible via an integral 
  + * index, starting from 0.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface NodeList {
       /**
  -     *  Returns the <code>index</code> th item in the collection. If 
  +     * Returns the <code>index</code>th item in the collection. If 
        * <code>index</code> is greater than or equal to the number of nodes in 
  -     * the list, this returns <code>null</code> .
  -     * @param index  Index into the collection.
  -     * @return  The node at the <code>index</code> th position in the 
  -     *   <code>NodeList</code> , or <code>null</code> if that is not a valid 
  +     * the list, this returns <code>null</code>.
  +     * @param indexIndex into the collection.
  +     * @return The node at the <code>index</code>th position in the 
  +     *   <code>NodeList</code>, or <code>null</code> if that is not a valid 
        *   index.
        */
       public Node item(int index);
   
       /**
  -     *  The number of nodes in the list. The range of valid child node indices 
  +     * The number of nodes in the list. The range of valid child node indices 
        * is 0 to <code>length-1</code> inclusive. 
        */
       public int getLength();
   
   }
  -
  
  
  
  1.4       +13 -13    xml-xerces/java/src/org/w3c/dom/Notation.java
  
  Index: Notation.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/Notation.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Notation.java	2000/02/22 00:14:58	1.3
  +++ Notation.java	2000/10/02 21:57:47	1.4
  @@ -6,35 +6,35 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  This interface represents a notation declared in the DTD. A notation 
  - * either declares, by name, the format of an unparsed entity (see section 4.7
  - *  of the XML 1.0 specification), or is used for formal declaration of 
  + * This interface represents a notation declared in the DTD. A notation either 
  + * declares, by name, the format of an unparsed entity (see section 4.7 of 
  + * the XML 1.0 specification ), or is used for formal declaration of 
    * processing instruction targets (see section 2.6 of the XML 1.0 
  - * specification). The <code>nodeName</code> attribute inherited from 
  + * specification ). The <code>nodeName</code> attribute inherited from 
    * <code>Node</code> is set to the declared name of the notation.
  - * <p> The DOM Level 1 does not support editing <code>Notation</code> nodes; 
  + * <p>The DOM Level 1 does not support editing <code>Notation</code> nodes; 
    * they are therefore readonly.
  - * <p> A <code>Notation</code> node does not have any parent.
  + * <p>A <code>Notation</code> node does not have any parent.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface Notation extends Node {
       /**
  -     *  The public identifier of this notation. If the  public identifier was 
  -     * not specified, this is <code>null</code> .
  +     * The public identifier of this notation. If the public identifier was 
  +     * not specified, this is <code>null</code>.
        */
       public String getPublicId();
   
       /**
  -     *  The system identifier of this notation. If the  system identifier was 
  -     * not specified, this is <code>null</code> .
  +     * The system identifier of this notation. If the system identifier was 
  +     * not specified, this is <code>null</code>.
        */
       public String getSystemId();
   
   }
  -
  
  
  
  1.4       +8 -8      xml-xerces/java/src/org/w3c/dom/ProcessingInstruction.java
  
  Index: ProcessingInstruction.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/ProcessingInstruction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ProcessingInstruction.java	2000/02/22 00:14:58	1.3
  +++ ProcessingInstruction.java	2000/10/02 21:57:49	1.4
  @@ -6,35 +6,35 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  The <code>ProcessingInstruction</code> interface represents a  "processing 
  + * The <code>ProcessingInstruction</code> interface represents a "processing 
    * instruction", used in XML as a way to keep processor-specific information 
    * in the text of the document.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface ProcessingInstruction extends Node {
       /**
  -     *  The target of this processing instruction. XML defines this as being 
  +     * The target of this processing instruction. XML defines this as being 
        * the first token following the markup that begins the processing 
        * instruction.
        */
       public String getTarget();
   
       /**
  -     *  The content of this processing instruction. This is from the first non 
  +     * The content of this processing instruction. This is from the first non 
        * white space character after the target to the character immediately 
  -     * preceding the <code>?&gt;</code> .
  +     * preceding the <code>?&gt;</code>.
        * @exception DOMException
  -     *    NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
  +     *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
        */
       public String getData();
       public void setData(String data)
                             throws DOMException;
   
   }
  -
  
  
  
  1.4       +28 -27    xml-xerces/java/src/org/w3c/dom/Text.java
  
  Index: Text.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/Text.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Text.java	2000/02/22 00:14:58	1.3
  +++ Text.java	2000/10/02 21:57:49	1.4
  @@ -6,50 +6,51 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom;
   
   /**
  - *  The <code>Text</code> interface inherits from <code>CharacterData</code> 
  - * and represents the textual content (termed  character  data in XML) of an 
  - * <code>Element</code> or <code>Attr</code> .  If there is no markup inside 
  + * The <code>Text</code> interface inherits from <code>CharacterData</code> 
  + * and represents the textual content (termed character data in XML) of an 
  + * <code>Element</code> or <code>Attr</code>. If there is no markup inside 
    * an element's content, the text is contained in a single object 
  - * implementing the <code>Text</code> interface that is the only child of the 
  - * element. If there is markup, it is parsed into the  information items 
  - * (elements,  comments, etc.) and <code>Text</code>  nodes that form the 
  - * list of children of the element.
  - * <p> When a document is first made available via the DOM, there is  only one 
  - * <code>Text</code> node for each block of text. Users may create  adjacent 
  - * <code>Text</code> nodes that represent the  contents of a given element 
  + * implementing the <code>Text</code> interface that is the only child of 
  + * the element. If there is markup, it is parsed into the information items 
  + * (elements, comments, etc.) and <code>Text</code> nodes that form the list 
  + * of children of the element.
  + * <p>When a document is first made available via the DOM, there is only one 
  + * <code>Text</code> node for each block of text. Users may create adjacent 
  + * <code>Text</code> nodes that represent the contents of a given element 
    * without any intervening markup, but should be aware that there is no way 
    * to represent the separations between these nodes in XML or HTML, so they 
    * will not (in general) persist between DOM editing sessions. The 
  - * <code>normalize()</code> method on <code>Element</code> merges any such 
  + * <code>normalize()</code> method on <code>Node</code> merges any such 
    * adjacent <code>Text</code> objects into a single node for each block of 
    * text.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>Document Object Model (DOM) Level 2 Core Specification</a>.
    */
   public interface Text extends CharacterData {
       /**
  -     *  Breaks this node into two  nodes at the specified <code>offset</code> 
  -     * , keeping both in the tree as siblings. This node then only contains 
  -     * all the content up to the <code>offset</code> point. A new node of the 
  -     * same type, which is inserted as the next sibling of this node, 
  -     * contains all the content at and after the <code>offset</code> point. 
  -     * When the <code>offset</code> is equal to the length of this node, the 
  -     * new node has no data.
  -     * @param offset  The  16-bit unit offset at which to split, starting from 
  -     *   <code>0</code> .
  -     * @return  The new node, of the same type as this node.
  +     * Breaks this node into two nodes at the specified <code>offset</code>, 
  +     * keeping both in the tree as siblings. After being split, this node 
  +     * will contain all the content up to the <code>offset</code> point. A 
  +     * new node of the same type, which contains all the content at and 
  +     * after the <code>offset</code> point, is returned. If the original 
  +     * node had a parent node, the new node is inserted as the next sibling 
  +     * of the original node. When the <code>offset</code> is equal to the 
  +     * length of this node, the new node has no data.
  +     * @param offsetThe 16-bit unit offset at which to split, starting from 
  +     *   <code>0</code>.
  +     * @return The new node, of the same type as this node.
        * @exception DOMException
  -     *    INDEX_SIZE_ERR: Raised if the specified offset is negative or 
  -     *   greater than the number of 16-bit units in <code>data</code> .
  -     *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
  +     *   INDEX_SIZE_ERR: Raised if the specified offset is negative or greater 
  +     *   than the number of 16-bit units in <code>data</code>.
  +     *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
        */
       public Text splitText(int offset)
                             throws DOMException;
   
   }
  -
  
  
  
  1.3       +23 -23    xml-xerces/java/src/org/w3c/dom/events/DocumentEvent.java
  
  Index: DocumentEvent.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/events/DocumentEvent.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DocumentEvent.java	2000/02/22 00:15:00	1.2
  +++ DocumentEvent.java	2000/10/02 21:57:56	1.3
  @@ -6,8 +6,8 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.events;
  @@ -17,40 +17,40 @@
   /**
    *  The <code>DocumentEvent</code> interface provides a mechanism by which the 
    * user can create an Event of a type supported by the implementation. It is 
  - * expected that the <code>DocumentEvent</code> interface will be implemented 
  - * on the same object which implements the <code>Document</code> interface in 
  - * an implementation which supports the Event model. 
  + * expected that the <code>DocumentEvent</code> interface will be 
  + * implemented on the same object which implements the <code>Document</code> 
  + * interface in an implementation which supports the Event model. 
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Events-20000927'>Document Object Model (DOM) Level 2 Events Specification</a>.
    * @since DOM Level 2
    */
   public interface DocumentEvent {
       /**
        * 
  -     * @param eventType  The <code>eventType</code> parameter specifies the 
  -     *   type of <code>Event</code> interface to be created.  If the 
  +     * @param eventTypeThe <code>eventType</code> parameter specifies the 
  +     *   type of <code>Event</code> interface to be created. If the 
        *   <code>Event</code> interface specified is supported by the 
  -     *   implementation  this method will return a new <code>Event</code> of 
  -     *   the interface type requested.  If the  <code>Event</code> is to be 
  -     *   dispatched via the <code>dispatchEvent</code> method the  
  -     *   appropriate event init method must be called after creation in order 
  -     *   to initialize the <code>Event</code> 's values.  As an example, a 
  -     *   user wishing to synthesize some kind of  <code>UIEvent</code> would 
  -     *   call <code>createEvent</code> with the parameter "UIEvents".  The  
  -     *   <code>initUIEvent</code> method could then be called on the newly 
  -     *   created <code>UIEvent</code> to set the specific type of UIEvent to 
  -     *   be dispatched and set its context information. The 
  +     *   implementation this method will return a new <code>Event</code> of 
  +     *   the interface type requested. If the <code>Event</code> is to be 
  +     *   dispatched via the <code>dispatchEvent</code> method the 
  +     *   appropriate event init method must be called after creation in 
  +     *   order to initialize the <code>Event</code>'s values. As an example, 
  +     *   a user wishing to synthesize some kind of <code>UIEvent</code> 
  +     *   would call <code>createEvent</code> with the parameter "UIEvents". 
  +     *   The <code>initUIEvent</code> method could then be called on the 
  +     *   newly created <code>UIEvent</code> to set the specific type of 
  +     *   UIEvent to be dispatched and set its context information.The 
        *   <code>createEvent</code> method is used in creating 
  -     *   <code>Event</code> s when it is either  inconvenient or unnecessary 
  -     *   for the user to create an <code>Event</code> themselves.  In cases 
  +     *   <code>Event</code>s when it is either inconvenient or unnecessary 
  +     *   for the user to create an <code>Event</code> themselves. In cases 
        *   where the implementation provided <code>Event</code> is 
        *   insufficient, users may supply their own <code>Event</code> 
        *   implementations for use with the <code>dispatchEvent</code> method.
  -     * @return  The newly created <code>Event</code>
  +     * @return The newly created <code>Event</code>
        * @exception DOMException
  -     *    NOT_SUPPORTED_ERR: Raised if the implementation does not support 
  -     *   the type of <code>Event</code> interface requested
  +     *   NOT_SUPPORTED_ERR: Raised if the implementation does not support the 
  +     *   type of <code>Event</code> interface requested
        */
       public Event createEvent(String eventType)
                                throws DOMException;
   
   }
  -
  
  
  
  1.3       +65 -56    xml-xerces/java/src/org/w3c/dom/events/Event.java
  
  Index: Event.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/events/Event.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Event.java	2000/02/22 00:15:00	1.2
  +++ Event.java	2000/10/02 21:57:56	1.3
  @@ -6,122 +6,132 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.events;
   
  -import org.w3c.dom.Node;
  -
   /**
  - *  The <code>Event</code> interface is used to provide contextual information 
  - * about an event to the handler processing the event.  An object which 
  + * The <code>Event</code> interface is used to provide contextual information 
  + * about an event to the handler processing the event. An object which 
    * implements the <code>Event</code> interface is generally passed as the 
  - * first parameter to an event handler.  More specific  context information 
  - * is passed to event handlers by deriving additional interfaces from  
  - * <code>Event</code> which contain information directly relating to the type 
  - * of event they accompany.  These derived interfaces are also implemented by 
  - * the object passed to the event listener. 
  + * first parameter to an event handler. More specific context information is 
  + * passed to event handlers by deriving additional interfaces from 
  + * <code>Event</code> which contain information directly relating to the 
  + * type of event they accompany. These derived interfaces are also 
  + * implemented by the object passed to the event listener. 
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Events-20000927'>Document Object Model (DOM) Level 2 Events Specification</a>.
    * @since DOM Level 2
    */
   public interface Event {
       // PhaseType
  +    /**
  +     * The current event phase is the capturing phase.
  +     */
       public static final short CAPTURING_PHASE           = 1;
  +    /**
  +     * The event is currently being evaluated at the target 
  +     * <code>EventTarget</code>.
  +     */
       public static final short AT_TARGET                 = 2;
  +    /**
  +     * The current event phase is the bubbling phase.
  +     */
       public static final short BUBBLING_PHASE            = 3;
   
       /**
  -     *  The <code>type</code> property represents the event name as a string 
  -     * property. The string must be an  XML name .
  +     * The name of the event (case-insensitive). The name must be an XML name.
        */
       public String getType();
   
       /**
  -     *  The <code>target</code> property indicates the <code>EventTarget</code>
  -     *  to which the event  was originally dispatched. 
  +     * Used to indicate the <code>EventTarget</code> to which the event was 
  +     * originally dispatched. 
        */
       public EventTarget getTarget();
   
       /**
  -     *  The <code>currentNode</code> property indicates the <code>Node</code> 
  -     * whose <code>EventListeners</code> are currently being processed.  This 
  -     * is particularly useful during capturing and bubbling. 
  +     * Used to indicate the <code>EventTarget</code> whose 
  +     * <code>EventListeners</code> are currently being processed. This is 
  +     * particularly useful during capturing and bubbling. 
        */
  -    public Node getCurrentNode();
  +    public EventTarget getCurrentTarget();
   
       /**
  -     *  The <code>eventPhase</code> property indicates which phase of event 
  -     * flow is currently  being evaluated. 
  +     * Used to indicate which phase of event flow is currently being 
  +     * evaluated. 
        */
       public short getEventPhase();
   
       /**
  -     *  The <code>bubbles</code> property indicates whether or not an event is 
  -     * a bubbling event.  If the event can bubble the value is true, else the 
  -     * value is false. 
  +     * Used to indicate whether or not an event is a bubbling event. If the 
  +     * event can bubble the value is true, else the value is false. 
        */
       public boolean getBubbles();
   
       /**
  -     *  The <code>cancelable</code> property indicates whether or not an event 
  -     * can have its default action prevented.  If the default action can be 
  -     * prevented the value is true, else the value is false. 
  +     * Used to indicate whether or not an event can have its default action 
  +     * prevented. If the default action can be prevented the value is true, 
  +     * else the value is false. 
        */
       public boolean getCancelable();
   
       /**
  -     *  The <code>timeStamp</code> specifies the time (in milliseconds relative
  -     *  to the epoch) at which the event was created. Due to the fact that 
  -     * some systems may not provide this information the value of 
  -     * <code>timeStamp</code> may be not available for all events. When not 
  -     * available, a value of 0 will be returned. Examples of epoch time are 
  -     * the time of the system start or 0:0:0 UTC 1st January 1970. 
  +     *  Used to specify the time (in milliseconds relative to the epoch) at 
  +     * which the event was created. Due to the fact that some systems may 
  +     * not provide this information the value of <code>timeStamp</code> may 
  +     * be not available for all events. When not available, a value of 0 
  +     * will be returned. Examples of epoch time are the time of the system 
  +     * start or 0:0:0 UTC 1st January 1970. 
        */
       public long getTimeStamp();
   
       /**
  -     *  The <code>stopPropagation</code> method is used prevent further 
  -     * propagation of an event during event flow. If this method is called by 
  -     * any <code>EventListener</code> the event will cease propagating 
  -     * through the tree.  The event will complete dispatch to all listeners 
  -     * on the current <code>EventTarget</code> before event flow stops.  This 
  +     * The <code>stopPropagation</code> method is used prevent further 
  +     * propagation of an event during event flow. If this method is called 
  +     * by any <code>EventListener</code> the event will cease propagating 
  +     * through the tree. The event will complete dispatch to all listeners 
  +     * on the current <code>EventTarget</code> before event flow stops. This 
        * method may be used during any stage of event flow.
        */
       public void stopPropagation();
   
       /**
  -     *  If an event is cancelable, the <code>preventDefault</code> method is 
  +     * If an event is cancelable, the <code>preventDefault</code> method is 
        * used to signify that the event is to be canceled, meaning any default 
        * action normally taken by the implementation as a result of the event 
  -     * will not occur.  If, during any stage of event flow, the 
  +     * will not occur. If, during any stage of event flow, the 
        * <code>preventDefault</code> method is called the event is canceled. 
  -     * Any default action associated with the event will not occur.  Calling 
  -     * this method for a non-cancelable event has no effect.  Once 
  +     * Any default action associated with the event will not occur. Calling 
  +     * this method for a non-cancelable event has no effect. Once 
        * <code>preventDefault</code> has been called it will remain in effect 
  -     * throughout the remainder of the event's propagation.  This method may 
  +     * throughout the remainder of the event's propagation. This method may 
        * be used during any stage of event flow. 
        */
       public void preventDefault();
   
       /**
  -     *  The <code>initEvent</code> method is used to initialize the value of 
  -     * an <code>Event</code> created through the <code>DocumentEvent</code> 
  -     * interface.  This method may only be called before the 
  +     * The <code>initEvent</code> method is used to initialize the value of an 
  +     * <code>Event</code> created through the <code>DocumentEvent</code> 
  +     * interface. This method may only be called before the 
        * <code>Event</code> has been dispatched via the 
        * <code>dispatchEvent</code> method, though it may be called multiple 
  -     * times during that phase if necessary.  If called multiple times the 
  -     * final invocation takes precedence.  If called from a subclass of 
  +     * times during that phase if necessary. If called multiple times the 
  +     * final invocation takes precedence. If called from a subclass of 
        * <code>Event</code> interface only the values specified in the 
  -     * <code>initEvent</code> method are modified, all other properties are 
  +     * <code>initEvent</code> method are modified, all other attributes are 
        * left unchanged.
  -     * @param eventTypeArg  Specifies the event type.  This type may be any 
  +     * @param eventTypeArgSpecifies the event type. This type may be any 
        *   event type currently defined in this specification or a new event 
  -     *   type.. The string must be an  XML name .  Any new event type must 
  -     *   not begin with any upper, lower, or mixed case version  of the 
  -     *   string "DOM".  This prefix is reserved for future DOM event sets.
  -     * @param canBubbleArg  Specifies whether or not the event can bubble.
  -     * @param cancelableArg  Specifies whether or not the event's default  
  +     *   type.. The string must be an XML name. Any new event type must not 
  +     *   begin with any upper, lower, or mixed case version of the string 
  +     *   "DOM". This prefix is reserved for future DOM event sets. It is 
  +     *   also strongly recommended that third parties adding their own 
  +     *   events use their own prefix to avoid confusion and lessen the 
  +     *   probability of conflicts with other new events.
  +     * @param canBubbleArgSpecifies whether or not the event can bubble.
  +     * @param cancelableArgSpecifies whether or not the event's default 
        *   action can be prevented.
        */
       public void initEvent(String eventTypeArg, 
  @@ -129,4 +139,3 @@
                             boolean cancelableArg);
   
   }
  -
  
  
  
  1.3       +10 -3     xml-xerces/java/src/org/w3c/dom/events/EventException.java
  
  Index: EventException.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/events/EventException.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EventException.java	2000/02/22 00:15:00	1.2
  +++ EventException.java	2000/10/02 21:57:57	1.3
  @@ -6,8 +6,8 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.events;
  @@ -15,6 +15,8 @@
   /**
    *  Event operations may throw an <code>EventException</code> as specified in 
    * their method descriptions. 
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Events-20000927'>Document Object Model (DOM) Level 2 Events Specification</a>.
  + * @since DOM Level 2
    */
   public class EventException extends RuntimeException {
       public EventException(short code, String message) {
  @@ -23,7 +25,12 @@
       }
       public short   code;
       // EventExceptionCode
  +    /**
  +     *  If the <code>Event</code>'s type was not specified by initializing the 
  +     * event before the method was called. Specification of the Event's type 
  +     * as <code>null</code> or an empty string will also trigger this 
  +     * exception. 
  +     */
       public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0;
   
   }
  -
  
  
  
  1.3       +11 -6     xml-xerces/java/src/org/w3c/dom/events/EventListener.java
  
  Index: EventListener.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/events/EventListener.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EventListener.java	2000/02/22 00:15:01	1.2
  +++ EventListener.java	2000/10/02 21:57:58	1.3
  @@ -6,8 +6,8 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.events;
  @@ -19,18 +19,23 @@
    * <code>AddEventListener</code> method. The users should also remove their 
    * <code>EventListener</code> from its <code>EventTarget</code> after they 
    * have completed using the listener. 
  + * <p> When a <code>Node</code> is copied using the <code>cloneNode</code> 
  + * method the <code>EventListener</code>s attached to the source 
  + * <code>Node</code> are not attached to the copied <code>Node</code>. If 
  + * the user wishes the same <code>EventListener</code>s to be added to the 
  + * newly created copy the user must add them manually. 
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Events-20000927'>Document Object Model (DOM) Level 2 Events Specification</a>.
    * @since DOM Level 2
    */
   public interface EventListener {
       /**
        *  This method is called whenever an event occurs of the type for which 
  -     * the <code>EventListener</code> interface was registered. 
  -     * @param evt  The <code>Event</code> contains contextual information 
  +     * the <code> EventListener</code> interface was registered. 
  +     * @param evt The <code>Event</code> contains contextual information 
        *   about the event. It also contains the <code>stopPropagation</code> 
  -     *   and  <code>preventDefault</code> methods which are used in 
  +     *   and <code>preventDefault</code> methods which are used in 
        *   determining the event's flow and default action. 
        */
       public void handleEvent(Event evt);
   
   }
  -
  
  
  
  1.3       +47 -47    xml-xerces/java/src/org/w3c/dom/events/EventTarget.java
  
  Index: EventTarget.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/events/EventTarget.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EventTarget.java	2000/02/22 00:15:01	1.2
  +++ EventTarget.java	2000/10/02 21:57:58	1.3
  @@ -6,41 +6,45 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.events;
   
   /**
    *  The <code>EventTarget</code> interface is implemented by all 
  - * <code>Nodes</code> in  an implementation which supports the DOM Event 
  - * Model.  The interface allows registration and removal of 
  - * <code>EventListeners</code> on an <code>EventTarget</code> and dispatch of 
  - * events to that <code>EventTarget</code> .
  + * <code>Nodes</code> in an implementation which supports the DOM Event 
  + * Model. Therefore, this interface can be obtained by using 
  + * binding-specific casting methods on an instance of the <code>Node</code> 
  + * interface. The interface allows registration and removal of 
  + * <code>EventListeners</code> on an <code>EventTarget</code> and dispatch 
  + * of events to that <code>EventTarget</code>.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Events-20000927'>Document Object Model (DOM) Level 2 Events Specification</a>.
    * @since DOM Level 2
    */
   public interface EventTarget {
       /**
  -     *  This method allows the registration of event listeners on the event 
  -     * target.  If an <code>EventListener</code> is added to an 
  -     * <code>EventTarget</code> which is  currently processing an event the 
  -     * new listener will not be triggered by the current event. 
  -     * <br> If multiple identical <code>EventListener</code> s are registered 
  +     * This method allows the registration of event listeners on the event 
  +     * target. If an <code>EventListener</code> is added to an 
  +     * <code>EventTarget</code> while it is processing an event, it will not 
  +     * be triggered by the current actions but may be triggered during a 
  +     * later stage of event flow, such as the bubbling phase. 
  +     * <br> If multiple identical <code>EventListener</code>s are registered 
        * on the same <code>EventTarget</code> with the same parameters the 
        * duplicate instances are discarded. They do not cause the 
  -     * <code>EventListener</code> to be called twice and since they are  
  +     * <code>EventListener</code> to be called twice and since they are 
        * discarded they do not need to be removed with the 
        * <code>removeEventListener</code> method. 
  -     * @param type  The event type for which the user is registering
  -     * @param listener  The <code>listener</code> parameter takes an interface 
  -     *   implemented by the user which contains the methods to be called when 
  -     *   the event occurs.
  -     * @param useCapture  If true, <code>useCapture</code> indicates that the 
  -     *   user wishes to initiate capture.  After initiating capture, all 
  -     *   events of the specified type will be  dispatched to the registered 
  +     * @param typeThe event type for which the user is registering
  +     * @param listenerThe <code>listener</code> parameter takes an interface 
  +     *   implemented by the user which contains the methods to be called 
  +     *   when the event occurs.
  +     * @param useCaptureIf true, <code>useCapture</code> indicates that the 
  +     *   user wishes to initiate capture. After initiating capture, all 
  +     *   events of the specified type will be dispatched to the registered 
        *   <code>EventListener</code> before being dispatched to any 
  -     *   <code>EventTargets</code> beneath them in the tree.  Events which 
  +     *   <code>EventTargets</code> beneath them in the tree. Events which 
        *   are bubbling upward through the tree will not trigger an 
        *   <code>EventListener</code> designated to use capture.
        */
  @@ -49,25 +53,22 @@
                                    boolean useCapture);
   
       /**
  -     *  This method allows the removal of event listeners from the event 
  -     * target.  If an <code>EventListener</code> is removed from an 
  -     * <code>EventTarget</code> while it is  processing an event, it will 
  -     * complete its current actions but will not be triggered again during 
  -     * any later stages of event flow.
  -     * <br> If an <code>EventListener</code> is removed from an 
  -     * <code>EventTarget</code> which is  currently processing an event the 
  -     * removed listener will still be triggered by the current event.
  -     * <br> Calling <code>removeEventListener</code> with arguments which do 
  +     * This method allows the removal of event listeners from the event 
  +     * target. If an <code>EventListener</code> is removed from an 
  +     * <code>EventTarget</code> while it is processing an event, it will not 
  +     * be triggered by the current actions. <code>EventListener</code>s can 
  +     * never be invoked after being removed.
  +     * <br>Calling <code>removeEventListener</code> with arguments which do 
        * not identify any currently registered <code>EventListener</code> on 
        * the <code>EventTarget</code> has no effect.
  -     * @param type  Specifies the event type of the <code>EventListener</code> 
  +     * @param typeSpecifies the event type of the <code>EventListener</code> 
        *   being removed. 
  -     * @param listener  The <code>EventListener</code> parameter indicates the 
  -     *   <code>EventListener</code> to be removed. 
  -     * @param useCapture  Specifies whether the <code>EventListener</code> 
  -     *   being removed was registered as a capturing listener or not.  If a 
  +     * @param listenerThe <code>EventListener</code> parameter indicates the 
  +     *   <code>EventListener </code> to be removed. 
  +     * @param useCaptureSpecifies whether the <code>EventListener</code> 
  +     *   being removed was registered as a capturing listener or not. If a 
        *   listener was registered twice, one with capture and one without, 
  -     *   each must be removed separately.  Removal of a capturing listener 
  +     *   each must be removed separately. Removal of a capturing listener 
        *   does not affect a non-capturing version of the same listener, and 
        *   vice versa. 
        */
  @@ -76,27 +77,26 @@
                                       boolean useCapture);
   
       /**
  -     *  This method allows the dispatch of events into the implementations 
  -     * event model.  Events dispatched in this manner will have the same 
  +     * This method allows the dispatch of events into the implementations 
  +     * event model. Events dispatched in this manner will have the same 
        * capturing and bubbling behavior as events dispatched directly by the 
  -     * implementation.  The target of the event is the 
  -     * <code>EventTarget</code> on which <code>dispatchEvent</code> is called.
  -     *  
  -     * @param evt  Specifies the event type, behavior, and contextual 
  +     * implementation. The target of the event is the 
  +     * <code> EventTarget</code> on which <code>dispatchEvent</code> is 
  +     * called. 
  +     * @param evtSpecifies the event type, behavior, and contextual 
        *   information to be used in processing the event.
  -     * @return  The return value of <code>dispatchEvent</code> indicates 
  +     * @return The return value of <code>dispatchEvent</code> indicates 
        *   whether any of the listeners which handled the event called 
  -     *   <code>preventDefault</code> .  If <code>preventDefault</code> was 
  +     *   <code>preventDefault</code>. If <code>preventDefault</code> was 
        *   called the value is false, else the value is true. 
        * @exception EventException
  -     *    UNSPECIFIED_EVENT_TYPE_ERR: Raised if the <code>Event</code> 's 
  -     *   type was not specified by initializing the event before 
  +     *   UNSPECIFIED_EVENT_TYPE_ERR: Raised if the <code>Event</code>'s type 
  +     *   was not specified by initializing the event before 
        *   <code>dispatchEvent</code> was called. Specification of the 
  -     *   <code>Event</code> 's type as <code>null</code> or an empty string 
  +     *   <code>Event</code>'s type as <code>null</code> or an empty string 
        *   will also trigger this exception.
        */
       public boolean dispatchEvent(Event evt)
                                    throws EventException;
   
   }
  -
  
  
  
  1.3       +45 -22    xml-xerces/java/src/org/w3c/dom/events/MutationEvent.java
  
  Index: MutationEvent.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/events/MutationEvent.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MutationEvent.java	2000/02/22 00:15:01	1.2
  +++ MutationEvent.java	2000/10/02 21:57:58	1.3
  @@ -6,8 +6,8 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.events;
  @@ -15,18 +15,35 @@
   import org.w3c.dom.Node;
   
   /**
  - *  The <code>MutationEvent</code> interface provides specific contextual  
  + * The <code>MutationEvent</code> interface provides specific contextual 
    * information associated with Mutation events. 
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Events-20000927'>Document Object Model (DOM) Level 2 Events Specification</a>.
    * @since DOM Level 2
    */
   public interface MutationEvent extends Event {
  +    // attrChangeType
       /**
  +     * The <code>Attr</code> was modified in place.
  +     */
  +    public static final short MODIFICATION              = 1;
  +    /**
  +     * The <code>Attr</code> was just added.
  +     */
  +    public static final short ADDITION                  = 2;
  +    /**
  +     * The <code>Attr</code> was just removed.
  +     */
  +    public static final short REMOVAL                   = 3;
  +
  +    /**
        *  <code>relatedNode</code> is used to identify a secondary node related 
  -     * to a mutation event. For example, if a mutation event is dispatched to 
  -     * a node indicating that its parent has changed, the 
  -     * <code>relatedNode</code> is the changed parent.  If an event is instead
  -     *  dispatch to a subtree indicating a node was changed within it, the 
  -     * <code>relatedNode</code> is the changed node. 
  +     * to a mutation event. For example, if a mutation event is dispatched 
  +     * to a node indicating that its parent has changed, the 
  +     * <code>relatedNode</code> is the changed parent. If an event is 
  +     * instead dispatched to a subtree indicating a node was changed within 
  +     * it, the <code>relatedNode</code> is the changed node. In the case of 
  +     * the DOMAttrModified event it indicates the <code>Attr</code> node 
  +     * which was modified, added, or removed. 
        */
       public Node getRelatedNode();
   
  @@ -51,24 +68,31 @@
       public String getAttrName();
   
       /**
  -     *  The <code>initMutationEvent</code> method is used to initialize the 
  +     *  <code>attrChange</code> indicates the type of change which triggered 
  +     * the DOMAttrModified event. The values can be <code>MODIFICATION</code>
  +     * , <code>ADDITION</code>, or <code>REMOVAL</code>. 
  +     */
  +    public short getAttrChange();
  +
  +    /**
  +     * The <code>initMutationEvent</code> method is used to initialize the 
        * value of a <code>MutationEvent</code> created through the 
  -     * <code>DocumentEvent</code> interface.  This method may only be called 
  +     * <code>DocumentEvent</code> interface. This method may only be called 
        * before the <code>MutationEvent</code> has been dispatched via the 
        * <code>dispatchEvent</code> method, though it may be called multiple 
  -     * times during that phase if necessary.  If called multiple times, the 
  +     * times during that phase if necessary. If called multiple times, the 
        * final invocation takes precedence.
  -     * @param typeArg  Specifies the event type.
  -     * @param canBubbleArg  Specifies whether or not the event can bubble.
  -     * @param cancelableArg  Specifies whether or not the event's default  
  +     * @param typeArgSpecifies the event type.
  +     * @param canBubbleArgSpecifies whether or not the event can bubble.
  +     * @param cancelableArgSpecifies whether or not the event's default 
        *   action can be prevented.
  -     * @param relatedNodeArg  Specifies the <code>Event</code> 's related Node
  -     * @param prevValueArg  Specifies the <code>Event</code> 's 
  -     *   <code>prevValue</code> property
  -     * @param newValueArg  Specifies the <code>Event</code> 's 
  -     *   <code>newValue</code> property
  -     * @param attrNameArg  Specifies the <code>Event</code> 's 
  -     *   <code>attrName</code> property
  +     * @param relatedNodeArgSpecifies the <code>Event</code>'s related Node
  +     * @param prevValueArgSpecifies the <code>Event</code>'s 
  +     *   <code>prevValue</code> attribute
  +     * @param newValueArgSpecifies the <code>Event</code>'s 
  +     *   <code>newValue</code> attribute
  +     * @param attrNameArgSpecifies the <code>Event</code>'s 
  +     *   <code>attrName</code> attribute
        */
       public void initMutationEvent(String typeArg, 
                                     boolean canBubbleArg, 
  @@ -79,4 +103,3 @@
                                     String attrNameArg);
   
   }
  -
  
  
  
  1.3       +51 -39    xml-xerces/java/src/org/w3c/dom/traversal/DocumentTraversal.java
  
  Index: DocumentTraversal.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/traversal/DocumentTraversal.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DocumentTraversal.java	2000/02/22 00:15:11	1.2
  +++ DocumentTraversal.java	2000/10/02 21:58:03	1.3
  @@ -6,67 +6,80 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.traversal;
   
  -import org.w3c.dom.DOMException;
   import org.w3c.dom.Node;
  +import org.w3c.dom.DOMException;
   
   /**
    * <code>DocumentTraversal</code> contains methods that create iterators and 
    * tree-walkers to traverse a node and its children in document order (depth 
    * first, pre-order traversal, which is equivalent to the order in which the 
  - * start tags occur in the text representation of the document).
  + * start tags occur in the text representation of the document). In DOMs 
  + * which support the Traversal feature, <code>DocumentTraversal</code> will 
  + * be implemented by the same objects that implement the Document interface.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Traversal-Range-20000927'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
    * @since DOM Level 2
    */
   public interface DocumentTraversal {
       /**
  -     *  Create a new NodeIterator over the subtree rooted at the specified 
  -     * node.
  -     * @param root  The node which will be iterated together with its 
  -     *   children. The iterator is initially positioned just before this 
  -     *   node. The whatToShow flags and the filter, if any, are not 
  -     *   considered when setting this position.
  -     * @param whatToShow  This flag specifies which node types may appear in 
  +     * Create a new <code>NodeIterator</code> over the subtree rooted at the 
  +     * specified node.
  +     * @param rootThe node which will be iterated together with its children. 
  +     *   The iterator is initially positioned just before this node. The 
  +     *   <code>whatToShow</code> flags and the filter, if any, are not 
  +     *   considered when setting this position. The root must not be 
  +     *   <code>null</code>.
  +     * @param whatToShowThis flag specifies which node types may appear in 
        *   the logical view of the tree presented by the iterator. See the 
  -     *   description of iterator for the set of possible values. These flags 
  -     *   can be combined using <code>OR</code> .
  -     * @param filter  The Filter to be used with this TreeWalker, or null to 
  -     *   indicate no filter.
  -     * @param entityReferenceExpansion  The value of this flag determines 
  +     *   description of <code>NodeFilter</code> for the set of possible 
  +     *   <code>SHOW_</code> values.These flags can be combined using 
  +     *   <code>OR</code>.
  +     * @param filterThe <code>NodeFilter</code> to be used with this 
  +     *   <code>TreeWalker</code>, or <code>null</code> to indicate no filter.
  +     * @param entityReferenceExpansionThe value of this flag determines 
        *   whether entity reference nodes are expanded.
  -     * @return  The newly created <code>NodeIterator</code> .
  +     * @return The newly created <code>NodeIterator</code>.
  +     * @exception DOMException
  +     *   NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is 
  +     *   <code>null</code>.
        */
       public NodeIterator createNodeIterator(Node root, 
                                              int whatToShow, 
                                              NodeFilter filter, 
  -                                           boolean entityReferenceExpansion);
  +                                           boolean entityReferenceExpansion)
  +                                           throws DOMException;
   
       /**
  -     *  Create a new TreeWalker over the subtree rooted at the specified node.
  -     * @param root  The node which will serve as the root for the 
  -     *   <code>TreeWalker</code> . The whatToShow flags and the NodeFilter 
  -     *   are not considered when setting this value; any node type will be 
  -     *   accepted as the root. The currentNode of the TreeWalker is 
  -     *   initialized to this node, whether or not it is visible. The root 
  -     *   functions as a stopping point for traversal methods that look upward 
  -     *   in the document structure, such as parentNode and nextNode. The root 
  -     *   must not be null.
  -     * @param whatToShow  This flag specifies which node types may appear in 
  -     *   the logical view of the tree presented by the iterator. See the 
  -     *   description of TreeWalker for the set of possible values. These 
  -     *   flags can be combined using <code>OR</code> .
  -     * @param filter  The Filter to be used with this TreeWalker, or null to 
  -     *   indicate no filter.
  -     * @param entityReferenceExpansion  The value of this flag determines 
  -     *   whether entity reference nodes are expanded.
  -     * @return  The newly created <code>TreeWalker</code> .
  +     * Create a new <code>TreeWalker</code> over the subtree rooted at the 
  +     * specified node.
  +     * @param rootThe node which will serve as the <code>root</code> for the 
  +     *   <code>TreeWalker</code>. The <code>whatToShow</code> flags and the 
  +     *   <code>NodeFilter</code> are not considered when setting this value; 
  +     *   any node type will be accepted as the <code>root</code>. The 
  +     *   <code>currentNode</code> of the <code>TreeWalker</code> is 
  +     *   initialized to this node, whether or not it is visible. The 
  +     *   <code>root</code> functions as a stopping point for traversal 
  +     *   methods that look upward in the document structure, such as 
  +     *   <code>parentNode</code> and nextNode. The <code>root</code> must 
  +     *   not be <code>null</code>.
  +     * @param whatToShowThis flag specifies which node types may appear in 
  +     *   the logical view of the tree presented by the tree-walker. See the 
  +     *   description of <code>NodeFilter</code> for the set of possible 
  +     *   SHOW_ values.These flags can be combined using <code>OR</code>.
  +     * @param filterThe <code>NodeFilter</code> to be used with this 
  +     *   <code>TreeWalker</code>, or <code>null</code> to indicate no filter.
  +     * @param entityReferenceExpansionIf this flag is false, the contents of 
  +     *   <code>EntityReference</code> nodes are not presented in the logical 
  +     *   view.
  +     * @return The newly created <code>TreeWalker</code>.
        * @exception DOMException
  -     *    Raises the exception NOT_SUPPORTED_ERR if the specified root node is
  -     *    null.
  +     *    NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is 
  +     *   <code>null</code>.
        */
       public TreeWalker createTreeWalker(Node root, 
                                          int whatToShow, 
  @@ -75,4 +88,3 @@
                                          throws DOMException;
   
   }
  -
  
  
  
  1.3       +99 -25    xml-xerces/java/src/org/w3c/dom/traversal/NodeFilter.java
  
  Index: NodeFilter.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/traversal/NodeFilter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- NodeFilter.java	2000/02/22 00:15:11	1.2
  +++ NodeFilter.java	2000/10/02 21:58:03	1.3
  @@ -6,8 +6,8 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.traversal;
  @@ -15,54 +15,128 @@
   import org.w3c.dom.Node;
   
   /**
  - *  Filters are objects that know how to "filter out" nodes. If a
  - * <code>NodeIterator</code> or <code>TreeWalker</code> is given a filter, it 
  - * applies the filter before it returns the next node. If the filter says to 
  - * accept the node, the iterator returns it; otherwise, the iterator looks 
  - * for the next node and pretends that the node that was rejected was not 
  - * there.
  - * <p> The DOM does not provide any filters. Filter is just an interface that 
  - * users can implement to provide their own filters. 
  - * <p> Filters do not need to know how to iterate, nor do they need to know 
  - * anything about the data structure that is being iterated. This makes it 
  - * very easy to write filters, since the only thing they have to know how to 
  - * do is evaluate a single node. One filter may be used with a number of 
  - * different kinds of iterators, encouraging code reuse. This is an 
  - * ECMAScript function reference. This method returns a<code>short</code> . 
  - * The parameter is of type <code>Node</code> . 
  + * Filters are objects that know how to "filter out" nodes. If a 
  + * <code>NodeIterator</code> or <code>TreeWalker</code> is given a 
  + * <code>NodeFilter</code>, it applies the filter before it returns the next 
  + * node. If the filter says to accept the node, the traversal logic returns 
  + * it; otherwise, traversal looks for the next node and pretends that the 
  + * node that was rejected was not there.
  + * <p>The DOM does not provide any filters. <code>NodeFilter</code> is just an 
  + * interface that users can implement to provide their own filters. 
  + * <p><code>NodeFilters</code> do not need to know how to traverse from node 
  + * to node, nor do they need to know anything about the data structure that 
  + * is being traversed. This makes it very easy to write filters, since the 
  + * only thing they have to know how to do is evaluate a single node. One 
  + * filter may be used with a number of different kinds of traversals, 
  + * encouraging code reuse.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Traversal-Range-20000927'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
    * @since DOM Level 2
    */
   public interface NodeFilter {
       // Constants returned by acceptNode
  +    /**
  +     * Accept the node. Navigation methods defined for 
  +     * <code>NodeIterator</code> or <code>TreeWalker</code> will return this 
  +     * node.
  +     */
       public static final short FILTER_ACCEPT             = 1;
  +    /**
  +     * Reject the node. Navigation methods defined for 
  +     * <code>NodeIterator</code> or <code>TreeWalker</code> will not return 
  +     * this node. For <code>TreeWalker</code>, the children of this node 
  +     * will also be rejected. <code>NodeIterators</code> treat this as a 
  +     * synonym for <code>FILTER_SKIP</code>.
  +     */
       public static final short FILTER_REJECT             = 2;
  +    /**
  +     * Skip this single node. Navigation methods defined for 
  +     * <code>NodeIterator</code> or <code>TreeWalker</code> will not return 
  +     * this node. For both <code>NodeIterator</code> and 
  +     * <code>TreeWalker</code>, the children of this node will still be 
  +     * considered. 
  +     */
       public static final short FILTER_SKIP               = 3;
   
       // Constants for whatToShow
  +    /**
  +     * Show all <code>Nodes</code>.
  +     */
       public static final int SHOW_ALL                  = 0xFFFFFFFF;
  +    /**
  +     * Show <code>Element</code> nodes.
  +     */
       public static final int SHOW_ELEMENT              = 0x00000001;
  +    /**
  +     * Show <code>Attr</code> nodes. This is meaningful only when creating an 
  +     * iterator or tree-walker with an attribute node as its 
  +     * <code>root</code>; in this case, it means that the attribute node 
  +     * will appear in the first position of the iteration or traversal. 
  +     * Since attributes are never children of other nodes, they do not 
  +     * appear when traversing over the document tree.
  +     */
       public static final int SHOW_ATTRIBUTE            = 0x00000002;
  +    /**
  +     * Show <code>Text</code> nodes.
  +     */
       public static final int SHOW_TEXT                 = 0x00000004;
  +    /**
  +     * Show <code>CDATASection</code> nodes.
  +     */
       public static final int SHOW_CDATA_SECTION        = 0x00000008;
  +    /**
  +     * Show <code>EntityReference</code> nodes.
  +     */
       public static final int SHOW_ENTITY_REFERENCE     = 0x00000010;
  +    /**
  +     * Show <code>Entity</code> nodes. This is meaningful only when creating 
  +     * an iterator or tree-walker with an<code> Entity</code> node as its 
  +     * <code>root</code>; in this case, it means that the <code>Entity</code>
  +     *  node will appear in the first position of the traversal. Since 
  +     * entities are not part of the document tree, they do not appear when 
  +     * traversing over the document tree.
  +     */
       public static final int SHOW_ENTITY               = 0x00000020;
  +    /**
  +     * Show <code>ProcessingInstruction</code> nodes.
  +     */
       public static final int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
  +    /**
  +     * Show <code>Comment</code> nodes.
  +     */
       public static final int SHOW_COMMENT              = 0x00000080;
  +    /**
  +     * Show <code>Document</code> nodes.
  +     */
       public static final int SHOW_DOCUMENT             = 0x00000100;
  +    /**
  +     * Show <code>DocumentType</code> nodes.
  +     */
       public static final int SHOW_DOCUMENT_TYPE        = 0x00000200;
  +    /**
  +     * Show <code>DocumentFragment</code> nodes.
  +     */
       public static final int SHOW_DOCUMENT_FRAGMENT    = 0x00000400;
  +    /**
  +     * Show <code>Notation</code> nodes. This is meaningful only when creating 
  +     * an iterator or tree-walker with a <code>Notation</code> node as its 
  +     * <code>root</code>; in this case, it means that the 
  +     * <code>Notation</code> node will appear in the first position of the 
  +     * traversal. Since notations are not part of the document tree, they do 
  +     * not appear when traversing over the document tree.
  +     */
       public static final int SHOW_NOTATION             = 0x00000800;
   
       /**
  -     *  Test whether a specified node is visible in the logical view of a 
  -     * TreeWalker or NodeIterator. This function will be called by the 
  -     * implementation of TreeWalker and NodeIterator; it is not intended to 
  -     * be called directly from user code.
  -     * @param n  The node to check to see if it passes the filter or not.
  -     * @return  a constant to determine whether the node is accepted, 
  -     *   rejected, or skipped, as defined  above .
  +     * Test whether a specified node is visible in the logical view of a 
  +     * <code>TreeWalker</code> or <code>NodeIterator</code>. This function 
  +     * will be called by the implementation of <code>TreeWalker</code> and 
  +     * <code>NodeIterator</code>; it is not normally called directly from 
  +     * user code. (Though you could do so if you wanted to use the same 
  +     * filter to guide your own application logic.)
  +     * @param nThe node to check to see if it passes the filter or not.
  +     * @return a constant to determine whether the node is accepted, 
  +     *   rejected, or skipped, as defined above.
        */
       public short acceptNode(Node n);
   
   }
  -
  
  
  
  1.3       +50 -37    xml-xerces/java/src/org/w3c/dom/traversal/NodeIterator.java
  
  Index: NodeIterator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/traversal/NodeIterator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- NodeIterator.java	2000/02/22 00:15:11	1.2
  +++ NodeIterator.java	2000/10/02 21:58:04	1.3
  @@ -6,90 +6,103 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.traversal;
   
  -import org.w3c.dom.DOMException;
   import org.w3c.dom.Node;
  +import org.w3c.dom.DOMException;
   
   /**
  - *  NodeIterators are used to step through a set of nodes, e.g. the set of 
  - * nodes in a NodeList, the document subtree governed by a particular node, 
  - * the results of a query, or any other set of nodes. The set of nodes to be 
  - * iterated is determined by the implementation of the NodeIterator. DOM 
  - * Level 2 specifies a single NodeIterator implementation for document-order 
  + * <code>Iterators</code> are used to step through a set of nodes, e.g. the 
  + * set of nodes in a <code>NodeList</code>, the document subtree governed by 
  + * a particular <code>Node</code>, the results of a query, or any other set 
  + * of nodes. The set of nodes to be iterated is determined by the 
  + * implementation of the <code>NodeIterator</code>. DOM Level 2 specifies a 
  + * single <code>NodeIterator</code> implementation for document-order 
    * traversal of a document subtree. Instances of these iterators are created 
  - * by calling DocumentTraversal.createNodeIterator().
  + * by calling <code>DocumentTraversal</code>
  + * <code>.createNodeIterator()</code>.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Traversal-Range-20000927'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
    * @since DOM Level 2
    */
   public interface NodeIterator {
       /**
  -     *  The root node of the Iterator, as specified when it was created.
  +     * The root node of the <code>NodeIterator</code>, as specified when it 
  +     * was created.
        */
       public Node getRoot();
   
       /**
  -     *  This attribute determines which node types are presented via the 
  +     * This attribute determines which node types are presented via the 
        * iterator. The available set of constants is defined in the 
  -     * <code>NodeFilter</code> interface.
  +     * <code>NodeFilter</code> interface.  Nodes not accepted by 
  +     * <code>whatToShow</code> will be skipped, but their children may still 
  +     * be considered. Note that this skip takes precedence over the filter, 
  +     * if any. 
        */
       public int getWhatToShow();
   
       /**
  -     *  The filter used to screen nodes.
  +     * The <code>NodeFilter</code> used to screen nodes.
        */
       public NodeFilter getFilter();
   
       /**
        *  The value of this flag determines whether the children of entity 
  -     * reference nodes are visible to the iterator. If false, they will be 
  -     * skipped over.
  +     * reference nodes are visible to the iterator. If false, they  and 
  +     * their descendants will be rejected. Note that this rejection takes 
  +     * precedence over <code>whatToShow</code> and the filter. Also note 
  +     * that this is currently the only situation where 
  +     * <code>NodeIterators</code> may reject a complete subtree rather than 
  +     * skipping individual nodes. 
  +     * <br>
        * <br> To produce a view of the document that has entity references 
  -     * expanded and does not expose the entity reference node itself, use the 
  -     * whatToShow flags to hide the entity reference node and set 
  -     * expandEntityReferences to true when creating the iterator. To produce 
  -     * a view of the document that has entity reference nodes but no entity 
  -     * expansion, use the whatToShow flags to show the entity reference node 
  -     * and set expandEntityReferences to false.
  +     * expanded and does not expose the entity reference node itself, use 
  +     * the <code>whatToShow</code> flags to hide the entity reference node 
  +     * and set <code>expandEntityReferences</code> to true when creating the 
  +     * iterator. To produce a view of the document that has entity reference 
  +     * nodes but no entity expansion, use the <code>whatToShow</code> flags 
  +     * to show the entity reference node and set 
  +     * <code>expandEntityReferences</code> to false.
        */
       public boolean getExpandEntityReferences();
   
       /**
  -     *  Returns the next node in the set and advances the position of the 
  -     * iterator in the set. After a NodeIterator is created, the first call 
  -     * to nextNode() returns the first node in the set.
  -     * @return  The next <code>Node</code> in the set being iterated over, or
  +     * Returns the next node in the set and advances the position of the 
  +     * iterator in the set. After a <code>NodeIterator</code> is created, 
  +     * the first call to <code>nextNode()</code> returns the first node in 
  +     * the set.
  +     * @return The next <code>Node</code> in the set being iterated over, or 
        *   <code>null</code> if there are no more members in that set.
        * @exception DOMException
  -     *    INVALID_STATE_ERR: Raised if this method is called after the
  +     *   INVALID_STATE_ERR: Raised if this method is called after the 
        *   <code>detach</code> method was invoked.
        */
       public Node nextNode()
                            throws DOMException;
   
       /**
  -     *  Returns the previous node in the set and moves the position of the 
  -     * iterator backwards in the set.
  -     * @return  The previous <code>Node</code> in the set being iterated over, 
  -     *   or<code>null</code> if there are no more members in that set. 
  +     * Returns the previous node in the set and moves the position of the 
  +     * <code>NodeIterator</code> backwards in the set.
  +     * @return The previous <code>Node</code> in the set being iterated over, 
  +     *   or <code>null</code> if there are no more members in that set. 
        * @exception DOMException
  -     *    INVALID_STATE_ERR: Raised if this method is called after the
  +     *   INVALID_STATE_ERR: Raised if this method is called after the 
        *   <code>detach</code> method was invoked.
        */
       public Node previousNode()
                                throws DOMException;
   
       /**
  -     *  Detaches the iterator from the set which it iterated over, releasing 
  -     * any computational resources and placing the iterator in the INVALID 
  -     * state. After<code>detach</code> has been invoked, calls to 
  -     * <code>nextNode</code> or<code>previousNode</code> will raise the 
  -     * exception INVALID_STATE_ERR.
  +     * Detaches the <code>NodeIterator</code> from the set which it iterated 
  +     * over, releasing any computational resources and placing the iterator 
  +     * in the INVALID state. After <code>detach</code> has been invoked, 
  +     * calls to <code>nextNode</code> or <code>previousNode</code> will 
  +     * raise the exception INVALID_STATE_ERR.
        */
       public void detach();
   
   }
  -
  
  
  
  1.3       +87 -77    xml-xerces/java/src/org/w3c/dom/traversal/TreeWalker.java
  
  Index: TreeWalker.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/w3c/dom/traversal/TreeWalker.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TreeWalker.java	2000/02/22 00:15:11	1.2
  +++ TreeWalker.java	2000/10/02 21:58:04	1.3
  @@ -6,152 +6,162 @@
    * Intellectual Property License. This program is distributed in the
    * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  - * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more
  - * details.
  + * PURPOSE.
  + * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
    */
   
   package org.w3c.dom.traversal;
   
  -import org.w3c.dom.DOMException;
   import org.w3c.dom.Node;
  +import org.w3c.dom.DOMException;
   
   /**
    * <code>TreeWalker</code> objects are used to navigate a document tree or 
  - * subtree using the view of the document defined by its 
  - * <code>whatToShow</code> flags and any filters that are defined for the 
  - * <code>TreeWalker</code> . Any function which performs navigation using a 
  - * <code>TreeWalker</code> will automatically support any view defined by a 
  - * <code>TreeWalker</code> .
  - * <p> Omitting nodes from the logical view of a subtree can result in a 
  + * subtree using the view of the document defined by their 
  + * <code>whatToShow</code> flags and filter (if any). Any function which 
  + * performs navigation using a <code>TreeWalker</code> will automatically 
  + * support any view defined by a <code>TreeWalker</code>.
  + * <p>Omitting nodes from the logical view of a subtree can result in a 
    * structure that is substantially different from the same subtree in the 
  - * complete, unfiltered document. Nodes that are siblings in the TreeWalker 
  - * view may be children of different, widely separated nodes in the original 
  - * view. For instance, consider a Filter that skips all nodes except for Text 
  - * nodes and the root node of a document. In the logical view that results, 
  - * all text nodes will be siblings and appear as direct children of the root 
  - * node, no matter how deeply nested the structure of the original document.
  + * complete, unfiltered document. Nodes that are siblings in the 
  + * <code>TreeWalker</code> view may be children of different, widely 
  + * separated nodes in the original view. For instance, consider a 
  + * <code>NodeFilter</code> that skips all nodes except for Text nodes and 
  + * the root node of a document. In the logical view that results, all text 
  + * nodes will be siblings and appear as direct children of the root node, no 
  + * matter how deeply nested the structure of the original document.
  + * <p>See also the <a href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Traversal-Range-20000927'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
    * @since DOM Level 2
    */
   public interface TreeWalker {
       /**
  -     *  The root node of the TreeWalker, as specified when it was created.
  +     * The <code>root</code> node of the <code>TreeWalker</code>, as specified 
  +     * when it was created.
        */
       public Node getRoot();
   
       /**
  -     *  This attribute determines which node types are presented via the 
  -     * TreeWalker. These constants are defined in the <code>NodeFilter</code> 
  -     * interface.
  +     * This attribute determines which node types are presented via the 
  +     * <code>TreeWalker</code>. The available set of constants is defined in 
  +     * the <code>NodeFilter</code> interface.  Nodes not accepted by 
  +     * <code>whatToShow</code> will be skipped, but their children may still 
  +     * be considered. Note that this skip takes precedence over the filter, 
  +     * if any. 
        */
       public int getWhatToShow();
   
       /**
  -     *  The filter used to screen nodes.
  +     * The filter used to screen nodes.
        */
       public NodeFilter getFilter();
   
       /**
  -     *  The value of this flag determines whether the children of entity 
  -     * reference nodes are visible to the TreeWalker. If false, they will be 
  -     * skipped over.
  +     * The value of this flag determines whether the children of entity 
  +     * reference nodes are visible to the <code>TreeWalker</code>. If false, 
  +     * they  and their descendants will be rejected. Note that this 
  +     * rejection takes precedence over <code>whatToShow</code> and the 
  +     * filter, if any. 
        * <br> To produce a view of the document that has entity references 
  -     * expanded and does not expose the entity reference node itself, use the 
  -     * whatToShow flags to hide the entity reference node and set 
  -     * expandEntityReferences to true when creating the TreeWalker. To 
  -     * produce a view of the document that has entity reference nodes but no 
  -     * entity expansion, use the whatToShow flags to show the entity 
  -     * reference node and set expandEntityReferences to false.
  +     * expanded and does not expose the entity reference node itself, use 
  +     * the <code>whatToShow</code> flags to hide the entity reference node 
  +     * and set <code>expandEntityReferences</code> to true when creating the 
  +     * <code>TreeWalker</code>. To produce a view of the document that has 
  +     * entity reference nodes but no entity expansion, use the 
  +     * <code>whatToShow</code> flags to show the entity reference node and 
  +     * set <code>expandEntityReferences</code> to false.
        */
       public boolean getExpandEntityReferences();
   
       /**
  -     *  The node at which the TreeWalker is currently positioned.
  -     * <br> The value must not be null. Alterations to the DOM tree may cause 
  -     * the current node to no longer be accepted by the TreeWalker's 
  -     * associated filter. currentNode may also be explicitly set to any node, 
  -     * whether or not it is within the subtree specified by the root node or 
  -     * would be accepted by the filter and whatToShow flags. Further 
  -     * traversal occurs relative to currentNode even if it is not part of the 
  -     * current view by applying the filters in the requested direction (not 
  -     * changing currentNode where no traversal is possible). 
  +     * The node at which the <code>TreeWalker</code> is currently positioned.
  +     * <br>Alterations to the DOM tree may cause the current node to no longer 
  +     * be accepted by the <code>TreeWalker</code>'s associated filter. 
  +     * <code>currentNode</code> may also be explicitly set to any node, 
  +     * whether or not it is within the subtree specified by the 
  +     * <code>root</code> node or would be accepted by the filter and 
  +     * <code>whatToShow</code> flags. Further traversal occurs relative to 
  +     * <code>currentNode</code> even if it is not part of the current view, 
  +     * by applying the filters in the requested direction; if no traversal 
  +     * is possible, <code>currentNode</code> is not changed. 
        * @exception DOMException
  -     *    NOT_SUPPORTED_ERR: Raised if the specified <code>currentNode</code> 
  -     *   is<code>null</code> .
  +     *   NOT_SUPPORTED_ERR: Raised if an attempt is made to set 
  +     *   <code>currentNode</code> to <code>null</code>.
        */
       public Node getCurrentNode();
       public void setCurrentNode(Node currentNode)
  -                            throws DOMException;
  +                         throws DOMException;
   
       /**
  -     *  Moves to and returns the closest visible ancestor node of the current 
  -     * node. If the search for parentNode attempts to step upward from the 
  -     * TreeWalker's root node, or if it fails to find a visible ancestor 
  -     * node, this method retains the current position and returns null.
  -     * @return  The new parent node, or null if the current node has no parent 
  -     *   in the TreeWalker's logical view.
  +     * Moves to and returns the closest visible ancestor node of the current 
  +     * node. If the search for <code>parentNode</code> attempts to step 
  +     * upward from the <code>TreeWalker</code>'s <code>root</code> node, or 
  +     * if it fails to find a visible ancestor node, this method retains the 
  +     * current position and returns <code>null</code>.
  +     * @return The new parent node, or <code>null</code> if the current node 
  +     *   has no parent  in the <code>TreeWalker</code>'s logical view.  
        */
       public Node parentNode();
   
       /**
  -     *  Moves the <code>TreeWalker</code> to the first visible child of the 
  +     * Moves the <code>TreeWalker</code> to the first visible child of the 
        * current node, and returns the new node. If the current node has no 
  -     * visible children, returns <code>null</code> , and retains the current 
  +     * visible children, returns <code>null</code>, and retains the current 
        * node.
  -     * @return  The new node, or <code>null</code> if the current node has no 
  -     *   visible children in the TreeWalker's logical view.
  +     * @return The new node, or <code>null</code> if the current node has no 
  +     *   visible children  in the <code>TreeWalker</code>'s logical view.  
        */
       public Node firstChild();
   
       /**
  -     *  Moves the <code>TreeWalker</code> to the last visible child of the 
  +     * Moves the <code>TreeWalker</code> to the last visible child of the 
        * current node, and returns the new node. If the current node has no 
  -     * visible children, returns <code>null</code> , and retains the current 
  +     * visible children, returns <code>null</code>, and retains the current 
        * node.
  -     * @return  The new node, or <code>null</code> if the current node has no 
  -     *   children  in the TreeWalker's logical view.
  +     * @return The new node, or <code>null</code> if the current node has no 
  +     *   children  in the <code>TreeWalker</code>'s logical view.  
        */
       public Node lastChild();
   
       /**
  -     *  Moves the <code>TreeWalker</code> to the previous sibling of the 
  +     * Moves the <code>TreeWalker</code> to the previous sibling of the 
        * current node, and returns the new node. If the current node has no 
  -     * visible previous sibling, returns <code>null</code> , and retains the 
  +     * visible previous sibling, returns <code>null</code>, and retains the 
        * current node.
  -     * @return  The new node, or <code>null</code> if the current node has no 
  -     *   previous sibling in the TreeWalker's logical view.
  +     * @return The new node, or <code>null</code> if the current node has no 
  +     *   previous sibling.  in the <code>TreeWalker</code>'s logical view.  
        */
       public Node previousSibling();
   
       /**
  -     *  Moves the <code>TreeWalker</code> to the next sibling of the current 
  +     * Moves the <code>TreeWalker</code> to the next sibling of the current 
        * node, and returns the new node. If the current node has no visible 
  -     * next sibling, returns <code>null</code> , and retains the current node.
  -     * @return  The new node, or <code>null</code> if the current node has no 
  -     *   next sibling in the TreeWalker's logical view.
  +     * next sibling, returns <code>null</code>, and retains the current node.
  +     * @return The new node, or <code>null</code> if the current node has no 
  +     *   next sibling.  in the <code>TreeWalker</code>'s logical view.  
        */
       public Node nextSibling();
   
       /**
  -     *  Moves the <code>TreeWalker</code> to the previous visible node in 
  -     * document order relative to the current node, and returns the new node. 
  -     * If the current node has no previous node,  or if the search for 
  -     * previousNode attempts to step upward from the TreeWalker's root node, 
  -     * returns <code>null</code> , and retains the current node. 
  -     * @return  The new node, or <code>null</code> if the current node has no 
  -     *   previous node in the TreeWalker's logical view.
  +     * Moves the <code>TreeWalker</code> to the previous visible node in 
  +     * document order relative to the current node, and returns the new 
  +     * node. If the current node has no previous node,  or if the search for 
  +     * <code>previousNode</code> attempts to step upward from the 
  +     * <code>TreeWalker</code>'s <code>root</code> node,  returns 
  +     * <code>null</code>, and retains the current node. 
  +     * @return The new node, or <code>null</code> if the current node has no 
  +     *   previous node  in the <code>TreeWalker</code>'s logical view.  
        */
       public Node previousNode();
   
       /**
  -     *  Moves the <code>TreeWalker</code> to the next visible node in document 
  +     * Moves the <code>TreeWalker</code> to the next visible node in document 
        * order relative to the current node, and returns the new node. If the 
  -     * current node has no next node,  or if the search for nextNode attempts 
  -     * to step upward from the TreeWalker's root node, returns 
  -     * <code>null</code> , and retains the current node.
  -     * @return  The new node, or <code>null</code> if the current node has no 
  -     *   next node  in the TreeWalker's logical view.
  +     * current node has no next node, or if the search for nextNode attempts 
  +     * to step upward from the <code>TreeWalker</code>'s <code>root</code> 
  +     * node, returns <code>null</code>, and retains the current node.
  +     * @return The new node, or <code>null</code> if the current node has no 
  +     *   next node  in the <code>TreeWalker</code>'s logical view.  
        */
       public Node nextNode();
   
   }
  -
  
  
  
  1.22      +3 -2      xml-xerces/java/src/org/apache/xerces/dom/AttrImpl.java
  
  Index: AttrImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/AttrImpl.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- AttrImpl.java	2000/08/18 01:58:34	1.21
  +++ AttrImpl.java	2000/10/02 21:58:09	1.22
  @@ -58,6 +58,7 @@
   package org.apache.xerces.dom;
   
   import org.w3c.dom.*;
  +import org.w3c.dom.events.MutationEvent;
   import org.apache.xerces.dom.events.MutationEventImpl;
   
   /**
  @@ -209,7 +210,7 @@
       public void setValue(String value) {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -269,7 +270,7 @@
           if(MUTATIONEVENTS && ownerDocument.mutationEvents)
           {
               // MUTATION POST-EVENTS:
  -            dispatchAggregateEvents(this,oldvalue);            
  +            dispatchAggregateEvents(this,oldvalue,MutationEvent.MODIFICATION);
           }
   		
       } // setValue(String)
  
  
  
  1.17      +5 -5      xml-xerces/java/src/org/apache/xerces/dom/AttrNSImpl.java
  
  Index: AttrNSImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/AttrNSImpl.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- AttrNSImpl.java	2000/07/07 00:36:07	1.16
  +++ AttrNSImpl.java	2000/10/02 21:58:11	1.17
  @@ -1,4 +1,4 @@
  -/* $Id: AttrNSImpl.java,v 1.16 2000/07/07 00:36:07 lehors Exp $ */
  +/* $Id: AttrNSImpl.java,v 1.17 2000/10/02 21:58:11 lehors Exp $ */
   /*
    * The Apache Software License, Version 1.1
    *
  @@ -97,7 +97,7 @@
   
       	super(ownerDocument, qualifiedName);
       	if (!DocumentImpl.isXMLName(qualifiedName)) {
  -    	    throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    	    throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       	                               "DOM002 Illegal character");
           }
   
  @@ -123,7 +123,7 @@
   		 (namespaceURI == null ||
   		  !namespaceURI.equals("http://www.w3.org/2000/xmlns/")))) {
   
  -	    throw new DOMExceptionImpl(DOMException.NAMESPACE_ERR, 
  +	    throw new DOMException(DOMException.NAMESPACE_ERR, 
   				       "DOM003 Namespace error");
   	}
   	this.namespaceURI = namespaceURI;
  @@ -208,11 +208,11 @@
   	      (prefix.equals("xml") &&
   	       !namespaceURI.equals("http://www.w3.org/XML/1998/namespace")))))
   	{
  -    	    throw new DOMExceptionImpl(DOMException.NAMESPACE_ERR, 
  +    	    throw new DOMException(DOMException.NAMESPACE_ERR, 
   				       "DOM003 Namespace error");
       	}
   	if (ownerDocument.errorChecking && !DocumentImpl.isXMLName(prefix)) {
  -    	    throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    	    throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       	                               "DOM002 Illegal character");
           }
           // update node name with new qualifiedName
  
  
  
  1.7       +28 -16    xml-xerces/java/src/org/apache/xerces/dom/AttributeMap.java
  
  Index: AttributeMap.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/AttributeMap.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AttributeMap.java	2000/09/14 22:08:02	1.6
  +++ AttributeMap.java	2000/10/02 21:58:12	1.7
  @@ -108,18 +108,18 @@
   
       	if (isReadOnly()) {
               throw
  -                new DOMExceptionImpl(DOMException.NO_MODIFICATION_ALLOWED_ERR,
  +                new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
                                        "DOM001 Modification not allowed");
           }
       	if(arg.getOwnerDocument() != ownerNode.ownerDocument()) {
  -            throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR,
  +            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
                                          "DOM005 Wrong document");
           }
   
           NodeImpl argn = (NodeImpl)arg;
   
       	if (argn.isOwned()) {
  -            throw new DOMExceptionImpl(DOMException.INUSE_ATTRIBUTE_ERR,
  +            throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR,
                                          "DOM009 Attribute already in use");
           }
   
  @@ -149,7 +149,9 @@
               // MUTATION POST-EVENTS:
               ownerNode.dispatchAggregateEvents(
                   (AttrImpl)arg,
  -                previous==null ? null : previous.getNodeValue()
  +                previous==null ? null : previous.getNodeValue(),
  +                previous==null ?
  +                           MutationEvent.ADDITION : MutationEvent.MODIFICATION
                   );
           }
       	return previous;
  @@ -168,18 +170,18 @@
   
       	if (isReadOnly()) {
               throw
  -                new DOMExceptionImpl(DOMException.NO_MODIFICATION_ALLOWED_ERR,
  +                new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
                                        "DOM001 Modification not allowed");
           }
       
       	if(arg.getOwnerDocument() != ownerNode.ownerDocument()) {
  -            throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR,
  +            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
                                          "DOM005 Wrong document");
           }
   
           NodeImpl argn = (NodeImpl)arg;
       	if (argn.isOwned()) {
  -            throw new DOMExceptionImpl(DOMException.INUSE_ATTRIBUTE_ERR,
  +            throw new DOMException(DOMException.INUSE_ATTRIBUTE_ERR,
                                          "DOM009 Attribute already in use");
           }
   
  @@ -221,7 +223,9 @@
               // MUTATION POST-EVENTS:
               ownerNode.dispatchAggregateEvents(
                   (AttrImpl)arg,
  -                previous==null ? null : previous.getNodeValue()
  +                previous==null ? null : previous.getNodeValue(),
  +                previous==null ?
  +                           MutationEvent.ADDITION : MutationEvent.MODIFICATION
                   );
           }
       	return previous;
  @@ -261,13 +265,13 @@
       final protected Node internalRemoveNamedItem(String name, boolean raiseEx){
       	if (isReadOnly()) {
               throw
  -                new DOMExceptionImpl(DOMException.NO_MODIFICATION_ALLOWED_ERR,
  +                new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
                                        "DOM001 Modification not allowed");
           }
       	int i = findNamePoint(name,0);
       	if (i < 0) {
               if (raiseEx) {
  -                throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR,
  +                throw new DOMException(DOMException.NOT_FOUND_ERR,
                                              "DOM008 Not found");
               } else {
                   return null;
  @@ -326,19 +330,23 @@
       	    // If we have to send DOMAttrModified (determined earlier),
               // do so.
               if(lc.captures+lc.bubbles+lc.defaults>0) {
  -                MutationEvent me= new MutationEventImpl();
  +                MutationEventImpl me= new MutationEventImpl();
                   //?????ownerDocument.createEvent("MutationEvents");
                   me.initMutationEvent(MutationEventImpl.DOM_ATTR_MODIFIED,
                                        true, false,
                                        null, n.getNodeValue(),
   				     null, name);
  +                // REVISIT: The DOM Level 2 PR has a bug: the init method
  +                // should let this attribute be specified. Since it doesn't we
  +                // have to set it directly.
  +                me.attrChange = MutationEvent.REMOVAL;
                   ownerNode.dispatchEvent(me);
               }
   
               // We can hand off to process DOMSubtreeModified, though.
               // Note that only the Element needs to be informed; the
               // Attr's subtree has not been changed by this operation.
  -            ownerNode.dispatchAggregateEvents(null,null);
  +            ownerNode.dispatchAggregateEvents(null,null,(short)0);
           }
   
           return n;
  @@ -384,13 +392,13 @@
                                                      boolean raiseEx) {
       	if (isReadOnly()) {
               throw
  -                new DOMExceptionImpl(DOMException.NO_MODIFICATION_ALLOWED_ERR,
  +                new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
                                        "DOM001 Modification not allowed");
           }
       	int i = findNamePoint(namespaceURI, name);
       	if (i < 0) {
               if (raiseEx) {
  -                throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR,
  +                throw new DOMException(DOMException.NOT_FOUND_ERR,
                                              "DOM008 Not found");
               } else {
                   return null;
  @@ -456,19 +464,23 @@
       	    // If we have to send DOMAttrModified (determined earlier),
               // do so.
               if(lc.captures+lc.bubbles+lc.defaults>0) {
  -                MutationEvent me= new MutationEventImpl();
  +                MutationEventImpl me= new MutationEventImpl();
                   //?????ownerDocument.createEvent("MutationEvents");
                   me.initMutationEvent(MutationEventImpl.DOM_ATTR_MODIFIED,
                                        true, false,
                                        null, n.getNodeValue(),
   				     null, name);
  +                // REVISIT: The DOM Level 2 PR has a bug: the init method
  +                // should let this attribute be specified. Since it doesn't we
  +                // have to set it directly.
  +                me.attrChange = MutationEvent.REMOVAL;
                   ownerNode.dispatchEvent(me);
               }
   
               // We can hand off to process DOMSubtreeModified, though.
               // Note that only the Element needs to be informed; the
               // Attr's subtree has not been changed by this operation.
  -            ownerNode.dispatchAggregateEvents(null,null);
  +            ownerNode.dispatchAggregateEvents(null,null,(short)0);
           }
           return n;
   
  
  
  
  1.11      +8 -8      xml-xerces/java/src/org/apache/xerces/dom/CharacterDataImpl.java
  
  Index: CharacterDataImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/CharacterDataImpl.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- CharacterDataImpl.java	2000/09/08 17:39:55	1.10
  +++ CharacterDataImpl.java	2000/10/02 21:58:12	1.11
  @@ -151,7 +151,7 @@
        */
       public void setNodeValue(String value) {
       	if (isReadOnly())
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           // revisit: may want to set the value in ownerDocument.
  @@ -245,7 +245,7 @@
       public void appendData(String data) {
   
           if (isReadOnly()) {
  -        	throw new DOMExceptionImpl(
  +        	throw new DOMException(
           		DOMException.NO_MODIFICATION_ALLOWED_ERR,
           		"DOM001 Modification not allowed");
           }
  @@ -275,13 +275,13 @@
           throws DOMException {
   
           if (isReadOnly()) {
  -        	throw new DOMExceptionImpl(
  +        	throw new DOMException(
           		DOMException.NO_MODIFICATION_ALLOWED_ERR, 
           		"DOM001 Modification not allowed");
           }
   
           if (count < 0) {
  -        	throw new DOMExceptionImpl(DOMException.INDEX_SIZE_ERR, 
  +        	throw new DOMException(DOMException.INDEX_SIZE_ERR, 
           	                           "DOM004 Index out of bounds");
           }
   
  @@ -299,7 +299,7 @@
               ownerDocument().deletedText(this, offset, count);
           }
           catch (StringIndexOutOfBoundsException e) {
  -        	throw new DOMExceptionImpl(DOMException.INDEX_SIZE_ERR, 
  +        	throw new DOMException(DOMException.INDEX_SIZE_ERR, 
           	                           "DOM004 Index out of bounds");
           }
   
  @@ -318,7 +318,7 @@
           throws DOMException {
   
           if (isReadOnly()) {
  -        	throw new DOMExceptionImpl(
  +        	throw new DOMException(
           		DOMException.NO_MODIFICATION_ALLOWED_ERR, 
           		"DOM001 Modification not allowed");
           }
  @@ -335,7 +335,7 @@
               ownerDocument().insertedText(this, offset, data.length());
           }
           catch (StringIndexOutOfBoundsException e) {
  -        	throw new DOMExceptionImpl(DOMException.INDEX_SIZE_ERR, 
  +        	throw new DOMException(DOMException.INDEX_SIZE_ERR, 
           	                           "DOM004 Index out of bounds");
           }
   
  @@ -418,7 +418,7 @@
           
           int length = data.length();
           if (count < 0 || offset < 0 || offset > length - 1) {
  -            throw new DOMExceptionImpl(DOMException.INDEX_SIZE_ERR, 
  +            throw new DOMException(DOMException.INDEX_SIZE_ERR, 
                                          "DOM004 Index out of bounds");
           }
   
  
  
  
  1.15      +9 -9      xml-xerces/java/src/org/apache/xerces/dom/ChildAndParentNode.java
  
  Index: ChildAndParentNode.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/ChildAndParentNode.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ChildAndParentNode.java	2000/08/29 18:48:12	1.14
  +++ ChildAndParentNode.java	2000/10/02 21:58:16	1.15
  @@ -1,4 +1,4 @@
  -/* $Id: ChildAndParentNode.java,v 1.14 2000/08/29 18:48:12 lehors Exp $ */
  +/* $Id: ChildAndParentNode.java,v 1.15 2000/10/02 21:58:16 lehors Exp $ */
   /*
    * The Apache Software License, Version 1.1
    *
  @@ -305,13 +305,13 @@
           throws DOMException {
   
       	if (isReadOnly())
  -            throw new DOMExceptionImpl(
  +            throw new DOMException(
                           DOMException.NO_MODIFICATION_ALLOWED_ERR, 
                           "DOM001 Modification not allowed");
   
           boolean errorChecking = ownerDocument.errorChecking;
       	if (errorChecking && newChild.getOwnerDocument() != ownerDocument) {
  -            throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR, 
  +            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, 
                                          "DOM005 Wrong document");
           }
   
  @@ -328,13 +328,13 @@
                   treeSafe = newChild != a;
               }
               if(!treeSafe) {
  -                throw new DOMExceptionImpl(DOMException.HIERARCHY_REQUEST_ERR, 
  +                throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 
                                              "DOM006 Hierarchy request error");
               }
   
               // refChild must in fact be a child of this node (or null)
               if(refChild != null && refChild.getParentNode() != this) {
  -                throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR,
  +                throw new DOMException(DOMException.NOT_FOUND_ERR,
                                              "DOM008 Not found");
               }
           }
  @@ -362,7 +362,7 @@
                    kid = kid.getNextSibling()) {
   
                   if (errorChecking && !ownerDocument.isKidOK(this, kid)) {
  -                    throw new DOMExceptionImpl(
  +                    throw new DOMException(
                                              DOMException.HIERARCHY_REQUEST_ERR, 
                                              "DOM006 Hierarchy request error");
                   }
  @@ -376,7 +376,7 @@
                    (!(newChild instanceof ChildNode)
                     ||
                     !ownerDocument.isKidOK(this, newChild))) {
  -            throw new DOMExceptionImpl(DOMException.HIERARCHY_REQUEST_ERR, 
  +            throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 
                                          "DOM006 Hierarchy request error");
           }
           else {
  @@ -557,14 +557,14 @@
           throws DOMException {
   
           if (isReadOnly()) {
  -            throw new DOMExceptionImpl(
  +            throw new DOMException(
                   DOMException.NO_MODIFICATION_ALLOWED_ERR, 
                   "DOM001 Modification not allowed");
           }
            
           if (ownerDocument.errorChecking && 
               oldChild != null && oldChild.getParentNode() != this) {
  -            throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR, 
  +            throw new DOMException(DOMException.NOT_FOUND_ERR, 
                                          "DOM008 Not found");
           }
   
  
  
  
  1.9       +3 -3      xml-xerces/java/src/org/apache/xerces/dom/DOMImplementationImpl.java
  
  Index: DOMImplementationImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMImplementationImpl.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DOMImplementationImpl.java	2000/09/20 18:28:43	1.8
  +++ DOMImplementationImpl.java	2000/10/02 21:58:17	1.9
  @@ -147,12 +147,12 @@
                                                    String systemID)
       {
       	if (!DocumentImpl.isXMLName(qualifiedName)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       		                           "DOM002 Illegal character");
           }
           int index = qualifiedName.indexOf(':');
           if (index == 0 || index == qualifiedName.length() - 1) {
  -	    throw new DOMExceptionImpl(DOMException.NAMESPACE_ERR, 
  +	    throw new DOMException(DOMException.NAMESPACE_ERR, 
   				       "DOM003 Namespace error");
   	}
       	return new DocumentTypeImpl(null, qualifiedName, publicID, systemID);
  @@ -183,7 +183,7 @@
                                                throws DOMException
       {
       	if (doctype != null && doctype.getOwnerDocument() != null) {
  -    		throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR, 
  +    		throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, 
       		                           "DOM005 Wrong document");
           }
           DocumentImpl doc = new DocumentImpl(doctype);
  
  
  
  1.41      +15 -15    xml-xerces/java/src/org/apache/xerces/dom/DocumentImpl.java
  
  Index: DocumentImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DocumentImpl.java,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- DocumentImpl.java	2000/08/30 00:22:28	1.40
  +++ DocumentImpl.java	2000/10/02 21:58:18	1.41
  @@ -339,7 +339,7 @@
           if (errorChecking) {
               if((type == Node.ELEMENT_NODE && docElement != null) ||
                  (type == Node.DOCUMENT_TYPE_NODE && docType != null)) {
  -                throw new DOMExceptionImpl(DOMException.HIERARCHY_REQUEST_ERR,
  +                throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR,
                                              "DOM006 Hierarchy request error");
               }
           }
  @@ -424,7 +424,7 @@
           throws DOMException {
   
       	if(errorChecking && !isXMLName(name)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR,
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
       		                           "DOM002 Illegal character");
           }
   
  @@ -479,7 +479,7 @@
           throws DOMException {
   
       	if (errorChecking && !isXMLName(tagName)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       		                           "DOM002 Illegal character");
           }
   
  @@ -501,7 +501,7 @@
           throws DOMException {
   
       	if (errorChecking && !isXMLName(name)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       		                           "DOM002 Illegal character");
           }
   
  @@ -526,7 +526,7 @@
           throws DOMException {
   
       	if(errorChecking && !isXMLName(target)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR,
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
       		                           "DOM002 Illegal character");
           }
   
  @@ -668,7 +668,7 @@
           throws DOMException {
   
       	if (errorChecking && !isXMLName(qualifiedName)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       		                           "DOM002 Illegal character");
           }
       	return new DocumentTypeImpl(this, qualifiedName, publicID, systemID);
  @@ -693,7 +693,7 @@
           // REVISIT: Should we be checking XML name chars?
           /***
       	if (errorChecking && !isXMLName(name)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       		                           "DOM002 Illegal character");
           }
           /***/
  @@ -720,7 +720,7 @@
           // REVISIT: Should we be checking XML name chars?
           /***
       	if (errorChecking && !isXMLName(name)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       		                           "DOM002 Illegal character");
           }
           /***/
  @@ -739,7 +739,7 @@
           // REVISIT: Should we be checking XML name chars?
           /***
       	if (errorChecking && !isXMLName(name)) {
  -    		throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    		throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       		                           "DOM002 Illegal character");
           }
           /***/
  @@ -940,7 +940,7 @@
   
       	    case DOCUMENT_NODE : // Document can't be child of Document
       	    default: {		// Unknown node type
  -		throw new DOMExceptionImpl(DOMException.HIERARCHY_REQUEST_ERR,
  +		throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR,
   					   "DOM006 Hierarchy request error");
               }
           }
  @@ -973,7 +973,7 @@
        **/
       public void adoptNode(Node source) {
   	if (!(source instanceof NodeImpl)) {
  -	    throw new DOMExceptionImpl(DOMException.NOT_SUPPORTED_ERR,
  +	    throw new DOMException(DOMException.NOT_SUPPORTED_ERR,
   		      "cannot move a node in from another DOM implementation");
   	}
   	Node parent = source.getParentNode();
  @@ -1245,7 +1245,7 @@
                                          boolean entityReferenceExpansion)
       {
       	if( root==null) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NOT_SUPPORTED_ERR, 
   			"DOM007 Not supported");
           }
  @@ -1407,8 +1407,8 @@
   	 * as DOMNodeInserted. This parameter is case-sensitive.
   	 * @return an uninitialized Event object. Call the appropriate
   	 * <code>init...Event()</code> method before dispatching it.
  -	 * @exception DOMException UNSUPPORTED_EVENT_TYPE if the requested
  -	 * event set is not supported in this DOM.
  +	 * @exception DOMException NOT_SUPPORTED_ERR if the requested
  +	 * event type is not supported in this DOM.
        * @since WD-DOM-Level-2-19990923
        */
       public Event createEvent(String type) 
  @@ -1418,7 +1418,7 @@
   	    if("MutationEvent".equals(type))
   	        return new MutationEventImpl();
   	    else
  -	        throw new DOMExceptionImpl(DOMExceptionImpl.UNSUPPORTED_EVENT_TYPE,
  +	        throw new DOMException(DOMException.NOT_SUPPORTED_ERR,
   					   "DOM007 Not supported");
   	}
        
  
  
  
  1.27      +10 -10    xml-xerces/java/src/org/apache/xerces/dom/ElementImpl.java
  
  Index: ElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/ElementImpl.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- ElementImpl.java	2000/09/14 22:08:03	1.26
  +++ ElementImpl.java	2000/10/02 21:58:18	1.27
  @@ -332,7 +332,7 @@
       public void removeAttribute(String name) {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -371,7 +371,7 @@
           {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -381,7 +381,7 @@
           }
   
           if (attributes == null) {
  -            throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR, 
  +            throw new DOMException(DOMException.NOT_FOUND_ERR, 
                                          "DOM008 Not found");
           }
           return (Attr) attributes.removeNamedItem(oldAttr.getName());
  @@ -411,7 +411,7 @@
       public void setAttribute(String name, String value) {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -455,7 +455,7 @@
           {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -466,7 +466,7 @@
   
       	if (ownerDocument.errorChecking
               && newAttr.getOwnerDocument() != ownerDocument) {
  -    		throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR, 
  +    		throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, 
       		                           "DOM005 Wrong document");
           }
   
  @@ -554,7 +554,7 @@
       public void setAttributeNS(String namespaceURI, String localName, String value) {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -598,7 +598,7 @@
       public void removeAttributeNS(String namespaceURI, String localName) {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -669,7 +669,7 @@
           {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -680,7 +680,7 @@
   
       	if (ownerDocument.errorChecking
               && newAttr.getOwnerDocument() != ownerDocument) {
  -    		throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR, 
  +    		throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, 
       		"DOM005 Wrong document");
           }
   
  
  
  
  1.13      +5 -5      xml-xerces/java/src/org/apache/xerces/dom/ElementNSImpl.java
  
  Index: ElementNSImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/ElementNSImpl.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ElementNSImpl.java	2000/07/07 00:36:12	1.12
  +++ ElementNSImpl.java	2000/10/02 21:58:19	1.13
  @@ -1,4 +1,4 @@
  -/* $Id: ElementNSImpl.java,v 1.12 2000/07/07 00:36:12 lehors Exp $ */
  +/* $Id: ElementNSImpl.java,v 1.13 2000/10/02 21:58:19 lehors Exp $ */
   /*
    * The Apache Software License, Version 1.1
    *
  @@ -98,7 +98,7 @@
       {
       	super(ownerDocument, qualifiedName);
       	if (!DocumentImpl.isXMLName(qualifiedName)) {
  -    	    throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    	    throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       	                               "DOM002 Illegal character");
           }
   
  @@ -118,7 +118,7 @@
   	     (prefix.equals("xml") &&
   	      !namespaceURI.equals("http://www.w3.org/XML/1998/namespace")))) {
   
  -	    throw new DOMExceptionImpl(DOMException.NAMESPACE_ERR, 
  +	    throw new DOMException(DOMException.NAMESPACE_ERR, 
   				       "DOM003 Namespace error");
   	}
   	this.namespaceURI = namespaceURI;
  @@ -200,11 +200,11 @@
   	if (namespaceURI == null ||
   	    (prefix != null && prefix.equals("xml") &&
   	     !namespaceURI.equals("http://www.w3.org/XML/1998/namespace"))) {
  -    	    throw new DOMExceptionImpl(DOMException.NAMESPACE_ERR, 
  +    	    throw new DOMException(DOMException.NAMESPACE_ERR, 
   				       "DOM003 Namespace error");
           }
   	if (ownerDocument.errorChecking && !DocumentImpl.isXMLName(prefix)) {
  -    	    throw new DOMExceptionImpl(DOMException.INVALID_CHARACTER_ERR, 
  +    	    throw new DOMException(DOMException.INVALID_CHARACTER_ERR, 
       	                               "DOM002 Illegal character");
           }
           // update node name with new qualifiedName
  
  
  
  1.11      +0 -1      xml-xerces/java/src/org/apache/xerces/dom/Makefile
  
  Index: Makefile
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/Makefile,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Makefile	2000/05/25 01:58:31	1.10
  +++ Makefile	2000/10/02 21:58:19	1.11
  @@ -28,7 +28,6 @@
   	DocumentFragmentImpl.class\
   	DocumentImpl.class\
   	DocumentTypeImpl.class\
  -	DOMExceptionImpl.class\
   	DOMImplementationImpl.class\
   	ElementDefinitionImpl.class\
   	ElementImpl.class\
  
  
  
  1.21      +8 -8      xml-xerces/java/src/org/apache/xerces/dom/NamedNodeMapImpl.java
  
  Index: NamedNodeMapImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/NamedNodeMapImpl.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- NamedNodeMapImpl.java	2000/09/11 16:43:54	1.20
  +++ NamedNodeMapImpl.java	2000/10/02 21:58:20	1.21
  @@ -208,11 +208,11 @@
           throws DOMException {
   
       	if (isReadOnly()) {
  -            throw new DOMExceptionImpl(DOMException.NO_MODIFICATION_ALLOWED_ERR,
  +            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
                                          "DOM001 Modification not allowed");
           }
       	if (arg.getOwnerDocument() != ownerNode.ownerDocument()) {
  -            throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR,
  +            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
                                          "DOM005 Wrong document");
           }
   
  @@ -247,12 +247,12 @@
           throws DOMException {
   
       	if (isReadOnly()) {
  -            throw new DOMExceptionImpl(DOMException.NO_MODIFICATION_ALLOWED_ERR,
  +            throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
                                          "DOM001 Modification not allowed");
           }
       
       	if(arg.getOwnerDocument() != ownerNode.ownerDocument()) {
  -            throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR,
  +            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
                                          "DOM005 Wrong document");
           }
   
  @@ -291,12 +291,12 @@
   
       	if (isReadOnly()) {
               throw
  -                new DOMExceptionImpl(DOMException.NO_MODIFICATION_ALLOWED_ERR,
  +                new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
                                        "DOM001 Modification not allowed");
           }
       	int i = findNamePoint(name,0);
       	if (i < 0) {
  -            throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR,
  +            throw new DOMException(DOMException.NOT_FOUND_ERR,
                                          "DOM008 Not found");
           }
   
  @@ -326,12 +326,12 @@
   
       	if (isReadOnly()) {
               throw
  -                new DOMExceptionImpl(DOMException.NO_MODIFICATION_ALLOWED_ERR,
  +                new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR,
                                        "DOM001 Modification not allowed");
           }
       	int i = findNamePoint(namespaceURI, name);
       	if (i < 0) {
  -            throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR,
  +            throw new DOMException(DOMException.NOT_FOUND_ERR,
                                          "DOM008 Not found");
           }
   
  
  
  
  1.34      +25 -18    xml-xerces/java/src/org/apache/xerces/dom/NodeImpl.java
  
  Index: NodeImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/NodeImpl.java,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- NodeImpl.java	2000/09/14 22:08:03	1.33
  +++ NodeImpl.java	2000/10/02 21:58:20	1.34
  @@ -62,7 +62,6 @@
   
   import org.w3c.dom.*;
   
  -//import org.apache.xerces.domx.events.*;
   import org.apache.xerces.dom.events.EventImpl;
   import org.apache.xerces.dom.events.MutationEventImpl;
   import org.w3c.dom.events.*;
  @@ -439,7 +438,7 @@
        */
       public Node insertBefore(Node newChild, Node refChild) 
   	throws DOMException {
  -	throw new DOMExceptionImpl(DOMException.HIERARCHY_REQUEST_ERR, 
  +	throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 
   				   "DOM006 Hierarchy request error");
       }
   
  @@ -460,7 +459,7 @@
        */
       public Node removeChild(Node oldChild) 
   		throws DOMException {
  -	throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR, 
  +	throw new DOMException(DOMException.NOT_FOUND_ERR, 
   				   "DOM008 Not found");
       }
   
  @@ -490,7 +489,7 @@
        */
       public Node replaceChild(Node newChild, Node oldChild)
           throws DOMException {
  -	throw new DOMExceptionImpl(DOMException.HIERARCHY_REQUEST_ERR, 
  +	throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 
   				   "DOM006 Hierarchy request error");
       }
   
  @@ -566,7 +565,7 @@
        *                      specified feature is supported, false otherwise.
        * @since WD-DOM-Level-2-19990923
        */
  -    public boolean supports(String feature, String version)
  +    public boolean isSupported(String feature, String version)
       {
           return ownerDocument().getImplementation().hasFeature(feature,
                                                                 version);
  @@ -637,7 +636,7 @@
       public void setPrefix(String prefix)
           throws DOMException
       {
  -	throw new DOMExceptionImpl(DOMException.NAMESPACE_ERR, 
  +	throw new DOMException(DOMException.NAMESPACE_ERR, 
   				   "DOM003 Namespace error");
       }
   
  @@ -876,8 +875,8 @@
           // VALIDATE -- must have been initialized at least once, must have
           // a non-null non-blank name.
           if(!evt.initialized || evt.type==null || evt.type.equals(""))
  -            throw new DOMExceptionImpl(DOMExceptionImpl.UNSPECIFIED_EVENT_TYPE,
  -				       "DOM010 Unspecified event type");
  +            throw new EventException(EventException.UNSPECIFIED_EVENT_TYPE_ERR,
  +                                     "DOM010 Unspecified event type");
           
           // If nobody is listening for this event, discard immediately
           LCount lc=LCount.lookup(evt.getType());
  @@ -923,7 +922,7 @@
                       
                   // Handle all capturing listeners on this node
                   NodeImpl nn=(NodeImpl)pv.elementAt(j);
  -                evt.currentNode=nn;
  +                evt.currentTarget=nn;
                   Vector nodeListeners = ownerDocument().getEventListeners(nn);
                   if(nodeListeners!=null)
                   {
  @@ -952,7 +951,7 @@
               //on the target node. Note that capturing listeners on the target node 
               //are _not_ invoked, even during the capture phase.
               evt.eventPhase=Event.AT_TARGET;
  -            evt.currentNode=this;
  +            evt.currentTarget=this;
               Vector nodeListeners = ownerDocument().getEventListeners(this);
               if(!evt.stopPropagation && nodeListeners!=null)
               {
  @@ -986,7 +985,7 @@
                       
                       // Handle all bubbling listeners on this node
                       NodeImpl nn=(NodeImpl)pv.elementAt(j);
  -                    evt.currentNode=nn;
  +                    evt.currentTarget=nn;
                       nodeListeners = ownerDocument().getEventListeners(nn);
                       if(nodeListeners!=null)
                       {
  @@ -1017,7 +1016,7 @@
           if(lc.defaults>0 && (!evt.cancelable || !evt.preventDefault))
           {
               // evt.eventPhase=Event.DEFAULT_PHASE;
  -            // evt.currentNode=this;
  +            // evt.currentTarget=this;
               // DO_DEFAULT_OPERATION
           }
   
  @@ -1111,9 +1110,10 @@
   	void dispatchAggregateEvents(EnclosingAttr ea)
   	{
   	    if(ea!=null)
  -	        dispatchAggregateEvents(ea.node,ea.oldvalue);
  -        else
  -	        dispatchAggregateEvents(null,null);
  +	        dispatchAggregateEvents(ea.node, ea.oldvalue,
  +                                        MutationEvent.MODIFICATION);
  +            else
  +	        dispatchAggregateEvents(null,null,(short)0);
   	        
   	} // dispatchAggregateEvents(EnclosingAttr) :void
   
  @@ -1136,8 +1136,12 @@
   	 * been changed as a result of the DOM operation. Null if none such.
   	 * @param oldValue The String value previously held by the
   	 * enclosingAttr. Ignored if none such.
  +         * @param change Type of modification to the attr. See
  +         * MutationEvent.attrChange
   	 */
  -	void dispatchAggregateEvents(AttrImpl enclosingAttr,String oldvalue)
  +	void dispatchAggregateEvents(AttrImpl enclosingAttr,
  +                                     String oldvalue,
  +                                     short change)
   	{
         if(MUTATIONEVENTS && ownerDocument().mutationEvents)
         {
  @@ -1151,11 +1155,14 @@
                   owner=((NodeImpl)(enclosingAttr.getOwnerElement()));
                   if(owner!=null)
                   {
  -                    MutationEvent me=
  -                        new MutationEventImpl();
  +                    MutationEventImpl me= new MutationEventImpl();
                       //?????ownerDocument.createEvent("MutationEvents");
                       me.initMutationEvent(MutationEventImpl.DOM_ATTR_MODIFIED,true,false,
                          null,oldvalue,enclosingAttr.getNodeValue(),enclosingAttr.getNodeName());
  +                    // REVISIT: The DOM Level 2 PR has a bug: the init method
  +                    // should let this attribute be specified. Since it doesn't
  +                    // we have to set it directly.
  +                    me.attrChange = change;
                       owner.dispatchEvent(me);
                   }
               }
  
  
  
  1.4       +4 -5      xml-xerces/java/src/org/apache/xerces/dom/NodeIteratorImpl.java
  
  Index: NodeIteratorImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/NodeIteratorImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NodeIteratorImpl.java	2000/02/22 00:14:56	1.3
  +++ NodeIteratorImpl.java	2000/10/02 21:58:20	1.4
  @@ -60,7 +60,6 @@
   import org.w3c.dom.*;
   import org.w3c.dom.traversal.*;
   import org.apache.xerces.dom.DocumentImpl;
  -import org.apache.xerces.dom.DOMExceptionImpl;
   
   /** DefaultNodeIterator implements a NodeIterator, which iterates a 
    *  DOM tree in the expected depth first way. 
  @@ -164,8 +163,8 @@
       public Node               nextNode() {
           
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  -    			DOMExceptionImpl.INVALID_STATE_ERR, 
  +    		throw new DOMException(
  +    			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
           
  @@ -220,8 +219,8 @@
       public Node               previousNode() {
           
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  -    			DOMExceptionImpl.INVALID_STATE_ERR, 
  +    		throw new DOMException(
  +    			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
    
  
  
  
  1.8       +2 -2      xml-xerces/java/src/org/apache/xerces/dom/NotationImpl.java
  
  Index: NotationImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/NotationImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- NotationImpl.java	2000/07/07 00:36:14	1.7
  +++ NotationImpl.java	2000/10/02 21:58:21	1.8
  @@ -177,7 +177,7 @@
       public void setPublicId(String id) {
   
       	if (isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR,
   			"DOM001 Modification not allowed");
           }
  @@ -195,7 +195,7 @@
       public void setSystemId(String id) {
   
       	if(isReadOnly()) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR,
   			"DOM001 Modification not allowed");
           }
  
  
  
  1.15      +9 -9      xml-xerces/java/src/org/apache/xerces/dom/ParentNode.java
  
  Index: ParentNode.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/ParentNode.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ParentNode.java	2000/08/29 18:48:12	1.14
  +++ ParentNode.java	2000/10/02 21:58:21	1.15
  @@ -1,4 +1,4 @@
  -/* $Id: ParentNode.java,v 1.14 2000/08/29 18:48:12 lehors Exp $ */
  +/* $Id: ParentNode.java,v 1.15 2000/10/02 21:58:21 lehors Exp $ */
   /*
    * The Apache Software License, Version 1.1
    *
  @@ -315,13 +315,13 @@
           throws DOMException {
   
       	if (isReadOnly())
  -            throw new DOMExceptionImpl(
  +            throw new DOMException(
                           DOMException.NO_MODIFICATION_ALLOWED_ERR, 
                           "DOM001 Modification not allowed");
   
           boolean errorChecking = ownerDocument.errorChecking;
       	if (errorChecking && newChild.getOwnerDocument() != ownerDocument) {
  -            throw new DOMExceptionImpl(DOMException.WRONG_DOCUMENT_ERR, 
  +            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, 
                                          "DOM005 Wrong document");
           }
   
  @@ -338,13 +338,13 @@
                   treeSafe = newChild != a;
               }
               if(!treeSafe) {
  -                throw new DOMExceptionImpl(DOMException.HIERARCHY_REQUEST_ERR, 
  +                throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 
                                              "DOM006 Hierarchy request error");
               }
   
               // refChild must in fact be a child of this node (or null)
               if(refChild != null && refChild.getParentNode() != this) {
  -                throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR,
  +                throw new DOMException(DOMException.NOT_FOUND_ERR,
                                              "DOM008 Not found");
               }
           }
  @@ -372,7 +372,7 @@
                    kid = kid.getNextSibling()) {
   
                   if (errorChecking && !ownerDocument.isKidOK(this, kid)) {
  -                    throw new DOMExceptionImpl(
  +                    throw new DOMException(
                                              DOMException.HIERARCHY_REQUEST_ERR, 
                                              "DOM006 Hierarchy request error");
                   }
  @@ -386,7 +386,7 @@
                    (!(newChild instanceof ChildNode)
                     ||
                     !ownerDocument.isKidOK(this, newChild))) {
  -            throw new DOMExceptionImpl(DOMException.HIERARCHY_REQUEST_ERR, 
  +            throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, 
                                          "DOM006 Hierarchy request error");
           }
           else {
  @@ -567,14 +567,14 @@
           throws DOMException {
   
           if (isReadOnly()) {
  -            throw new DOMExceptionImpl(
  +            throw new DOMException(
                   DOMException.NO_MODIFICATION_ALLOWED_ERR, 
                   "DOM001 Modification not allowed");
           }
            
           if (ownerDocument.errorChecking && 
               oldChild != null && oldChild.getParentNode() != this) {
  -            throw new DOMExceptionImpl(DOMException.NOT_FOUND_ERR, 
  +            throw new DOMException(DOMException.NOT_FOUND_ERR, 
                                          "DOM008 Not found");
           }
   
  
  
  
  1.7       +17 -18    xml-xerces/java/src/org/apache/xerces/dom/RangeImpl.java
  
  Index: RangeImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/RangeImpl.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- RangeImpl.java	2000/07/06 23:14:29	1.6
  +++ RangeImpl.java	2000/10/02 21:58:22	1.7
  @@ -60,7 +60,6 @@
   import org.w3c.dom.Document;
   import org.w3c.dom.Node;
   import org.w3c.dom.CharacterData;
  -import org.apache.xerces.dom.DOMExceptionImpl;
   import org.apache.xerces.dom.DocumentImpl;
   import org.w3c.dom.range.*;
   import java.util.Vector;
  @@ -164,7 +163,7 @@
                            throws RangeException, DOMException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -184,7 +183,7 @@
                          throws RangeException, DOMException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -203,7 +202,7 @@
           throws RangeException 
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -223,7 +222,7 @@
           throws RangeException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -243,7 +242,7 @@
           throws RangeException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -264,7 +263,7 @@
           throws RangeException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -283,7 +282,7 @@
       public void collapse(boolean toStart) {
           
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -301,7 +300,7 @@
           throws RangeException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -328,7 +327,7 @@
           throws RangeException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
           }
  @@ -357,7 +356,7 @@
           throws DOMException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
       	}
  @@ -626,7 +625,7 @@
           throws DOMException, RangeException
       {
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
       	}
  @@ -695,7 +694,7 @@
           if (newParent==null) return;
           
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
       	}
  @@ -737,7 +736,7 @@
           
       public Range cloneRange(){
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
       	}
  @@ -750,7 +749,7 @@
       
       public String toString(){
       	if( fDetach) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INVALID_STATE_ERR, 
   			"DOM011 Invalid state");
       	}
  @@ -1262,7 +1261,7 @@
       void checkIndex(Node refNode, int offset) throws DOMException
       {
           if (offset < 0) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INDEX_SIZE_ERR, 
   			"DOM004 Index out of bounds");
       	}
  @@ -1274,7 +1273,7 @@
           || type == Node.COMMENT_NODE
           || type == Node.PROCESSING_INSTRUCTION_NODE)
           && offset > refNode.getNodeValue().length()){
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INDEX_SIZE_ERR, 
   			"DOM004 Index out of bounds");
           }
  @@ -1285,7 +1284,7 @@
               child = child.getNextSibling();
           }
           if (i > offset) {
  -    		throw new DOMExceptionImpl(
  +    		throw new DOMException(
       			DOMException.INDEX_SIZE_ERR, 
   			"DOM004 Index out of bounds");
           }
  
  
  
  1.8       +2 -2      xml-xerces/java/src/org/apache/xerces/dom/TextImpl.java
  
  Index: TextImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/TextImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- TextImpl.java	2000/07/07 00:36:15	1.7
  +++ TextImpl.java	2000/10/02 21:58:22	1.8
  @@ -161,7 +161,7 @@
           throws DOMException {
   
       	if (isReadOnly()) {
  -            throw new DOMExceptionImpl(
  +            throw new DOMException(
       			DOMException.NO_MODIFICATION_ALLOWED_ERR, 
       			"DOM001 Modification not allowed");
           }
  @@ -170,7 +170,7 @@
               synchronizeData();
           }
       	if (offset < 0 || offset > data.length() - 1) {
  -            throw new DOMExceptionImpl(DOMException.INDEX_SIZE_ERR, 
  +            throw new DOMException(DOMException.INDEX_SIZE_ERR, 
                                          "DOM004 Index out of bounds");
           }
       		
  
  
  
  1.4       +4 -4      xml-xerces/java/src/org/apache/xerces/dom/events/EventImpl.java
  
  Index: EventImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/events/EventImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EventImpl.java	2000/02/22 00:14:57	1.3
  +++ EventImpl.java	2000/10/02 21:58:35	1.4
  @@ -70,7 +70,7 @@
   {
       public String type=null;
       public EventTarget target;
  -    public Node currentNode;
  +    public EventTarget currentTarget;
       public short eventPhase;
       public boolean initialized=false, bubbles=true, cancelable=false;
       public boolean stopPropagation=false, preventDefault=false;
  @@ -116,9 +116,9 @@
       /** @return the Node (EventTarget) whose EventListeners are currently
           being processed. During capture and bubble phases, this may not be
           the target node. */
  -    public Node getCurrentNode()
  +    public EventTarget getCurrentTarget()
       {
  -        return currentNode;
  +        return currentTarget;
       }
   
       /** @return the current processing phase for this event -- 
  @@ -149,7 +149,7 @@
       }
   
       /** Causes exit from in-progress event dispatch before the next
  -        currentNode is selected. Replaces the preventBubble() and 
  +        currentTarget is selected. Replaces the preventBubble() and 
           preventCapture() methods which were present in early drafts; 
           they may be reintroduced in future levels of the DOM. */
       public void stopPropagation()
  
  
  
  1.3       +13 -0     xml-xerces/java/src/org/apache/xerces/dom/events/MutationEventImpl.java
  
  Index: MutationEventImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/events/MutationEventImpl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MutationEventImpl.java	2000/01/07 19:04:59	1.2
  +++ MutationEventImpl.java	2000/10/02 21:58:35	1.3
  @@ -66,6 +66,9 @@
   {
       Node relatedNode=null;
       String prevValue=null,newValue=null,attrName=null;
  +    // REVISIT: The DOM Level 2 PR has a bug: the init method should let this
  +    // attribute be specified. Since it doesn't we have to give write access.
  +    public short attrChange;
       
       // NON-DOM CONSTANTS: Storage efficiency, avoid risk of typos.
       public static final String DOM_SUBTREE_MODIFIED = "DOMSubtreeModified";
  @@ -83,6 +86,16 @@
       public String getAttrName()
       {
           return attrName;
  +    }
  +
  +    /**
  +     *  <code>attrChange</code> indicates the type of change which triggered 
  +     * the DOMAttrModified event. The values can be <code>MODIFICATION</code>
  +     * , <code>ADDITION</code>, or <code>REMOVAL</code>. 
  +     */
  +    public short getAttrChange()
  +    {
  +        return attrChange;
       }
   
       /** @return the new string value of the Attr for DOMAttrModified events, or
  
  
  
  1.6       +1 -1      xml-xerces/java/src/org/apache/xerces/domx/Makefile
  
  Index: Makefile
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/domx/Makefile,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Makefile	2000/04/04 22:58:47	1.5
  +++ Makefile	2000/10/02 21:58:41	1.6
  @@ -1,7 +1,7 @@
   # Makefile for directory ./org/apache/xerces/domx
   
   TARGETS=\
  -	DOMException.class
  +	XGrammarWriter.class
   
   DIRS =