You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-cvs@xml.apache.org by di...@apache.org on 2001/06/01 13:15:41 UTC

cvs commit: xml-commons/java/external/xdocs/dom/xml/views dom-spec.xml views.xml

dims        01/06/01 04:15:37

  Added:       java/external/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/external/src/org/w3c/dom/css CSS2Properties.java
                        CSSCharsetRule.java CSSFontFaceRule.java
                        CSSImportRule.java CSSMediaRule.java
                        CSSPageRule.java CSSPrimitiveValue.java
                        CSSRule.java CSSRuleList.java
                        CSSStyleDeclaration.java CSSStyleRule.java
                        CSSStyleSheet.java CSSUnknownRule.java
                        CSSValue.java CSSValueList.java Counter.java
                        DOMImplementationCSS.java DocumentCSS.java
                        ElementCSSInlineStyle.java RGBColor.java Rect.java
                        ViewCSS.java
               java/external/src/org/w3c/dom/events DocumentEvent.java
                        Event.java EventException.java EventListener.java
                        EventTarget.java MouseEvent.java MutationEvent.java
                        UIEvent.java
               java/external/src/org/w3c/dom/ranges DocumentRange.java
                        Range.java RangeException.java
               java/external/src/org/w3c/dom/stylesheets DocumentStyle.java
                        LinkStyle.java MediaList.java StyleSheet.java
                        StyleSheetList.java
               java/external/src/org/w3c/dom/traversal
                        DocumentTraversal.java NodeFilter.java
                        NodeIterator.java TreeWalker.java
               java/external/src/org/w3c/dom/views AbstractView.java
                        DocumentView.java
               java/external/xdocs/dom/core COPYRIGHT.html Overview.html
                        W3C-REC.css acknowledgements.html changes.html
                        copyright-notice.html core.html def-index.html
                        ecma-script-binding.html expanded-toc.html
                        glossary.html i18n.html idl-definitions.html
                        introduction.html java-binding.html references.html
                        spec.css
               java/external/xdocs/dom/core/idl dom.idl
               java/external/xdocs/dom/core/images REC.gif table.gif
                        w3c_home.gif
               java/external/xdocs/dom/events COPYRIGHT.html Overview.html
                        W3C-REC.css acknowledgements.html
                        copyright-notice.html def-index.html
                        ecma-script-binding.html events.html
                        expanded-toc.html glossary.html
                        idl-definitions.html java-binding.html
                        references.html spec.css
               java/external/xdocs/dom/events/idl events.idl
               java/external/xdocs/dom/events/images REC.gif w3c_home.gif
               java/external/xdocs/dom/style COPYRIGHT.html Overview.html
                        W3C-REC.css acknowledgements.html
                        copyright-notice.html css.html def-index.html
                        ecma-script-binding.html expanded-toc.html
                        idl-definitions.html java-binding.html
                        references.html spec.css stylesheets.html
               java/external/xdocs/dom/style/idl css.idl stylesheets.idl
               java/external/xdocs/dom/style/images REC.gif w3c_home.gif
               java/external/xdocs/dom/traversal-range COPYRIGHT.html
                        Overview.html W3C-REC.css acknowledgements.html
                        copyright-notice.html def-index.html
                        ecma-script-binding.html expanded-toc.html
                        glossary.html idl-definitions.html
                        java-binding.html ranges.html references.html
                        spec.css traversal.html
               java/external/xdocs/dom/traversal-range/idl ranges.idl
                        traversal.idl
               java/external/xdocs/dom/traversal-range/images REC.gif
                        RangeExample.gif w3c_home.gif
               java/external/xdocs/dom/views COPYRIGHT.html Overview.html
                        W3C-REC.css acknowledgements.html
                        copyright-notice.html def-index.html
                        ecma-script-binding.html expanded-toc.html
                        idl-definitions.html java-binding.html
                        references.html spec.css views.html
               java/external/xdocs/dom/views/idl views.idl
               java/external/xdocs/dom/views/images REC.gif w3c_home.gif
               java/external/xdocs/dom/xml contributors.xml copyright.xml
                        glossary.xml index.xml link-entities.xml
                        part-entities.xml references.xml toc.xml
                        version.xml
               java/external/xdocs/dom/xml/core changes.xml core.xml
                        dom-spec.xml i18nfunctions.xml introduction.xml
               java/external/xdocs/dom/xml/core/definitions attribute.xml
                        cdata-section.xml comment.xml data.xml doctype.xml
                        document.xml dom.xml element.xml
                        entity-reference.xml entity.xml exceptions.xml
                        named-node-map.xml node-list.xml node.xml
                        notation.xml pi.xml text.xml
               java/external/xdocs/dom/xml/events dom-spec.xml events.xml
               java/external/xdocs/dom/xml/events/definitions
                        documentevent.xml event.xml eventcapturer.xml
                        eventexception.xml eventlistener.xml
                        eventtarget.xml mouseevent.xml mutationevent.xml
                        uievent.xml
               java/external/xdocs/dom/xml/style css.xml dom-spec.xml
                        stylesheets.xml
               java/external/xdocs/dom/xml/style/definitions
                        CSS2Properties.xml CSSCharsetRule.xml
                        CSSFontFaceRule.xml CSSImportRule.xml
                        CSSMediaRule.xml CSSPageRule.xml
                        CSSPrimitiveValue.xml CSSRule.xml CSSRuleList.xml
                        CSSStyleDeclaration.xml CSSStyleRule.xml
                        CSSStyleSheet.xml CSSUnknownRule.xml CSSValue.xml
                        CSSValueList.xml Counter.xml
                        DOMImplementationCSS.xml DocumentCSS.xml
                        DocumentStyle.xml ElementCSSInlineStyle.xml
                        LinkStyle.xml MediaList.xml RGBColor.xml Rect.xml
                        StyleSheet.xml StyleSheetList.xml ViewCSS.xml
               java/external/xdocs/dom/xml/traversal-range dom-spec.xml
                        range.xml traversal.xml
               java/external/xdocs/dom/xml/views dom-spec.xml views.xml
  Log:
  Checking in Sources/Docs of DOM Level 2 from :
  http://www.w3.org/DOM/DOMTM
  
  Revision  Changes    Path
  1.1                  xml-commons/java/external/src/org/w3c/dom/Attr.java
  
  Index: Attr.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   *  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 
   * make it more efficient to implement such features as default attributes 
   * 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, 
   * the child nodes of the <code>Attr</code> node may be either 
   * <code>Text</code> or <code>EntityReference</code> nodes (when these are 
   * in use; see the description of <code>EntityReference</code> for 
   * discussion). 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/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface Attr extends Node {
      /**
       * 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 
       * 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 
       * 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 
       * 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. 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. 
       * Character and general entity references are replaced with their 
       * 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 
       * would recognize as markup are instead treated as literal text. See 
       * also the method <code>setAttribute</code> on the <code>Element</code> 
       * interface.
       * @exception DOMException
       *   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 
       * <code>null</code> if this attribute is not in use.
       * @since DOM Level 2
       */
      public Element getOwnerElement();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/CDATASection.java
  
  Index: CDATASection.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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 
   * 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 
   * 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>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 
   * 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, 
   * 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/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface CDATASection extends Text {
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/CharacterData.java
  
  Index: CharacterData.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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 
   * 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 
   * inherit the interface from it. All <code>offsets</code> in this interface 
   * 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/REC-DOM-Level-2-Core-20001113'>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 
       * 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.
       * @exception DOMException
       *   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;
      public void setData(String data)
                              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.
       */
      public int getLength();
  
      /**
       * 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 
       *   negative or greater than the number of 16-bit units in 
       *   <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>.
       */
      public String substringData(int offset, 
                                  int count)
                                  throws DOMException;
  
      /**
       * 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 argThe <code>DOMString</code> to append.
       * @exception DOMException
       *   NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
       */
      public void appendData(String arg)
                             throws DOMException;
  
      /**
       * 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 
       *   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 void insertData(int offset, 
                             String arg)
                             throws DOMException;
  
      /**
       * Remove a range of 16-bit units from the node. Upon success, 
       * <code>data</code> and <code>length</code> reflect the change.
       * @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 
       *   negative or greater than the number of 16-bit units in 
       *   <code>data</code>, or if the specified <code>count</code> is 
       *   negative.
       *   <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 
       * with the specified string.
       * @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 argThe <code>DOMString</code> with which the range must be 
       *   replaced.
       * @exception DOMException
       *   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 
       *   negative.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
       */
      public void replaceData(int offset, 
                              int count, 
                              String arg)
                              throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/Comment.java
  
  Index: Comment.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * 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.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface Comment extends CharacterData {
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/DOMException.java
  
  Index: DOMException.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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 should raise other exceptions under other circumstances. 
   * For example, implementations should 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 
   * 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.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public class DOMException extends RuntimeException {
      public DOMException(short code, String message) {
         super(message);
         this.code = code;
      }
      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 requested type of object or 
       * operation.
       */
      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.1                  xml-commons/java/external/src/org/w3c/dom/DOMImplementation.java
  
  Index: DOMImplementation.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * 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/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface DOMImplementation {
      /**
       * 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.
       */
      public boolean hasFeature(String feature, 
                                String version);
  
      /**
       * 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 qualifiedNameThe qualified name of the document type to be 
       *   created. 
       * @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 
       *   contains an illegal character.
       *   <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is 
       *   malformed.
       * @since DOM Level 2
       */
      public DocumentType createDocumentType(String qualifiedName, 
                                             String publicId, 
                                             String systemId)
                                             throws DOMException;
  
      /**
       * 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 namespaceURIThe namespace URI of the document element to create.
       * @param qualifiedNameThe qualified name of the document element to be 
       *   created.
       * @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.
       * @exception DOMException
       *   INVALID_CHARACTER_ERR: Raised if the specified qualified name 
       *   contains an illegal character.
       *   <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, 
                                     String qualifiedName, 
                                     DocumentType doctype)
                                     throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/Document.java
  
  Index: Document.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * 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 
   * <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/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface Document extends Node {
      /**
       * 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. <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.
       */
      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 the element with the tagName "HTML".
       */
      public Element getDocumentElement();
  
      /**
       * 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 
       * the <code>createElementNS</code> method.
       * @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 
       *   illegal character.
       */
      public Element createElement(String tagName)
                                   throws DOMException;
  
      /**
       * 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 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 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 
       * string.
       * @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.
       */
      public CDATASection createCDATASection(String data)
                                             throws DOMException;
  
      /**
       * Creates a <code>ProcessingInstruction</code> node given the specified 
       * name and data strings.
       * @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 
       *   illegal character.
       *   <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 
       * <code>Attr</code> instance can then be set on an <code>Element</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 
       *   illegal character.
       */
      public Attr createAttribute(String name)
                                  throws DOMException;
  
      /**
       * 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 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 
       * resolve namespace prefixes.
       * @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 
       *   illegal character.
       *   <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 are encountered in a 
       * preorder traversal of the <code>Document</code> tree. 
       * @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>.
       */
      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>). 
       * 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 
       * 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 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 each 
       * type of node. 
       * <dl>
       * <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 has no effect on 
       * <code>Attr</code> nodes; they always carry their children with them 
       * when imported.</dd>
       * <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> 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 
       * <code>target</code> and <code>data</code> values from those of the 
       * source node.</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>
       *  
       * @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 
       *   supported.
       * @since DOM Level 2
       */
      public Node importNode(Node importedNode, 
                             boolean deep)
                             throws DOMException;
  
      /**
       * Creates an element of the given qualified name and namespace URI. 
       * HTML-only DOM implementations do not need to implement this method.
       * @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: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>qualifiedName</code><code>Element.tagName</code>
       *   <code>qualifiedName</code>
       * @exception DOMException
       *   INVALID_CHARACTER_ERR: Raised if the specified qualified name 
       *   contains an illegal character.
       *   <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" .
       * @since DOM Level 2
       */
      public Element createElementNS(String namespaceURI, 
                                     String qualifiedName)
                                     throws DOMException;
  
      /**
       * Creates an attribute of the given qualified name and namespace URI. 
       * HTML-only DOM implementations do not need to implement this method.
       * @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>qualifiedName</code><code>Attr.name</code>
       *   <code>qualifiedName</code><code>Node.nodeValue</code>the empty 
       *   string
       * @exception DOMException
       *   INVALID_CHARACTER_ERR: Raised if the specified qualified name 
       *   contains an illegal character.
       *   <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>, 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, 
                                    String qualifiedName)
                                    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 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>.
       * @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 elementIdThe unique <code>id</code> value for an element.
       * @return The matching element.
       * @since DOM Level 2
       */
      public Element getElementById(String elementId);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/DocumentFragment.java
  
  Index: DocumentFragment.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * <code>DocumentFragment</code> is a "lightweight" or "minimal" 
   * <code>Document</code> object. It is very common to want to be able to 
   * extract a portion of a document's tree or to create a new fragment of a 
   * document. Imagine implementing a user command like cut or rearranging a 
   * document by moving fragments around. It is desirable to have an object 
   * which can hold such fragments and it is quite natural to use a Node for 
   * this purpose. While it is true that a <code>Document</code> object could 
   * fulfill this role, a <code>Document</code> object can potentially be a 
   * 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 
   * of another <code>Node</code> -- may take <code>DocumentFragment</code> 
   * 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 
   * 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 
   * 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>.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface DocumentFragment extends Node {
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/DocumentType.java
  
  Index: DocumentType.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>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 
       * <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 
       * <code>entities</code> cannot be altered in any way.
       */
      public NamedNodeMap getEntities();
  
      /**
       * 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 
       * <code>notations</code> cannot be altered in any way.
       */
      public NamedNodeMap getNotations();
  
      /**
       * The public identifier of the external subset.
       * @since DOM Level 2
       */
      public String getPublicId();
  
      /**
       * The system identifier of the external subset.
       * @since DOM Level 2
       */
      public String getSystemId();
  
      /**
       * 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.1                  xml-commons/java/external/src/org/w3c/dom/Element.java
  
  Index: Element.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * 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 
   * 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 
   * <code>Attr</code> object by name or an attribute value by name. In XML, 
   * where an attribute value may contain entity references, an 
   * <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 
   * 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/REC-DOM-Level-2-Core-20001113'>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>
       *  <code>tagName</code> has 
       * 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 
       * document. 
       */
      public String getTagName();
  
      /**
       * 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 
       * 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 
       * the <code>setAttributeNS</code> method.
       * @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 
       *   illegal character.
       *   <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 
       * 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 
       * <code>removeAttributeNS</code> method.
       * @param nameThe name of the attribute to remove.
       * @exception DOMException
       *   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, 
       * use the <code>getAttributeNodeNS</code> method.
       * @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 
       *   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 
       * replaced by the new one.
       * <br>To add a new attribute node with a qualified name and namespace 
       * URI, use the <code>setAttributeNodeNS</code> method.
       * @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.
       */
      public Attr setAttributeNode(Attr newAttr)
                                   throws DOMException;
  
      /**
       * 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 oldAttrThe <code>Attr</code> node to remove from the attribute 
       *   list.
       * @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.
       */
      public Attr removeAttributeNode(Attr oldAttr)
                                      throws DOMException;
  
      /**
       * 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.
       */
      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 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 namespaceURIThe namespace URI of the attribute to create or 
       *   alter.
       * @param qualifiedNameThe qualified name of the attribute to create or 
       *   alter.
       * @param valueThe value to set in string form.
       * @exception DOMException
       *   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 
       *   malformed, if the <code>qualifiedName</code> has a prefix and the 
       *   <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, 
                                 String qualifiedName, 
                                 String value)
                                 throws DOMException;
  
      /**
       * 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 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.
       * @since DOM Level 2
       */
      public void removeAttributeNS(String namespaceURI, 
                                    String localName)
                                    throws DOMException;
  
      /**
       * Retrieves an <code>Attr</code> node 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> node with the specified attribute local 
       *   name and namespace URI or <code>null</code> if there is no such 
       *   attribute.
       * @since DOM Level 2
       */
      public Attr getAttributeNodeNS(String namespaceURI, 
                                     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 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.
       * @since DOM Level 2
       */
      public Attr setAttributeNodeNS(Attr newAttr)
                                     throws DOMException;
  
      /**
       * 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>.
       * @since DOM Level 2
       */
      public NodeList getElementsByTagNameNS(String namespaceURI, 
                                             String localName);
  
      /**
       * 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 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.
       * @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, 
       * <code>false</code> otherwise. HTML-only DOM implementations do not 
       * need to implement this method.
       * @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.1                  xml-commons/java/external/src/org/w3c/dom/Entity.java
  
  Index: Entity.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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 
   * 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 
   * <code>Node</code> contains the name of the entity.
   * <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 
   * 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> 
   * 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>, 
   * 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. 
   * <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> 
   * 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/REC-DOM-Level-2-Core-20001113'>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>.
       */
      public String getPublicId();
  
      /**
       * 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>. 
       */
      public String getNotationName();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/EntityReference.java
  
  Index: EntityReference.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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 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 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/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface EntityReference extends Node {
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/NamedNodeMap.java
  
  Index: NamedNodeMap.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * 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>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>, 
   * 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/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface NamedNodeMap {
      /**
       * 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 
       * 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 
       * 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 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 
       *   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 
       *   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 
       *   <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.
       */
      public Node setNamedItem(Node arg)
                               throws DOMException;
  
      /**
       * 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.
       */
      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 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 
       * 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 
       * DOM implementations do not need to implement this method.
       * @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 
       * 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 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 
       *   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 
       *   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 
       *   <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.
       * @since DOM Level 2
       */
      public Node setNamedItemNS(Node arg)
                                 throws DOMException;
  
      /**
       * 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 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 
       *   <code>namespaceURI</code> and <code>localName</code> in this map.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
       * @since DOM Level 2
       */
      public Node removeNamedItemNS(String namespaceURI, 
                                    String localName)
                                    throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/Node.java
  
  Index: Node.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * 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>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 
   * 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/REC-DOM-Level-2-Core-20001113'>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. 
       */
      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.
       * @exception DOMException
       *   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 
       *   platform.
       */
      public String getNodeValue()
                                   throws DOMException;
      public void setNodeValue(String nodeValue)
                                   throws DOMException;
  
      /**
       * 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 
       * tree, or if it has been removed from the tree, this is 
       * <code>null</code>.
       */
      public Node getParentNode();
  
      /**
       * 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.
       */
      public NodeList getChildNodes();
  
      /**
       * 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>.
       */
      public Node getLastChild();
  
      /**
       * 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>.
       */
      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. 
       */
      public NamedNodeMap getAttributes();
  
      /**
       * 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>.
       * @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 
       * tree, it is first removed.
       * @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 
       *   from a different document than the one that created 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 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 
       *   from a different document than the one that created 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 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.
       */
      public Node removeChild(Node oldChild)
                              throws DOMException;
  
      /**
       * 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 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 
       *   from a different document than the one that created this node.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
       */
      public Node appendChild(Node newChild)
                              throws DOMException;
  
      /**
       * 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 
       * constructor for nodes. The duplicate node has no parent; (
       * <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 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 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.
       * @version DOM Level 2
       */
      public void normalize();
  
      /**
       * Tests whether the DOM implementation implements a specific feature and 
       * that feature is supported by this node.
       * @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 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.
       * @since DOM Level 2
       */
      public boolean isSupported(String feature, 
                                 String version);
  
      /**
       * 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 
       * <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.
       * @since DOM Level 2
       */
      public String getNamespaceURI();
  
      /**
       * 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 
       * 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 
       * 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 
       *   illegal character.
       *   <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" .
       * @since DOM Level 2
       */
      public String getPrefix();
      public void setPrefix(String prefix)
                                 throws DOMException;
  
      /**
       * 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.
       * @return <code>true</code> if this node has any attributes, 
       *   <code>false</code> otherwise.
       * @since DOM Level 2
       */
      public boolean hasAttributes();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/NodeList.java
  
  Index: NodeList.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * The <code>NodeList</code> interface provides the abstraction of an ordered 
   * collection of nodes, without defining or constraining how this collection 
   * 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/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
   */
  public interface NodeList {
      /**
       * 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 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 
       * is 0 to <code>length-1</code> inclusive. 
       */
      public int getLength();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/Notation.java
  
  Index: Notation.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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 
   * processing instruction targets (see section 2.6 of the XML 1.0 
   * 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; 
   * they are therefore readonly.
   * <p>A <code>Notation</code> node does not have any parent.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>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>.
       */
      public String getPublicId();
  
      /**
       * The system identifier of this notation. If the system identifier was 
       * not specified, this is <code>null</code>.
       */
      public String getSystemId();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/ProcessingInstruction.java
  
  Index: ProcessingInstruction.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom;
  
  /**
   * 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/REC-DOM-Level-2-Core-20001113'>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 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 
       * white space character after the target to the character immediately 
       * preceding the <code>?&gt;</code>.
       * @exception DOMException
       *   NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
       */
      public String getData();
      public void setData(String data)
                            throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/Text.java
  
  Index: Text.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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 
   * 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 
   * 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>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/REC-DOM-Level-2-Core-20001113'>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. 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.
       */
      public Text splitText(int offset)
                            throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSS2Properties.java
  
  Index: CSS2Properties.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>CSS2Properties</code> interface represents a convenience 
   * mechanism for retrieving and setting properties within a 
   * <code>CSSStyleDeclaration</code>. The attributes of this interface 
   * correspond to all the properties specified in CSS2. Getting an attribute 
   * of this interface is equivalent to calling the 
   * <code>getPropertyValue</code> method of the 
   * <code>CSSStyleDeclaration</code> interface. Setting an attribute of this 
   * interface is equivalent to calling the <code>setProperty</code> method of 
   * the <code>CSSStyleDeclaration</code> interface. 
   * <p> A conformant implementation of the CSS module is not required to 
   * implement the <code>CSS2Properties</code> interface. If an implementation 
   * does implement this interface, the expectation is that language-specific 
   * methods can be used to cast from an instance of the 
   * <code>CSSStyleDeclaration</code> interface to the 
   * <code>CSS2Properties</code> interface. 
   * <p> If an implementation does implement this interface, it is expected to 
   * understand the specific syntax of the shorthand properties, and apply 
   * their semantics; when the <code>margin</code> property is set, for 
   * example, the <code>marginTop</code>, <code>marginRight</code>, 
   * <code>marginBottom</code> and <code>marginLeft</code> properties are 
   * actually being set by the underlying implementation. 
   * <p> When dealing with CSS "shorthand" properties, the shorthand properties 
   * should be decomposed into their component longhand properties as 
   * appropriate, and when querying for their value, the form returned should 
   * be the shortest form exactly equivalent to the declarations made in the 
   * ruleset. However, if there is no shorthand declaration that could be 
   * added to the ruleset without changing in any way the rules already 
   * declared in the ruleset (i.e., by adding longhand rules that were 
   * previously not declared in the ruleset), then the empty string should be 
   * returned for the shorthand property. 
   * <p> For example, querying for the <code>font</code> property should not 
   * return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt 
   * Arial, sans-serif" suffices. (The normals are initial values, and are 
   * implied by use of the longhand property.) 
   * <p> If the values for all the longhand properties that compose a particular 
   * string are the initial values, then a string consisting of all the 
   * initial values should be returned (e.g. a <code>border-width</code> value 
   * of "medium" should be returned as such, not as ""). 
   * <p> For some shorthand properties that take missing values from other 
   * sides, such as the <code>margin</code>, <code>padding</code>, and 
   * <code>border-[width|style|color]</code> properties, the minimum number of 
   * sides possible should be used; i.e., "0px 10px" will be returned instead 
   * of "0px 10px 0px 10px". 
   * <p> If the value of a shorthand property can not be decomposed into its 
   * component longhand properties, as is the case for the <code>font</code> 
   * property with a value of "menu", querying for the values of the component 
   * longhand properties should return the empty string. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSS2Properties {
      /**
       *  See the azimuth property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getAzimuth();
      public void setAzimuth(String azimuth)
                                               throws DOMException;
  
      /**
       *  See the background property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBackground();
      public void setBackground(String background)
                                               throws DOMException;
  
      /**
       *  See the background-attachment property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBackgroundAttachment();
      public void setBackgroundAttachment(String backgroundAttachment)
                                               throws DOMException;
  
      /**
       *  See the background-color property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBackgroundColor();
      public void setBackgroundColor(String backgroundColor)
                                               throws DOMException;
  
      /**
       *  See the background-image property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBackgroundImage();
      public void setBackgroundImage(String backgroundImage)
                                               throws DOMException;
  
      /**
       *  See the background-position property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBackgroundPosition();
      public void setBackgroundPosition(String backgroundPosition)
                                               throws DOMException;
  
      /**
       *  See the background-repeat property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBackgroundRepeat();
      public void setBackgroundRepeat(String backgroundRepeat)
                                               throws DOMException;
  
      /**
       *  See the border property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorder();
      public void setBorder(String border)
                                               throws DOMException;
  
      /**
       *  See the border-collapse property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderCollapse();
      public void setBorderCollapse(String borderCollapse)
                                               throws DOMException;
  
      /**
       *  See the border-color property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderColor();
      public void setBorderColor(String borderColor)
                                               throws DOMException;
  
      /**
       *  See the border-spacing property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderSpacing();
      public void setBorderSpacing(String borderSpacing)
                                               throws DOMException;
  
      /**
       *  See the border-style property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderStyle();
      public void setBorderStyle(String borderStyle)
                                               throws DOMException;
  
      /**
       *  See the border-top property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderTop();
      public void setBorderTop(String borderTop)
                                               throws DOMException;
  
      /**
       *  See the border-right property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderRight();
      public void setBorderRight(String borderRight)
                                               throws DOMException;
  
      /**
       *  See the border-bottom property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderBottom();
      public void setBorderBottom(String borderBottom)
                                               throws DOMException;
  
      /**
       *  See the border-left property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderLeft();
      public void setBorderLeft(String borderLeft)
                                               throws DOMException;
  
      /**
       *  See the border-top-color property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderTopColor();
      public void setBorderTopColor(String borderTopColor)
                                               throws DOMException;
  
      /**
       *  See the border-right-color property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderRightColor();
      public void setBorderRightColor(String borderRightColor)
                                               throws DOMException;
  
      /**
       *  See the border-bottom-color property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderBottomColor();
      public void setBorderBottomColor(String borderBottomColor)
                                               throws DOMException;
  
      /**
       *  See the border-left-color property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderLeftColor();
      public void setBorderLeftColor(String borderLeftColor)
                                               throws DOMException;
  
      /**
       *  See the border-top-style property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderTopStyle();
      public void setBorderTopStyle(String borderTopStyle)
                                               throws DOMException;
  
      /**
       *  See the border-right-style property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderRightStyle();
      public void setBorderRightStyle(String borderRightStyle)
                                               throws DOMException;
  
      /**
       *  See the border-bottom-style property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderBottomStyle();
      public void setBorderBottomStyle(String borderBottomStyle)
                                               throws DOMException;
  
      /**
       *  See the border-left-style property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderLeftStyle();
      public void setBorderLeftStyle(String borderLeftStyle)
                                               throws DOMException;
  
      /**
       *  See the border-top-width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderTopWidth();
      public void setBorderTopWidth(String borderTopWidth)
                                               throws DOMException;
  
      /**
       *  See the border-right-width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderRightWidth();
      public void setBorderRightWidth(String borderRightWidth)
                                               throws DOMException;
  
      /**
       *  See the border-bottom-width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderBottomWidth();
      public void setBorderBottomWidth(String borderBottomWidth)
                                               throws DOMException;
  
      /**
       *  See the border-left-width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderLeftWidth();
      public void setBorderLeftWidth(String borderLeftWidth)
                                               throws DOMException;
  
      /**
       *  See the border-width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBorderWidth();
      public void setBorderWidth(String borderWidth)
                                               throws DOMException;
  
      /**
       *  See the bottom property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getBottom();
      public void setBottom(String bottom)
                                               throws DOMException;
  
      /**
       *  See the caption-side property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getCaptionSide();
      public void setCaptionSide(String captionSide)
                                               throws DOMException;
  
      /**
       *  See the clear property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getClear();
      public void setClear(String clear)
                                               throws DOMException;
  
      /**
       *  See the clip property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getClip();
      public void setClip(String clip)
                                               throws DOMException;
  
      /**
       *  See the color property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getColor();
      public void setColor(String color)
                                               throws DOMException;
  
      /**
       *  See the content property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getContent();
      public void setContent(String content)
                                               throws DOMException;
  
      /**
       *  See the counter-increment property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getCounterIncrement();
      public void setCounterIncrement(String counterIncrement)
                                               throws DOMException;
  
      /**
       *  See the counter-reset property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getCounterReset();
      public void setCounterReset(String counterReset)
                                               throws DOMException;
  
      /**
       *  See the cue property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getCue();
      public void setCue(String cue)
                                               throws DOMException;
  
      /**
       *  See the cue-after property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getCueAfter();
      public void setCueAfter(String cueAfter)
                                               throws DOMException;
  
      /**
       *  See the cue-before property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getCueBefore();
      public void setCueBefore(String cueBefore)
                                               throws DOMException;
  
      /**
       *  See the cursor property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getCursor();
      public void setCursor(String cursor)
                                               throws DOMException;
  
      /**
       *  See the direction property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getDirection();
      public void setDirection(String direction)
                                               throws DOMException;
  
      /**
       *  See the display property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getDisplay();
      public void setDisplay(String display)
                                               throws DOMException;
  
      /**
       *  See the elevation property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getElevation();
      public void setElevation(String elevation)
                                               throws DOMException;
  
      /**
       *  See the empty-cells property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getEmptyCells();
      public void setEmptyCells(String emptyCells)
                                               throws DOMException;
  
      /**
       *  See the float property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getCssFloat();
      public void setCssFloat(String cssFloat)
                                               throws DOMException;
  
      /**
       *  See the font property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getFont();
      public void setFont(String font)
                                               throws DOMException;
  
      /**
       *  See the font-family property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getFontFamily();
      public void setFontFamily(String fontFamily)
                                               throws DOMException;
  
      /**
       *  See the font-size property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getFontSize();
      public void setFontSize(String fontSize)
                                               throws DOMException;
  
      /**
       *  See the font-size-adjust property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getFontSizeAdjust();
      public void setFontSizeAdjust(String fontSizeAdjust)
                                               throws DOMException;
  
      /**
       *  See the font-stretch property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getFontStretch();
      public void setFontStretch(String fontStretch)
                                               throws DOMException;
  
      /**
       *  See the font-style property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getFontStyle();
      public void setFontStyle(String fontStyle)
                                               throws DOMException;
  
      /**
       *  See the font-variant property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getFontVariant();
      public void setFontVariant(String fontVariant)
                                               throws DOMException;
  
      /**
       *  See the font-weight property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getFontWeight();
      public void setFontWeight(String fontWeight)
                                               throws DOMException;
  
      /**
       *  See the height property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getHeight();
      public void setHeight(String height)
                                               throws DOMException;
  
      /**
       *  See the left property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getLeft();
      public void setLeft(String left)
                                               throws DOMException;
  
      /**
       *  See the letter-spacing property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getLetterSpacing();
      public void setLetterSpacing(String letterSpacing)
                                               throws DOMException;
  
      /**
       *  See the line-height property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getLineHeight();
      public void setLineHeight(String lineHeight)
                                               throws DOMException;
  
      /**
       *  See the list-style property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getListStyle();
      public void setListStyle(String listStyle)
                                               throws DOMException;
  
      /**
       *  See the list-style-image property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getListStyleImage();
      public void setListStyleImage(String listStyleImage)
                                               throws DOMException;
  
      /**
       *  See the list-style-position property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getListStylePosition();
      public void setListStylePosition(String listStylePosition)
                                               throws DOMException;
  
      /**
       *  See the list-style-type property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getListStyleType();
      public void setListStyleType(String listStyleType)
                                               throws DOMException;
  
      /**
       *  See the margin property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMargin();
      public void setMargin(String margin)
                                               throws DOMException;
  
      /**
       *  See the margin-top property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMarginTop();
      public void setMarginTop(String marginTop)
                                               throws DOMException;
  
      /**
       *  See the margin-right property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMarginRight();
      public void setMarginRight(String marginRight)
                                               throws DOMException;
  
      /**
       *  See the margin-bottom property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMarginBottom();
      public void setMarginBottom(String marginBottom)
                                               throws DOMException;
  
      /**
       *  See the margin-left property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMarginLeft();
      public void setMarginLeft(String marginLeft)
                                               throws DOMException;
  
      /**
       *  See the marker-offset property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMarkerOffset();
      public void setMarkerOffset(String markerOffset)
                                               throws DOMException;
  
      /**
       *  See the marks property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMarks();
      public void setMarks(String marks)
                                               throws DOMException;
  
      /**
       *  See the max-height property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMaxHeight();
      public void setMaxHeight(String maxHeight)
                                               throws DOMException;
  
      /**
       *  See the max-width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMaxWidth();
      public void setMaxWidth(String maxWidth)
                                               throws DOMException;
  
      /**
       *  See the min-height property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMinHeight();
      public void setMinHeight(String minHeight)
                                               throws DOMException;
  
      /**
       *  See the min-width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getMinWidth();
      public void setMinWidth(String minWidth)
                                               throws DOMException;
  
      /**
       *  See the orphans property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getOrphans();
      public void setOrphans(String orphans)
                                               throws DOMException;
  
      /**
       *  See the outline property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getOutline();
      public void setOutline(String outline)
                                               throws DOMException;
  
      /**
       *  See the outline-color property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getOutlineColor();
      public void setOutlineColor(String outlineColor)
                                               throws DOMException;
  
      /**
       *  See the outline-style property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getOutlineStyle();
      public void setOutlineStyle(String outlineStyle)
                                               throws DOMException;
  
      /**
       *  See the outline-width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getOutlineWidth();
      public void setOutlineWidth(String outlineWidth)
                                               throws DOMException;
  
      /**
       *  See the overflow property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getOverflow();
      public void setOverflow(String overflow)
                                               throws DOMException;
  
      /**
       *  See the padding property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPadding();
      public void setPadding(String padding)
                                               throws DOMException;
  
      /**
       *  See the padding-top property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPaddingTop();
      public void setPaddingTop(String paddingTop)
                                               throws DOMException;
  
      /**
       *  See the padding-right property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPaddingRight();
      public void setPaddingRight(String paddingRight)
                                               throws DOMException;
  
      /**
       *  See the padding-bottom property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPaddingBottom();
      public void setPaddingBottom(String paddingBottom)
                                               throws DOMException;
  
      /**
       *  See the padding-left property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPaddingLeft();
      public void setPaddingLeft(String paddingLeft)
                                               throws DOMException;
  
      /**
       *  See the page property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPage();
      public void setPage(String page)
                                               throws DOMException;
  
      /**
       *  See the page-break-after property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPageBreakAfter();
      public void setPageBreakAfter(String pageBreakAfter)
                                               throws DOMException;
  
      /**
       *  See the page-break-before property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPageBreakBefore();
      public void setPageBreakBefore(String pageBreakBefore)
                                               throws DOMException;
  
      /**
       *  See the page-break-inside property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPageBreakInside();
      public void setPageBreakInside(String pageBreakInside)
                                               throws DOMException;
  
      /**
       *  See the pause property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPause();
      public void setPause(String pause)
                                               throws DOMException;
  
      /**
       *  See the pause-after property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPauseAfter();
      public void setPauseAfter(String pauseAfter)
                                               throws DOMException;
  
      /**
       *  See the pause-before property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPauseBefore();
      public void setPauseBefore(String pauseBefore)
                                               throws DOMException;
  
      /**
       *  See the pitch property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPitch();
      public void setPitch(String pitch)
                                               throws DOMException;
  
      /**
       *  See the pitch-range property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPitchRange();
      public void setPitchRange(String pitchRange)
                                               throws DOMException;
  
      /**
       *  See the play-during property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPlayDuring();
      public void setPlayDuring(String playDuring)
                                               throws DOMException;
  
      /**
       *  See the position property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getPosition();
      public void setPosition(String position)
                                               throws DOMException;
  
      /**
       *  See the quotes property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getQuotes();
      public void setQuotes(String quotes)
                                               throws DOMException;
  
      /**
       *  See the richness property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getRichness();
      public void setRichness(String richness)
                                               throws DOMException;
  
      /**
       *  See the right property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getRight();
      public void setRight(String right)
                                               throws DOMException;
  
      /**
       *  See the size property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getSize();
      public void setSize(String size)
                                               throws DOMException;
  
      /**
       *  See the speak property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getSpeak();
      public void setSpeak(String speak)
                                               throws DOMException;
  
      /**
       *  See the speak-header property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getSpeakHeader();
      public void setSpeakHeader(String speakHeader)
                                               throws DOMException;
  
      /**
       *  See the speak-numeral property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getSpeakNumeral();
      public void setSpeakNumeral(String speakNumeral)
                                               throws DOMException;
  
      /**
       *  See the speak-punctuation property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getSpeakPunctuation();
      public void setSpeakPunctuation(String speakPunctuation)
                                               throws DOMException;
  
      /**
       *  See the speech-rate property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getSpeechRate();
      public void setSpeechRate(String speechRate)
                                               throws DOMException;
  
      /**
       *  See the stress property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getStress();
      public void setStress(String stress)
                                               throws DOMException;
  
      /**
       *  See the table-layout property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getTableLayout();
      public void setTableLayout(String tableLayout)
                                               throws DOMException;
  
      /**
       *  See the text-align property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getTextAlign();
      public void setTextAlign(String textAlign)
                                               throws DOMException;
  
      /**
       *  See the text-decoration property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getTextDecoration();
      public void setTextDecoration(String textDecoration)
                                               throws DOMException;
  
      /**
       *  See the text-indent property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getTextIndent();
      public void setTextIndent(String textIndent)
                                               throws DOMException;
  
      /**
       *  See the text-shadow property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getTextShadow();
      public void setTextShadow(String textShadow)
                                               throws DOMException;
  
      /**
       *  See the text-transform property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getTextTransform();
      public void setTextTransform(String textTransform)
                                               throws DOMException;
  
      /**
       *  See the top property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getTop();
      public void setTop(String top)
                                               throws DOMException;
  
      /**
       *  See the unicode-bidi property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getUnicodeBidi();
      public void setUnicodeBidi(String unicodeBidi)
                                               throws DOMException;
  
      /**
       *  See the vertical-align property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getVerticalAlign();
      public void setVerticalAlign(String verticalAlign)
                                               throws DOMException;
  
      /**
       *  See the visibility property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getVisibility();
      public void setVisibility(String visibility)
                                               throws DOMException;
  
      /**
       *  See the voice-family property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getVoiceFamily();
      public void setVoiceFamily(String voiceFamily)
                                               throws DOMException;
  
      /**
       *  See the volume property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getVolume();
      public void setVolume(String volume)
                                               throws DOMException;
  
      /**
       *  See the white-space property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getWhiteSpace();
      public void setWhiteSpace(String whiteSpace)
                                               throws DOMException;
  
      /**
       *  See the widows property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getWidows();
      public void setWidows(String widows)
                                               throws DOMException;
  
      /**
       *  See the width property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getWidth();
      public void setWidth(String width)
                                               throws DOMException;
  
      /**
       *  See the word-spacing property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getWordSpacing();
      public void setWordSpacing(String wordSpacing)
                                               throws DOMException;
  
      /**
       *  See the z-index property definition in CSS2. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the new value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public String getZIndex();
      public void setZIndex(String zIndex)
                                               throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSCharsetRule.java
  
  Index: CSSCharsetRule.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>CSSCharsetRule</code> interface represents a @charset rule in a 
   * CSS style sheet. The value of the <code>encoding</code> attribute does 
   * not affect the encoding of text data in the DOM objects; this encoding is 
   * always UTF-16. After a stylesheet is loaded, the value of the 
   * <code>encoding</code> attribute is the value found in the 
   * <code>@charset</code> rule. If there was no <code>@charset</code> in the 
   * original document, then no <code>CSSCharsetRule</code> is created. The 
   * value of the <code>encoding</code> attribute may also be used as a hint 
   * for the encoding used on serialization of the style sheet. 
   * <p> The value of the @charset rule (and therefore of the 
   * <code>CSSCharsetRule</code>) may not correspond to the encoding the 
   * document actually came in; character encoding information e.g. in an HTTP 
   * header, has priority (see CSS document representation) but this is not 
   * reflected in the <code>CSSCharsetRule</code>. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSCharsetRule extends CSSRule {
      /**
       *  The encoding information used in this <code>@charset</code> rule. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the specified encoding value has a syntax error 
       *   and is unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is 
       *   readonly.
       */
      public String getEncoding();
      public void setEncoding(String encoding)
                             throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSFontFaceRule.java
  
  Index: CSSFontFaceRule.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  /**
   *  The <code>CSSFontFaceRule</code> interface represents a @font-face rule in 
   * a CSS style sheet. The <code>@font-face</code> rule is used to hold a set 
   * of font descriptions. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSFontFaceRule extends CSSRule {
      /**
       *  The declaration-block of this rule. 
       */
      public CSSStyleDeclaration getStyle();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSImportRule.java
  
  Index: CSSImportRule.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.stylesheets.MediaList;
  
  /**
   *  The <code>CSSImportRule</code> interface represents a @import rule within 
   * a CSS style sheet. The <code>@import</code> rule is used to import style 
   * rules from other style sheets. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSImportRule extends CSSRule {
      /**
       *  The location of the style sheet to be imported. The attribute will not 
       * contain the <code>"url(...)"</code> specifier around the URI. 
       */
      public String getHref();
  
      /**
       *  A list of media types for which this style sheet may be used. 
       */
      public MediaList getMedia();
  
      /**
       * The style sheet referred to by this rule, if it has been loaded. The 
       * value of this attribute is <code>null</code> if the style sheet has 
       * not yet been loaded or if it will not be loaded (e.g. if the style 
       * sheet is for a media type not supported by the user agent). 
       */
      public CSSStyleSheet getStyleSheet();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSMediaRule.java
  
  Index: CSSMediaRule.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  import org.w3c.dom.stylesheets.MediaList;
  
  /**
   *  The <code>CSSMediaRule</code> interface represents a @media rule in a CSS 
   * style sheet. A <code>@media</code> rule can be used to delimit style 
   * rules for specific media types. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSMediaRule extends CSSRule {
      /**
       *  A list of media types for this rule. 
       */
      public MediaList getMedia();
  
      /**
       *  A list of all CSS rules contained within the media block. 
       */
      public CSSRuleList getCssRules();
  
      /**
       *  Used to insert a new rule into the media block. 
       * @param rule The parsable text representing the rule. For rule sets 
       *   this contains both the selector and the style declaration. For 
       *   at-rules, this specifies both the at-identifier and the rule 
       *   content. 
       * @param index The index within the media block's rule collection of the 
       *   rule before which to insert the specified rule. If the specified 
       *   index is equal to the length of the media blocks's rule collection, 
       *   the rule will be added to the end of the media block. 
       * @return  The index within the media block's rule collection of the 
       *   newly inserted rule. 
       * @exception DOMException
       *   HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the 
       *   specified index, e.g., if an <code>@import</code> rule is inserted 
       *   after a standard rule set or other at-rule.
       *   <br>INDEX_SIZE_ERR: Raised if the specified index is not a valid 
       *   insertion point.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is 
       *   readonly.
       *   <br>SYNTAX_ERR: Raised if the specified rule has a syntax error and 
       *   is unparsable.
       */
      public int insertRule(String rule, 
                            int index)
                            throws DOMException;
  
      /**
       *  Used to delete a rule from the media block. 
       * @param index The index within the media block's rule collection of the 
       *   rule to remove. 
       * @exception DOMException
       *   INDEX_SIZE_ERR: Raised if the specified index does not correspond to 
       *   a rule in the media rule list.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is 
       *   readonly.
       */
      public void deleteRule(int index)
                             throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSPageRule.java
  
  Index: CSSPageRule.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>CSSPageRule</code> interface represents a @page rule within a 
   * CSS style sheet. The <code>@page</code> rule is used to specify the 
   * dimensions, orientation, margins, etc. of a page box for paged media. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSPageRule extends CSSRule {
      /**
       *  The parsable textual representation of the page selector for the rule. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax 
       *   error and is unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
       */
      public String getSelectorText();
      public void setSelectorText(String selectorText)
                             throws DOMException;
  
      /**
       *  The declaration-block of this rule. 
       */
      public CSSStyleDeclaration getStyle();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSPrimitiveValue.java
  
  Index: CSSPrimitiveValue.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>CSSPrimitiveValue</code> interface represents a single CSS value
   * . This interface may be used to determine the value of a specific style 
   * property currently set in a block or to set a specific style property 
   * explicitly within the block. An instance of this interface might be 
   * obtained from the <code>getPropertyCSSValue</code> method of the 
   * <code>CSSStyleDeclaration</code> interface. A 
   * <code>CSSPrimitiveValue</code> object only occurs in a context of a CSS 
   * property. 
   * <p> Conversions are allowed between absolute values (from millimeters to 
   * centimeters, from degrees to radians, and so on) but not between relative 
   * values. (For example, a pixel value cannot be converted to a centimeter 
   * value.) Percentage values can't be converted since they are relative to 
   * the parent value (or another property value). There is one exception for 
   * color percentage values: since a color percentage value is relative to 
   * the range 0-255, a color percentage value can be converted to a number; 
   * (see also the <code>RGBColor</code> interface). 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSPrimitiveValue extends CSSValue {
      // UnitTypes
      /**
       * The value is not a recognized CSS2 value. The value can only be 
       * obtained by using the <code>cssText</code> attribute.
       */
      public static final short CSS_UNKNOWN               = 0;
      /**
       * The value is a simple number. The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_NUMBER                = 1;
      /**
       * The value is a percentage. The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_PERCENTAGE            = 2;
      /**
       * The value is a length (ems). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_EMS                   = 3;
      /**
       * The value is a length (exs). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_EXS                   = 4;
      /**
       * The value is a length (px). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_PX                    = 5;
      /**
       * The value is a length (cm). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_CM                    = 6;
      /**
       * The value is a length (mm). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_MM                    = 7;
      /**
       * The value is a length (in). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_IN                    = 8;
      /**
       * The value is a length (pt). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_PT                    = 9;
      /**
       * The value is a length (pc). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_PC                    = 10;
      /**
       * The value is an angle (deg). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_DEG                   = 11;
      /**
       * The value is an angle (rad). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_RAD                   = 12;
      /**
       * The value is an angle (grad). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_GRAD                  = 13;
      /**
       * The value is a time (ms). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_MS                    = 14;
      /**
       * The value is a time (s). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_S                     = 15;
      /**
       * The value is a frequency (Hz). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_HZ                    = 16;
      /**
       * The value is a frequency (kHz). The value can be obtained by using the 
       * <code>getFloatValue</code> method.
       */
      public static final short CSS_KHZ                   = 17;
      /**
       * The value is a number with an unknown dimension. The value can be 
       * obtained by using the <code>getFloatValue</code> method.
       */
      public static final short CSS_DIMENSION             = 18;
      /**
       * The value is a STRING. The value can be obtained by using the 
       * <code>getStringValue</code> method.
       */
      public static final short CSS_STRING                = 19;
      /**
       * The value is a URI. The value can be obtained by using the 
       * <code>getStringValue</code> method.
       */
      public static final short CSS_URI                   = 20;
      /**
       * The value is an identifier. The value can be obtained by using the 
       * <code>getStringValue</code> method.
       */
      public static final short CSS_IDENT                 = 21;
      /**
       * The value is a attribute function. The value can be obtained by using 
       * the <code>getStringValue</code> method.
       */
      public static final short CSS_ATTR                  = 22;
      /**
       * The value is a counter or counters function. The value can be obtained 
       * by using the <code>getCounterValue</code> method.
       */
      public static final short CSS_COUNTER               = 23;
      /**
       * The value is a rect function. The value can be obtained by using the 
       * <code>getRectValue</code> method.
       */
      public static final short CSS_RECT                  = 24;
      /**
       * The value is a RGB color. The value can be obtained by using the 
       * <code>getRGBColorValue</code> method.
       */
      public static final short CSS_RGBCOLOR              = 25;
  
      /**
       * The type of the value as defined by the constants specified above.
       */
      public short getPrimitiveType();
  
      /**
       *  A method to set the float value with a specified unit. If the property 
       * attached with this value can not accept the specified unit or the 
       * float value, the value will be unchanged and a 
       * <code>DOMException</code> will be raised. 
       * @param unitType A unit code as defined above. The unit code can only 
       *   be a float unit type (i.e. <code>CSS_NUMBER</code>, 
       *   <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>, 
       *   <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>, 
       *   <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>, 
       *   <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>, 
       *   <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>, 
       *   <code>CSS_HZ</code>, <code>CSS_KHZ</code>, 
       *   <code>CSS_DIMENSION</code>). 
       * @param floatValue The new float value. 
       * @exception DOMException
       *    INVALID_ACCESS_ERR: Raised if the attached property doesn't support 
       *   the float value or the unit type.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public void setFloatValue(short unitType, 
                                float floatValue)
                                throws DOMException;
  
      /**
       *  This method is used to get a float value in a specified unit. If this 
       * CSS value doesn't contain a float value or can't be converted into 
       * the specified unit, a <code>DOMException</code> is raised. 
       * @param unitType A unit code to get the float value. The unit code can 
       *   only be a float unit type (i.e. <code>CSS_NUMBER</code>, 
       *   <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>, 
       *   <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>, 
       *   <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>, 
       *   <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>, 
       *   <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>, 
       *   <code>CSS_HZ</code>, <code>CSS_KHZ</code>, 
       *   <code>CSS_DIMENSION</code>). 
       * @return  The float value in the specified unit. 
       * @exception DOMException
       *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a float 
       *   value or if the float value can't be converted into the specified 
       *   unit. 
       */
      public float getFloatValue(short unitType)
                                 throws DOMException;
  
      /**
       *  A method to set the string value with the specified unit. If the 
       * property attached to this value can't accept the specified unit or 
       * the string value, the value will be unchanged and a 
       * <code>DOMException</code> will be raised. 
       * @param stringType A string code as defined above. The string code can 
       *   only be a string unit type (i.e. <code>CSS_STRING</code>, 
       *   <code>CSS_URI</code>, <code>CSS_IDENT</code>, and 
       *   <code>CSS_ATTR</code>). 
       * @param stringValue The new string value. 
       * @exception DOMException
       *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string 
       *   value or if the string value can't be converted into the specified 
       *   unit.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
       */
      public void setStringValue(short stringType, 
                                 String stringValue)
                                 throws DOMException;
  
      /**
       *  This method is used to get the string value. If the CSS value doesn't 
       * contain a string value, a <code>DOMException</code> is raised.  Some 
       * properties (like 'font-family' or 'voice-family') convert a 
       * whitespace separated list of idents to a string. 
       * @return  The string value in the current unit. The current 
       *   <code>primitiveType</code> can only be a string unit type (i.e. 
       *   <code>CSS_STRING</code>, <code>CSS_URI</code>, 
       *   <code>CSS_IDENT</code> and <code>CSS_ATTR</code>). 
       * @exception DOMException
       *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string 
       *   value. 
       */
      public String getStringValue()
                                   throws DOMException;
  
      /**
       *  This method is used to get the Counter value. If this CSS value 
       * doesn't contain a counter value, a <code>DOMException</code> is 
       * raised. Modification to the corresponding style property can be 
       * achieved using the <code>Counter</code> interface. 
       * @return The Counter value.
       * @exception DOMException
       *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a 
       *   Counter value (e.g. this is not <code>CSS_COUNTER</code>). 
       */
      public Counter getCounterValue()
                                     throws DOMException;
  
      /**
       *  This method is used to get the Rect value. If this CSS value doesn't 
       * contain a rect value, a <code>DOMException</code> is raised. 
       * Modification to the corresponding style property can be achieved 
       * using the <code>Rect</code> interface. 
       * @return The Rect value.
       * @exception DOMException
       *    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a Rect 
       *   value. (e.g. this is not <code>CSS_RECT</code>). 
       */
      public Rect getRectValue()
                               throws DOMException;
  
      /**
       *  This method is used to get the RGB color. If this CSS value doesn't 
       * contain a RGB color value, a <code>DOMException</code> is raised. 
       * Modification to the corresponding style property can be achieved 
       * using the <code>RGBColor</code> interface. 
       * @return the RGB color value.
       * @exception DOMException
       *    INVALID_ACCESS_ERR: Raised if the attached property can't return a 
       *   RGB color value (e.g. this is not <code>CSS_RGBCOLOR</code>). 
       */
      public RGBColor getRGBColorValue()
                                       throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSRule.java
  
  Index: CSSRule.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>CSSRule</code> interface is the abstract base interface for any 
   * type of CSS statement. This includes both rule sets and at-rules. An 
   * implementation is expected to preserve all rules specified in a CSS style 
   * sheet, even if the rule is not recognized by the parser. Unrecognized 
   * rules are represented using the <code>CSSUnknownRule</code> interface. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSRule {
      // RuleType
      /**
       * The rule is a <code>CSSUnknownRule</code>.
       */
      public static final short UNKNOWN_RULE              = 0;
      /**
       * The rule is a <code>CSSStyleRule</code>.
       */
      public static final short STYLE_RULE                = 1;
      /**
       * The rule is a <code>CSSCharsetRule</code>.
       */
      public static final short CHARSET_RULE              = 2;
      /**
       * The rule is a <code>CSSImportRule</code>.
       */
      public static final short IMPORT_RULE               = 3;
      /**
       * The rule is a <code>CSSMediaRule</code>.
       */
      public static final short MEDIA_RULE                = 4;
      /**
       * The rule is a <code>CSSFontFaceRule</code>.
       */
      public static final short FONT_FACE_RULE            = 5;
      /**
       * The rule is a <code>CSSPageRule</code>.
       */
      public static final short PAGE_RULE                 = 6;
  
      /**
       *  The type of the rule, as defined above. The expectation is that 
       * binding-specific casting methods can be used to cast down from an 
       * instance of the <code>CSSRule</code> interface to the specific 
       * derived interface implied by the <code>type</code>. 
       */
      public short getType();
  
      /**
       *  The parsable textual representation of the rule. This reflects the 
       * current state of the rule and not its initial value. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax 
       *   error and is unparsable.
       *   <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string 
       *   value represents a different type of rule than the current one.
       *   <br>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at 
       *   this point in the style sheet.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.
       */
      public String getCssText();
      public void setCssText(String cssText)
                          throws DOMException;
  
      /**
       *  The style sheet that contains this rule. 
       */
      public CSSStyleSheet getParentStyleSheet();
  
      /**
       *  If this rule is contained inside another rule (e.g. a style rule 
       * inside an @media block), this is the containing rule. If this rule is 
       * not nested inside any other rules, this returns <code>null</code>. 
       */
      public CSSRule getParentRule();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSRuleList.java
  
  Index: CSSRuleList.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  /**
   *  The <code>CSSRuleList</code> interface provides the abstraction of an 
   * ordered collection of CSS rules. 
   * <p> The items in the <code>CSSRuleList</code> are accessible via an 
   * integral index, starting from 0. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSRuleList {
      /**
       *  The number of <code>CSSRules</code> in the list. The range of valid 
       * child rule indices is <code>0</code> to <code>length-1</code> 
       * inclusive. 
       */
      public int getLength();
  
      /**
       *  Used to retrieve a CSS rule by ordinal index. The order in this 
       * collection represents the order of the rules in the CSS style sheet. 
       * If index is greater than or equal to the number of rules in the list, 
       * this returns <code>null</code>. 
       * @param indexIndex into the collection
       * @return The style rule at the <code>index</code> position in the 
       *   <code>CSSRuleList</code>, or <code>null</code> if that is not a 
       *   valid index. 
       */
      public CSSRule item(int index);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSStyleDeclaration.java
  
  Index: CSSStyleDeclaration.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>CSSStyleDeclaration</code> interface represents a single CSS 
   * declaration block. This interface may be used to determine the style 
   * properties currently set in a block or to set style properties explicitly 
   * within the block. 
   * <p> While an implementation may not recognize all CSS properties within a 
   * CSS declaration block, it is expected to provide access to all specified 
   * properties in the style sheet through the <code>CSSStyleDeclaration</code>
   *  interface. Furthermore, implementations that support a specific level of 
   * CSS should correctly handle CSS shorthand properties for that level. For 
   * a further discussion of shorthand properties, see the 
   * <code>CSS2Properties</code> interface. 
   * <p> This interface is also used to provide a read-only access to the 
   * computed values of an element. See also the <code>ViewCSS</code> 
   * interface.  The CSS Object Model doesn't provide an access to the 
   * specified or actual values of the CSS cascade. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSStyleDeclaration {
      /**
       *  The parsable textual representation of the declaration block 
       * (excluding the surrounding curly braces). Setting this attribute will 
       * result in the parsing of the new value and resetting of all the 
       * properties in the declaration block including the removal or addition 
       * of properties. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax 
       *   error and is unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is 
       *   readonly or a property is readonly.
       */
      public String getCssText();
      public void setCssText(String cssText)
                         throws DOMException;
  
      /**
       *  Used to retrieve the value of a CSS property if it has been explicitly 
       * set within this declaration block. 
       * @param propertyName The name of the CSS property. See the CSS property 
       *   index. 
       * @return  Returns the value of the property if it has been explicitly 
       *   set for this declaration block. Returns the empty string if the 
       *   property has not been set. 
       */
      public String getPropertyValue(String propertyName);
  
      /**
       *  Used to retrieve the object representation of the value of a CSS 
       * property if it has been explicitly set within this declaration block. 
       * This method returns <code>null</code> if the property is a shorthand 
       * property. Shorthand property values can only be accessed and modified 
       * as strings, using the <code>getPropertyValue</code> and 
       * <code>setProperty</code> methods. 
       * @param propertyName The name of the CSS property. See the CSS property 
       *   index. 
       * @return  Returns the value of the property if it has been explicitly 
       *   set for this declaration block. Returns <code>null</code> if the 
       *   property has not been set. 
       */
      public CSSValue getPropertyCSSValue(String propertyName);
  
      /**
       *  Used to remove a CSS property if it has been explicitly set within 
       * this declaration block. 
       * @param propertyName The name of the CSS property. See the CSS property 
       *   index. 
       * @return  Returns the value of the property if it has been explicitly 
       *   set for this declaration block. Returns the empty string if the 
       *   property has not been set or the property name does not correspond 
       *   to a known CSS property. 
       * @exception DOMException
       *   NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly 
       *   or the property is readonly.
       */
      public String removeProperty(String propertyName)
                                   throws DOMException;
  
      /**
       *  Used to retrieve the priority of a CSS property (e.g. the 
       * <code>"important"</code> qualifier) if the property has been 
       * explicitly set in this declaration block. 
       * @param propertyName The name of the CSS property. See the CSS property 
       *   index. 
       * @return  A string representing the priority (e.g. 
       *   <code>"important"</code>) if one exists. The empty string if none 
       *   exists. 
       */
      public String getPropertyPriority(String propertyName);
  
      /**
       *  Used to set a property value and priority within this declaration 
       * block. 
       * @param propertyName The name of the CSS property. See the CSS property 
       *   index. 
       * @param value The new value of the property. 
       * @param priority The new priority of the property (e.g. 
       *   <code>"important"</code>).  
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the specified value has a syntax error and is 
       *   unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is 
       *   readonly or the property is readonly.
       */
      public void setProperty(String propertyName, 
                              String value, 
                              String priority)
                              throws DOMException;
  
      /**
       *  The number of properties that have been explicitly set in this 
       * declaration block. The range of valid indices is 0 to length-1 
       * inclusive. 
       */
      public int getLength();
  
      /**
       *  Used to retrieve the properties that have been explicitly set in this 
       * declaration block. The order of the properties retrieved using this 
       * method does not have to be the order in which they were set. This 
       * method can be used to iterate over all properties in this declaration 
       * block. 
       * @param index Index of the property name to retrieve. 
       * @return  The name of the property at this ordinal position. The empty 
       *   string if no property exists at this position. 
       */
      public String item(int index);
  
      /**
       *  The CSS rule that contains this declaration block or <code>null</code> 
       * if this <code>CSSStyleDeclaration</code> is not attached to a 
       * <code>CSSRule</code>. 
       */
      public CSSRule getParentRule();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSStyleRule.java
  
  Index: CSSStyleRule.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>CSSStyleRule</code> interface represents a single rule set in a 
   * CSS style sheet. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSStyleRule extends CSSRule {
      /**
       *  The textual representation of the selector for the rule set. The 
       * implementation may have stripped out insignificant whitespace while 
       * parsing the selector. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the specified CSS string value has a syntax 
       *   error and is unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
       */
      public String getSelectorText();
      public void setSelectorText(String selectorText)
                          throws DOMException;
  
      /**
       *  The declaration-block of this rule set. 
       */
      public CSSStyleDeclaration getStyle();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSStyleSheet.java
  
  Index: CSSStyleSheet.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  import org.w3c.dom.stylesheets.StyleSheet;
  
  /**
   *  The <code>CSSStyleSheet</code> interface is a concrete interface used to 
   * represent a CSS style sheet i.e., a style sheet whose content type is 
   * "text/css". 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSStyleSheet extends StyleSheet {
      /**
       *  If this style sheet comes from an <code>@import</code> rule, the 
       * <code>ownerRule</code> attribute will contain the 
       * <code>CSSImportRule</code>. In that case, the <code>ownerNode</code> 
       * attribute in the <code>StyleSheet</code> interface will be 
       * <code>null</code>. If the style sheet comes from an element or a 
       * processing instruction, the <code>ownerRule</code> attribute will be 
       * <code>null</code> and the <code>ownerNode</code> attribute will 
       * contain the <code>Node</code>. 
       */
      public CSSRule getOwnerRule();
  
      /**
       *  The list of all CSS rules contained within the style sheet. This 
       * includes both rule sets and at-rules. 
       */
      public CSSRuleList getCssRules();
  
      /**
       *  Used to insert a new rule into the style sheet. The new rule now 
       * becomes part of the cascade. 
       * @param rule The parsable text representing the rule. For rule sets 
       *   this contains both the selector and the style declaration. For 
       *   at-rules, this specifies both the at-identifier and the rule 
       *   content. 
       * @param index The index within the style sheet's rule list of the rule 
       *   before which to insert the specified rule. If the specified index 
       *   is equal to the length of the style sheet's rule collection, the 
       *   rule will be added to the end of the style sheet. 
       * @return  The index within the style sheet's rule collection of the 
       *   newly inserted rule. 
       * @exception DOMException
       *   HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the 
       *   specified index e.g. if an <code>@import</code> rule is inserted 
       *   after a standard rule set or other at-rule.
       *   <br>INDEX_SIZE_ERR: Raised if the specified index is not a valid 
       *   insertion point.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is 
       *   readonly.
       *   <br>SYNTAX_ERR: Raised if the specified rule has a syntax error and 
       *   is unparsable.
       */
      public int insertRule(String rule, 
                            int index)
                            throws DOMException;
  
      /**
       *  Used to delete a rule from the style sheet. 
       * @param index The index within the style sheet's rule list of the rule 
       *   to remove. 
       * @exception DOMException
       *   INDEX_SIZE_ERR: Raised if the specified index does not correspond to 
       *   a rule in the style sheet's rule list.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is 
       *   readonly.
       */
      public void deleteRule(int index)
                             throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSUnknownRule.java
  
  Index: CSSUnknownRule.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  /**
   *  The <code>CSSUnknownRule</code> interface represents an at-rule not 
   * supported by this user agent. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSUnknownRule extends CSSRule {
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSValue.java
  
  Index: CSSValue.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>CSSValue</code> interface represents a simple or a complex 
   * value. A <code>CSSValue</code> object only occurs in a context of a CSS 
   * property. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSValue {
      // UnitTypes
      /**
       * The value is inherited and the <code>cssText</code> contains "inherit".
       */
      public static final short CSS_INHERIT               = 0;
      /**
       * The value is a primitive value and an instance of the 
       * <code>CSSPrimitiveValue</code> interface can be obtained by using 
       * binding-specific casting methods on this instance of the 
       * <code>CSSValue</code> interface.
       */
      public static final short CSS_PRIMITIVE_VALUE       = 1;
      /**
       * The value is a <code>CSSValue</code> list and an instance of the 
       * <code>CSSValueList</code> interface can be obtained by using 
       * binding-specific casting methods on this instance of the 
       * <code>CSSValue</code> interface.
       */
      public static final short CSS_VALUE_LIST            = 2;
      /**
       * The value is a custom value.
       */
      public static final short CSS_CUSTOM                = 3;
  
      /**
       *  A string representation of the current value. 
       * @exception DOMException
       *    SYNTAX_ERR: Raised if the specified CSS string value has a syntax 
       *   error (according to the attached property) or is unparsable. 
       *   <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string 
       *   value represents a different type of values than the values allowed 
       *   by the CSS property.
       *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this value is readonly. 
       */
      public String getCssText();
      public void setCssText(String cssText)
                         throws DOMException;
  
      /**
       *  A code defining the type of the value as defined above. 
       */
      public short getCssValueType();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/CSSValueList.java
  
  Index: CSSValueList.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  /**
   * The <code>CSSValueList</code> interface provides the abstraction of an 
   * ordered collection of CSS values.
   * <p> Some properties allow an empty list into their syntax. In that case, 
   * these properties take the <code>none</code> identifier. So, an empty list 
   * means that the property has the value <code>none</code>. 
   * <p> The items in the <code>CSSValueList</code> are accessible via an 
   * integral index, starting from 0. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface CSSValueList extends CSSValue {
      /**
       * The number of <code>CSSValues</code> in the list. The range of valid 
       * values of the indices is <code>0</code> to <code>length-1</code> 
       * inclusive.
       */
      public int getLength();
  
      /**
       * Used to retrieve a <code>CSSValue</code> by ordinal index. The order in 
       * this collection represents the order of the values in the CSS style 
       * property. If index is greater than or equal to the number of values 
       * in the list, this returns <code>null</code>.
       * @param indexIndex into the collection.
       * @return The <code>CSSValue</code> at the <code>index</code> position 
       *   in the <code>CSSValueList</code>, or <code>null</code> if that is 
       *   not a valid index.
       */
      public CSSValue item(int index);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/Counter.java
  
  Index: Counter.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  /**
   *  The <code>Counter</code> interface is used to represent any counter or 
   * counters function value. This interface reflects the values in the 
   * underlying style property. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface Counter {
      /**
       *  This attribute is used for the identifier of the counter. 
       */
      public String getIdentifier();
  
      /**
       *  This attribute is used for the style of the list. 
       */
      public String getListStyle();
  
      /**
       *  This attribute is used for the separator of the nested counters. 
       */
      public String getSeparator();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/DOMImplementationCSS.java
  
  Index: DOMImplementationCSS.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMImplementation;
  import org.w3c.dom.DOMException;
  
  /**
   *  This interface allows the DOM user to create a <code>CSSStyleSheet</code> 
   * outside the context of a document. There is no way to associate the new 
   * <code>CSSStyleSheet</code> with a document in DOM Level 2. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM   Level 2
   */
  public interface DOMImplementationCSS extends DOMImplementation {
      /**
       * Creates a new <code>CSSStyleSheet</code>.
       * @param title The advisory title. See also the  section. 
       * @param media The comma-separated list of media associated with the new 
       *   style sheet. See also the  section. 
       * @return A new CSS style sheet.
       * @exception DOMException
       *    SYNTAX_ERR: Raised if the specified media string value has a syntax 
       *   error and is unparsable. 
       */
      public CSSStyleSheet createCSSStyleSheet(String title, 
                                               String media)
                                               throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/DocumentCSS.java
  
  Index: DocumentCSS.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.stylesheets.DocumentStyle;
  import org.w3c.dom.Element;
  
  /**
   * This interface represents a document with a CSS view.
   * <p> The <code>getOverrideStyle</code> method provides a mechanism through 
   * which a DOM author could effect immediate change to the style of an 
   * element without modifying the explicitly linked style sheets of a 
   * document or the inline style of elements in the style sheets. This style 
   * sheet comes after the author style sheet in the cascade algorithm and is 
   * called override style sheet. The override style sheet takes precedence 
   * over author style sheets. An "!important" declaration still takes 
   * precedence over a normal declaration. Override, author, and user style 
   * sheets all may contain "!important" declarations. User "!important" rules 
   * take precedence over both override and author "!important" rules, and 
   * override "!important" rules take precedence over author "!important" 
   * rules. 
   * <p> The expectation is that an instance of the <code>DocumentCSS</code> 
   * interface can be obtained by using binding-specific casting methods on an 
   * instance of the <code>Document</code> interface. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface DocumentCSS extends DocumentStyle {
      /**
       *  This method is used to retrieve the override style declaration for a 
       * specified element and a specified pseudo-element. 
       * @param elt The element whose style is to be modified. This parameter 
       *   cannot be null. 
       * @param pseudoElt The pseudo-element or <code>null</code> if none. 
       * @return  The override style declaration. 
       */
      public CSSStyleDeclaration getOverrideStyle(Element elt, 
                                                  String pseudoElt);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/ElementCSSInlineStyle.java
  
  Index: ElementCSSInlineStyle.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  /**
   *  Inline style information attached to elements is exposed through the 
   * <code>style</code> attribute. This represents the contents of the STYLE 
   * attribute for HTML elements (or elements in other schemas or DTDs which 
   * use the STYLE attribute in the same way). The expectation is that an 
   * instance of the ElementCSSInlineStyle interface can be obtained by using 
   * binding-specific casting methods on an instance of the Element interface 
   * when the element supports inline CSS style informations. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface ElementCSSInlineStyle {
      /**
       *  The style attribute. 
       */
      public CSSStyleDeclaration getStyle();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/RGBColor.java
  
  Index: RGBColor.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  /**
   *  The <code>RGBColor</code> interface is used to represent any RGB color 
   * value. This interface reflects the values in the underlying style 
   * property. Hence, modifications made to the <code>CSSPrimitiveValue</code> 
   * objects modify the style property. 
   * <p> A specified RGB color is not clipped (even if the number is outside the 
   * range 0-255 or 0%-100%). A computed RGB color is clipped depending on the 
   * device. 
   * <p> Even if a style sheet can only contain an integer for a color value, 
   * the internal storage of this integer is a float, and this can be used as 
   * a float in the specified or the computed style. 
   * <p> A color percentage value can always be converted to a number and vice 
   * versa. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface RGBColor {
      /**
       *  This attribute is used for the red value of the RGB color. 
       */
      public CSSPrimitiveValue getRed();
  
      /**
       *  This attribute is used for the green value of the RGB color. 
       */
      public CSSPrimitiveValue getGreen();
  
      /**
       *  This attribute is used for the blue value of the RGB color. 
       */
      public CSSPrimitiveValue getBlue();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/Rect.java
  
  Index: Rect.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  /**
   *  The <code>Rect</code> interface is used to represent any rect value. This 
   * interface reflects the values in the underlying style property. Hence, 
   * modifications made to the <code>CSSPrimitiveValue</code> objects modify 
   * the style property. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface Rect {
      /**
       *  This attribute is used for the top of the rect. 
       */
      public CSSPrimitiveValue getTop();
  
      /**
       *  This attribute is used for the right of the rect. 
       */
      public CSSPrimitiveValue getRight();
  
      /**
       *  This attribute is used for the bottom of the rect. 
       */
      public CSSPrimitiveValue getBottom();
  
      /**
       *  This attribute is used for the left of the rect. 
       */
      public CSSPrimitiveValue getLeft();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/css/ViewCSS.java
  
  Index: ViewCSS.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.css;
  
  import org.w3c.dom.views.AbstractView;
  import org.w3c.dom.Element;
  
  /**
   *  This interface represents a CSS view. The <code>getComputedStyle</code> 
   * method provides a read only access to the computed values of an element. 
   * <p> The expectation is that an instance of the <code>ViewCSS</code> 
   * interface can be obtained by using binding-specific casting methods on an 
   * instance of the <code>AbstractView</code> interface. 
   * <p> Since a computed style is related to an <code>Element</code> node, if 
   * this element is removed from the document, the associated 
   * <code>CSSStyleDeclaration</code> and <code>CSSValue</code> related to 
   * this declaration are no longer valid. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface ViewCSS extends AbstractView {
      /**
       *  This method is used to get the computed style as it is defined in . 
       * @param elt The element whose style is to be computed. This parameter 
       *   cannot be null. 
       * @param pseudoElt The pseudo-element or <code>null</code> if none. 
       * @return  The computed style. The <code>CSSStyleDeclaration</code> is 
       *   read-only and contains only absolute values. 
       */
      public CSSStyleDeclaration getComputedStyle(Element elt, 
                                                  String pseudoElt);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/events/DocumentEvent.java
  
  Index: DocumentEvent.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.events;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  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. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
   * @since DOM Level 2
   */
  public interface DocumentEvent {
      /**
       * 
       * @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 
       *   <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 
       *   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>
       * @exception DOMException
       *   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.1                  xml-commons/java/external/src/org/w3c/dom/events/Event.java
  
  Index: Event.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.events;
  
  /**
   * 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. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>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 name of the event (case-insensitive). The name must be an XML name.
       */
      public String getType();
  
      /**
       * Used to indicate the <code>EventTarget</code> to which the event was 
       * originally dispatched. 
       */
      public EventTarget getTarget();
  
      /**
       * Used to indicate the <code>EventTarget</code> whose 
       * <code>EventListeners</code> are currently being processed. This is 
       * particularly useful during capturing and bubbling. 
       */
      public EventTarget getCurrentTarget();
  
      /**
       * Used to indicate which phase of event flow is currently being 
       * evaluated. 
       */
      public short getEventPhase();
  
      /**
       * 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();
  
      /**
       * 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();
  
      /**
       *  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 
       * method may be used during any stage of event flow.
       */
      public void stopPropagation();
  
      /**
       * 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 
       * <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 
       * <code>preventDefault</code> has been called it will remain in effect 
       * 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 
       * <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 
       * <code>Event</code> interface only the values specified in the 
       * <code>initEvent</code> method are modified, all other attributes are 
       * left unchanged.
       * @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. 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, 
                            boolean canBubbleArg, 
                            boolean cancelableArg);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/events/EventException.java
  
  Index: EventException.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.events;
  
  /**
   *  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/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
   * @since DOM Level 2
   */
  public class EventException extends RuntimeException {
      public EventException(short code, String message) {
         super(message);
         this.code = code;
      }
      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.1                  xml-commons/java/external/src/org/w3c/dom/events/EventListener.java
  
  Index: EventListener.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.events;
  
  /**
   *  The <code>EventListener</code> interface is the primary method for 
   * handling events. Users implement the <code>EventListener</code> interface 
   * and register their listener on an <code>EventTarget</code> using the 
   * <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/REC-DOM-Level-2-Events-20001113'>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 
       *   about the event. It also contains the <code>stopPropagation</code> 
       *   and <code>preventDefault</code> methods which are used in 
       *   determining the event's flow and default action. 
       */
      public void handleEvent(Event evt);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/events/EventTarget.java
  
  Index: EventTarget.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  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. 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/REC-DOM-Level-2-Events-20001113'>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> 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 
       * discarded they do not need to be removed with the 
       * <code>removeEventListener</code> method. 
       * @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 
       *   are bubbling upward through the tree will not trigger an 
       *   <code>EventListener</code> designated to use capture.
       */
      public void addEventListener(String type, 
                                   EventListener listener, 
                                   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 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 typeSpecifies the event type of the <code>EventListener</code> 
       *   being removed. 
       * @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 
       *   does not affect a non-capturing version of the same listener, and 
       *   vice versa. 
       */
      public void removeEventListener(String type, 
                                      EventListener listener, 
                                      boolean useCapture);
  
      /**
       * 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 evtSpecifies the event type, behavior, and contextual 
       *   information to be used in processing the event.
       * @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 
       *   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 
       *   <code>dispatchEvent</code> was called. Specification of the 
       *   <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.1                  xml-commons/java/external/src/org/w3c/dom/events/MouseEvent.java
  
  Index: MouseEvent.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.events;
  
  import org.w3c.dom.views.AbstractView;
  
  /**
   * The <code>MouseEvent</code> interface provides specific contextual 
   * information associated with Mouse events.
   * <p>The <code>detail</code> attribute inherited from <code>UIEvent</code> 
   * indicates the number of times a mouse button has been pressed and 
   * released over the same screen location during a user action. The 
   * attribute value is 1 when the user begins this action and increments by 1 
   * for each full sequence of pressing and releasing. If the user moves the 
   * mouse between the mousedown and mouseup the value will be set to 0, 
   * indicating that no click is occurring.
   * <p>In the case of nested elements mouse events are always targeted at the 
   * most deeply nested element. Ancestors of the targeted element may use 
   * bubbling to obtain notification of mouse events which occur within its 
   * descendent elements.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
   * @since DOM Level 2
   */
  public interface MouseEvent extends UIEvent {
      /**
       * The horizontal coordinate at which the event occurred relative to the 
       * origin of the screen coordinate system.
       */
      public int getScreenX();
  
      /**
       * The vertical coordinate at which the event occurred relative to the 
       * origin of the screen coordinate system.
       */
      public int getScreenY();
  
      /**
       * The horizontal coordinate at which the event occurred relative to the 
       * DOM implementation's client area.
       */
      public int getClientX();
  
      /**
       * The vertical coordinate at which the event occurred relative to the DOM 
       * implementation's client area.
       */
      public int getClientY();
  
      /**
       * Used to indicate whether the 'ctrl' key was depressed during the firing 
       * of the event.
       */
      public boolean getCtrlKey();
  
      /**
       * Used to indicate whether the 'shift' key was depressed during the 
       * firing of the event.
       */
      public boolean getShiftKey();
  
      /**
       * Used to indicate whether the 'alt' key was depressed during the firing 
       * of the event. On some platforms this key may map to an alternative 
       * key name.
       */
      public boolean getAltKey();
  
      /**
       * Used to indicate whether the 'meta' key was depressed during the firing 
       * of the event. On some platforms this key may map to an alternative 
       * key name.
       */
      public boolean getMetaKey();
  
      /**
       * During mouse events caused by the depression or release of a mouse 
       * button, <code>button</code> is used to indicate which mouse button 
       * changed state. The values for <code>button</code> range from zero to 
       * indicate the left button of the mouse, one to indicate the middle 
       * button if present, and two to indicate the right button. For mice 
       * configured for left handed use in which the button actions are 
       * reversed the values are instead read from right to left.
       */
      public short getButton();
  
      /**
       * Used to identify a secondary <code>EventTarget</code> related to a UI 
       * event. Currently this attribute is used with the mouseover event to 
       * indicate the <code>EventTarget</code> which the pointing device 
       * exited and with the mouseout event to indicate the 
       * <code>EventTarget</code> which the pointing device entered.
       */
      public EventTarget getRelatedTarget();
  
      /**
       * The <code>initMouseEvent</code> method is used to initialize the value 
       * of a <code>MouseEvent</code> created through the 
       * <code>DocumentEvent</code> interface. This method may only be called 
       * before the <code>MouseEvent</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.
       * @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 viewArgSpecifies the <code>Event</code>'s 
       *   <code>AbstractView</code>.
       * @param detailArgSpecifies the <code>Event</code>'s mouse click count.
       * @param screenXArgSpecifies the <code>Event</code>'s screen x coordinate
       * @param screenYArgSpecifies the <code>Event</code>'s screen y coordinate
       * @param clientXArgSpecifies the <code>Event</code>'s client x coordinate
       * @param clientYArgSpecifies the <code>Event</code>'s client y coordinate
       * @param ctrlKeyArgSpecifies whether or not control key was depressed 
       *   during the <code>Event</code>.
       * @param altKeyArgSpecifies whether or not alt key was depressed during 
       *   the <code>Event</code>.
       * @param shiftKeyArgSpecifies whether or not shift key was depressed 
       *   during the <code>Event</code>.
       * @param metaKeyArgSpecifies whether or not meta key was depressed 
       *   during the <code>Event</code>.
       * @param buttonArgSpecifies the <code>Event</code>'s mouse button.
       * @param relatedTargetArgSpecifies the <code>Event</code>'s related 
       *   <code>EventTarget</code>.
       */
      public void initMouseEvent(String typeArg, 
                                 boolean canBubbleArg, 
                                 boolean cancelableArg, 
                                 AbstractView viewArg, 
                                 int detailArg, 
                                 int screenXArg, 
                                 int screenYArg, 
                                 int clientXArg, 
                                 int clientYArg, 
                                 boolean ctrlKeyArg, 
                                 boolean altKeyArg, 
                                 boolean shiftKeyArg, 
                                 boolean metaKeyArg, 
                                 short buttonArg, 
                                 EventTarget relatedTargetArg);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/events/MutationEvent.java
  
  Index: MutationEvent.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.events;
  
  import org.w3c.dom.Node;
  
  /**
   * 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/REC-DOM-Level-2-Events-20001113'>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 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();
  
      /**
       *  <code>prevValue</code> indicates the previous value of the 
       * <code>Attr</code> node in DOMAttrModified events, and of the 
       * <code>CharacterData</code> node in DOMCharDataModified events. 
       */
      public String getPrevValue();
  
      /**
       *  <code>newValue</code> indicates the new value of the <code>Attr</code> 
       * node in DOMAttrModified events, and of the <code>CharacterData</code> 
       * node in DOMCharDataModified events. 
       */
      public String getNewValue();
  
      /**
       *  <code>attrName</code> indicates the name of the changed 
       * <code>Attr</code> node in a DOMAttrModified event. 
       */
      public String getAttrName();
  
      /**
       *  <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 
       * 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 
       * final invocation takes precedence.
       * @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 relatedNodeArgSpecifies the <code>Event</code>'s related Node.
       * @param prevValueArgSpecifies the <code>Event</code>'s 
       *   <code>prevValue</code> attribute. This value may be null.
       * @param newValueArgSpecifies the <code>Event</code>'s 
       *   <code>newValue</code> attribute. This value may be null.
       * @param attrNameArgSpecifies the <code>Event</code>'s 
       *   <code>attrName</code> attribute. This value may be null.
       * @param attrChangeArgSpecifies the <code>Event</code>'s 
       *   <code>attrChange</code> attribute
       */
      public void initMutationEvent(String typeArg, 
                                    boolean canBubbleArg, 
                                    boolean cancelableArg, 
                                    Node relatedNodeArg, 
                                    String prevValueArg, 
                                    String newValueArg, 
                                    String attrNameArg, 
                                    short attrChangeArg);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/events/UIEvent.java
  
  Index: UIEvent.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.events;
  
  import org.w3c.dom.views.AbstractView;
  
  /**
   * The <code>UIEvent</code> interface provides specific contextual information 
   * associated with User Interface events.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
   * @since DOM Level 2
   */
  public interface UIEvent extends Event {
      /**
       * The <code>view</code> attribute identifies the <code>AbstractView</code>
       *  from which the event was generated.
       */
      public AbstractView getView();
  
      /**
       * Specifies some detail information about the <code>Event</code>, 
       * depending on the type of event.
       */
      public int getDetail();
  
      /**
       * The <code>initUIEvent</code> method is used to initialize the value of 
       * a <code>UIEvent</code> created through the <code>DocumentEvent</code> 
       * interface. This method may only be called before the 
       * <code>UIEvent</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.
       * @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 viewArgSpecifies the <code>Event</code>'s 
       *   <code>AbstractView</code>.
       * @param detailArgSpecifies the <code>Event</code>'s detail.
       */
      public void initUIEvent(String typeArg, 
                              boolean canBubbleArg, 
                              boolean cancelableArg, 
                              AbstractView viewArg, 
                              int detailArg);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/ranges/DocumentRange.java
  
  Index: DocumentRange.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.ranges;
  
  /**
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
   * @since DOM Level 2
   */
  public interface DocumentRange {
      /**
       * This interface can be obtained from the object implementing the 
       * <code>Document</code> interface using binding-specific casting 
       * methods.
       * @return The initial state of the Range returned from this method is 
       *   such that both of its boundary-points are positioned at the 
       *   beginning of the corresponding Document, before any content. The 
       *   Range returned can only be used to select content associated with 
       *   this Document, or with DocumentFragments and Attrs for which this 
       *   Document is the <code>ownerDocument</code>.
       */
      public Range createRange();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/ranges/Range.java
  
  Index: Range.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.ranges;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.DocumentFragment;
  import org.w3c.dom.DOMException;
  
  /**
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
   * @since DOM Level 2
   */
  public interface Range {
      /**
       * Node within which the Range begins 
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public Node getStartContainer()
                         throws DOMException;
  
      /**
       * Offset within the starting node of the Range. 
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public int getStartOffset()
                         throws DOMException;
  
      /**
       * Node within which the Range ends 
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public Node getEndContainer()
                         throws DOMException;
  
      /**
       * Offset within the ending node of the Range. 
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public int getEndOffset()
                         throws DOMException;
  
      /**
       * TRUE if the Range is collapsed 
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public boolean getCollapsed()
                         throws DOMException;
  
      /**
       * The deepest common ancestor container of the Range's two 
       * boundary-points.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public Node getCommonAncestorContainer()
                         throws DOMException;
  
      /**
       * Sets the attributes describing the start of the Range. 
       * @param refNodeThe <code>refNode</code> value. This parameter must be 
       *   different from <code>null</code>.
       * @param offsetThe <code>startOffset</code> value. 
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor 
       *   of <code>refNode</code> is an Entity, Notation, or DocumentType 
       *   node.
       * @exception DOMException
       *   INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater 
       *   than the number of child units in <code>refNode</code>. Child units 
       *   are 16-bit units if <code>refNode</code> is a type of CharacterData 
       *   node (e.g., a Text or Comment node) or a ProcessingInstruction 
       *   node. Child units are Nodes in all other cases.
       *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
       *   been invoked on this object.
       */
      public void setStart(Node refNode, 
                           int offset)
                           throws RangeException, DOMException;
  
      /**
       * Sets the attributes describing the end of a Range.
       * @param refNodeThe <code>refNode</code> value. This parameter must be 
       *   different from <code>null</code>.
       * @param offsetThe <code>endOffset</code> value. 
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor 
       *   of <code>refNode</code> is an Entity, Notation, or DocumentType 
       *   node.
       * @exception DOMException
       *   INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater 
       *   than the number of child units in <code>refNode</code>. Child units 
       *   are 16-bit units if <code>refNode</code> is a type of CharacterData 
       *   node (e.g., a Text or Comment node) or a ProcessingInstruction 
       *   node. Child units are Nodes in all other cases.
       *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
       *   been invoked on this object.
       */
      public void setEnd(Node refNode, 
                         int offset)
                         throws RangeException, DOMException;
  
      /**
       * Sets the start position to be before a node
       * @param refNodeRange starts before <code>refNode</code> 
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if the root container of 
       *   <code>refNode</code> is not an Attr, Document, or DocumentFragment 
       *   node or if <code>refNode</code> is a Document, DocumentFragment, 
       *   Attr, Entity, or Notation node.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public void setStartBefore(Node refNode)
                                 throws RangeException, DOMException;
  
      /**
       * Sets the start position to be after a node
       * @param refNodeRange starts after <code>refNode</code> 
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if the root container of 
       *   <code>refNode</code> is not an Attr, Document, or DocumentFragment 
       *   node or if <code>refNode</code> is a Document, DocumentFragment, 
       *   Attr, Entity, or Notation node.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public void setStartAfter(Node refNode)
                                throws RangeException, DOMException;
  
      /**
       * Sets the end position to be before a node. 
       * @param refNodeRange ends before <code>refNode</code> 
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if the root container of 
       *   <code>refNode</code> is not an Attr, Document, or DocumentFragment 
       *   node or if <code>refNode</code> is a Document, DocumentFragment, 
       *   Attr, Entity, or Notation node.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public void setEndBefore(Node refNode)
                               throws RangeException, DOMException;
  
      /**
       * Sets the end of a Range to be after a node 
       * @param refNodeRange ends after <code>refNode</code>. 
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if the root container of 
       *   <code>refNode</code> is not an Attr, Document or DocumentFragment 
       *   node or if <code>refNode</code> is a Document, DocumentFragment, 
       *   Attr, Entity, or Notation node.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public void setEndAfter(Node refNode)
                              throws RangeException, DOMException;
  
      /**
       * Collapse a Range onto one of its boundary-points 
       * @param toStartIf TRUE, collapses the Range onto its start; if FALSE, 
       *   collapses it onto its end. 
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public void collapse(boolean toStart)
                           throws DOMException;
  
      /**
       * Select a node and its contents 
       * @param refNodeThe node to select. 
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if an ancestor of <code>refNode</code> 
       *   is an Entity, Notation or DocumentType node or if 
       *   <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, 
       *   or Notation node.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public void selectNode(Node refNode)
                             throws RangeException, DOMException;
  
      /**
       * Select the contents within a node 
       * @param refNodeNode to select from 
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor 
       *   of <code>refNode</code> is an Entity, Notation or DocumentType node.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public void selectNodeContents(Node refNode)
                                     throws RangeException, DOMException;
  
      // CompareHow
      /**
       * Compare start boundary-point of <code>sourceRange</code> to start 
       * boundary-point of Range on which <code>compareBoundaryPoints</code> 
       * is invoked.
       */
      public static final short START_TO_START            = 0;
      /**
       * Compare start boundary-point of <code>sourceRange</code> to end 
       * boundary-point of Range on which <code>compareBoundaryPoints</code> 
       * is invoked.
       */
      public static final short START_TO_END              = 1;
      /**
       * Compare end boundary-point of <code>sourceRange</code> to end 
       * boundary-point of Range on which <code>compareBoundaryPoints</code> 
       * is invoked.
       */
      public static final short END_TO_END                = 2;
      /**
       * Compare end boundary-point of <code>sourceRange</code> to start 
       * boundary-point of Range on which <code>compareBoundaryPoints</code> 
       * is invoked.
       */
      public static final short END_TO_START              = 3;
  
      /**
       * Compare the boundary-points of two Ranges in a document.
       * @param howA code representing the type of comparison, as defined above.
       * @param sourceRangeThe <code>Range</code> on which this current 
       *   <code>Range</code> is compared to.
       * @return  -1, 0 or 1 depending on whether the corresponding 
       *   boundary-point of the Range is respectively before, equal to, or 
       *   after the corresponding boundary-point of <code>sourceRange</code>. 
       * @exception DOMException
       *   WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same 
       *   Document or DocumentFragment.
       *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
       *   been invoked on this object.
       */
      public short compareBoundaryPoints(short how, 
                                         Range sourceRange)
                                         throws DOMException;
  
      /**
       * Removes the contents of a Range from the containing document or 
       * document fragment without returning a reference to the removed 
       * content.  
       * @exception DOMException
       *   NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of 
       *   the Range is read-only or any of the nodes that contain any of the 
       *   content of the Range are read-only.
       *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
       *   been invoked on this object.
       */
      public void deleteContents()
                                 throws DOMException;
  
      /**
       * Moves the contents of a Range from the containing document or document 
       * fragment to a new DocumentFragment. 
       * @return A DocumentFragment containing the extracted contents. 
       * @exception DOMException
       *   NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of 
       *   the Range is read-only or any of the nodes which contain any of the 
       *   content of the Range are read-only.
       *   <br>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be 
       *   extracted into the new DocumentFragment.
       *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
       *   been invoked on this object.
       */
      public DocumentFragment extractContents()
                                              throws DOMException;
  
      /**
       * Duplicates the contents of a Range 
       * @return A DocumentFragment that contains content equivalent to this 
       *   Range.
       * @exception DOMException
       *   HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be 
       *   extracted into the new DocumentFragment.
       *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
       *   been invoked on this object.
       */
      public DocumentFragment cloneContents()
                                            throws DOMException;
  
      /**
       * Inserts a node into the Document or DocumentFragment at the start of 
       * the Range. If the container is a Text node, this will be split at the 
       * start of the Range (as if the Text node's splitText method was 
       * performed at the insertion point) and the insertion will occur 
       * between the two resulting Text nodes. Adjacent Text nodes will not be 
       * automatically merged. If the node to be inserted is a 
       * DocumentFragment node, the children will be inserted rather than the 
       * DocumentFragment node itself.
       * @param newNodeThe node to insert at the start of the Range 
       * @exception DOMException
       *   NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the 
       *   start of the Range is read-only.
       *   <br>WRONG_DOCUMENT_ERR: Raised if <code>newNode</code> and the 
       *   container of the start of the Range were not created from the same 
       *   document.
       *   <br>HIERARCHY_REQUEST_ERR: Raised if the container of the start of 
       *   the Range is of a type that does not allow children of the type of 
       *   <code>newNode</code> or if <code>newNode</code> is an ancestor of 
       *   the container.
       *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
       *   been invoked on this object.
       * @exception RangeException
       *   INVALID_NODE_TYPE_ERR: Raised if <code>newNode</code> is an Attr, 
       *   Entity, Notation, or Document node.
       */
      public void insertNode(Node newNode)
                             throws DOMException, RangeException;
  
      /**
       * Reparents the contents of the Range to the given node and inserts the 
       * node at the position of the start of the Range. 
       * @param newParentThe node to surround the contents with. 
       * @exception DOMException
       *   NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of 
       *   either boundary-point of the Range is read-only.
       *   <br>WRONG_DOCUMENT_ERR: Raised if <code> newParent</code> and the 
       *   container of the start of the Range were not created from the same 
       *   document.
       *   <br>HIERARCHY_REQUEST_ERR: Raised if the container of the start of 
       *   the Range is of a type that does not allow children of the type of 
       *   <code>newParent</code> or if <code>newParent</code> is an ancestor 
       *   of the container or if <code>node</code> would end up with a child 
       *   node of a type not allowed by the type of <code>node</code>.
       *   <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already 
       *   been invoked on this object.
       * @exception RangeException
       *   BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a 
       *   non-text node.
       *   <br>INVALID_NODE_TYPE_ERR: Raised if <code> node</code> is an Attr, 
       *   Entity, DocumentType, Notation, Document, or DocumentFragment node.
       */
      public void surroundContents(Node newParent)
                                   throws DOMException, RangeException;
  
      /**
       * Produces a new Range whose boundary-points are equal to the 
       * boundary-points of the Range. 
       * @return The duplicated Range. 
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public Range cloneRange()
                              throws DOMException;
  
      /**
       * Returns the contents of a Range as a string. This string contains only 
       * the data characters, not any markup. 
       * @return The contents of the Range.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public String toString()
                             throws DOMException;
  
      /**
       * Called to indicate that the Range is no longer in use and that the 
       * implementation may relinquish any resources associated with this 
       * Range. Subsequent calls to any methods or attribute getters on this 
       * Range will result in a <code>DOMException</code> being thrown with an 
       * error code of <code>INVALID_STATE_ERR</code>.
       * @exception DOMException
       *   INVALID_STATE_ERR: Raised if <code>detach()</code> has already been 
       *   invoked on this object.
       */
      public void detach()
                         throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/ranges/RangeException.java
  
  Index: RangeException.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.ranges;
  
  /**
   * Range operations may throw a <code>RangeException</code> as specified in 
   * their method descriptions.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
   * @since DOM Level 2
   */
  public class RangeException extends RuntimeException {
      public RangeException(short code, String message) {
         super(message);
         this.code = code;
      }
      public short   code;
      // RangeExceptionCode
      /**
       * If the boundary-points of a Range do not meet specific requirements.
       */
      public static final short BAD_BOUNDARYPOINTS_ERR    = 1;
      /**
       * If the container of an boundary-point of a Range is being set to either 
       * a node of an invalid type or a node with an ancestor of an invalid 
       * type.
       */
      public static final short INVALID_NODE_TYPE_ERR     = 2;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/stylesheets/DocumentStyle.java
  
  Index: DocumentStyle.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.stylesheets;
  
  /**
   *  The <code>DocumentStyle</code> interface provides a mechanism by which the 
   * style sheets embedded in a document can be retrieved. The expectation is 
   * that an instance of the <code>DocumentStyle</code> interface can be 
   * obtained by using binding-specific casting methods on an instance of the 
   * <code>Document</code> interface. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface DocumentStyle {
      /**
       *  A list containing all the style sheets explicitly linked into or 
       * embedded in a document. For HTML documents, this includes external 
       * style sheets, included via the HTML  LINK element, and inline  STYLE 
       * elements. In XML, this includes external style sheets, included via 
       * style sheet processing instructions (see ). 
       */
      public StyleSheetList getStyleSheets();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/stylesheets/LinkStyle.java
  
  Index: LinkStyle.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.stylesheets;
  
  /**
   *  The <code>LinkStyle</code> interface provides a mechanism by which a style 
   * sheet can be retrieved from the node responsible for linking it into a 
   * document. An instance of the <code>LinkStyle</code> interface can be 
   * obtained using binding-specific casting methods on an instance of a 
   * linking node (<code>HTMLLinkElement</code>, <code>HTMLStyleElement</code> 
   * or <code>ProcessingInstruction</code> in DOM Level 2). 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface LinkStyle {
      /**
       *  The style sheet. 
       */
      public StyleSheet getSheet();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/stylesheets/MediaList.java
  
  Index: MediaList.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.stylesheets;
  
  import org.w3c.dom.DOMException;
  
  /**
   *  The <code>MediaList</code> interface provides the abstraction of an 
   * ordered collection of media, without defining or constraining how this 
   * collection is implemented. An empty list is the same as a list that 
   * contains the medium <code>"all"</code>. 
   * <p> The items in the <code>MediaList</code> are accessible via an integral 
   * index, starting from 0. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface MediaList {
      /**
       *  The parsable textual representation of the media list. This is a 
       * comma-separated list of media. 
       * @exception DOMException
       *   SYNTAX_ERR: Raised if the specified string value has a syntax error 
       *   and is unparsable.
       *   <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is 
       *   readonly.
       */
      public String getMediaText();
      public void setMediaText(String mediaText)
                               throws DOMException;
  
      /**
       *  The number of media in the list. The range of valid media is 
       * <code>0</code> to <code>length-1</code> inclusive. 
       */
      public int getLength();
  
      /**
       *  Returns the <code>index</code>th in the list. If <code>index</code> is 
       * greater than or equal to the number of media in the list, this 
       * returns <code>null</code>. 
       * @param index Index into the collection. 
       * @return  The medium at the <code>index</code>th position in the 
       *   <code>MediaList</code>, or <code>null</code> if that is not a valid 
       *   index. 
       */
      public String item(int index);
  
      /**
       *  Deletes the medium indicated by <code>oldMedium</code> from the list. 
       * @param oldMediumThe medium to delete in the media list.
       * @exception DOMException
       *    NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly. 
       *   <br> NOT_FOUND_ERR: Raised if <code>oldMedium</code> is not in the 
       *   list. 
       */
      public void deleteMedium(String oldMedium)
                               throws DOMException;
  
      /**
       *  Adds the medium <code>newMedium</code> to the end of the list. If the 
       * <code>newMedium</code> is already used, it is first removed. 
       * @param newMediumThe new medium to add.
       * @exception DOMException
       *    INVALID_CHARACTER_ERR: If the medium contains characters that are 
       *   invalid in the underlying style language. 
       *   <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly. 
       */
      public void appendMedium(String newMedium)
                               throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/stylesheets/StyleSheet.java
  
  Index: StyleSheet.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.stylesheets;
  
  import org.w3c.dom.Node;
  
  /**
   *  The <code>StyleSheet</code> interface is the abstract base interface for 
   * any type of style sheet. It represents a single style sheet associated 
   * with a structured document. In HTML, the StyleSheet interface represents 
   * either an external style sheet, included via the HTML  LINK element, or 
   * an inline  STYLE element. In XML, this interface represents an external 
   * style sheet, included via a style sheet processing instruction. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface StyleSheet {
      /**
       *  This specifies the style sheet language for this style sheet. The 
       * style sheet language is specified as a content type (e.g. 
       * "text/css"). The content type is often specified in the 
       * <code>ownerNode</code>. Also see the type attribute definition for 
       * the <code>LINK</code> element in HTML 4.0, and the type 
       * pseudo-attribute for the XML style sheet processing instruction. 
       */
      public String getType();
  
      /**
       *  <code>false</code> if the style sheet is applied to the document. 
       * <code>true</code> if it is not. Modifying this attribute may cause a 
       * new resolution of style for the document. A stylesheet only applies 
       * if both an appropriate medium definition is present and the disabled 
       * attribute is false. So, if the media doesn't apply to the current 
       * user agent, the <code>disabled</code> attribute is ignored. 
       */
      public boolean getDisabled();
      public void setDisabled(boolean disabled);
  
      /**
       *  The node that associates this style sheet with the document. For HTML, 
       * this may be the corresponding <code>LINK</code> or <code>STYLE</code> 
       * element. For XML, it may be the linking processing instruction. For 
       * style sheets that are included by other style sheets, the value of 
       * this attribute is <code>null</code>. 
       */
      public Node getOwnerNode();
  
      /**
       *  For style sheet languages that support the concept of style sheet 
       * inclusion, this attribute represents the including style sheet, if 
       * one exists. If the style sheet is a top-level style sheet, or the 
       * style sheet language does not support inclusion, the value of this 
       * attribute is <code>null</code>. 
       */
      public StyleSheet getParentStyleSheet();
  
      /**
       *  If the style sheet is a linked style sheet, the value of its attribute 
       * is its location. For inline style sheets, the value of this attribute 
       * is <code>null</code>. See the href attribute definition for the 
       * <code>LINK</code> element in HTML 4.0, and the href pseudo-attribute 
       * for the XML style sheet processing instruction. 
       */
      public String getHref();
  
      /**
       *  The advisory title. The title is often specified in the 
       * <code>ownerNode</code>. See the title attribute definition for the 
       * <code>LINK</code> element in HTML 4.0, and the title pseudo-attribute 
       * for the XML style sheet processing instruction. 
       */
      public String getTitle();
  
      /**
       *  The intended destination media for style information. The media is 
       * often specified in the <code>ownerNode</code>. If no media has been 
       * specified, the <code>MediaList</code> will be empty. See the media 
       * attribute definition for the <code>LINK</code> element in HTML 4.0, 
       * and the media pseudo-attribute for the XML style sheet processing 
       * instruction . Modifying the media list may cause a change to the 
       * attribute <code>disabled</code>. 
       */
      public MediaList getMedia();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/stylesheets/StyleSheetList.java
  
  Index: StyleSheetList.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.stylesheets;
  
  /**
   * The <code>StyleSheetList</code> interface provides the abstraction of an 
   * ordered collection of style sheets. 
   * <p> The items in the <code>StyleSheetList</code> are accessible via an 
   * integral index, starting from 0. 
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
   * @since DOM Level 2
   */
  public interface StyleSheetList {
      /**
       *  The number of <code>StyleSheets</code> in the list. The range of valid 
       * child stylesheet indices is <code>0</code> to <code>length-1</code> 
       * inclusive. 
       */
      public int getLength();
  
      /**
       *  Used to retrieve a style sheet by ordinal index. If index is greater 
       * than or equal to the number of style sheets in the list, this returns 
       * <code>null</code>. 
       * @param indexIndex into the collection
       * @return The style sheet at the <code>index</code> position in the 
       *   <code>StyleSheetList</code>, or <code>null</code> if that is not a 
       *   valid index. 
       */
      public StyleSheet item(int index);
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/traversal/DocumentTraversal.java
  
  Index: DocumentTraversal.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.traversal;
  
  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). 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/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
   * @since DOM Level 2
   */
  public interface DocumentTraversal {
      /**
       * 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 <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>.
       * @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)
                                             throws DOMException;
  
      /**
       * 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
       *    NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is 
       *   <code>null</code>.
       */
      public TreeWalker createTreeWalker(Node root, 
                                         int whatToShow, 
                                         NodeFilter filter, 
                                         boolean entityReferenceExpansion)
                                         throws DOMException;
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/traversal/NodeFilter.java
  
  Index: NodeFilter.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.traversal;
  
  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 
   * <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/REC-DOM-Level-2-Traversal-Range-20001113'>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 
       * <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.1                  xml-commons/java/external/src/org/w3c/dom/traversal/NodeIterator.java
  
  Index: NodeIterator.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.traversal;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.DOMException;
  
  /**
   * <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 <code>DocumentTraversal</code>
   * <code>.createNodeIterator()</code>.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
   * @since DOM Level 2
   */
  public interface NodeIterator {
      /**
       * 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 
       * iterator. 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 <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  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 <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 <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 
       *   <code>detach</code> method was invoked.
       */
      public Node nextNode()
                           throws DOMException;
  
      /**
       * 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 
       *   <code>detach</code> method was invoked.
       */
      public Node previousNode()
                               throws DOMException;
  
      /**
       * 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.1                  xml-commons/java/external/src/org/w3c/dom/traversal/TreeWalker.java
  
  Index: TreeWalker.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.traversal;
  
  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 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 
   * <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/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
   * @since DOM Level 2
   */
  public interface TreeWalker {
      /**
       * 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 
       * <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.
       */
      public NodeFilter getFilter();
  
      /**
       * 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 <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 <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 an attempt is made to set 
       *   <code>currentNode</code> to <code>null</code>.
       */
      public Node getCurrentNode();
      public void setCurrentNode(Node currentNode)
                           throws DOMException;
  
      /**
       * 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 
       * current node, and returns the new node. If the current node has no 
       * 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 <code>TreeWalker</code>'s logical view.  
       */
      public Node firstChild();
  
      /**
       * 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 
       * node.
       * @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 
       * current node, and returns the new node. If the current node has no 
       * 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 <code>TreeWalker</code>'s logical view.  
       */
      public Node previousSibling();
  
      /**
       * 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 <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 
       * <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 
       * 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 <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.1                  xml-commons/java/external/src/org/w3c/dom/views/AbstractView.java
  
  Index: AbstractView.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.views;
  
  /**
   * A base interface that all views shall derive from.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>Document Object Model (DOM) Level 2 Views Specification</a>.
   * @since DOM Level 2
   */
  public interface AbstractView {
      /**
       * The source <code>DocumentView</code> of which this is an 
       * <code>AbstractView</code>.
       */
      public DocumentView getDocument();
  
  }
  
  
  
  1.1                  xml-commons/java/external/src/org/w3c/dom/views/DocumentView.java
  
  Index: DocumentView.java
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  package org.w3c.dom.views;
  
  /**
   * The <code>DocumentView</code> interface is implemented by 
   * <code>Document</code> objects in DOM implementations supporting DOM 
   * Views. It provides an attribute to retrieve the default view of a 
   * document.
   * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>Document Object Model (DOM) Level 2 Views Specification</a>.
   * @since DOM Level 2
   */
  public interface DocumentView {
      /**
       * The default <code>AbstractView</code> for this <code>Document</code>, 
       * or <code>null</code> if none available.
       */
      public AbstractView getDefaultView();
  
  }
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/COPYRIGHT.html
  
  Index: COPYRIGHT.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
                        "http://www.w3.org/TR/REC-html40/loose.dtd">
  <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>W3C IPR SOFTWARE NOTICE</title>
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
      <h1>
        W3C IPR SOFTWARE NOTICE
      </h1>
      <h3>
        Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
        Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</loc>, <loc
        href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
        Reserved.
      </h3>
      <p>
        The DOM bindings are published under the W3C Software Copyright Notice
        and License. The software license requires "Notice of any changes or
        modifications to the W3C files, including the date changes were made."
        Consequently, modified versions of the DOM bindings must document that
        they do not conform to the W3C standard; in the case of the IDL binding,
        the pragma prefix can no longer be 'w3c.org'; in the case of the Java
        binding, the package names can no longer be in the 'org.w3c' package.
      </p>
      <p>
        <b>Note:</b> The original version of the W3C Software Copyright Notice
        and License could be found at <a
        href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
      </p>
      <h3>
        Copyright &copy; 1994-2000 <a href="http://www.w3.org/">World Wide Web
        Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</a>, <a
        href="http://www.keio.ac.jp/">Keio University</a>). All Rights
        Reserved. http://www.w3.org/Consortium/Legal/
      </h3>
      <p>
        This W3C work (including software, documents, or other related items) is
        being provided by the copyright holders under the following license. By
        obtaining, using and/or copying this work, you (the licensee) agree that
        you have read, understood, and will comply with the following terms and
        conditions:
      </p>
      <p>
        Permission to use, copy, and modify this software and its documentation,
        with or without modification,&nbsp; for any purpose and without fee or
        royalty is hereby granted, provided that you include the following on ALL
        copies of the software and documentation or portions thereof, including
        modifications, that you make:
      </p>
      <ol>
        <li>
  	The full text of this NOTICE in a location viewable to users of the
  	redistributed or derivative work.
        </li>
        <li>
  	Any pre-existing intellectual property disclaimers, notices, or terms
  	and conditions. If none exist, a short notice of the following form
  	(hypertext is preferred, text is permitted) should be used within the
  	body of any redistributed or derivative code: "Copyright &copy;
  	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
  	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
  	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
  	National de Recherche en Informatique et en Automatique</a>, <a
  	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
  	Reserved. http://www.w3.org/Consortium/Legal/"
        </li>
        <li>
  	Notice of any changes or modifications to the W3C files, including the
  	date changes were made. (We recommend you provide URIs to the location
  	from which the code is derived.)
        </li>
      </ol>
      <p>
        THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
        HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
        INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
        FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
        DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
        TRADEMARKS OR OTHER RIGHTS.
      </p>
      <p>
        COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
        CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
        DOCUMENTATION.
      </p>
      <p>
        The name and trademarks of copyright holders may NOT be used in
        advertising or publicity pertaining to the software without specific,
        written prior permission. Title to copyright in this software and any
        associated documentation will at all times remain with copyright
        holders.
      </p>
    </body>
  </html>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/Overview.html
  
  Index: Overview.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:42:26 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model (DOM) Level 2 Core
  Specification</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='expanded-toc.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='n'
  href='expanded-toc.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='head'>
  <p><a href='http://www.w3.org/'><img height='48' width='72'
  alt='W3C' src='./images/w3c_home.gif' /></a></p>
  
  <h1 id='title'>Document Object Model (DOM) Level 2 Core
  Specification</h1>
  
  <h2 id='version'>Version 1.0</h2>
  
  <!-- REC-DOM-Level-2-Core-20001113
   -->
  <h2 id='W3C-doctype'>W3C Recommendation <i>13 November,
  2000</i></h2>
  
  <dl>
  <dt>This version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113</a><br />
   (<a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/DOM2-Core.ps'>
  PostScript file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/DOM2-Core.pdf'>
  PDF file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/DOM2-Core.txt'>
  plain text</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/DOM2-Core.zip'>
  ZIP file</a>)</dd>
  
  <dt>Latest version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/DOM-Level-2-Core'>http://www.w3.org/TR/DOM-Level-2-Core</a></dd>
  
  <dt>Previous version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927'>http://www.w3.org/TR/2000/PR-DOM-Level-2-Core-20000927</a></dd>
  </dl>
  
  <dl>
  <dt>Editors:</dt>
  
  <dd>Arnaud Le Hors, <i>W3C team contact until October 1999, then
  IBM</i></dd>
  
  <dd>Philippe Le H&eacute;garet, <i>W3C, team contact (from November
  1999)</i></dd>
  
  <dd>Lauren Wood, <i>SoftQuad Software Inc., WG Chair</i></dd>
  
  <dd>Gavin Nicol, <i>Inso EPS (for DOM Level 1)</i></dd>
  
  <dd>Jonathan Robie, <i>Texcel Research and Software AG (for DOM
  Level 1)</i></dd>
  
  <dd>Mike Champion, <i>ArborText and Software AG (for DOM Level 1
  from November 20, 1997)</i></dd>
  
  <dd>Steve Byrne, <i>JavaSoft (for DOM Level 1 until November 19,
  1997)</i></dd>
  </dl>
  
  <p class='copyright'>Copyright &copy; 2000 <a
  href='http://www.w3.org/'><abbr
  title='World Wide Web Consortium'>W3C</abbr></a><sup>&reg;</sup>
  (<a href='http://www.lcs.mit.edu/'><abbr
  title='Massachusetts Institute of Technology'>MIT</abbr></a>, <a
  href='http://www.inria.fr/'><abbr lang='fr'
  title='Institut National de Recherche en Informatique et Automatique'>
  INRIA</abbr></a>, <a href='http://www.keio.ac.jp/'>Keio</a>), All
  Rights Reserved. W3C <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer'>
  liability</a>, <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks'>
  trademark</a>, <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  document use</a> and <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  software licensing</a> rules apply.</p>
  </div>
  
  <hr title='separator from header' />
  <h2 id='abstract'>Abstract</h2>
  
  <div class='abstract'>
  <p>This specification defines the Document Object Model Level 2
  Core, a platform- and language-neutral interface that allows
  programs and scripts to dynamically access and update the content
  and structure of documents. The Document Object Model Level 2 Core
  builds on the Document Object Model Level 1 Core.</p>
  
  <p>The DOM Level 2 Core is made of a set of core interfaces to
  create and manipulate the structure and contents of a document. The
  Core also contains specialized interfaces dedicated to XML.</p>
  </div>
  
  <h2 id='status'>Status of this document</h2>
  
  <div class='status'>
  <p><em>This section describes the status of this document at the
  time of its publication. Other documents may supersede this
  document. The latest status of this document series is maintained
  at the W3C.</em></p>
  
  <p>This document has been reviewed by W3C Members and other
  interested parties and has been endorsed by the Director as a <a
  href='http://www.w3.org/Consortium/Process/Process-19991111/tr.html#RecsW3C'>
  W3C Recommendation</a>. It is a stable document and may be used as
  reference material or cited as a normative reference from another
  document. W3C's role in making the Recommendation is to draw
  attention to the specification and to promote its widespread
  deployment. This enhances the functionality and interoperability of
  the Web.</p>
  
  <p>This document has been produced as part of the <a
  href='http://www.w3.org/DOM/Activity.html'>W3C DOM Activity</a>.
  The authors of this document are the DOM Working Group members.
  Different modules of the Document Object Model have different
  editors.</p>
  
  <p>Please send general comments about this document to the public
  mailing list <a href='mailto:www-dom@w3.org'>www-dom@w3.org</a>. An
  <a href='http://lists.w3.org/Archives/Public/www-dom/'>archive</a>
  is available at http://lists.w3.org/Archives/Public/www-dom/.</p>
  
  <p>The English version of this specification is the only normative
  version. Information about <a
  href='http://www.w3.org/2000/11/DOM-Level-2-translations'>translations</a>
  of this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-translations.</p>
  
  <p>The <a href='http://www.w3.org/2000/11/DOM-Level-2-errata'>list
  of known errors</a> in this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-errata</p>
  
  <p>A list of <a href='http://www.w3.org/TR/'>current W3C
  Recommendations and other technical documents</a> can be found at
  http://www.w3.org/TR.</p>
  </div>
  
  <h2 id='table-of-contents'><a id="contents" name='contents'>Table
  of contents</a></h2>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='introduction.html'>What is the Document Object
  Model?</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref' href='core.html'>1.
  Document Object Model Core</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='changes.html'>Appendix A: Changes</a></li>
  
  <li class='tocline2'><a class='tocxref' href='i18n.html'>Appendix
  B: Accessing code point boundaries</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix C: IDL Definitions</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix D: Java Language Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix E: ECMAScript Language
  Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix F: Acknowledgements</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='glossary.html'>Glossary</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='n' href='expanded-toc.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/W3C-REC.css
  
  Index: W3C-REC.css
  ===================================================================
  /* This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  */
  /* Style for a "Recommendation" */
  
  /*
     This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  
     Acknowledgments:
  
     - 'background-color' doesn't work on Mac IE 3, but 'background'
       does (Susan Lesch <le...@macvirus.com>)
  
     - 'smaller' leads to illegible text in both Mac IE and Mac NS,
       'small' is better: works in Mac NS, but is always 12pt in Mac IE
       3 (Susan Lesch <le...@macvirus.com>)
  
     $Id: W3C-REC.css,v 1.1 2001/06/01 11:13:32 dims Exp $
  */
  
  body {
    margin: 2em 1em 2em 70px;
    font-family: sans-serif;
    color: black;
    background: white;
    background-position: top left;
    background-attachment: fixed;
    background-repeat: no-repeat;
  }
  
  th, td { /* ns 4 */
    font-family: sans-serif;
  }
  
  h1, h2, h3, h4, h5, h6 { text-align: left }
  h1, h2, h3 { color: #005A9C }
  h1 { font: 170% sans-serif }
  h2 { font: 140% sans-serif }
  h3 { font: 120% sans-serif }
  h4 { font: bold 100% sans-serif }
  h5 { font: italic 100% sans-serif }
  h6 { font: small-caps 100% sans-serif }
  
  .hide { display: none }
  
  div.head { margin-bottom: 1em }
  div.head h1 { margin-top: 2em; clear: both }
  div.head table { margin-left: 2em; margin-top: 2em }
  div.head img { color: white; border: none } /* remove border from top image */
  
  p.copyright { font-size: small }
  p.copyright small { font-size: small }
  
  @media screen {  /* hide from IE3 */
  a:hover { background: #ffa } 
  }
  
  pre { margin-left: 2em }
  /*
  p {
    margin-top: 0.6em;
    margin-bottom: 0.6em;
  }
  */
  dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
  dt { font-weight: bold }
  
  pre, code { font-family: monospace } /* navigator 4 requires this */
  
  ul.toc {
    list-style: disc;		/* Mac NS has problem with 'none' */
    list-style: none;
  }
  
  @media aural {  
    h1, h2, h3 { stress: 20; richness: 90 }
    .hide { speak: none }
    p.copyright { volume: x-soft; speech-rate: x-fast }
    dt { pause-before: 20% }
    pre { speak-punctuation: code } 
  }
  
  /* Things (icons) that should only show up in projection mode */
  .projection { display: none }
  @media projection { .projection { display: inline } }
  
  
  body {
    background-image: url(http://www.w3.org/StyleSheets/TR/logo-REC);
  }
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/acknowledgements.html
  
  Index: acknowledgements.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:25 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Acknowledgements</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='glossary.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='ecma-script-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='ecma-script-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='glossary.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="contributors" name='contributors'></a> 
  
  <h1 id='contributors-h1' class='adiv1'>Appendix F:
  Acknowledgements</h1>
  
  <p>Many people contributed to this specification, including members
  of the DOM Working Group and the DOM Interest Group. We especially
  thank the following:</p>
  
  <p>Lauren Wood (SoftQuad Software Inc., <em>chair</em>), Andrew
  Watson (Object Management Group), Andy Heninger (IBM), Arnaud Le
  Hors (W3C and IBM), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea
  (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris
  Wilson (Microsoft), David Brownell (Sun), David Singer (IBM), Don
  Park (invited), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian
  Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared
  Sorensen (Novell), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe
  Marini (Macromedia), Johnny Stenback (Netscape), Jonathan Marsh
  (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim
  Adamson-Sharpe (SoftQuad Software Inc.), Laurence Cable (Sun), Mark
  Davis (IBM), Mark Scardina (Oracle), Martin D&uuml;rst (W3C), Mick
  Goulish (Software AG), Mike Champion (Arbortext and Software AG),
  Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso
  (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton
  (Netscape), Philippe Le H&eacute;garet (W3C, <em>W3C team
  contact</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer
  (iMall, Excite@Home and Netscape), Rich Rollman (Microsoft), Rick
  Gessner (Netscape), Scott Isaacs (Microsoft), Sharon Adler (INSO),
  Steve Byrne (JavaSoft), Tim Bray (invited), Tom Pixley (Netscape),
  Vidur Apparao (Netscape), Vinod Anupam (Lucent).</p>
  
  <p>Thanks to all those who have helped to improve this
  specification by sending suggestions and corrections.</p>
  
  <div class='div2'><a id="Productions" name='Productions'></a> 
  
  <h2 id='Productions-h2' class='adiv2'>F.1: Production Systems</h2>
  
  <p>This specification was written in XML. The HTML, OMG IDL, Java
  and ECMA Script bindings were all produced automatically.</p>
  
  <p>Thanks to Joe English, author of <a
  href='http://www.flightlab.com/cost'>cost</a>, which was used as
  the basis for producing DOM Level 1. Thanks also to Gavin Nicol,
  who wrote the scripts which run on top of cost. Arnaud Le Hors and
  Philippe Le H&eacute;garet maintained the scripts.</p>
  
  <p>For DOM Level 2, we used <a
  href='http://xml.apache.org/xerces-j'>Xerces</a> as the basis DOM
  implementation and wish to thank the authors. Philippe Le
  H&eacute;garet and Arnaud Le Hors wrote the <a
  href='http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/'>
  Java programs</a> which are the DOM application.</p>
  
  <p>Thanks also to Jan K&auml;rrman, author of <a
  href='http://www.tdb.uu.se/~jan/html2ps.html'>html2ps</a>, which we
  use in creating the PostScript version of the specification.</p>
  </div>
  
  <!-- div2 Productions --></div>
  
  <!-- div1 contributors -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='ecma-script-binding.html'>previous</a>
  &nbsp; <a accesskey='n' href='glossary.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/changes.html
  
  Index: changes.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:01 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Changes</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='i18n.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='core.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='core.html'>previous</a> &nbsp; <a accesskey='n'
  href='i18n.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Changes" name='Changes'></a> 
  
  <h1 id='Changes-h1' class='adiv1'>Appendix A: Changes</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Arnaud Le Hors, IBM</dd>
  
  <dd>Philippe Le H&eacute;garet, W3C</dd>
  </dl>
  
  <div class='div2'><a id="DOMLevel1to2Changes"
  name='DOMLevel1to2Changes'></a> 
  
  <h2 id='DOMLevel1to2Changes-h2' class='adiv2'>A.1: Changes between
  DOM Level 1 Core and DOM Level 2 Core</h2>
  
  <dl>
  <dt><b>OMG IDL</b></dt>
  
  <dd>The DOM Level 2 specifications are now using Corba 2.3.1
  instead of Corba 2.2.</dd>
  
  <dt><b>Type <a
  href='core.html#DOMString'><code>DOMString</code></a></b></dt>
  
  <dd>The definition of <a
  href='core.html#DOMString'><code>DOMString</code></a> in IDL is now
  a <code>valuetype</code>.</dd>
  </dl>
  
  <div class='div3'><a id="DOMLevel1Changes"
  name='DOMLevel1Changes'></a> 
  
  <h3 id='DOMLevel1Changes-h3' class='adiv3'>A.1.1: Changes to DOM
  Level 1 Core interfaces and exceptions</h3>
  
  <dl>
  <dt><b>Interface <a
  href='core.html#ID-637646024'><code>Attr</code></a></b></dt>
  
  <dd>The <a href='core.html#ID-637646024'><code>Attr</code></a>
  interface has one new attribute: <code>ownerElement</code>.</dd>
  
  <dt><b>Interface <a
  href='core.html#i-Document'><code>Document</code></a></b></dt>
  
  <dd>The <a href='core.html#i-Document'><code>Document</code></a>
  interface has five new methods: <code>importNode</code>,
  <code>createElementNS</code>, <code>createAttributeNS</code>,
  <code>getElementsByTagNameNS</code> and
  <code>getElementById</code>.</dd>
  
  <dt><b>Interface <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a></b></dt>
  
  <dd>The <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>
  interface has three new methods: <code>getNamedItemNS</code>,
  <code>setNamedItemNS</code>, <code>removeNamedItemNS</code>.</dd>
  
  <dt><b>Interface <a
  href='core.html#ID-1950641247'><code>Node</code></a></b></dt>
  
  <dd>The <a href='core.html#ID-1950641247'><code>Node</code></a>
  interface has two new methods: <code>isSupported</code> and
  <code>hasAttributes</code>.<br />
  <code>normalize</code>, previously in the <a
  href='core.html#ID-745549614'><code>Element</code></a> interface,
  has been moved in the <a
  href='core.html#ID-1950641247'><code>Node</code></a>
  interface.<br />
  The <a href='core.html#ID-1950641247'><code>Node</code></a>
  interface has three new attributes: <code>namespaceURI</code>,
  <code>prefix</code> and <code>localName</code>.<br />
  The <code>ownerDocument</code> attribute was specified to be
  <code>null</code> when the node is a <a
  href='core.html#i-Document'><code>Document</code></a>. It now is
  also <code>null</code> when the node is a <a
  href='core.html#ID-412266927'><code>DocumentType</code></a> which
  is not used with any <a class='noxref'
  href='core.html#i-Document'><code>Document</code></a> yet.</dd>
  
  <dt><b>Interface <a
  href='core.html#ID-412266927'><code>DocumentType</code></a></b></dt>
  
  <dd>The <a
  href='core.html#ID-412266927'><code>DocumentType</code></a>
  interface has three attributes: <code>publicId</code>,
  <code>systemId</code> and <code>internalSubset</code>.</dd>
  
  <dt><b>Interface <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a></b></dt>
  
  <dd>The <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a>
  interface has two new methods: <code>createDocumentType</code> and
  <code>createDocument</code>.</dd>
  
  <dt><b>Interface <a
  href='core.html#ID-745549614'><code>Element</code></a></b></dt>
  
  <dd>The <a href='core.html#ID-745549614'><code>Element</code></a>
  interface has eight new methods: <code>getAttributeNS</code>,
  <code>setAttributeNS</code>, <code>removeAttributeNS</code>,
  <code>getAttributeNodeNS</code>, <code>setAttributeNodeNS</code>,
  <code>getElementsByTagNameNS</code>, <code>hasAttribute</code> and
  <code>hasAttributeNS</code>.<br />
  The method <code>normalize</code> is now inherited from the <a
  href='core.html#ID-1950641247'><code>Node</code></a> interface
  where it was moved.</dd>
  
  <dt><b>Exception <a
  href='core.html#ID-17189187'><code>DOMException</code></a></b></dt>
  
  <dd>The <a
  href='core.html#ID-17189187'><code>DOMException</code></a> has five
  new exception codes: <code>INVALID_STATE_ERR</code>,
  <code>SYNTAX_ERR</code>, <code>INVALID_MODIFICATION_ERR</code>,
  <code>NAMESPACE_ERR</code> and
  <code>INVALID_ACCESS_ERR</code>.</dd>
  </dl>
  </div>
  
  <!-- div3 DOMLevel1Changes -->
  <div class='div3'><a id="DOMLevel2Addons"
  name='DOMLevel2Addons'></a> 
  
  <h3 id='DOMLevel2Addons-h3' class='adiv3'>A.1.2: New features</h3>
  
  <div class='div4'><a id="DOMLevel2Addons-types"
  name='DOMLevel2Addons-types'></a> 
  
  <h4 id='DOMLevel2Addons-types-h4' class='adiv4'>A.1.2.1: New
  types</h4>
  
  <dl>
  <dt><b><a
  href='core.html#DOMTimeStamp'><code>DOMTimeStamp</code></a></b></dt>
  
  <dd>The <a
  href='core.html#DOMTimeStamp'><code>DOMTimeStamp</code></a> type
  was added to the Core module.</dd>
  </dl>
  </div>
  
  <!-- div4 DOMLevel2Addons-types --></div>
  
  <!-- div3 DOMLevel2Addons --></div>
  
  <!-- div2 DOMLevel1to2Changes --></div>
  
  <!-- div1 Changes -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='core.html'>previous</a> &nbsp; <a
  accesskey='n' href='i18n.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/copyright-notice.html
  
  Index: copyright-notice.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:42:28 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Copyright Notice</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='introduction.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='expanded-toc.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='expanded-toc.html'>previous</a> &nbsp; <a accesskey='n'
  href='introduction.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Copyright-Notice"
  name='Copyright-Notice'></a> 
  
  <h1 id='Copyright-Notice-h1' class='div1'>Copyright Notice</h1>
  
  <p><b>Copyright &copy; 2000 <a href='http://www.w3.org/'>World Wide
  Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p>This document is published under the <a
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a>. The bindings within this document
  are published under the <a
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a>. The software license requires
  "Notice of any changes or modifications to the W3C files, including
  the date changes were made." Consequently, modified versions of the
  DOM bindings must document that they do not conform to the W3C
  standard; in the case of the IDL definitions, the pragma prefix can
  no longer be 'w3c.org'; in the case of the Java Language binding,
  the package names can no longer be in the 'org.w3c' package.</p>
  
  <div class='div2'><a id="Copyright-notice-document"
  name='Copyright-notice-document'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-document-h2' class='div2'>W3C Document
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Document Notice
  and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  http://www.w3.org/Consortium/Legal/copyright-documents-19990405</a>.</p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>Public documents on the W3C site are provided by the copyright
  holders under the following license. The software or Document Type
  Definitions (DTDs) associated with W3C specifications are governed
  by the <a
  href='http://www.w3.org/Consortium/Legal/copyright-software.html'>Software
  Notice</a>. By using and/or copying this document, or the W3C
  document from which this statement is linked, you (the licensee)
  agree that you have read, understood, and will comply with the
  following terms and conditions:</p>
  
  <p>Permission to use, copy, and distribute the contents of this
  document, or the W3C document from which this statement is linked,
  in any medium for any purpose and without fee or royalty is hereby
  granted, provided that you include the following on <em>ALL</em>
  copies of the document, or portions thereof, that you use:</p>
  
  <ol>
  <li>A link or URL to the original W3C document.</li>
  
  <li>The pre-existing copyright notice of the original author, or if
  it doesn't exist, a notice of the form: "Copyright &copy;
  [$date-of-document] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/" (Hypertext is
  preferred, but a textual representation is permitted.)</li>
  
  <li><em>If it exists</em>, the STATUS of the W3C document.</li>
  </ol>
  
  <p>When space permits, inclusion of the full text of this
  <b>NOTICE</b> should be provided. We request that authorship
  attribution be provided in any software, documents, or other items
  or products that you create pursuant to the implementation of the
  contents of this document, or any portion thereof.</p>
  
  <p>No right to create modifications or derivatives of W3C documents
  is granted pursuant to this license. However, if additional
  requirements (documented in the <a
  href='http://www.w3.org/Consortium/Legal/IPR-FAQ.html'>Copyright
  FAQ</a>) are satisfied, the right to create modifications or
  derivatives is sometimes granted by the W3C to individuals
  complying with those requirements.</p>
  
  <p>THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
  REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT
  NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS
  OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
  IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
  PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS
  THEREOF.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to this document or its
  contents without specific, written prior permission. Title to
  copyright in this document will at all times remain with copyright
  holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-document -->
  <div class='div2'><a id="Copyright-notice-software"
  name='Copyright-notice-software'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-software-h2' class='div2'>W3C Software
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Software
  Copyright Notice and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  http://www.w3.org/Consortium/Legal/copyright-software-19980720</a></p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>This W3C work (including software, documents, or other related
  items) is being provided by the copyright holders under the
  following license. By obtaining, using and/or copying this work,
  you (the licensee) agree that you have read, understood, and will
  comply with the following terms and conditions:</p>
  
  <p>Permission to use, copy, and modify this software and its
  documentation, with or without modification, for any purpose and
  without fee or royalty is hereby granted, provided that you include
  the following on ALL copies of the software and documentation or
  portions thereof, including modifications, that you make:</p>
  
  <ol>
  <li>The full text of this NOTICE in a location viewable to users of
  the redistributed or derivative work.</li>
  
  <li>Any pre-existing intellectual property disclaimers. If none
  exist, then a notice of the following form: "Copyright &copy;
  [$date-of-software] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/."</li>
  
  <li>Notice of any changes or modifications to the W3C files,
  including the date changes were made. (We recommend you provide
  URIs to the location from which the code is derived.)</li>
  </ol>
  
  <p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
  COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
  MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
  USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
  PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  SOFTWARE OR DOCUMENTATION.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to the software without
  specific, written prior permission. Title to copyright in this
  software and any associated documentation will at all times remain
  with copyright holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-software --></div>
  
  <!-- div1 Copyright-Notice -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='expanded-toc.html'>previous</a> &nbsp; <a
  accesskey='n' href='introduction.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/core.html
  
  Index: core.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:42:30 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model Core</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='changes.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='introduction.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='introduction.html'>previous</a> &nbsp; <a accesskey='n'
  href='changes.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Core" name='Core'></a> 
  
  <h1 id='Core-h1' class='div1'>1. Document Object Model Core</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Arnaud Le Hors, IBM</dd>
  
  <dd>Gavin Nicol, Inso EPS (for DOM Level 1)</dd>
  
  <dd>Lauren Wood, SoftQuad, Inc. (for DOM Level 1)</dd>
  
  <dd>Mike Champion, ArborText (for DOM Level 1 from November 20,
  1997)</dd>
  
  <dd>Steve Byrne, JavaSoft (for DOM Level 1 until November 19,
  1997)</dd>
  </dl>
  
  <div class='noprint'>
  <h2 id='table-of-contents'>Table of contents</h2>
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref' href='#ID-1590626201'>1.1.
  Overview of the DOM Core Interfaces</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='#ID-1590626202'>1.1.1. The DOM Structure Model</a></li>
  
  <li class='tocline4'><a class='tocxref' href='#ID-249F15BA'>1.1.2.
  Memory Management</a></li>
  
  <li class='tocline4'><a class='tocxref' href='#ID-45A944CB'>1.1.3.
  Naming Conventions</a></li>
  
  <li class='tocline4'><a class='tocxref' href='#ID-1CED5498'>1.1.4.
  Inheritance vs. Flattened Views of the API</a></li>
  
  <li class='tocline4'><a class='tocxref' href='#ID-C74D1578'>1.1.5.
  The DOMString type</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Core-DOMTimeStamp'>1.1.6. The DOMTimeStamp type</a></li>
  
  <li class='tocline4'><a class='tocxref' href='#ID-5DFED1F0'>1.1.7.
  String comparisons in the DOM</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Namespaces-Considerations'>1.1.8. XML Namespaces</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref' href='#ID-BBACDC08'>1.2.
  Fundamental Interfaces</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a href='#ID-17189187'>DOMException</a>, <a
  href='#ID-258A00AF'>ExceptionCode</a>, <a
  href='#ID-102161490'>DOMImplementation</a>, <a
  href='#ID-B63ED1A3'>DocumentFragment</a>, <a
  href='#i-Document'>Document</a>, <a href='#ID-1950641247'>Node</a>,
  <a href='#ID-536297177'>NodeList</a>, <a
  href='#ID-1780488922'>NamedNodeMap</a>, <a
  href='#ID-FF21A306'>CharacterData</a>, <a
  href='#ID-637646024'>Attr</a>, <a href='#ID-745549614'>Element</a>,
  <a href='#ID-1312295772'>Text</a>, <a
  href='#ID-1728279322'>Comment</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref' href='#ID-E067D597'>1.3.
  Extended Interfaces</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a href='#ID-667469212'>CDATASection</a>, <a
  href='#ID-412266927'>DocumentType</a>, <a
  href='#ID-5431D1B9'>Notation</a>, <a
  href='#ID-527DCFF2'>Entity</a>, <a
  href='#ID-11C98490'>EntityReference</a>, <a
  href='#ID-1004215813'>ProcessingInstruction</a></li>
  </ul>
  </li>
  </ul>
  </div>
  
  <div class='div2'><a id="ID-1590626201" name='ID-1590626201'></a> 
  
  <h2 id='ID-1590626201-h2' class='div2'>1.1. Overview of the DOM
  Core Interfaces</h2>
  
  <p>This section defines a set of objects and interfaces for
  accessing and manipulating document objects. The functionality
  specified in this section (the <em>Core</em> functionality) is
  sufficient to allow software developers and web script authors to
  access and manipulate parsed HTML and XML content inside conforming
  products. The DOM Core API also allows creation and population of a
  <a href='core.html#i-Document'><code>Document</code></a> object
  using only DOM API calls; loading a <a class='noxref'
  href='core.html#i-Document'><code>Document</code></a> and saving it
  persistently is left to the product that implements the DOM
  API.</p>
  
  <div class='div3'><a id="ID-1590626202" name='ID-1590626202'></a> 
  
  <h3 id='ID-1590626202-h3' class='div3'>1.1.1. The DOM Structure
  Model</h3>
  
  <p>The DOM presents documents as a hierarchy of <a
  href='core.html#ID-1950641247'><code>Node</code></a> objects that
  also implement other, more specialized interfaces. Some types of
  nodes may have <a href='glossary.html#dt-child'><em>child</em></a>
  nodes of various types, and others are leaf nodes that cannot have
  anything below them in the document structure. For XML and HTML,
  the node types, and which node types they may have as children, are
  as follows:</p>
  
  <ul>
  <li><a href='core.html#i-Document'><code>Document</code></a> -- <a
  href='core.html#ID-745549614'><code>Element</code></a> (maximum of
  one), <a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>,
  <a href='core.html#ID-1728279322'><code>Comment</code></a>, <a
  href='core.html#ID-412266927'><code>DocumentType</code></a>
  (maximum of one)</li>
  
  <li><a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a> --
  <a href='core.html#ID-745549614'><code>Element</code></a>, <a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>,
  <a href='core.html#ID-1728279322'><code>Comment</code></a>, <a
  href='core.html#ID-1312295772'><code>Text</code></a>, <a
  href='core.html#ID-667469212'><code>CDATASection</code></a>, <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a></li>
  
  <li><a href='core.html#ID-412266927'><code>DocumentType</code></a>
  -- no children</li>
  
  <li><a
  href='core.html#ID-11C98490'><code>EntityReference</code></a> -- <a
  href='core.html#ID-745549614'><code>Element</code></a>, <a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>,
  <a href='core.html#ID-1728279322'><code>Comment</code></a>, <a
  href='core.html#ID-1312295772'><code>Text</code></a>, <a
  href='core.html#ID-667469212'><code>CDATASection</code></a>, <a
  class='noxref'
  href='core.html#ID-11C98490'><code>EntityReference</code></a></li>
  
  <li><a href='core.html#ID-745549614'><code>Element</code></a> -- <a
  class='noxref'
  href='core.html#ID-745549614'><code>Element</code></a>, <a
  href='core.html#ID-1312295772'><code>Text</code></a>, <a
  href='core.html#ID-1728279322'><code>Comment</code></a>, <a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>,
  <a href='core.html#ID-667469212'><code>CDATASection</code></a>, <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a></li>
  
  <li><a href='core.html#ID-637646024'><code>Attr</code></a> -- <a
  href='core.html#ID-1312295772'><code>Text</code></a>, <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a></li>
  
  <li><a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>
  -- no children</li>
  
  <li><a href='core.html#ID-1728279322'><code>Comment</code></a> --
  no children</li>
  
  <li><a href='core.html#ID-1312295772'><code>Text</code></a> -- no
  children</li>
  
  <li><a href='core.html#ID-667469212'><code>CDATASection</code></a>
  -- no children</li>
  
  <li><a href='core.html#ID-527DCFF2'><code>Entity</code></a> -- <a
  href='core.html#ID-745549614'><code>Element</code></a>, <a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>,
  <a href='core.html#ID-1728279322'><code>Comment</code></a>, <a
  href='core.html#ID-1312295772'><code>Text</code></a>, <a
  href='core.html#ID-667469212'><code>CDATASection</code></a>, <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a></li>
  
  <li><a href='core.html#ID-5431D1B9'><code>Notation</code></a> -- no
  children</li>
  </ul>
  
  <p>The DOM also specifies a <a
  href='core.html#ID-536297177'><code>NodeList</code></a> interface
  to handle ordered lists of <a
  href='core.html#ID-1950641247'><code>Nodes</code></a>, such as the
  children of a <a
  href='core.html#ID-1950641247'><code>Node</code></a>, or the <a
  href='glossary.html#dt-element'><em>elements</em></a> returned by
  the <code>getElementsByTagName</code> method of the <a
  href='core.html#ID-745549614'><code>Element</code></a> interface,
  and also a <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>
  interface to handle unordered sets of nodes referenced by their
  name attribute, such as the attributes of an <a class='noxref'
  href='core.html#ID-745549614'><code>Element</code></a>. <a
  id="td-live" name='td-live'></a> <a
  href='core.html#ID-536297177'><code>NodeList</code></a> and <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>
  objects in the DOM are <i>live</i>; that is, changes to the
  underlying document structure are reflected in all relevant <a
  class='noxref'
  href='core.html#ID-536297177'><code>NodeList</code></a> and <a
  class='noxref'
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>
  objects. For example, if a DOM user gets a <a class='noxref'
  href='core.html#ID-536297177'><code>NodeList</code></a> object
  containing the children of an <a
  href='core.html#ID-745549614'><code>Element</code></a>, then
  subsequently adds more children to that <a
  href='glossary.html#dt-element'><em>element</em></a> (or removes
  children, or modifies them), those changes are automatically
  reflected in the <a class='noxref'
  href='core.html#ID-536297177'><code>NodeList</code></a>, without
  further action on the user's part. Likewise, changes to a <a
  href='core.html#ID-1950641247'><code>Node</code></a> in the tree
  are reflected in all references to that <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> in <a
  class='noxref'
  href='core.html#ID-536297177'><code>NodeList</code></a> and <a
  class='noxref'
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>
  objects.</p>
  
  <p>Finally, the interfaces <a
  href='core.html#ID-1312295772'><code>Text</code></a>, <a
  href='core.html#ID-1728279322'><code>Comment</code></a>, and <a
  href='core.html#ID-667469212'><code>CDATASection</code></a> all
  inherit from the <a
  href='core.html#ID-FF21A306'><code>CharacterData</code></a>
  interface.</p>
  </div>
  
  <!-- div3 ID-1590626202 -->
  <div class='div3'><a id="ID-249F15BA" name='ID-249F15BA'></a> 
  
  <h3 id='ID-249F15BA-h3' class='div3'>1.1.2. Memory Management</h3>
  
  <p>Most of the APIs defined by this specification are
  <em>interfaces</em> rather than classes. That means that an
  implementation need only expose methods with the defined names and
  specified operation, not implement classes that correspond directly
  to the interfaces. This allows the DOM APIs to be implemented as a
  thin veneer on top of legacy applications with their own data
  structures, or on top of newer applications with different class
  hierarchies. This also means that ordinary constructors (in the
  Java or C++ sense) cannot be used to create DOM objects, since the
  underlying objects to be constructed may have little relationship
  to the DOM interfaces. The conventional solution to this in
  object-oriented design is to define <em>factory</em> methods that
  create instances of objects that implement the various interfaces.
  Objects implementing some interface "X" are created by a
  "createX()" method on the <a
  href='core.html#i-Document'><code>Document</code></a> interface;
  this is because all DOM objects live in the context of a specific
  Document.</p>
  
  <p>The DOM Level 2 API does <em>not</em> define a standard way to
  create <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a>
  objects; DOM implementations must provide some proprietary way of
  bootstrapping these DOM interfaces, and then all other objects can
  be built from there.</p>
  
  <p>The Core DOM APIs are designed to be compatible with a wide
  range of languages, including both general-user scripting languages
  and the more challenging languages used mostly by professional
  programmers. Thus, the DOM APIs need to operate across a variety of
  memory management philosophies, from language bindings that do not
  expose memory management to the user at all, through those (notably
  Java) that provide explicit constructors but provide an automatic
  garbage collection mechanism to automatically reclaim unused
  memory, to those (especially C/C++) that generally require the
  programmer to explicitly allocate object memory, track where it is
  used, and explicitly free it for re-use. To ensure a consistent API
  across these platforms, the DOM does not address memory management
  issues at all, but instead leaves these for the implementation.
  Neither of the explicit language bindings defined by the DOM API
  (for <a href='glossary.html#dt-ECMAScript'><em>ECMAScript</em></a>
  and Java) require any memory management methods, but DOM bindings
  for other languages (especially C or C++) may require such support.
  These extensions will be the responsibility of those adapting the
  DOM API to a specific language, not the DOM Working Group.</p>
  </div>
  
  <!-- div3 ID-249F15BA -->
  <div class='div3'><a id="ID-45A944CB" name='ID-45A944CB'></a> 
  
  <h3 id='ID-45A944CB-h3' class='div3'>1.1.3. Naming Conventions</h3>
  
  <p>While it would be nice to have attribute and method names that
  are short, informative, internally consistent, and familiar to
  users of similar APIs, the names also should not clash with the
  names in legacy APIs supported by DOM implementations. Furthermore,
  both OMG IDL and <code>ECMAScript</code> have significant
  limitations in their ability to disambiguate names from different
  namespaces that make it difficult to avoid naming conflicts with
  short, familiar names. So, DOM names tend to be long and
  descriptive in order to be unique across all environments.</p>
  
  <p>The Working Group has also attempted to be internally consistent
  in its use of various terms, even though these may not be common
  distinctions in other APIs. For example, the DOM API uses the
  method name "remove" when the method changes the structural model,
  and the method name "delete" when the method gets rid of something
  inside the structure model. The thing that is deleted is not
  returned. The thing that is removed may be returned, when it makes
  sense to return it.</p>
  </div>
  
  <!-- div3 ID-45A944CB -->
  <div class='div3'><a id="ID-1CED5498" name='ID-1CED5498'></a> 
  
  <h3 id='ID-1CED5498-h3' class='div3'>1.1.4. Inheritance vs.
  Flattened Views of the API</h3>
  
  <p>The DOM Core <a href='glossary.html#dt-API'><em>APIs</em></a>
  present two somewhat different sets of interfaces to an XML/HTML
  document: one presenting an "object oriented" approach with a
  hierarchy of <a
  href='glossary.html#dt-inheritance'><em>inheritance</em></a>, and a
  "simplified" view that allows all manipulation to be done via the
  <a href='core.html#ID-1950641247'><code>Node</code></a> interface
  without requiring casts (in Java and other C-like languages) or
  query interface calls in <a
  href='glossary.html#dt-COM'><em>COM</em></a> environments. These
  operations are fairly expensive in Java and COM, and the DOM may be
  used in performance-critical environments, so we allow significant
  functionality using just the <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> interface.
  Because many other users will find the <a
  href='glossary.html#dt-inheritance'><em>inheritance</em></a>
  hierarchy easier to understand than the "everything is a <a
  class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a>" approach to
  the DOM, we also support the full higher-level interfaces for those
  who prefer a more object-oriented <a
  href='glossary.html#dt-API'><em>API</em></a>.</p>
  
  <p>In practice, this means that there is a certain amount of
  redundancy in the <a href='glossary.html#dt-API'><em>API</em></a>.
  The Working Group considers the "<a
  href='glossary.html#dt-inheritance'><em>inheritance</em></a>"
  approach the primary view of the API, and the full set of
  functionality on <a
  href='core.html#ID-1950641247'><code>Node</code></a> to be "extra"
  functionality that users may employ, but that does not eliminate
  the need for methods on other interfaces that an object-oriented
  analysis would dictate. (Of course, when the O-O analysis yields an
  attribute or method that is identical to one on the <a
  class='noxref' href='core.html#ID-1950641247'><code>Node</code></a>
  interface, we don't specify a completely redundant one.) Thus, even
  though there is a generic <code>nodeName</code> attribute on the <a
  class='noxref' href='core.html#ID-1950641247'><code>Node</code></a>
  interface, there is still a <code>tagName</code> attribute on the
  <a href='core.html#ID-745549614'><code>Element</code></a>
  interface; these two attributes must contain the same value, but
  the it is worthwhile to support both, given the different
  constituencies the DOM <a
  href='glossary.html#dt-API'><em>API</em></a> must satisfy.</p>
  </div>
  
  <!-- div3 ID-1CED5498 -->
  <div class='div3'><a id="ID-C74D1578" name='ID-C74D1578'></a> 
  
  <h3 id='ID-C74D1578-h3' class='div3'>1.1.5. The <a
  href='core.html#DOMString'><code>DOMString</code></a> type</h3>
  
  <p>To ensure interoperability, the DOM specifies the following:</p>
  
  <ul>
  <li>
  <dl>
  <dt><b>Type Definition <i><a id="DOMString"
  name='DOMString'>DOMString</a></i></b></dt>
  
  <dd>
  <p>A <a href='core.html#DOMString'><code>DOMString</code></a> is a
  sequence of <a href='glossary.html#dt-16-bit-unit'><em>16-bit
  units</em></a>.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  valuetype DOMString sequence&lt;unsigned short&gt;;
  </pre>
  </div>
  
  <br />
  </dd>
  </dl>
  </dd>
  </dl>
  </li>
  
  <li>Applications must encode <a
  href='core.html#DOMString'><code>DOMString</code></a> using UTF-16
  (defined in [<a class='noxref'
  href='references.html#Unicode'>Unicode</a>] and Amendment 1 of [<a
  class='noxref' href='references.html#ISO10646'>ISO/IEC
  10646</a>]).<br />
  The UTF-16 encoding was chosen because of its widespread industry
  practice. Note that for both HTML and XML, the document character
  set (and therefore the notation of numeric character references) is
  based on UCS [ISO-10646]. A single numeric character reference in a
  source document may therefore in some cases correspond to two
  16-bit units in a <a
  href='core.html#DOMString'><code>DOMString</code></a> (a high
  surrogate and a low surrogate). 
  
  <p><b>Note:</b> Even though the DOM defines the name of the string
  type to be <a
  href='core.html#DOMString'><code>DOMString</code></a>, bindings may
  use different names. For example for Java, <a class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a> is bound to
  the <code>String</code> type because it also uses UTF-16 as its
  encoding.</p>
  </li>
  </ul>
  
  <p><b>Note:</b> As of August 2000, the OMG IDL specification ([<a
  class='noxref' href='references.html#OMGIDL'>OMGIDL</a>]) included
  a <code>wstring</code> type. However, that definition did not meet
  the interoperability criteria of the DOM <a
  href='glossary.html#dt-API'><em>API</em></a> since it relied on
  negotiation to decide the width and encoding of a character.</p>
  </div>
  
  <!-- div3 ID-C74D1578 -->
  <div class='div3'><a id="Core-DOMTimeStamp"
  name='Core-DOMTimeStamp'></a> 
  
  <h3 id='Core-DOMTimeStamp-h3' class='div3'>1.1.6. The <a
  href='core.html#DOMTimeStamp'><code>DOMTimeStamp</code></a>
  type</h3>
  
  <p>To ensure interoperability, the DOM specifies the following:</p>
  
  <ul>
  <li>
  <dl>
  <dt><b>Type Definition <i><a id="DOMTimeStamp"
  name='DOMTimeStamp'>DOMTimeStamp</a></i></b></dt>
  
  <dd>
  <p>A <a href='core.html#DOMTimeStamp'><code>DOMTimeStamp</code></a>
  represents a number of milliseconds.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  typedef unsigned long long DOMTimeStamp;
  </pre>
  </div>
  
  <br />
  </dd>
  </dl>
  </dd>
  </dl>
  </li>
  
  <li>
  <p><b>Note:</b> Even though the DOM uses the type <a
  href='core.html#DOMTimeStamp'><code>DOMTimeStamp</code></a>,
  bindings may use different types. For example for Java, <a
  class='noxref'
  href='core.html#DOMTimeStamp'><code>DOMTimeStamp</code></a> is
  bound to the <code>long</code> type. In ECMAScript,
  <code>TimeStamp</code> is bound to the <code>Date</code> type
  because the range of the <code>integer</code> type is too
  small.</p>
  </li>
  </ul>
  </div>
  
  <!-- div3 Core-DOMTimeStamp -->
  <div class='div3'><a id="ID-5DFED1F0" name='ID-5DFED1F0'></a> 
  
  <h3 id='ID-5DFED1F0-h3' class='div3'>1.1.7. String comparisons in
  the DOM</h3>
  
  <p>The DOM has many interfaces that imply string matching. HTML
  processors generally assume an uppercase (less often, lowercase)
  normalization of names for such things as <a
  href='glossary.html#dt-element'><em>elements</em></a>, while XML is
  explicitly case sensitive. For the purposes of the DOM, string
  matching is performed purely by binary <a
  href='glossary.html#dt-string-compare'><em>comparison</em></a> of
  the <a href='glossary.html#dt-16-bit-unit'><em>16-bit
  units</em></a> of the <a
  href='core.html#DOMString'><code>DOMString</code></a>. In addition,
  the DOM assumes that any case normalizations take place in the
  processor, <em>before</em> the DOM structures are built.</p>
  
  <p><b>Note:</b> Besides case folding, there are additional
  normalizations that can be applied to text. The W3C I18N Working
  Group is in the process of defining exactly which normalizations
  are necessary, and where they should be applied. The W3C I18N
  Working Group expects to require early normalization, which means
  that data read into the DOM is assumed to already be normalized.
  The DOM and applications built on top of it in this case only have
  to assure that text remains normalized when being changed. For
  further details, please see [<a class='noxref'
  href='references.html#Charmod'>Charmod</a>].</p>
  </div>
  
  <!-- div3 ID-5DFED1F0 -->
  <div class='div3'><a id="Namespaces-Considerations"
  name='Namespaces-Considerations'></a> 
  
  <h3 id='Namespaces-Considerations-h3' class='div3'>1.1.8. XML
  Namespaces</h3>
  
  <p>The DOM Level 2 supports XML namespaces [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>] by augmenting
  several interfaces of the DOM Level 1 Core to allow creating and
  manipulating <a
  href='glossary.html#dt-element'><em>elements</em></a> and
  attributes associated to a namespace.</p>
  
  <p>As far as the DOM is concerned, special attributes used for
  declaring <a href='glossary.html#dt-XML-namespace'><em>XML
  namespaces</em></a> are still exposed and can be manipulated just
  like any other attribute. However, nodes are permanently bound to
  <a href='glossary.html#dt-namespaceURI'><em>namespace URIs</em></a>
  as they get created. Consequently, moving a node within a document,
  using the DOM, in no case results in a change of its <a
  href='glossary.html#dt-namespaceprefix'><em>namespace
  prefix</em></a> or namespace URI. Similarly, creating a node with a
  namespace prefix and namespace URI, or changing the namespace
  prefix of a node, does not result in any addition, removal, or
  modification of any special attributes for declaring the
  appropriate XML namespaces. Namespace validation is not enforced;
  the DOM application is responsible. In particular, since the
  mapping between prefixes and namespace URIs is not enforced, in
  general, the resulting document cannot be serialized naively. For
  example, applications may have to declare every namespace in use
  when serializing a document.</p>
  
  <p>DOM Level 2 doesn't perform any URI normalization or
  canonicalization. The URIs given to the DOM are assumed to be valid
  (e.g., characters such as whitespaces are properly escaped), and no
  lexical checking is performed. Absolute URI references are treated
  as strings and <a
  href='glossary.html#dt-string-compare'><em>compared
  literally</em></a>. How relative namespace URI references are
  treated is undefined. To ensure interoperability only absolute
  namespace URI references (i.e., URI references beginning with a
  scheme name and a colon) should be used. Note that because the DOM
  does no lexical checking, the empty string will be treated as a
  real namespace URI in DOM Level 2 methods. Applications must use
  the value <code>null</code> as the namespaceURI parameter for
  methods if they wish to have no namespace.</p>
  
  <p><b>Note:</b> In the DOM, all namespace declaration attributes
  are <em>by definition</em> bound to the namespace URI: "<a
  href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>".
  These are the attributes whose <a
  href='glossary.html#dt-namespaceprefix'><em>namespace
  prefix</em></a> or <a
  href='glossary.html#dt-qualifiedname'><em>qualified name</em></a>
  is "xmlns". Although, at the time of writing, this is not part of
  the XML Namespaces specification [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>], it is planned to
  be incorporated in a future revision.</p>
  
  <p>In a document with no namespaces, the <a
  href='glossary.html#dt-child'><em>child</em></a> list of an <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a> node
  is always the same as that of the corresponding <a
  href='core.html#ID-527DCFF2'><code>Entity</code></a>. This is not
  true in a document where an entity contains unbound <a
  href='glossary.html#dt-namespaceprefix'><em>namespace
  prefixes</em></a>. In such a case, the <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> of the
  corresponding <a class='noxref'
  href='core.html#ID-11C98490'><code>EntityReference</code></a> nodes
  may be bound to different <a
  href='glossary.html#dt-namespaceURI'><em>namespace URIs</em></a>,
  depending on where the entity references are. Also, because, in the
  DOM, nodes always remain bound to the same namespace URI, moving
  such <a class='noxref'
  href='core.html#ID-11C98490'><code>EntityReference</code></a> nodes
  can lead to documents that cannot be serialized. This is also true
  when the DOM Level 1 method <code>createEntityReference</code> of
  the <a href='core.html#i-Document'><code>Document</code></a>
  interface is used to create entity references that correspond to
  such entities, since the <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> of the
  returned <a class='noxref'
  href='core.html#ID-11C98490'><code>EntityReference</code></a> are
  unbound. The DOM Level 2 does not support any mechanism to resolve
  namespace prefixes. For all of these reasons, use of such entities
  and entity references should be avoided or used with extreme care.
  A future Level of the DOM may include some additional support for
  handling these.</p>
  
  <p>The new methods, such as <code>createElementNS</code> and
  <code>createAttributeNS</code> of the <a
  href='core.html#i-Document'><code>Document</code></a> interface,
  are meant to be used by namespace aware applications. Simple
  applications that do not use namespaces can use the DOM Level 1
  methods, such as <code>createElement</code> and
  <code>createAttribute</code>. Elements and attributes created in
  this way do not have any namespace prefix, namespace URI, or local
  name.</p>
  
  <p><b>Note:</b> DOM Level 1 methods are namespace ignorant.
  Therefore, while it is safe to use these methods when not dealing
  with namespaces, using them and the new ones at the same time
  should be avoided. DOM Level 1 methods solely identify attribute
  nodes by their <code>nodeName</code>. On the contrary, the DOM
  Level 2 methods related to namespaces, identify attribute nodes by
  their <code>namespaceURI</code> and <code>localName</code>. Because
  of this fundamental difference, mixing both sets of methods can
  lead to unpredictable results. In particular, using
  <code>setAttributeNS</code>, an <a
  href='glossary.html#dt-element'><em>element</em></a> may have two
  attributes (or more) that have the same <code>nodeName</code>, but
  different <code>namespaceURI</code>s. Calling
  <code>getAttribute</code> with that <code>nodeName</code> could
  then return any of those attributes. The result depends on the
  implementation. Similarly, using <code>setAttributeNode</code>, one
  can set two attributes (or more) that have different
  <code>nodeNames</code> but the same <code>prefix</code> and
  <code>namespaceURI</code>. In this case
  <code>getAttributeNodeNS</code> will return either attribute, in an
  implementation dependent manner. The only guarantee in such cases
  is that all methods that access a named item by its
  <code>nodeName</code> will access the same item, and all methods
  which access a node by its URI and local name will access the same
  node. For instance, <code>setAttribute</code> and
  <code>setAttributeNS</code> affect the node that
  <code>getAttribute</code> and <code>getAttributeNS</code>,
  respectively, return.</p>
  </div>
  
  <!-- div3 Namespaces-Considerations --></div>
  
  <!-- div2 ID-1590626201 -->
  <div class='div2'><a id="ID-BBACDC08" name='ID-BBACDC08'></a> 
  
  <h2 id='ID-BBACDC08-h2' class='div2'>1.2. Fundamental
  Interfaces</h2>
  
  <p>The interfaces within this section are considered
  <em>fundamental</em>, and must be fully implemented by all
  conforming implementations of the DOM, including all HTML DOM
  implementations [<a class='noxref'
  href='references.html#DOMHTML-inf'>DOM Level 2 HTML</a>], unless
  otherwise specified.</p>
  
  <p>A DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a>
  interface with parameter values "Core" and "2.0" (respectively) to
  determine whether or not this module is supported by the
  implementation. Any implementation that conforms to DOM Level 2 or
  a DOM Level 2 module must conform to the Core module. Please refer
  to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in this specification.</p>
  
  <dl>
  <dt><b>Exception <i><a id="ID-17189187"
  name='ID-17189187'>DOMException</a></i></b></dt>
  
  <dd>
  <p>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 <a
  href='core.html#ID-536297177'><code>NodeList</code></a>.</p>
  
  <p>Implementations should raise other exceptions under other
  circumstances. For example, implementations should raise an
  implementation-dependent exception if a <code>null</code> argument
  is passed.</p>
  
  <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.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  exception DOMException {
    unsigned short   code;
  };
  // ExceptionCode
  const unsigned short      INDEX_SIZE_ERR                 = 1;
  const unsigned short      DOMSTRING_SIZE_ERR             = 2;
  const unsigned short      HIERARCHY_REQUEST_ERR          = 3;
  const unsigned short      WRONG_DOCUMENT_ERR             = 4;
  const unsigned short      INVALID_CHARACTER_ERR          = 5;
  const unsigned short      NO_DATA_ALLOWED_ERR            = 6;
  const unsigned short      NO_MODIFICATION_ALLOWED_ERR    = 7;
  const unsigned short      NOT_FOUND_ERR                  = 8;
  const unsigned short      NOT_SUPPORTED_ERR              = 9;
  const unsigned short      INUSE_ATTRIBUTE_ERR            = 10;
  // Introduced in DOM Level 2:
  const unsigned short      INVALID_STATE_ERR              = 11;
  // Introduced in DOM Level 2:
  const unsigned short      SYNTAX_ERR                     = 12;
  // Introduced in DOM Level 2:
  const unsigned short      INVALID_MODIFICATION_ERR       = 13;
  // Introduced in DOM Level 2:
  const unsigned short      NAMESPACE_ERR                  = 14;
  // Introduced in DOM Level 2:
  const unsigned short      INVALID_ACCESS_ERR             = 15;
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a id="ID-258A00AF"
  name='ID-258A00AF'>ExceptionCode</a></i></b></dt>
  
  <dd>
  <p>An integer indicating the type of error generated.</p>
  
  <p><b>Note:</b> Other numeric codes are reserved for W3C for
  possible future use.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>DOMSTRING_SIZE_ERR</code></dt>
  
  <dd>If the specified range of text does not fit into a
  DOMString</dd>
  
  <dt><code class='constant-name'>HIERARCHY_REQUEST_ERR</code></dt>
  
  <dd>If any node is inserted somewhere it doesn't belong</dd>
  
  <dt><code class='constant-name'>INDEX_SIZE_ERR</code></dt>
  
  <dd>If index or size is negative, or greater than the allowed
  value</dd>
  
  <dt><code class='constant-name'>INUSE_ATTRIBUTE_ERR</code></dt>
  
  <dd>If an attempt is made to add an attribute that is already in
  use elsewhere</dd>
  
  <dt><code class='constant-name'>INVALID_ACCESS_ERR</code>,
  introduced in <b class='version'>DOM Level 2</b>.</dt>
  
  <dd>If a parameter or an operation is not supported by the
  underlying object.</dd>
  
  <dt><code class='constant-name'>INVALID_CHARACTER_ERR</code></dt>
  
  <dd>If an invalid or illegal character is specified, such as in a
  name. See <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#NT-Char'><em>production
  2</em></a> in the XML specification for the definition of a legal
  character, and <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name'><em>production
  5</em></a> for the definition of a legal name character.</dd>
  
  <dt><code class='constant-name'>INVALID_MODIFICATION_ERR</code>,
  introduced in <b class='version'>DOM Level 2</b>.</dt>
  
  <dd>If an attempt is made to modify the type of the underlying
  object.</dd>
  
  <dt><code class='constant-name'>INVALID_STATE_ERR</code>,
  introduced in <b class='version'>DOM Level 2</b>.</dt>
  
  <dd>If an attempt is made to use an object that is not, or is no
  longer, usable.</dd>
  
  <dt><code class='constant-name'>NAMESPACE_ERR</code>, introduced in
  <b class='version'>DOM Level 2</b>.</dt>
  
  <dd>If an attempt is made to create or change an object in a way
  which is incorrect with regard to namespaces.</dd>
  
  <dt><code class='constant-name'>NOT_FOUND_ERR</code></dt>
  
  <dd>If an attempt is made to reference a node in a context where it
  does not exist</dd>
  
  <dt><code class='constant-name'>NOT_SUPPORTED_ERR</code></dt>
  
  <dd>If the implementation does not support the requested type of
  object or operation.</dd>
  
  <dt><code class='constant-name'>NO_DATA_ALLOWED_ERR</code></dt>
  
  <dd>If data is specified for a node which does not support
  data</dd>
  
  <dt><code
  class='constant-name'>NO_MODIFICATION_ALLOWED_ERR</code></dt>
  
  <dd>If an attempt is made to modify an object where modifications
  are not allowed</dd>
  
  <dt><code class='constant-name'>SYNTAX_ERR</code>, introduced in <b
  class='version'>DOM Level 2</b>.</dt>
  
  <dd>If an invalid or illegal string is specified.</dd>
  
  <dt><code class='constant-name'>WRONG_DOCUMENT_ERR</code></dt>
  
  <dd>If a node is used in a different document than the one that
  created it (that doesn't support it)</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-102161490"
  name='ID-102161490'>DOMImplementation</a></i></b></dt>
  
  <dd>
  <p>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>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface DOMImplementation {
    boolean            hasFeature(in DOMString feature, 
                                  in DOMString version);
    // Introduced in DOM Level 2:
    DocumentType       createDocumentType(in DOMString qualifiedName, 
                                          in DOMString publicId, 
                                          in DOMString systemId)
                                          raises(DOMException);
    // Introduced in DOM Level 2:
    Document           createDocument(in DOMString namespaceURI, 
                                      in DOMString qualifiedName, 
                                      in DocumentType doctype)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Level-2-Core-DOM-createDocument"
  name='Level-2-Core-DOM-createDocument'>createDocument</a></code>
  introduced in <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Creates an XML <a
  href='core.html#i-Document'><code>Document</code></a> object of the
  specified type with its document element. HTML-only DOM
  implementations do not need to implement this method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the document element to create.<br />
  </dd>
  
  <dt><code class='parameter-name'>qualifiedName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-qualifiedname'><em>qualified
  name</em></a> of the document element to be created.<br />
  </dd>
  
  <dt><code class='parameter-name'>doctype</code> of type <a
  href='core.html#ID-412266927'><code>DocumentType</code></a></dt>
  
  <dd>The type of document to be created or <code>null</code>.<br />
  When <code>doctype</code> is not <code>null</code>, its <a
  href='core.html#node-ownerDoc'><code>Node.ownerDocument</code></a>
  attribute is set to the document being created.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#i-Document'><code>Document</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#i-Document'><code>Document</code></a> object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  contains an illegal character.</p>
  
  <p>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 "<a
  href='http://www.w3.org/XML/1998/namespace'>http://www.w3.org/XML/1998/namespace</a>"
  [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>].</p>
  
  <p>WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already
  been used with a different document or was created from a different
  implementation.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level-2-Core-DOM-createDocType"
  name='Level-2-Core-DOM-createDocType'>createDocumentType</a></code>
  introduced in <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Creates an empty <a
  href='core.html#ID-412266927'><code>DocumentType</code></a> 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 <a class='noxref'
  href='core.html#ID-412266927'><code>DocumentType</code></a>.<br />
  HTML-only DOM implementations do not need to implement this method.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>qualifiedName</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-qualifiedname'><em>qualified
  name</em></a> of the document type to be created.<br />
  </dd>
  
  <dt><code class='parameter-name'>publicId</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The external subset public identifier.<br />
  </dd>
  
  <dt><code class='parameter-name'>systemId</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The external subset system identifier.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-412266927'><code>DocumentType</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-412266927'><code>DocumentType</code></a> node
  with <a
  href='core.html#node-ownerDoc'><code>Node.ownerDocument</code></a>
  set to <code>null</code>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  contains an illegal character.</p>
  
  <p>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
  malformed.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-5CED94D7"
  name='ID-5CED94D7'>hasFeature</a></code></dt>
  
  <dd>
  <div class='method'>Test if the DOM implementation implements a
  specific feature. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>feature</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The 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 <a
  href='introduction.html#ID-Conformance'>Conformance</a> section.
  The name must be an <a href='glossary.html#dt-XML-name'><em>XML
  name</em></a>. 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".<br />
  </dd>
  
  <dt><code class='parameter-name'>version</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>This 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>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>boolean</code></p>
  </td>
  <td>
  <p><code>true</code> if the feature is implemented in the specified
  version, <code>false</code> otherwise.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-B63ED1A3"
  name='ID-B63ED1A3'>DocumentFragment</a></i></b></dt>
  
  <dd>
  <p><code>DocumentFragment</code> is a "lightweight" or "minimal" <a
  href='core.html#i-Document'><code>Document</code></a> object. It is
  very common to want to be able to extract a portion of a document's
  tree or to create a new fragment of a document. Imagine
  implementing a user command like cut or rearranging a document by
  moving fragments around. It is desirable to have an object which
  can hold such fragments and it is quite natural to use a Node for
  this purpose. While it is true that a <a class='noxref'
  href='core.html#i-Document'><code>Document</code></a> object could
  fulfill this role, a <a class='noxref'
  href='core.html#i-Document'><code>Document</code></a> object can
  potentially be a 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>
  
  <p>Furthermore, various operations -- such as inserting nodes as
  children of another <a
  href='core.html#ID-1950641247'><code>Node</code></a> -- may take
  <code>DocumentFragment</code> 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>
  
  <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 <a
  href='glossary.html#dt-well-formed'><em>well-formed XML
  documents</em></a> (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 <a
  href='core.html#ID-1312295772'><code>Text</code></a> node. Such a
  structure model represents neither an HTML document nor a
  well-formed XML document.</p>
  
  <p>When a <code>DocumentFragment</code> is inserted into a <a
  href='core.html#i-Document'><code>Document</code></a> (or indeed
  any other <a href='core.html#ID-1950641247'><code>Node</code></a>
  that may take children) the children of the
  <code>DocumentFragment</code> and not the
  <code>DocumentFragment</code> itself are inserted into the <a
  class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a>. This makes
  the <code>DocumentFragment</code> very useful when the user wishes
  to create nodes that are <a
  href='glossary.html#dt-sibling'><em>siblings</em></a>; the
  <code>DocumentFragment</code> acts as the parent of these nodes so
  that the user can use the standard methods from the <a
  class='noxref' href='core.html#ID-1950641247'><code>Node</code></a>
  interface, such as <code>insertBefore</code> and
  <code>appendChild</code>.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface DocumentFragment : Node {
  };
  </pre>
  </div>
  
  <br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="i-Document"
  name='i-Document'>Document</a></i></b></dt>
  
  <dd>
  <p>The <code>Document</code> interface represents the entire HTML
  or XML document. Conceptually, it is the <a
  href='glossary.html#dt-root-node'><em>root</em></a> of the document
  tree, and provides the primary access to the document's data.</p>
  
  <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 <a
  href='core.html#ID-1950641247'><code>Node</code></a> objects
  created have a <code>ownerDocument</code> attribute which
  associates them with the <code>Document</code> within whose context
  they were created.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface Document : Node {
    readonly attribute DocumentType     doctype;
    readonly attribute DOMImplementation  implementation;
    readonly attribute Element          documentElement;
    Element            createElement(in DOMString tagName)
                                          raises(DOMException);
    DocumentFragment   createDocumentFragment();
    Text               createTextNode(in DOMString data);
    Comment            createComment(in DOMString data);
    CDATASection       createCDATASection(in DOMString data)
                                          raises(DOMException);
    ProcessingInstruction createProcessingInstruction(in DOMString target, 
                                                      in DOMString data)
                                          raises(DOMException);
    Attr               createAttribute(in DOMString name)
                                          raises(DOMException);
    EntityReference    createEntityReference(in DOMString name)
                                          raises(DOMException);
    NodeList           getElementsByTagName(in DOMString tagname);
    // Introduced in DOM Level 2:
    Node               importNode(in Node importedNode, 
                                  in boolean deep)
                                          raises(DOMException);
    // Introduced in DOM Level 2:
    Element            createElementNS(in DOMString namespaceURI, 
                                       in DOMString qualifiedName)
                                          raises(DOMException);
    // Introduced in DOM Level 2:
    Attr               createAttributeNS(in DOMString namespaceURI, 
                                         in DOMString qualifiedName)
                                          raises(DOMException);
    // Introduced in DOM Level 2:
    NodeList           getElementsByTagNameNS(in DOMString namespaceURI, 
                                              in DOMString localName);
    // Introduced in DOM Level 2:
    Element            getElementById(in DOMString elementId);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-B63ED1A31"
  name='ID-B63ED1A31'>doctype</a></code> of type <a
  href='core.html#ID-412266927'><code>DocumentType</code></a>,
  readonly</dt>
  
  <dd>The Document Type Declaration (see <a
  href='core.html#ID-412266927'><code>DocumentType</code></a>)
  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. <code>docType</code> cannot be altered
  in any way, including through the use of methods inherited from the
  <a href='core.html#ID-1950641247'><code>Node</code></a> interface,
  such as <code>insertNode</code> or <code>removeNode</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-87CD092"
  name='ID-87CD092'>documentElement</a></code> of type <a
  href='core.html#ID-745549614'><code>Element</code></a>,
  readonly</dt>
  
  <dd>This is a <a
  href='glossary.html#dt-convenience'><em>convenience</em></a>
  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".<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-1B793EBA"
  name='ID-1B793EBA'>implementation</a></code> of type <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a>,
  readonly</dt>
  
  <dd>The <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a>
  object that handles this document. A DOM application may use
  objects from multiple implementations.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="ID-1084891198"
  name='ID-1084891198'>createAttribute</a></code></dt>
  
  <dd>
  <div class='method'>Creates an <a
  href='core.html#ID-637646024'><code>Attr</code></a> of the given
  name. Note that the <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> instance can
  then be set on an <a
  href='core.html#ID-745549614'><code>Element</code></a> using the
  <code>setAttributeNode</code> method.<br />
  To create an attribute with a qualified name and namespace URI, use
  the <code>createAttributeNS</code> method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the attribute.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-637646024'><code>Attr</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> 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.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified name contains an
  illegal character.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-DocCrAttrNS"
  name='ID-DocCrAttrNS'>createAttributeNS</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Creates an attribute of the given qualified
  name and namespace URI. HTML-only DOM implementations do not need
  to implement this method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the attribute to create.<br />
  </dd>
  
  <dt><code class='parameter-name'>qualifiedName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-qualifiedname'><em>qualified
  name</em></a> of the attribute to instantiate.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-637646024'><code>Attr</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> object with the
  following attributes:</p>
  
  <table border='1'
  summary='Layout table: the first cell the name property, the second cell contains his initial value'>
  <tr>
  <th>Attribute</th>
  <th>Value</th>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-F68D095'><code>Node.nodeName</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>qualifiedName</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-NodeNSname'><code>Node.namespaceURI</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>
  <code>namespaceURI</code></td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-NodeNSPrefix'><code>Node.prefix</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>prefix, extracted from
  <code>qualifiedName</code>, or <code>null</code> if there is no
  prefix</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-NodeNSLocalN'><code>Node.localName</code></a></td>
  <td valign='top' rowspan='1' colspan='1'><a class='noxref'
  href='glossary.html#dt-localname'><em>local name</em></a>,
  extracted from <code>qualifiedName</code></td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-1112119403'><code>Attr.name</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>
  <code>qualifiedName</code></td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-F68D080'><code>Node.nodeValue</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>the empty string</td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  contains an illegal character.</p>
  
  <p>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>, if the
  <code>qualifiedName</code> has a prefix that is "xml" and the
  <code>namespaceURI</code> is different from "<a
  href='http://www.w3.org/XML/1998/namespace'>http://www.w3.org/XML/1998/namespace</a>",
  or if the <code>qualifiedName</code> is "xmlns" and the
  <code>namespaceURI</code> is different from "<a
  href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>".</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-D26C0AF8"
  name='ID-D26C0AF8'>createCDATASection</a></code></dt>
  
  <dd>
  <div class='method'>Creates a <a
  href='core.html#ID-667469212'><code>CDATASection</code></a> node
  whose value is the specified string. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>data</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The data for the <a
  href='core.html#ID-667469212'><code>CDATASection</code></a>
  contents.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-667469212'><code>CDATASection</code></a></p>
  </td>
  <td>
  <p>The new <a class='noxref'
  href='core.html#ID-667469212'><code>CDATASection</code></a>
  object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NOT_SUPPORTED_ERR: Raised if this document is an HTML
  document.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-1334481328"
  name='ID-1334481328'>createComment</a></code></dt>
  
  <dd>
  <div class='method'>Creates a <a
  href='core.html#ID-1728279322'><code>Comment</code></a> node given
  the specified string. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>data</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The data for the node.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1728279322'><code>Comment</code></a></p>
  </td>
  <td>
  <p>The new <a class='noxref'
  href='core.html#ID-1728279322'><code>Comment</code></a> object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-35CB04B5"
  name='ID-35CB04B5'>createDocumentFragment</a></code></dt>
  
  <dd>
  <div class='method'>Creates an empty <a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>
  object. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-2141741547"
  name='ID-2141741547'>createElement</a></code></dt>
  
  <dd>
  <div class='method'>Creates an element of the type specified. Note
  that the instance returned implements the <a
  href='core.html#ID-745549614'><code>Element</code></a> interface,
  so attributes can be specified directly on the returned
  object.<br />
  In addition, if there are known attributes with default values, <a
  href='core.html#ID-637646024'><code>Attr</code></a> 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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>tagName</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>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.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-745549614'><code>Element</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-745549614'><code>Element</code></a> 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>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified name contains an
  illegal character.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-DocCrElNS"
  name='ID-DocCrElNS'>createElementNS</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Creates an element of the given qualified name
  and namespace URI. HTML-only DOM implementations do not need to
  implement this method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the element to create.<br />
  </dd>
  
  <dt><code class='parameter-name'>qualifiedName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-qualifiedname'><em>qualified
  name</em></a> of the element type to instantiate.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-745549614'><code>Element</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-745549614'><code>Element</code></a> object with
  the following attributes:</p>
  
  <table border='1'
  summary='Layout table: the first cell the name property, the second cell contains his initial value'>
  <tr>
  <th>Attribute</th>
  <th>Value</th>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-F68D095'><code>Node.nodeName</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>
  <code>qualifiedName</code></td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-NodeNSname'><code>Node.namespaceURI</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>
  <code>namespaceURI</code></td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-NodeNSPrefix'><code>Node.prefix</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>prefix, extracted from
  <code>qualifiedName</code>, or <code>null</code> if there is no
  prefix</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-NodeNSLocalN'><code>Node.localName</code></a></td>
  <td valign='top' rowspan='1' colspan='1'><a class='noxref'
  href='glossary.html#dt-localname'><em>local name</em></a>,
  extracted from <code>qualifiedName</code></td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'><a
  href='core.html#ID-104682815'><code>Element.tagName</code></a></td>
  <td valign='top' rowspan='1' colspan='1'>
  <code>qualifiedName</code></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  contains an illegal character.</p>
  
  <p>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 "<a
  href='http://www.w3.org/XML/1998/namespace'>http://www.w3.org/XML/1998/namespace</a>"
  [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>].</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-392B75AE"
  name='ID-392B75AE'>createEntityReference</a></code></dt>
  
  <dd>
  <div class='method'>Creates an <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a>
  object. In addition, if the referenced entity is known, the child
  list of the <a class='noxref'
  href='core.html#ID-11C98490'><code>EntityReference</code></a> node
  is made the same as that of the corresponding <a
  href='core.html#ID-527DCFF2'><code>Entity</code></a> node. 
  
  <p><b>Note:</b> If any descendant of the <a
  href='core.html#ID-527DCFF2'><code>Entity</code></a> node has an
  unbound <a href='glossary.html#dt-namespaceprefix'><em>namespace
  prefix</em></a>, the corresponding descendant of the created <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a> node
  is also unbound; (its <code>namespaceURI</code> is
  <code>null</code>). The DOM Level 2 does not support any mechanism
  to resolve namespace prefixes.</p>
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the entity to reference.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-11C98490'><code>EntityReference</code></a></p>
  </td>
  <td>
  <p>The new <a class='noxref'
  href='core.html#ID-11C98490'><code>EntityReference</code></a>
  object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified name contains an
  illegal character.</p>
  
  <p>NOT_SUPPORTED_ERR: Raised if this document is an HTML
  document.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-135944439"
  name='ID-135944439'>createProcessingInstruction</a></code></dt>
  
  <dd>
  <div class='method'>Creates a <a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>
  node given the specified name and data strings. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>target</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The target part of the processing instruction.<br />
  </dd>
  
  <dt><code class='parameter-name'>data</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The data for the node.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a></p>
  </td>
  <td>
  <p>The new <a class='noxref'
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>
  object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified target contains
  an illegal character.</p>
  
  <p>NOT_SUPPORTED_ERR: Raised if this document is an HTML
  document.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-1975348127"
  name='ID-1975348127'>createTextNode</a></code></dt>
  
  <dd>
  <div class='method'>Creates a <a
  href='core.html#ID-1312295772'><code>Text</code></a> node given the
  specified string. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>data</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The data for the node.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1312295772'><code>Text</code></a></p>
  </td>
  <td>
  <p>The new <a class='noxref'
  href='core.html#ID-1312295772'><code>Text</code></a> object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-getElBId"
  name='ID-getElBId'>getElementById</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Returns the <a
  href='core.html#ID-745549614'><code>Element</code></a> 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>. 
  
  <p><b>Note:</b> 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>.</p>
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>elementId</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The unique <code>id</code> value for an element.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-745549614'><code>Element</code></a></p>
  </td>
  <td>
  <p>The matching element.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-A6C9094"
  name='ID-A6C9094'>getElementsByTagName</a></code></dt>
  
  <dd>
  <div class='method'>Returns a <a
  href='core.html#ID-536297177'><code>NodeList</code></a> of all the
  <a href='core.html#ID-745549614'><code>Elements</code></a> with a
  given tag name in the order in which they are encountered in a
  preorder traversal of the <code>Document</code> tree. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>tagname</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the tag to match on. The special value "*" matches
  all tags.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-536297177'><code>NodeList</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-536297177'><code>NodeList</code></a> object
  containing all the matched <a
  href='core.html#ID-745549614'><code>Elements</code></a>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-getElBTNNS"
  name='ID-getElBTNNS'>getElementsByTagNameNS</a></code> introduced
  in <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Returns a <a
  href='core.html#ID-536297177'><code>NodeList</code></a> of all the
  <a href='core.html#ID-745549614'><code>Elements</code></a> with a
  given <a href='glossary.html#dt-localname'><em>local name</em></a>
  and namespace URI in the order in which they are encountered in a
  preorder traversal of the <code>Document</code> tree. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the elements to match on. The special value "*"
  matches all namespaces.<br />
  </dd>
  
  <dt><code class='parameter-name'>localName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-localname'><em>local
  name</em></a> of the elements to match on. The special value "*"
  matches all local names.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-536297177'><code>NodeList</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-536297177'><code>NodeList</code></a> object
  containing all the matched <a
  href='core.html#ID-745549614'><code>Elements</code></a>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Core-Document-importNode"
  name='Core-Document-importNode'>importNode</a></code> introduced in
  <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>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
  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 <a
  href='core.html#ID-1950641247'><code>Node</code></a>, 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
  each type of node. 
  
  <dl>
  <dt><b>ATTRIBUTE_NODE</b></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 <a
  href='core.html#ID-637646024'><code>Attr</code></a>. The <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> of the
  source <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> are recursively
  imported and the resulting nodes reassembled to form the
  corresponding subtree.<br />
  Note that the <code>deep</code> parameter has no effect on <a
  href='core.html#ID-637646024'><code>Attr</code></a> nodes; they
  always carry their children with them when imported.</dd>
  
  <dt><b>DOCUMENT_FRAGMENT_NODE</b></dt>
  
  <dd>If the <code>deep</code> option was set to <code>true</code>,
  the <a href='glossary.html#dt-descendant'><em>descendants</em></a>
  of the source element are recursively imported and the resulting
  nodes reassembled to form the corresponding subtree. Otherwise,
  this simply generates an empty <a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>.</dd>
  
  <dt><b>DOCUMENT_NODE</b></dt>
  
  <dd><code>Document</code> nodes cannot be imported.</dd>
  
  <dt><b>DOCUMENT_TYPE_NODE</b></dt>
  
  <dd><a href='core.html#ID-412266927'><code>DocumentType</code></a>
  nodes cannot be imported.</dd>
  
  <dt><b>ELEMENT_NODE</b></dt>
  
  <dd><em>Specified</em> attribute nodes of the source element are
  imported, and the generated <a
  href='core.html#ID-637646024'><code>Attr</code></a> nodes are
  attached to the generated <a
  href='core.html#ID-745549614'><code>Element</code></a>. Default
  attributes are <em>not</em> 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 <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> of the
  source element are recursively imported and the resulting nodes
  reassembled to form the corresponding subtree.</dd>
  
  <dt><b>ENTITY_NODE</b></dt>
  
  <dd><a href='core.html#ID-527DCFF2'><code>Entity</code></a> nodes
  can be imported, however in the current release of the DOM the <a
  href='core.html#ID-412266927'><code>DocumentType</code></a> is
  readonly. Ability to add these imported nodes to a <a
  class='noxref'
  href='core.html#ID-412266927'><code>DocumentType</code></a> will be
  considered for addition to a future release of the DOM.<br />
  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 <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> of the
  the source <a href='core.html#ID-527DCFF2'><code>Entity</code></a>
  are recursively imported and the resulting nodes reassembled to
  form the corresponding subtree.</dd>
  
  <dt><b>ENTITY_REFERENCE_NODE</b></dt>
  
  <dd>Only the <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a>
  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><b>NOTATION_NODE</b></dt>
  
  <dd><a href='core.html#ID-5431D1B9'><code>Notation</code></a> nodes
  can be imported, however in the current release of the DOM the <a
  href='core.html#ID-412266927'><code>DocumentType</code></a> is
  readonly. Ability to add these imported nodes to a <a
  class='noxref'
  href='core.html#ID-412266927'><code>DocumentType</code></a> will be
  considered for addition to a future release of the DOM.<br />
  On import, the <code>publicId</code> and <code>systemId</code>
  attributes are copied.<br />
  Note that the <code>deep</code> parameter has no effect on <a
  href='core.html#ID-5431D1B9'><code>Notation</code></a> nodes since
  they never have any children.</dd>
  
  <dt><b>PROCESSING_INSTRUCTION_NODE</b></dt>
  
  <dd>The imported node copies its <code>target</code> and
  <code>data</code> values from those of the source node.</dd>
  
  <dt><b>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</b></dt>
  
  <dd>These three types of nodes inheriting from <a
  href='core.html#ID-FF21A306'><code>CharacterData</code></a> copy
  their <code>data</code> and <code>length</code> attributes from
  those of the source node.</dd>
  </dl>
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>importedNode</code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>The node to import.<br />
  </dd>
  
  <dt><code class='parameter-name'>deep</code> of type
  <code>boolean</code></dt>
  
  <dd>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 has no effect on <a
  href='core.html#ID-637646024'><code>Attr</code></a>, <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a>, and
  <a href='core.html#ID-5431D1B9'><code>Notation</code></a>
  nodes.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The imported node that belongs to this
  <code>Document</code>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NOT_SUPPORTED_ERR: Raised if the type of node being imported is
  not supported.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-1950641247"
  name='ID-1950641247'>Node</a></i></b></dt>
  
  <dd>
  <p>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, <a href='core.html#ID-1312295772'><code>Text</code></a>
  nodes may not have children, and adding children to such nodes
  results in a <a
  href='core.html#ID-17189187'><code>DOMException</code></a> being
  raised.</p>
  
  <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 <a href='core.html#ID-745549614'><code>Element</code></a> or
  <code>attributes</code> for a <a
  href='core.html#ID-1728279322'><code>Comment</code></a>), 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>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface Node {
  
    // NodeType
    const unsigned short      ELEMENT_NODE                   = 1;
    const unsigned short      ATTRIBUTE_NODE                 = 2;
    const unsigned short      TEXT_NODE                      = 3;
    const unsigned short      CDATA_SECTION_NODE             = 4;
    const unsigned short      ENTITY_REFERENCE_NODE          = 5;
    const unsigned short      ENTITY_NODE                    = 6;
    const unsigned short      PROCESSING_INSTRUCTION_NODE    = 7;
    const unsigned short      COMMENT_NODE                   = 8;
    const unsigned short      DOCUMENT_NODE                  = 9;
    const unsigned short      DOCUMENT_TYPE_NODE             = 10;
    const unsigned short      DOCUMENT_FRAGMENT_NODE         = 11;
    const unsigned short      NOTATION_NODE                  = 12;
  
    readonly attribute DOMString        nodeName;
             attribute DOMString        nodeValue;
                                          // raises(DOMException) on setting
                                          // raises(DOMException) on retrieval
  
    readonly attribute unsigned short   nodeType;
    readonly attribute Node             parentNode;
    readonly attribute NodeList         childNodes;
    readonly attribute Node             firstChild;
    readonly attribute Node             lastChild;
    readonly attribute Node             previousSibling;
    readonly attribute Node             nextSibling;
    readonly attribute NamedNodeMap     attributes;
    // Modified in DOM Level 2:
    readonly attribute Document         ownerDocument;
    Node               insertBefore(in Node newChild, 
                                    in Node refChild)
                                          raises(DOMException);
    Node               replaceChild(in Node newChild, 
                                    in Node oldChild)
                                          raises(DOMException);
    Node               removeChild(in Node oldChild)
                                          raises(DOMException);
    Node               appendChild(in Node newChild)
                                          raises(DOMException);
    boolean            hasChildNodes();
    Node               cloneNode(in boolean deep);
    // Modified in DOM Level 2:
    void               normalize();
    // Introduced in DOM Level 2:
    boolean            isSupported(in DOMString feature, 
                                   in DOMString version);
    // Introduced in DOM Level 2:
    readonly attribute DOMString        namespaceURI;
    // Introduced in DOM Level 2:
             attribute DOMString        prefix;
                                          // raises(DOMException) on setting
  
    // Introduced in DOM Level 2:
    readonly attribute DOMString        localName;
    // Introduced in DOM Level 2:
    boolean            hasAttributes();
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a id="ID-1841493061"
  name='ID-1841493061'>NodeType</a></i></b></dt>
  
  <dd>
  <p>An integer indicating which type of node this is.</p>
  
  <p><b>Note:</b> Numeric codes up to 200 are reserved to W3C for
  possible future use.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>ATTRIBUTE_NODE</code></dt>
  
  <dd>The node is an <a
  href='core.html#ID-637646024'><code>Attr</code></a>.</dd>
  
  <dt><code class='constant-name'>CDATA_SECTION_NODE</code></dt>
  
  <dd>The node is a <a
  href='core.html#ID-667469212'><code>CDATASection</code></a>.</dd>
  
  <dt><code class='constant-name'>COMMENT_NODE</code></dt>
  
  <dd>The node is a <a
  href='core.html#ID-1728279322'><code>Comment</code></a>.</dd>
  
  <dt><code class='constant-name'>DOCUMENT_FRAGMENT_NODE</code></dt>
  
  <dd>The node is a <a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>.</dd>
  
  <dt><code class='constant-name'>DOCUMENT_NODE</code></dt>
  
  <dd>The node is a <a
  href='core.html#i-Document'><code>Document</code></a>.</dd>
  
  <dt><code class='constant-name'>DOCUMENT_TYPE_NODE</code></dt>
  
  <dd>The node is a <a
  href='core.html#ID-412266927'><code>DocumentType</code></a>.</dd>
  
  <dt><code class='constant-name'>ELEMENT_NODE</code></dt>
  
  <dd>The node is an <a
  href='core.html#ID-745549614'><code>Element</code></a>.</dd>
  
  <dt><code class='constant-name'>ENTITY_NODE</code></dt>
  
  <dd>The node is an <a
  href='core.html#ID-527DCFF2'><code>Entity</code></a>.</dd>
  
  <dt><code class='constant-name'>ENTITY_REFERENCE_NODE</code></dt>
  
  <dd>The node is an <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a>.</dd>
  
  <dt><code class='constant-name'>NOTATION_NODE</code></dt>
  
  <dd>The node is a <a
  href='core.html#ID-5431D1B9'><code>Notation</code></a>.</dd>
  
  <dt><code
  class='constant-name'>PROCESSING_INSTRUCTION_NODE</code></dt>
  
  <dd>The node is a <a
  href='core.html#ID-1004215813'><code>ProcessingInstruction</code></a>.</dd>
  
  <dt><code class='constant-name'>TEXT_NODE</code></dt>
  
  <dd>The node is a <a
  href='core.html#ID-1312295772'><code>Text</code></a> node.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dd>
  <p>The values of <code>nodeName</code>, <code>nodeValue</code>, and
  <code>attributes</code> vary according to the node type as
  follows:</p>
  
  <table border='1'
  summary='Layout table: the first cell contains the name of the interface, the second contains the value of the nodeName attribute for this interface, the third contains the value of the nodeValue attribute for this interface and the fourth contains the value of the attributes attribute for this interface'>
  <tr>
  <th>Interface</th>
  <th>nodeName</th>
  <th>nodeValue</th>
  <th>attributes</th>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>Attr</td>
  <td valign='top' rowspan='1' colspan='1'>name of attribute</td>
  <td valign='top' rowspan='1' colspan='1'>value of attribute</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>CDATASection</td>
  <td valign='top' rowspan='1' colspan='1'>#cdata-section</td>
  <td valign='top' rowspan='1' colspan='1'>content of the CDATA
  Section</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>Comment</td>
  <td valign='top' rowspan='1' colspan='1'>#comment</td>
  <td valign='top' rowspan='1' colspan='1'>content of the
  comment</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>Document</td>
  <td valign='top' rowspan='1' colspan='1'>#document</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>DocumentFragment</td>
  <td valign='top' rowspan='1' colspan='1'>#document-fragment</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>DocumentType</td>
  <td valign='top' rowspan='1' colspan='1'>document type name</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>Element</td>
  <td valign='top' rowspan='1' colspan='1'>tag name</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  <td valign='top' rowspan='1' colspan='1'>NamedNodeMap</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>Entity</td>
  <td valign='top' rowspan='1' colspan='1'>entity name</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>EntityReference</td>
  <td valign='top' rowspan='1' colspan='1'>name of entity
  referenced</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>Notation</td>
  <td valign='top' rowspan='1' colspan='1'>notation name</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>ProcessingInstruction</td>
  <td valign='top' rowspan='1' colspan='1'>target</td>
  <td valign='top' rowspan='1' colspan='1'>entire content excluding
  the target</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  
  <tr>
  <td valign='top' rowspan='1' colspan='1'>Text</td>
  <td valign='top' rowspan='1' colspan='1'>#text</td>
  <td valign='top' rowspan='1' colspan='1'>content of the text
  node</td>
  <td valign='top' rowspan='1' colspan='1'>null</td>
  </tr>
  </table>
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-84CF096"
  name='ID-84CF096'>attributes</a></code> of type <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>,
  readonly</dt>
  
  <dd>A <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>
  containing the attributes of this node (if it is an <a
  href='core.html#ID-745549614'><code>Element</code></a>) or
  <code>null</code> otherwise.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-1451460987"
  name='ID-1451460987'>childNodes</a></code> of type <a
  href='core.html#ID-536297177'><code>NodeList</code></a>,
  readonly</dt>
  
  <dd>A <a href='core.html#ID-536297177'><code>NodeList</code></a>
  that contains all children of this node. If there are no children,
  this is a <a class='noxref'
  href='core.html#ID-536297177'><code>NodeList</code></a> containing
  no nodes.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-169727388"
  name='ID-169727388'>firstChild</a></code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a>, readonly</dt>
  
  <dd>The first child of this node. If there is no such node, this
  returns <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-61AD09FB"
  name='ID-61AD09FB'>lastChild</a></code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a>, readonly</dt>
  
  <dd>The last child of this node. If there is no such node, this
  returns <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-NodeNSLocalN"
  name='ID-NodeNSLocalN'>localName</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>, readonly,
  introduced in <b class='version'>DOM Level 2</b></dt>
  
  <dd>Returns the local part of the <a
  href='glossary.html#dt-qualifiedname'><em>qualified name</em></a>
  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 <a
  href='core.html#i-Document'><code>Document</code></a> interface,
  this is always <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-NodeNSname"
  name='ID-NodeNSname'>namespaceURI</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>, readonly,
  introduced in <b class='version'>DOM Level 2</b></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> 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
  <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1
  method, such as <code>createElement</code> from the <a
  href='core.html#i-Document'><code>Document</code></a> interface,
  this is always <code>null</code>. 
  
  <p><b>Note:</b> Per the <em>Namespaces in XML</em> Specification
  [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>] 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.</p>
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-6AC54C2F"
  name='ID-6AC54C2F'>nextSibling</a></code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a>, readonly</dt>
  
  <dd>The node immediately following this node. If there is no such
  node, this returns <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-F68D095"
  name='ID-F68D095'>nodeName</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>The name of this node, depending on its type; see the table
  above.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-111237558"
  name='ID-111237558'>nodeType</a></code> of type <code>unsigned
  short</code>, readonly</dt>
  
  <dd>A code representing the type of the underlying object, as
  defined above.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-F68D080"
  name='ID-F68D080'>nodeValue</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>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.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div class='exceptions'><b>Exceptions on retrieval</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>DOMSTRING_SIZE_ERR: Raised when it would return more characters
  than fit in a <a
  href='core.html#DOMString'><code>DOMString</code></a> variable on
  the implementation platform.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="node-ownerDoc"
  name='node-ownerDoc'>ownerDocument</a></code> of type <a
  href='core.html#i-Document'><code>Document</code></a>, readonly,
  modified in <b class='version'>DOM Level 2</b></dt>
  
  <dd>The <a href='core.html#i-Document'><code>Document</code></a>
  object associated with this node. This is also the <a
  class='noxref'
  href='core.html#i-Document'><code>Document</code></a> object used
  to create new nodes. When this node is a <a class='noxref'
  href='core.html#i-Document'><code>Document</code></a> or a <a
  href='core.html#ID-412266927'><code>DocumentType</code></a> which
  is not used with any <a class='noxref'
  href='core.html#i-Document'><code>Document</code></a> yet, this is
  <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-1060184317"
  name='ID-1060184317'>parentNode</a></code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a>, readonly</dt>
  
  <dd>The <a href='glossary.html#dt-parent'><em>parent</em></a> of
  this node. All nodes, except <a
  href='core.html#ID-637646024'><code>Attr</code></a>, <a
  href='core.html#i-Document'><code>Document</code></a>, <a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>, <a
  href='core.html#ID-527DCFF2'><code>Entity</code></a>, and <a
  href='core.html#ID-5431D1B9'><code>Notation</code></a> 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>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-NodeNSPrefix"
  name='ID-NodeNSPrefix'>prefix</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>, introduced
  in <b class='version'>DOM Level 2</b></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceprefix'><em>namespace
  prefix</em></a> 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 <a
  href='glossary.html#dt-qualifiedname'><em>qualified name</em></a>,
  as well as the <code>tagName</code> and <code>name</code>
  attributes of the <a
  href='core.html#ID-745549614'><code>Element</code></a> and <a
  href='core.html#ID-637646024'><code>Attr</code></a> 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 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 <a
  href='core.html#i-Document'><code>Document</code></a> interface,
  this is always <code>null</code>.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified prefix contains
  an illegal character.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  
  <p>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 "<a
  href='http://www.w3.org/XML/1998/namespace'>http://www.w3.org/XML/1998/namespace</a>",
  if this node is an attribute and the specified prefix is "xmlns"
  and the <code>namespaceURI</code> of this node is different from
  "<a
  href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>",
  or if this node is an attribute and the <code>qualifiedName</code>
  of this node is "xmlns" [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>].</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-640FB3C8"
  name='ID-640FB3C8'>previousSibling</a></code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a>, readonly</dt>
  
  <dd>The node immediately preceding this node. If there is no such
  node, this returns <code>null</code>.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="ID-184E7107"
  name='ID-184E7107'>appendChild</a></code></dt>
  
  <dd>
  <div class='method'>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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>newChild</code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>The node to add.<br />
  If it is a <a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>
  object, the entire contents of the document fragment are moved into
  the child list of this node<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The node added.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>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 <a
  href='glossary.html#dt-ancestor'><em>ancestors</em></a>.</p>
  
  <p>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
  from a different document than the one that created this node.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-3A0ED0A4"
  name='ID-3A0ED0A4'>cloneNode</a></code></dt>
  
  <dd>
  <div class='method'>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> is <code>null</code>.).<br />
  Cloning an <a
  href='core.html#ID-745549614'><code>Element</code></a> 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 <a
  href='core.html#ID-1312295772'><code>Text</code></a> node. Cloning
  an <code>Attribute</code> directly, as opposed to be cloned as part
  of an <a class='noxref'
  href='core.html#ID-745549614'><code>Element</code></a> 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 <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a> clone
  are <a href='glossary.html#dt-readonly-node'><em>readonly</em></a>.
  In addition, clones of unspecified <a
  href='core.html#ID-637646024'><code>Attr</code></a> nodes are
  specified. And, cloning <a
  href='core.html#i-Document'><code>Document</code></a>, <a
  href='core.html#ID-412266927'><code>DocumentType</code></a>, <a
  href='core.html#ID-527DCFF2'><code>Entity</code></a>, and <a
  href='core.html#ID-5431D1B9'><code>Notation</code></a> nodes is
  implementation dependent. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>deep</code> of type
  <code>boolean</code></dt>
  
  <dd>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 <a
  href='core.html#ID-745549614'><code>Element</code></a>).<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The duplicate node.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-NodeHasAttrs"
  name='ID-NodeHasAttrs'>hasAttributes</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Returns whether this node (if it is an element)
  has any attributes. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>boolean</code></p>
  </td>
  <td>
  <p><code>true</code> if this node has any attributes,
  <code>false</code> otherwise.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-810594187"
  name='ID-810594187'>hasChildNodes</a></code></dt>
  
  <dd>
  <div class='method'>Returns whether this node has any children. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>boolean</code></p>
  </td>
  <td>
  <p><code>true</code> if this node has any children,
  <code>false</code> otherwise.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-952280727"
  name='ID-952280727'>insertBefore</a></code></dt>
  
  <dd>
  <div class='method'>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 <a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>
  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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>newChild</code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>The node to insert.<br />
  </dd>
  
  <dt><code class='parameter-name'>refChild</code> of type <a
  class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>The reference node, i.e., the node before which the new node
  must be inserted.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The node being inserted.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>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 <a
  href='glossary.html#dt-ancestor'><em>ancestors</em></a>.</p>
  
  <p>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
  from a different document than the one that created this node.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or
  if the parent of the node being inserted is readonly.</p>
  
  <p>NOT_FOUND_ERR: Raised if <code>refChild</code> is not a child of
  this node.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Level-2-Core-Node-supports"
  name='Level-2-Core-Node-supports'>isSupported</a></code> introduced
  in <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Tests whether the DOM implementation implements
  a specific feature and that feature is supported by this node. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>feature</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the feature to test. This is the same name which
  can be passed to the method <code>hasFeature</code> on <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a>.<br />
  </dd>
  
  <dt><code class='parameter-name'>version</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>This 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>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>boolean</code></p>
  </td>
  <td>
  <p>Returns <code>true</code> if the specified feature is supported
  on this node, <code>false</code> otherwise.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-normalize"
  name='ID-normalize'>normalize</a></code> modified in <b
  class='version'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Puts all <a
  href='core.html#ID-1312295772'><code>Text</code></a> 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 <a class='noxref'
  href='core.html#ID-1312295772'><code>Text</code></a> nodes, i.e.,
  there are neither adjacent <a class='noxref'
  href='core.html#ID-1312295772'><code>Text</code></a> nodes nor
  empty <a class='noxref'
  href='core.html#ID-1312295772'><code>Text</code></a> 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 [<a class='noxref'
  href='references.html#XPointer'>XPointer</a>] lookups) that depend
  on a particular document tree structure are to be used. 
  
  <p><b>Note:</b> In cases where the document contains <a
  href='core.html#ID-667469212'><code>CDATASections</code></a>, the
  normalize operation alone may not be sufficient, since XPointers do
  not differentiate between <a
  href='core.html#ID-1312295772'><code>Text</code></a> nodes and <a
  href='core.html#ID-667469212'><code>CDATASection</code></a>
  nodes.</p>
  
  <div><b>No Parameters</b></div>
  
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-1734834066"
  name='ID-1734834066'>removeChild</a></code></dt>
  
  <dd>
  <div class='method'>Removes the child node indicated by
  <code>oldChild</code> from the list of children, and returns it. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>oldChild</code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>The node being removed.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The node removed.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  
  <p>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
  this node.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-785887307"
  name='ID-785887307'>replaceChild</a></code></dt>
  
  <dd>
  <div class='method'>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 <a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>
  object, <code>oldChild</code> is replaced by all of the <a
  class='noxref'
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>
  children, which are inserted in the same order. If the
  <code>newChild</code> is already in the tree, it is first removed. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>newChild</code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>The new node to put in the child list.<br />
  </dd>
  
  <dt><code class='parameter-name'>oldChild</code> of type <a
  class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>The node being replaced in the list.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The node replaced.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>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 <a
  href='glossary.html#dt-ancestor'><em>ancestors</em></a>.</p>
  
  <p>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
  from a different document than the one that created this node.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent
  of the new node is readonly.</p>
  
  <p>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
  this node.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-536297177"
  name='ID-536297177'>NodeList</a></i></b></dt>
  
  <dd>
  <p>The <code>NodeList</code> interface provides the abstraction of
  an ordered collection of nodes, without defining or constraining
  how this collection is implemented. <code>NodeList</code> objects
  in the DOM are <a href='core.html#td-live'><em>live</em></a>.</p>
  
  <p>The items in the <code>NodeList</code> are accessible via an
  integral index, starting from 0.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface NodeList {
    Node               item(in unsigned long index);
    readonly attribute unsigned long    length;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-203510337"
  name='ID-203510337'>length</a></code> of type <code>unsigned
  long</code>, readonly</dt>
  
  <dd>The number of nodes in the list. The range of valid child node
  indices is 0 to <code>length-1</code> inclusive.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="ID-844377136"
  name='ID-844377136'>item</a></code></dt>
  
  <dd>
  <div class='method'>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>. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>Index into the collection.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>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.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-1780488922"
  name='ID-1780488922'>NamedNodeMap</a></i></b></dt>
  
  <dd>
  <p>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 <a
  href='core.html#ID-536297177'><code>NodeList</code></a>;
  <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>, and does not imply that the DOM
  specifies an order to these Nodes.</p>
  
  <p><code>NamedNodeMap</code> objects in the DOM are <a
  href='core.html#td-live'><em>live</em></a>.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface NamedNodeMap {
    Node               getNamedItem(in DOMString name);
    Node               setNamedItem(in Node arg)
                                          raises(DOMException);
    Node               removeNamedItem(in DOMString name)
                                          raises(DOMException);
    Node               item(in unsigned long index);
    readonly attribute unsigned long    length;
    // Introduced in DOM Level 2:
    Node               getNamedItemNS(in DOMString namespaceURI, 
                                      in DOMString localName);
    // Introduced in DOM Level 2:
    Node               setNamedItemNS(in Node arg)
                                          raises(DOMException);
    // Introduced in DOM Level 2:
    Node               removeNamedItemNS(in DOMString namespaceURI, 
                                         in DOMString localName)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-6D0FB19E"
  name='ID-6D0FB19E'>length</a></code> of type <code>unsigned
  long</code>, readonly</dt>
  
  <dd>The number of nodes in this map. The range of valid child node
  indices is <code>0</code> to <code>length-1</code> inclusive.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="ID-1074577549"
  name='ID-1074577549'>getNamedItem</a></code></dt>
  
  <dd>
  <div class='method'>Retrieves a node specified by name. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <code>nodeName</code> of a node to retrieve.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>A <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> (of any type)
  with the specified <code>nodeName</code>, or <code>null</code> if
  it does not identify any node in this map.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-getNamedItemNS"
  name='ID-getNamedItemNS'>getNamedItemNS</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Retrieves a node specified by local name and
  namespace URI. HTML-only DOM implementations do not need to
  implement this method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the node to retrieve.<br />
  </dd>
  
  <dt><code class='parameter-name'>localName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-localname'><em>local
  name</em></a> of the node to retrieve.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>A <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> (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.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-349467F9"
  name='ID-349467F9'>item</a></code></dt>
  
  <dd>
  <div class='method'>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>. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>Index into this map.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The node at the <code>index</code>th position in the map, or
  <code>null</code> if that is not a valid index.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-D58B193"
  name='ID-D58B193'>removeNamedItem</a></code></dt>
  
  <dd>
  <div class='method'>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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <code>nodeName</code> of the node to remove.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The node removed from this map if a node with such a name
  exists.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NOT_FOUND_ERR: Raised if there is no node named
  <code>name</code> in this map.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-removeNamedItemNS"
  name='ID-removeNamedItemNS'>removeNamedItemNS</a></code> introduced
  in <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>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 <a
  href='core.html#ID-1950641247'><code>Node</code></a> 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.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the node to remove.<br />
  </dd>
  
  <dt><code class='parameter-name'>localName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-localname'><em>local
  name</em></a> of the node to remove.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>The node removed from this map if a node with such a local name
  and namespace URI exists.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NOT_FOUND_ERR: Raised if there is no node with the specified
  <code>namespaceURI</code> and <code>localName</code> in this
  map.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-1025163788"
  name='ID-1025163788'>setNamedItem</a></code></dt>
  
  <dd>
  <div class='method'>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
  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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>arg</code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>A node to store in this map. The node will later be accessible
  using the value of its <code>nodeName</code> attribute.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>If the new <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> replaces an
  existing node the replaced <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> is returned,
  otherwise <code>null</code> is returned.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from
  a different document than the one that created this map.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</p>
  
  <p>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an <a
  href='core.html#ID-637646024'><code>Attr</code></a> that is already
  an attribute of another <a
  href='core.html#ID-745549614'><code>Element</code></a> object. The
  DOM user must explicitly clone <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> nodes to re-use
  them in other elements.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-setNamedItemNS"
  name='ID-setNamedItemNS'>setNamedItemNS</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>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.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>arg</code> of type <a
  href='core.html#ID-1950641247'><code>Node</code></a></dt>
  
  <dd>A 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.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1950641247'><code>Node</code></a></p>
  </td>
  <td>
  <p>If the new <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> replaces an
  existing node the replaced <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> is returned,
  otherwise <code>null</code> is returned.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from
  a different document than the one that created this map.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</p>
  
  <p>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an <a
  href='core.html#ID-637646024'><code>Attr</code></a> that is already
  an attribute of another <a
  href='core.html#ID-745549614'><code>Element</code></a> object. The
  DOM user must explicitly clone <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> nodes to re-use
  them in other elements.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-FF21A306"
  name='ID-FF21A306'>CharacterData</a></i></b></dt>
  
  <dd>
  <p>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 <a
  href='core.html#ID-1312295772'><code>Text</code></a> and others do
  inherit the interface from it. All <code>offsets</code> in this
  interface start from <code>0</code>.</p>
  
  <p>As explained in the <a
  href='core.html#DOMString'><code>DOMString</code></a> 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 <a
  href='glossary.html#dt-16-bit-unit'><em>16-bit units</em></a> is
  used whenever necessary to indicate that indexing on CharacterData
  is done in 16-bit units.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface CharacterData : Node {
             attribute DOMString        data;
                                          // raises(DOMException) on setting
                                          // raises(DOMException) on retrieval
  
    readonly attribute unsigned long    length;
    DOMString          substringData(in unsigned long offset, 
                                     in unsigned long count)
                                          raises(DOMException);
    void               appendData(in DOMString arg)
                                          raises(DOMException);
    void               insertData(in unsigned long offset, 
                                  in DOMString arg)
                                          raises(DOMException);
    void               deleteData(in unsigned long offset, 
                                  in unsigned long count)
                                          raises(DOMException);
    void               replaceData(in unsigned long offset, 
                                   in unsigned long count, 
                                   in DOMString arg)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-72AB8359"
  name='ID-72AB8359'>data</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>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 <a
  href='core.html#DOMString'><code>DOMString</code></a>. In such
  cases, the user may call <code>substringData</code> to retrieve the
  data in appropriately sized pieces.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div class='exceptions'><b>Exceptions on retrieval</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>DOMSTRING_SIZE_ERR: Raised when it would return more characters
  than fit in a <a
  href='core.html#DOMString'><code>DOMString</code></a> variable on
  the implementation platform.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-7D61178C"
  name='ID-7D61178C'>length</a></code> of type <code>unsigned
  long</code>, readonly</dt>
  
  <dd>The number of <a href='glossary.html#dt-16-bit-unit'><em>16-bit
  units</em></a> 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.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="ID-32791A2F"
  name='ID-32791A2F'>appendData</a></code></dt>
  
  <dd>
  <div class='method'>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 <a
  href='core.html#DOMString'><code>DOMString</code></a> specified. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>arg</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a> to
  append.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-7C603781"
  name='ID-7C603781'>deleteData</a></code></dt>
  
  <dd>
  <div class='method'>Remove a range of <a
  href='glossary.html#dt-16-bit-unit'><em>16-bit units</em></a> from
  the node. Upon success, <code>data</code> and <code>length</code>
  reflect the change. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>offset</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The offset from which to start removing.<br />
  </dd>
  
  <dt><code class='parameter-name'>count</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The 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.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>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
  negative.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-3EDB695F"
  name='ID-3EDB695F'>insertData</a></code></dt>
  
  <dd>
  <div class='method'>Insert a string at the specified <a
  href='glossary.html#dt-16-bit-unit'><em>16-bit unit</em></a>
  offset. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>offset</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The character offset at which to insert.<br />
  </dd>
  
  <dt><code class='parameter-name'>arg</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a> to
  insert.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>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>.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-E5CBA7FB"
  name='ID-E5CBA7FB'>replaceData</a></code></dt>
  
  <dd>
  <div class='method'>Replace the characters starting at the
  specified <a href='glossary.html#dt-16-bit-unit'><em>16-bit
  unit</em></a> offset with the specified string. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>offset</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The offset from which to start replacing.<br />
  </dd>
  
  <dt><code class='parameter-name'>count</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The 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).<br />
  </dd>
  
  <dt><code class='parameter-name'>arg</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a> with which
  the range must be replaced.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>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
  negative.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-6531BCCF"
  name='ID-6531BCCF'>substringData</a></code></dt>
  
  <dd>
  <div class='method'>Extracts a range of data from the node. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>offset</code> of type
  <code>unsigned long</code></dt>
  
  <dd>Start offset of substring to extract.<br />
  </dd>
  
  <dt><code class='parameter-name'>count</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The number of 16-bit units to extract.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#DOMString'><code>DOMString</code></a></p>
  </td>
  <td>
  <p>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.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>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
  negative.</p>
  
  <p>DOMSTRING_SIZE_ERR: Raised if the specified range of text does
  not fit into a <a
  href='core.html#DOMString'><code>DOMString</code></a>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-637646024"
  name='ID-637646024'>Attr</a></i></b></dt>
  
  <dd>
  <p>The <code>Attr</code> interface represents an attribute in an <a
  href='core.html#ID-745549614'><code>Element</code></a> object.
  Typically the allowable values for the attribute are defined in a
  document type definition.</p>
  
  <p><code>Attr</code> objects inherit the <a
  href='core.html#ID-1950641247'><code>Node</code></a> 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 <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> 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,
  <code>Attr</code> nodes may not be immediate children of a <a
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>.
  However, they can be associated with <a
  href='core.html#ID-745549614'><code>Element</code></a> nodes
  contained within a <a class='noxref'
  href='core.html#ID-B63ED1A3'><code>DocumentFragment</code></a>. 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 <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> interface, but
  they also are quite distinct.</p>
  
  <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>
  
  <p>In XML, where the value of an attribute can contain entity
  references, the child nodes of the <code>Attr</code> node may be
  either <a href='core.html#ID-1312295772'><code>Text</code></a> or
  <a href='core.html#ID-11C98490'><code>EntityReference</code></a>
  nodes (when these are in use; see the description of <a
  class='noxref'
  href='core.html#ID-11C98490'><code>EntityReference</code></a> for
  discussion). 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 <a
  href='glossary.html#dt-tokenized'><em>tokenized</em></a> types.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface Attr : Node {
    readonly attribute DOMString        name;
    readonly attribute boolean          specified;
             attribute DOMString        value;
                                          // raises(DOMException) on setting
  
    // Introduced in DOM Level 2:
    readonly attribute Element          ownerElement;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-1112119403"
  name='ID-1112119403'>name</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>Returns the name of this attribute.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Attr-ownerElement"
  name='Attr-ownerElement'>ownerElement</a></code> of type <a
  href='core.html#ID-745549614'><code>Element</code></a>, readonly,
  introduced in <b class='version'>DOM Level 2</b></dt>
  
  <dd>The <a href='core.html#ID-745549614'><code>Element</code></a>
  node this attribute is attached to or <code>null</code> if this
  attribute is not in use.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-862529273"
  name='ID-862529273'>specified</a></code> of type
  <code>boolean</code>, readonly</dt>
  
  <dd>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 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: 
  
  <ul>
  <li>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.</li>
  
  <li>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.</li>
  
  <li>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.</li>
  
  <li>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>.</li>
  </ul>
  
  <br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-221662474"
  name='ID-221662474'>value</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>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
  <a href='core.html#ID-745549614'><code>Element</code></a>
  interface.<br />
  On setting, this creates a <a
  href='core.html#ID-1312295772'><code>Text</code></a> 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 <a
  href='core.html#ID-745549614'><code>Element</code></a>
  interface.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-745549614"
  name='ID-745549614'>Element</a></i></b></dt>
  
  <dd>
  <p>The <code>Element</code> interface represents an <a
  href='glossary.html#dt-element'><em>element</em></a> in an HTML or
  XML document. Elements may have attributes associated with them;
  since the <code>Element</code> interface inherits from <a
  href='core.html#ID-1950641247'><code>Node</code></a>, the generic
  <a class='noxref'
  href='core.html#ID-1950641247'><code>Node</code></a> 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 <a
  href='core.html#ID-637646024'><code>Attr</code></a> object by name
  or an attribute value by name. In XML, where an attribute value may
  contain entity references, an <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> 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 <a
  href='glossary.html#dt-convenience'><em>convenience</em></a>.</p>
  
  <p><b>Note:</b> In DOM Level 2, the method <code>normalize</code>
  is inherited from the <a
  href='core.html#ID-1950641247'><code>Node</code></a> interface
  where it was moved.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface Element : Node {
    readonly attribute DOMString        tagName;
    DOMString          getAttribute(in DOMString name);
    void               setAttribute(in DOMString name, 
                                    in DOMString value)
                                          raises(DOMException);
    void               removeAttribute(in DOMString name)
                                          raises(DOMException);
    Attr               getAttributeNode(in DOMString name);
    Attr               setAttributeNode(in Attr newAttr)
                                          raises(DOMException);
    Attr               removeAttributeNode(in Attr oldAttr)
                                          raises(DOMException);
    NodeList           getElementsByTagName(in DOMString name);
    // Introduced in DOM Level 2:
    DOMString          getAttributeNS(in DOMString namespaceURI, 
                                      in DOMString localName);
    // Introduced in DOM Level 2:
    void               setAttributeNS(in DOMString namespaceURI, 
                                      in DOMString qualifiedName, 
                                      in DOMString value)
                                          raises(DOMException);
    // Introduced in DOM Level 2:
    void               removeAttributeNS(in DOMString namespaceURI, 
                                         in DOMString localName)
                                          raises(DOMException);
    // Introduced in DOM Level 2:
    Attr               getAttributeNodeNS(in DOMString namespaceURI, 
                                          in DOMString localName);
    // Introduced in DOM Level 2:
    Attr               setAttributeNodeNS(in Attr newAttr)
                                          raises(DOMException);
    // Introduced in DOM Level 2:
    NodeList           getElementsByTagNameNS(in DOMString namespaceURI, 
                                              in DOMString localName);
    // Introduced in DOM Level 2:
    boolean            hasAttribute(in DOMString name);
    // Introduced in DOM Level 2:
    boolean            hasAttributeNS(in DOMString namespaceURI, 
                                      in DOMString localName);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-104682815"
  name='ID-104682815'>tagName</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>The name of the element. For example, in: 
  
  <div class='code-block'>
  <pre>
  &lt;elementExample id="demo"&gt; 
          ... 
  &lt;/elementExample&gt; ,
  </pre>
  </div>
  
  <code>tagName</code> has 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 document.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="ID-666EE0F9"
  name='ID-666EE0F9'>getAttribute</a></code></dt>
  
  <dd>
  <div class='method'>Retrieves an attribute value by name. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the attribute to retrieve.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#DOMString'><code>DOMString</code></a></p>
  </td>
  <td>
  <p>The <a href='core.html#ID-637646024'><code>Attr</code></a> value
  as a string, or the empty string if that attribute does not have a
  specified or default value.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-ElGetAttrNS"
  name='ID-ElGetAttrNS'>getAttributeNS</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Retrieves an attribute value by local name and
  namespace URI. HTML-only DOM implementations do not need to
  implement this method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the attribute to retrieve.<br />
  </dd>
  
  <dt><code class='parameter-name'>localName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-localname'><em>local
  name</em></a> of the attribute to retrieve.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#DOMString'><code>DOMString</code></a></p>
  </td>
  <td>
  <p>The <a href='core.html#ID-637646024'><code>Attr</code></a> value
  as a string, or the empty string if that attribute does not have a
  specified or default value.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-217A91B8"
  name='ID-217A91B8'>getAttributeNode</a></code></dt>
  
  <dd>
  <div class='method'>Retrieves an attribute node by name.<br />
  To retrieve an attribute node by qualified name and namespace URI,
  use the <code>getAttributeNodeNS</code> method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name (<code>nodeName</code>) of the attribute to
  retrieve.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-637646024'><code>Attr</code></a></p>
  </td>
  <td>
  <p>The <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> node with the
  specified name (<code>nodeName</code>) or <code>null</code> if
  there is no such attribute.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-ElGetAtNodeNS"
  name='ID-ElGetAtNodeNS'>getAttributeNodeNS</a></code> introduced in
  <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Retrieves an <a
  href='core.html#ID-637646024'><code>Attr</code></a> node by local
  name and namespace URI. HTML-only DOM implementations do not need
  to implement this method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the attribute to retrieve.<br />
  </dd>
  
  <dt><code class='parameter-name'>localName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-localname'><em>local
  name</em></a> of the attribute to retrieve.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-637646024'><code>Attr</code></a></p>
  </td>
  <td>
  <p>The <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> node with the
  specified attribute local name and namespace URI or
  <code>null</code> if there is no such attribute.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-1938918D"
  name='ID-1938918D'>getElementsByTagName</a></code></dt>
  
  <dd>
  <div class='method'>Returns a <a
  href='core.html#ID-536297177'><code>NodeList</code></a> of all <a
  href='glossary.html#dt-descendant'><em>descendant</em></a>
  <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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the tag to match on. The special value "*" matches
  all tags.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-536297177'><code>NodeList</code></a></p>
  </td>
  <td>
  <p>A list of matching <code>Element</code> nodes.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-A6C90942"
  name='ID-A6C90942'>getElementsByTagNameNS</a></code> introduced in
  <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>Returns a <a
  href='core.html#ID-536297177'><code>NodeList</code></a> of all the
  <a href='glossary.html#dt-descendant'><em>descendant</em></a>
  <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.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the elements to match on. The special value "*"
  matches all namespaces.<br />
  </dd>
  
  <dt><code class='parameter-name'>localName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-localname'><em>local
  name</em></a> of the elements to match on. The special value "*"
  matches all local names.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-536297177'><code>NodeList</code></a></p>
  </td>
  <td>
  <p>A new <a class='noxref'
  href='core.html#ID-536297177'><code>NodeList</code></a> object
  containing all the matched <code>Elements</code>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-ElHasAttr"
  name='ID-ElHasAttr'>hasAttribute</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the attribute to look for.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>boolean</code></p>
  </td>
  <td>
  <p><code>true</code> if an attribute with the given name is
  specified on this element or has a default value,
  <code>false</code> otherwise.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-ElHasAttrNS"
  name='ID-ElHasAttrNS'>hasAttributeNS</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>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.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the attribute to look for.<br />
  </dd>
  
  <dt><code class='parameter-name'>localName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-localname'><em>local
  name</em></a> of the attribute to look for.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>boolean</code></p>
  </td>
  <td>
  <p><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.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-6D6AC0F9"
  name='ID-6D6AC0F9'>removeAttribute</a></code></dt>
  
  <dd>
  <div class='method'>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
  <code>removeAttributeNS</code> method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the attribute to remove.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-ElRemAtNS"
  name='ID-ElRemAtNS'>removeAttributeNS</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>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.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the attribute to remove.<br />
  </dd>
  
  <dt><code class='parameter-name'>localName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-localname'><em>local
  name</em></a> of the attribute to remove.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-D589198"
  name='ID-D589198'>removeAttributeNode</a></code></dt>
  
  <dd>
  <div class='method'>Removes the specified attribute node. If the
  removed <a href='core.html#ID-637646024'><code>Attr</code></a> 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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>oldAttr</code> of type <a
  href='core.html#ID-637646024'><code>Attr</code></a></dt>
  
  <dd>The <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> node to remove
  from the attribute list.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-637646024'><code>Attr</code></a></p>
  </td>
  <td>
  <p>The <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> node that was
  removed.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  
  <p>NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an
  attribute of the element.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-F68F082"
  name='ID-F68F082'>setAttribute</a></code></dt>
  
  <dd>
  <div class='method'>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 <a
  href='core.html#ID-637646024'><code>Attr</code></a> node plus any
  <a href='core.html#ID-1312295772'><code>Text</code></a> and <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a>
  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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>name</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The name of the attribute to create or alter.<br />
  </dd>
  
  <dt><code class='parameter-name'>value</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>Value to set in string form.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified name contains an
  illegal character.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-ElSetAttrNS"
  name='ID-ElSetAttrNS'>setAttributeNS</a></code> introduced in <b
  class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>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 <a
  href='core.html#ID-637646024'><code>Attr</code></a> node plus any
  <a href='core.html#ID-1312295772'><code>Text</code></a> and <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a>
  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.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>namespaceURI</code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-namespaceURI'><em>namespace
  URI</em></a> of the attribute to create or alter.<br />
  </dd>
  
  <dt><code class='parameter-name'>qualifiedName</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The <a href='glossary.html#dt-qualifiedname'><em>qualified
  name</em></a> of the attribute to create or alter.<br />
  </dd>
  
  <dt><code class='parameter-name'>value</code> of type <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>The value to set in string form.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  contains an illegal character.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  
  <p>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>, if the
  <code>qualifiedName</code> has a prefix that is "xml" and the
  <code>namespaceURI</code> is different from "<a
  href='http://www.w3.org/XML/1998/namespace'>http://www.w3.org/XML/1998/namespace</a>",
  or if the <code>qualifiedName</code> is "xmlns" and the
  <code>namespaceURI</code> is different from "<a
  href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>".</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-887236154"
  name='ID-887236154'>setAttributeNode</a></code></dt>
  
  <dd>
  <div class='method'>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
  URI, use the <code>setAttributeNodeNS</code> method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>newAttr</code> of type <a
  href='core.html#ID-637646024'><code>Attr</code></a></dt>
  
  <dd>The <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> node to add to
  the attribute list.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-637646024'><code>Attr</code></a></p>
  </td>
  <td>
  <p>If the <code>newAttr</code> attribute replaces an existing
  attribute, the replaced <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> node is
  returned, otherwise <code>null</code> is returned.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created
  from a different document than the one that created the
  element.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  
  <p>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already
  an attribute of another <code>Element</code> object. The DOM user
  must explicitly clone <a
  href='core.html#ID-637646024'><code>Attr</code></a> nodes to re-use
  them in other elements.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="ID-ElSetAtNodeNS"
  name='ID-ElSetAtNodeNS'>setAttributeNodeNS</a></code> introduced in
  <b class='since'>DOM Level 2</b></dt>
  
  <dd>
  <div class='method'>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.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>newAttr</code> of type <a
  href='core.html#ID-637646024'><code>Attr</code></a></dt>
  
  <dd>The <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> node to add to
  the attribute list.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-637646024'><code>Attr</code></a></p>
  </td>
  <td>
  <p>If the <code>newAttr</code> attribute replaces an existing
  attribute with the same <a
  href='glossary.html#dt-localname'><em>local name</em></a> and <a
  href='glossary.html#dt-namespaceURI'><em>namespace URI</em></a>,
  the replaced <a class='noxref'
  href='core.html#ID-637646024'><code>Attr</code></a> node is
  returned, otherwise <code>null</code> is returned.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created
  from a different document than the one that created the
  element.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  
  <p>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already
  an attribute of another <code>Element</code> object. The DOM user
  must explicitly clone <a
  href='core.html#ID-637646024'><code>Attr</code></a> nodes to re-use
  them in other elements.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-1312295772"
  name='ID-1312295772'>Text</a></i></b></dt>
  
  <dd>
  <p>The <code>Text</code> interface inherits from <a
  href='core.html#ID-FF21A306'><code>CharacterData</code></a> and
  represents the textual content (termed <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#syntax'><em>character
  data</em></a> in XML) of an <a
  href='core.html#ID-745549614'><code>Element</code></a> or <a
  href='core.html#ID-637646024'><code>Attr</code></a>. 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 <a href='glossary.html#dt-infoitem'><em>information
  items</em></a> (elements, comments, etc.) and <code>Text</code>
  nodes that form the list of children of the element.</p>
  
  <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 <a href='core.html#ID-1950641247'><code>Node</code></a> merges
  any such adjacent <code>Text</code> objects into a single node for
  each block of text.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface Text : CharacterData {
    Text               splitText(in unsigned long offset)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="ID-38853C1D"
  name='ID-38853C1D'>splitText</a></code></dt>
  
  <dd>
  <div class='method'>Breaks this node into two nodes at the
  specified <code>offset</code>, keeping both in the tree as <a
  href='glossary.html#dt-sibling'><em>siblings</em></a>. 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 <a
  href='glossary.html#dt-sibling'><em>sibling</em></a> of the
  original node. When the <code>offset</code> is equal to the length
  of this node, the new node has no data. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>offset</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The <a href='glossary.html#dt-16-bit-unit'><em>16-bit
  unit</em></a> offset at which to split, starting from
  <code>0</code>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='core.html#ID-1312295772'><code>Text</code></a></p>
  </td>
  <td>
  <p>The new node, of the same type as this node.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>INDEX_SIZE_ERR: Raised if the specified offset is negative or
  greater than the number of 16-bit units in <code>data</code>.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-1728279322"
  name='ID-1728279322'>Comment</a></i></b></dt>
  
  <dd>
  <p>This interface inherits from <a
  href='core.html#ID-FF21A306'><code>CharacterData</code></a> 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.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface Comment : CharacterData {
  };
  </pre>
  </div>
  
  <br />
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 ID-BBACDC08 -->
  <div class='div2'><a id="ID-E067D597" name='ID-E067D597'></a> 
  
  <h2 id='ID-E067D597-h2' class='div2'>1.3. Extended Interfaces</h2>
  
  <p>The interfaces defined here form part of the DOM Core
  specification, but objects that expose these interfaces will never
  be encountered in a DOM implementation that deals only with HTML.
  As such, HTML-only DOM implementations [<a class='noxref'
  href='references.html#DOMHTML-inf'>DOM Level 2 HTML</a>] do not
  need to have objects that implement these interfaces.</p>
  
  <p>The interfaces found within this section are not mandatory. A
  DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a>
  interface with parameter values "XML" and "2.0" (respectively) to
  determine whether or not this module is supported by the
  implementation. In order to fully support this module, an
  implementation must also support the "Core" feature defined in <a
  href='core.html#ID-BBACDC08'>Fundamental Interfaces</a>. Please
  refer to additional information about <a
  href='introduction.html#ID-Conformance'>Conformance</a> in this
  specification.</p>
  
  <dl>
  <dt><b>Interface <i><a id="ID-667469212"
  name='ID-667469212'>CDATASection</a></i></b></dt>
  
  <dd>
  <p>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>
  
  <p>The <a href='core.html#DOMString'><code>DOMString</code></a>
  attribute of the <a
  href='core.html#ID-1312295772'><code>Text</code></a> node holds the
  text that is contained by the CDATA section. Note that this
  <em>may</em> 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>
  
  <p>The <code>CDATASection</code> interface inherits from the <a
  href='core.html#ID-FF21A306'><code>CharacterData</code></a>
  interface through the <a
  href='core.html#ID-1312295772'><code>Text</code></a> interface.
  Adjacent <code>CDATASection</code> nodes are not merged by use of
  the <code>normalize</code> method of the <a
  href='core.html#ID-1950641247'><code>Node</code></a> interface.</p>
  
  <p><b>Note:</b> 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.<br />
  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, making the task of ensuring that data is not corrupted on
  serialization more difficult.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface CDATASection : Text {
  };
  </pre>
  </div>
  
  <br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-412266927"
  name='ID-412266927'>DocumentType</a></i></b></dt>
  
  <dd>
  <p>Each <a href='core.html#i-Document'><code>Document</code></a>
  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>
  
  <p>The DOM Level 2 doesn't support editing
  <code>DocumentType</code> nodes.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface DocumentType : Node {
    readonly attribute DOMString        name;
    readonly attribute NamedNodeMap     entities;
    readonly attribute NamedNodeMap     notations;
    // Introduced in DOM Level 2:
    readonly attribute DOMString        publicId;
    // Introduced in DOM Level 2:
    readonly attribute DOMString        systemId;
    // Introduced in DOM Level 2:
    readonly attribute DOMString        internalSubset;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-1788794630"
  name='ID-1788794630'>entities</a></code> of type <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>,
  readonly</dt>
  
  <dd>A <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>
  containing the general entities, both external and internal,
  declared in the DTD. Parameter entities are not contained.
  Duplicates are discarded. For example in: 
  
  <div class='code-block'>
  <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>
  </div>
  
  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 <a
  href='core.html#ID-527DCFF2'><code>Entity</code></a>
  interface.<br />
  The DOM Level 2 does not support editing entities, therefore
  <code>entities</code> cannot be altered in any way.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="ID-Core-DocType-internalSubset"
  name='ID-Core-DocType-internalSubset'>internalSubset</a></code> of
  type <a href='core.html#DOMString'><code>DOMString</code></a>,
  readonly, introduced in <b class='version'>DOM Level 2</b></dt>
  
  <dd>The internal subset as a string. 
  
  <p><b>Note:</b> 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.</p>
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-1844763134"
  name='ID-1844763134'>name</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>The name of DTD; i.e., the name immediately following the
  <code>DOCTYPE</code> keyword.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-D46829EF"
  name='ID-D46829EF'>notations</a></code> of type <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>,
  readonly</dt>
  
  <dd>A <a
  href='core.html#ID-1780488922'><code>NamedNodeMap</code></a>
  containing the notations declared in the DTD. Duplicates are
  discarded. Every node in this map also implements the <a
  href='core.html#ID-5431D1B9'><code>Notation</code></a>
  interface.<br />
  The DOM Level 2 does not support editing notations, therefore
  <code>notations</code> cannot be altered in any way.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-Core-DocType-publicId"
  name='ID-Core-DocType-publicId'>publicId</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>, readonly,
  introduced in <b class='version'>DOM Level 2</b></dt>
  
  <dd>The public identifier of the external subset.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-Core-DocType-systemId"
  name='ID-Core-DocType-systemId'>systemId</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>, readonly,
  introduced in <b class='version'>DOM Level 2</b></dt>
  
  <dd>The system identifier of the external subset.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-5431D1B9"
  name='ID-5431D1B9'>Notation</a></i></b></dt>
  
  <dd>
  <p>This interface represents a notation declared in the DTD. A
  notation either declares, by name, the format of an unparsed entity
  (see <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#Notations'><em>section
  4.7</em></a> of the XML 1.0 specification [<a class='noxref'
  href='references.html#XML'>XML</a>]), or is used for formal
  declaration of processing instruction targets (see <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#sec-pi'><em>section
  2.6</em></a> of the XML 1.0 specification [<a class='noxref'
  href='references.html#XML'>XML</a>]). The <code>nodeName</code>
  attribute inherited from <a
  href='core.html#ID-1950641247'><code>Node</code></a> is set to the
  declared name of the notation.</p>
  
  <p>The DOM Level 1 does not support editing <code>Notation</code>
  nodes; they are therefore <a
  href='glossary.html#dt-readonly-node'><em>readonly</em></a>.</p>
  
  <p>A <code>Notation</code> node does not have any parent.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface Notation : Node {
    readonly attribute DOMString        publicId;
    readonly attribute DOMString        systemId;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-54F2B4D0"
  name='ID-54F2B4D0'>publicId</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>The public identifier of this notation. If the public
  identifier was not specified, this is <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-E8AAB1D0"
  name='ID-E8AAB1D0'>systemId</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>The system identifier of this notation. If the system
  identifier was not specified, this is <code>null</code>.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-527DCFF2"
  name='ID-527DCFF2'>Entity</a></i></b></dt>
  
  <dd>
  <p>This interface represents an entity, either parsed or unparsed,
  in an XML document. Note that this models the entity itself
  <em>not</em> the entity declaration. <code>Entity</code>
  declaration modeling has been left for a later Level of the DOM
  specification.</p>
  
  <p>The <code>nodeName</code> attribute that is inherited from <a
  href='core.html#ID-1950641247'><code>Node</code></a> contains the
  name of the entity.</p>
  
  <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 <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a> nodes
  in the document tree.</p>
  
  <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> node's child list
  represents the structure of that replacement text. Otherwise, the
  child list is empty.</p>
  
  <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 <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a> 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. <code>Entity</code> nodes
  and all their <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> are <a
  href='glossary.html#dt-readonly-node'><em>readonly</em></a>.</p>
  
  <p>An <code>Entity</code> node does not have any parent.</p>
  
  <p><b>Note:</b> If the entity contains an unbound <a
  href='glossary.html#dt-namespaceprefix'><em>namespace
  prefix</em></a>, the <code>namespaceURI</code> of the corresponding
  node in the <code>Entity</code> node subtree is <code>null</code>.
  The same is true for <a
  href='core.html#ID-11C98490'><code>EntityReference</code></a> nodes
  that refer to this entity, when they are created using the
  <code>createEntityReference</code> method of the <a
  href='core.html#i-Document'><code>Document</code></a> interface.
  The DOM Level 2 does not support any mechanism to resolve namespace
  prefixes.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface Entity : Node {
    readonly attribute DOMString        publicId;
    readonly attribute DOMString        systemId;
    readonly attribute DOMString        notationName;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-6ABAEB38"
  name='ID-6ABAEB38'>notationName</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>For unparsed entities, the name of the notation for the entity.
  For parsed entities, this is <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-D7303025"
  name='ID-D7303025'>publicId</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>The public identifier associated with the entity, if specified.
  If the public identifier was not specified, this is
  <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-D7C29F3E"
  name='ID-D7C29F3E'>systemId</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>The system identifier associated with the entity, if specified.
  If the system identifier was not specified, this is
  <code>null</code>.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-11C98490"
  name='ID-11C98490'>EntityReference</a></i></b></dt>
  
  <dd>
  <p><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 <a
  href='core.html#ID-527DCFF2'><code>Entity</code></a> node
  representing the referenced entity. If such an <a class='noxref'
  href='core.html#ID-527DCFF2'><code>Entity</code></a> exists, then
  the subtree of the <code>EntityReference</code> node is in general
  a copy of the <a class='noxref'
  href='core.html#ID-527DCFF2'><code>Entity</code></a> node subtree.
  However, this may not be true when an entity contains an unbound <a
  href='glossary.html#dt-namespaceprefix'><em>namespace
  prefix</em></a>. In such a case, because the namespace prefix
  resolution depends on where the entity reference is, the <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> of the
  <code>EntityReference</code> node may be bound to different <a
  href='glossary.html#dt-namespaceURI'><em>namespace
  URIs</em></a>.</p>
  
  <p>As for <a href='core.html#ID-527DCFF2'><code>Entity</code></a>
  nodes, <code>EntityReference</code> nodes and all their <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> are <a
  href='glossary.html#dt-readonly-node'><em>readonly</em></a>.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface EntityReference : Node {
  };
  </pre>
  </div>
  
  <br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="ID-1004215813"
  name='ID-1004215813'>ProcessingInstruction</a></i></b></dt>
  
  <dd>
  <p>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>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface ProcessingInstruction : Node {
    readonly attribute DOMString        target;
             attribute DOMString        data;
                                          // raises(DOMException) on setting
  
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="ID-837822393"
  name='ID-837822393'>data</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a></dt>
  
  <dd>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>.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='core.html#ID-17189187'><code>DOMException</code></a></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="ID-1478689192"
  name='ID-1478689192'>target</a></code> of type <a
  href='core.html#DOMString'><code>DOMString</code></a>,
  readonly</dt>
  
  <dd>The target of this processing instruction. XML defines this as
  being the first <a href='glossary.html#dt-token'><em>token</em></a>
  following the markup that begins the processing instruction.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 ID-E067D597 --></div>
  
  <!-- div1 Core -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='introduction.html'>previous</a> &nbsp; <a
  accesskey='n' href='changes.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/def-index.html
  
  Index: def-index.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:27 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Index</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='previous' href='references.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='references.html'>previous</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Index" name='Index'></a> 
  
  <h1 id='role-index' class='index'>Index</h1>
  
  <table
  summary='the table contains all keywords used in this document'>
  <tr>
  <td width='30%'><a class='noxref' href='core.html#DOMString'>16-bit
  unit</a> <a class='index-inst' href='core.html#DOMString'>1</a>, <a
  class='index-inst' href='core.html#ID-5DFED1F0'>2</a>, <a
  class='index-inst' href='core.html#ID-FF21A306'>3</a>, <a
  class='index-inst' href='core.html#ID-7D61178C'>4</a>, <a
  class='index-inst' href='core.html#ID-3EDB695F'>5</a>, <a
  class='index-inst' href='core.html#ID-7C603781'>6</a>, <a
  class='index-inst' href='core.html#ID-E5CBA7FB'>7</a>, <a
  class='index-inst' href='core.html#ID-38853C1D'>8</a>, <a
  class='index-inst' href='glossary.html#dt-16-bit-unit'>9</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-952280727'>ancestor</a> <a class='index-inst'
  href='core.html#ID-952280727'>1</a>, <a class='index-inst'
  href='core.html#ID-785887307'>2</a>, <a class='index-inst'
  href='core.html#ID-184E7107'>3</a>, <a class='index-inst'
  href='glossary.html#dt-ancestor'>4</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>API</a> <a class='index-inst'
  href='introduction.html#ID-E7C3082'>1</a>, <a class='index-inst'
  href='introduction.html#ID-E7C30821'>2</a>, <a class='index-inst'
  href='introduction.html#ID-E7C30822'>3</a>, <a class='index-inst'
  href='core.html#ID-1CED5498'>4</a>, <a class='index-inst'
  href='core.html#ID-C74D1578'>5</a>, <a class='index-inst'
  href='glossary.html#dt-API'>6</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-184E7107'>appendChild</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-32791A2F'>appendData</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-637646024'>Attr</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>ATTRIBUTE_NODE</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-84CF096'>attributes</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>CDATA_SECTION_NODE</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-667469212'>CDATASection</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-FF21A306'>CharacterData</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-5DFED1F0'>Charmod</a> <a class='index-inst'
  href='core.html#ID-5DFED1F0'>1</a>, <a class='index-inst'
  href='references.html#Charmod'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1590626202'>child</a> <a class='index-inst'
  href='core.html#ID-1590626202'>1</a>, <a class='index-inst'
  href='core.html#Namespaces-Considerations'>2</a>, <a
  class='index-inst' href='glossary.html#dt-child'>3</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1451460987'>childNodes</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>client application</a> <a
  class='index-inst' href='introduction.html#ID-E7C3082'>1</a>, <a
  class='index-inst' href='glossary.html#dt-application'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-3A0ED0A4'>cloneNode</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>COM</a> <a class='index-inst'
  href='introduction.html#ID-E7C3082'>1</a>, <a class='index-inst'
  href='core.html#ID-1CED5498'>2</a>, <a class='index-inst'
  href='glossary.html#dt-COM'>3</a>, <a class='index-inst'
  href='references.html#COM'>4</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1728279322'>Comment</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>COMMENT_NODE</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-87CD092'>convenience</a> <a class='index-inst'
  href='core.html#ID-87CD092'>1</a>, <a class='index-inst'
  href='core.html#ID-745549614'>2</a>, <a class='index-inst'
  href='glossary.html#dt-convenience'>3</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>CORBA</a> <a class='index-inst'
  href='introduction.html#ID-E7C3082'>1</a>, <a class='index-inst'
  href='references.html#CORBA'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1084891198'>createAttribute</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-DocCrAttrNS'>createAttributeNS</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-D26C0AF8'>createCDATASection</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1334481328'>createComment</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#Level-2-Core-DOM-createDocument'>createDocument</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-35CB04B5'>createDocumentFragment</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#Level-2-Core-DOM-createDocType'>createDocumentType</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-2141741547'>createElement</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-DocCrElNS'>createElementNS</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-392B75AE'>createEntityReference</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-135944439'>createProcessingInstruction</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1975348127'>createTextNode</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-72AB8359'>data</a> <a class='index-inst'
  href='core.html#ID-72AB8359'>1</a>, <a class='index-inst'
  href='core.html#ID-837822393'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C30821'>data model</a> <a
  class='index-inst' href='introduction.html#ID-E7C30821'>1</a>, <a
  class='index-inst' href='glossary.html#dt-datamodel'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-7C603781'>deleteData</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#Namespaces-Considerations'>descendant</a> <a
  class='index-inst'
  href='core.html#Namespaces-Considerations'>1</a>, <a
  class='index-inst' href='core.html#Core-Document-importNode'>2</a>,
  <a class='index-inst' href='core.html#ID-1938918D'>3</a>, <a
  class='index-inst' href='core.html#ID-A6C90942'>4</a>, <a
  class='index-inst' href='core.html#ID-527DCFF2'>5</a>, <a
  class='index-inst' href='core.html#ID-11C98490'>6</a>, <a
  class='index-inst' href='glossary.html#dt-descendant'>7</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-B63ED1A31'>doctype</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#i-Document'>Document</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>DOCUMENT_FRAGMENT_NODE</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>DOCUMENT_NODE</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>DOCUMENT_TYPE_NODE</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-87CD092'>documentElement</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-B63ED1A3'>DocumentFragment</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-412266927'>DocumentType</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C30824'>DOM Level 1</a> <a
  class='index-inst' href='introduction.html#ID-E7C30824'>1</a>, <a
  class='index-inst' href='references.html#DOM-Level-1'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-Conformance'>DOM Level 2 CSS</a> <a
  class='index-inst' href='introduction.html#ID-Conformance'>1</a>,
  <a class='index-inst' href='references.html#DOMCSS-inf'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-Conformance'>DOM Level 2 Events</a> <a
  class='index-inst' href='introduction.html#ID-Conformance'>1</a>,
  <a class='index-inst'
  href='references.html#DOMEvents-inf'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-Conformance'>DOM Level 2 HTML</a> <a
  class='index-inst' href='introduction.html#ID-Conformance'>1</a>,
  <a class='index-inst' href='core.html#ID-BBACDC08'>2</a>, <a
  class='index-inst' href='core.html#ID-E067D597'>3</a>, <a
  class='index-inst' href='references.html#DOMHTML-inf'>4</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-Conformance'>DOM Level 2 Range</a> <a
  class='index-inst' href='introduction.html#ID-Conformance'>1</a>,
  <a class='index-inst'
  href='references.html#DOMRange-inf'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-Conformance'>DOM Level 2 Style
  Sheets</a> <a class='index-inst'
  href='introduction.html#ID-Conformance'>1</a>, <a
  class='index-inst'
  href='references.html#DOMStyleSheets-inf'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-Conformance'>DOM Level 2 Traversal</a>
  <a class='index-inst'
  href='introduction.html#ID-Conformance'>1</a>, <a
  class='index-inst'
  href='references.html#DOMTraversal-inf'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-Conformance'>DOM Level 2 Views</a> <a
  class='index-inst' href='introduction.html#ID-Conformance'>1</a>,
  <a class='index-inst'
  href='references.html#DOMViews-inf'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-17189187'>DOMException</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-102161490'>DOMImplementation</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#DOMString'>DOMString</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>DOMSTRING_SIZE_ERR</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#DOMTimeStamp'>DOMTimeStamp</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>ECMAScript</a> <a
  class='index-inst' href='introduction.html#ID-E7C3082'>1</a>, <a
  class='index-inst' href='core.html#ID-249F15BA'>2</a>, <a
  class='index-inst' href='glossary.html#dt-ECMAScript'>3</a>, <a
  class='index-inst' href='references.html#ECMAScript'>4</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-745549614'>Element</a> <a class='index-inst'
  href='core.html#ID-745549614'>1</a>, <a class='index-inst'
  href='core.html#ID-1590626202'>2</a>, <a class='index-inst'
  href='core.html#td-live'>3</a>, <a class='index-inst'
  href='core.html#ID-5DFED1F0'>4</a>, <a class='index-inst'
  href='core.html#Namespaces-Considerations'>5</a>, <a
  class='index-inst' href='glossary.html#dt-element'>6</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>ELEMENT_NODE</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1788794630'>entities</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-527DCFF2'>Entity</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>ENTITY_NODE</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>ENTITY_REFERENCE_NODE</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-11C98490'>EntityReference</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-169727388'>firstChild</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-666EE0F9'>getAttribute</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-217A91B8'>getAttributeNode</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-ElGetAtNodeNS'>getAttributeNodeNS</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-ElGetAttrNS'>getAttributeNS</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-getElBId'>getElementById</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-A6C9094'>getElementsByTagName</a> <a
  class='index-inst' href='core.html#ID-A6C9094'>1</a>, <a
  class='index-inst' href='core.html#ID-1938918D'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-getElBTNNS'>getElementsByTagNameNS</a> <a
  class='index-inst' href='core.html#ID-getElBTNNS'>1</a>, <a
  class='index-inst' href='core.html#ID-A6C90942'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1074577549'>getNamedItem</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-getNamedItemNS'>getNamedItemNS</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-ElHasAttr'>hasAttribute</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-ElHasAttrNS'>hasAttributeNS</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-NodeHasAttrs'>hasAttributes</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-810594187'>hasChildNodes</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-5CED94D7'>hasFeature</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>HIERARCHY_REQUEST_ERR</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C30824'>hosting implementation</a> <a
  class='index-inst' href='introduction.html#ID-E7C30824'>1</a>, <a
  class='index-inst'
  href='glossary.html#dt-implementation'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>HTML</a> <a class='index-inst'
  href='introduction.html#ID-E7C3082'>1</a>, <a class='index-inst'
  href='glossary.html#dt-HTML'>2</a></td>
  <td width='30%'><a class='noxref'
  href='glossary.html#dt-HTML'>HTML4.0</a> <a class='index-inst'
  href='glossary.html#dt-HTML'>1</a>, <a class='index-inst'
  href='references.html#HTML40'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1B793EBA'>implementation</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#Core-Document-importNode'>importNode</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>INDEX_SIZE_ERR</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1312295772'>information item</a> <a
  class='index-inst' href='core.html#ID-1312295772'>1</a>, <a
  class='index-inst' href='glossary.html#dt-infoitem'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C30821'>Infoset</a> <a
  class='index-inst' href='introduction.html#ID-E7C30821'>1</a>, <a
  class='index-inst' href='introduction.html#ID-E7C30822'>2</a>, <a
  class='index-inst' href='glossary.html#dt-infoitem'>3</a>, <a
  class='index-inst' href='references.html#InfoSet'>4</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1CED5498'>inheritance</a> <a class='index-inst'
  href='core.html#ID-1CED5498'>1</a>, <a class='index-inst'
  href='glossary.html#dt-inheritance'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-952280727'>insertBefore</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-3EDB695F'>insertData</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>interface</a> <a
  class='index-inst' href='introduction.html#ID-E7C3082'>1</a>, <a
  class='index-inst' href='glossary.html#dt-interface'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-Core-DocType-internalSubset'>internalSubset</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>INUSE_ATTRIBUTE_ERR</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>INVALID_ACCESS_ERR</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>INVALID_CHARACTER_ERR</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>INVALID_MODIFICATION_ERR</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>INVALID_STATE_ERR</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-C74D1578'>ISO/IEC 10646</a> <a
  class='index-inst' href='core.html#ID-C74D1578'>1</a>, <a
  class='index-inst' href='glossary.html#dt-16-bit-unit'>2</a>, <a
  class='index-inst' href='references.html#ISO10646'>3</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#Level-2-Core-Node-supports'>isSupported</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-844377136'>item</a> <a class='index-inst'
  href='core.html#ID-844377136'>1</a>, <a class='index-inst'
  href='core.html#ID-349467F9'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>Java</a> <a class='index-inst'
  href='introduction.html#ID-E7C3082'>1</a>, <a class='index-inst'
  href='references.html#Java'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>JavaIDL</a> <a
  class='index-inst' href='introduction.html#ID-E7C3082'>1</a>, <a
  class='index-inst' href='references.html#JavaIDL'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>JavaScript</a> <a
  class='index-inst' href='introduction.html#ID-E7C3082'>1</a>, <a
  class='index-inst' href='glossary.html#dt-ECMAScript'>2</a>, <a
  class='index-inst' href='references.html#JavaScript'>3</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>JScript</a> <a
  class='index-inst' href='introduction.html#ID-E7C3082'>1</a>, <a
  class='index-inst' href='references.html#JScript'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>language binding</a> <a
  class='index-inst' href='introduction.html#ID-E7C3082'>1</a>, <a
  class='index-inst' href='glossary.html#dt-lang-binding'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-61AD09FB'>lastChild</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-203510337'>length</a> <a class='index-inst'
  href='core.html#ID-203510337'>1</a>, <a class='index-inst'
  href='core.html#ID-6D0FB19E'>2</a>, <a class='index-inst'
  href='core.html#ID-7D61178C'>3</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref' href='core.html#td-live'>live</a>
  <a class='index-inst' href='core.html#td-live'>1</a>, <a
  class='index-inst' href='core.html#ID-536297177'>2</a>, <a
  class='index-inst' href='core.html#ID-1780488922'>3</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-DocCrElNS'>local name</a> <a class='index-inst'
  href='core.html#ID-DocCrElNS'>1</a>, <a class='index-inst'
  href='core.html#ID-DocCrAttrNS'>2</a>, <a class='index-inst'
  href='core.html#ID-getElBTNNS'>3</a>, <a class='index-inst'
  href='core.html#ID-getNamedItemNS'>4</a>, <a class='index-inst'
  href='core.html#ID-removeNamedItemNS'>5</a>, <a class='index-inst'
  href='core.html#ID-ElGetAttrNS'>6</a>, <a class='index-inst'
  href='core.html#ID-ElRemAtNS'>7</a>, <a class='index-inst'
  href='core.html#ID-ElGetAtNodeNS'>8</a>, <a class='index-inst'
  href='core.html#ID-ElSetAtNodeNS'>9</a>, <a class='index-inst'
  href='core.html#ID-A6C90942'>10</a>, <a class='index-inst'
  href='core.html#ID-ElHasAttrNS'>11</a>, <a class='index-inst'
  href='glossary.html#dt-localname'>12</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-NodeNSLocalN'>localName</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-Conformance'>method</a> <a
  class='index-inst' href='introduction.html#ID-Conformance'>1</a>,
  <a class='index-inst' href='glossary.html#dt-method'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>MIDL</a> <a class='index-inst'
  href='introduction.html#ID-E7C3082'>1</a>, <a class='index-inst'
  href='references.html#MSIDL'>2</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C30821'>model</a> <a
  class='index-inst' href='introduction.html#ID-E7C30821'>1</a>, <a
  class='index-inst' href='glossary.html#dt-model'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1112119403'>name</a> <a class='index-inst'
  href='core.html#ID-1112119403'>1</a>, <a class='index-inst'
  href='core.html#ID-1844763134'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1780488922'>NamedNodeMap</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#Namespaces-Considerations'>namespace prefix</a> <a
  class='index-inst'
  href='core.html#Namespaces-Considerations'>1</a>, <a
  class='index-inst' href='core.html#ID-392B75AE'>2</a>, <a
  class='index-inst' href='core.html#ID-NodeNSPrefix'>3</a>, <a
  class='index-inst' href='core.html#ID-527DCFF2'>4</a>, <a
  class='index-inst' href='core.html#ID-11C98490'>5</a>, <a
  class='index-inst'
  href='glossary.html#dt-namespaceprefix'>6</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#Namespaces-Considerations'>namespace URI</a> <a
  class='index-inst'
  href='core.html#Namespaces-Considerations'>1</a>, <a
  class='index-inst'
  href='core.html#Level-2-Core-DOM-createDocument'>2</a>, <a
  class='index-inst' href='core.html#ID-DocCrElNS'>3</a>, <a
  class='index-inst' href='core.html#ID-DocCrAttrNS'>4</a>, <a
  class='index-inst' href='core.html#ID-getElBTNNS'>5</a>, <a
  class='index-inst' href='core.html#ID-NodeNSname'>6</a>, <a
  class='index-inst' href='core.html#ID-getNamedItemNS'>7</a>, <a
  class='index-inst' href='core.html#ID-removeNamedItemNS'>8</a>, <a
  class='index-inst' href='core.html#ID-ElGetAttrNS'>9</a>, <a
  class='index-inst' href='core.html#ID-ElSetAttrNS'>10</a>, <a
  class='index-inst' href='core.html#ID-ElRemAtNS'>11</a>, <a
  class='index-inst' href='core.html#ID-ElGetAtNodeNS'>12</a>, <a
  class='index-inst' href='core.html#ID-ElSetAtNodeNS'>13</a>, <a
  class='index-inst' href='core.html#ID-A6C90942'>14</a>, <a
  class='index-inst' href='core.html#ID-ElHasAttrNS'>15</a>, <a
  class='index-inst' href='core.html#ID-11C98490'>16</a>, <a
  class='index-inst' href='glossary.html#dt-namespaceURI'>17</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>NAMESPACE_ERR</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#Namespaces-Considerations'>Namespaces</a> <a
  class='index-inst'
  href='core.html#Namespaces-Considerations'>1</a>, <a
  class='index-inst'
  href='core.html#Level-2-Core-DOM-createDocument'>2</a>, <a
  class='index-inst' href='core.html#ID-DocCrElNS'>3</a>, <a
  class='index-inst' href='core.html#ID-NodeNSname'>4</a>, <a
  class='index-inst' href='core.html#ID-NodeNSPrefix'>5</a>, <a
  class='index-inst' href='glossary.html#dt-localname'>6</a>, <a
  class='index-inst' href='glossary.html#dt-namespaceprefix'>7</a>,
  <a class='index-inst' href='glossary.html#dt-namespaceURI'>8</a>,
  <a class='index-inst' href='glossary.html#dt-qualifiedname'>9</a>,
  <a class='index-inst' href='glossary.html#dt-XML-namespace'>10</a>,
  <a class='index-inst' href='references.html#Namespaces'>11</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-NodeNSname'>namespaceURI</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-6AC54C2F'>nextSibling</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>NO_DATA_ALLOWED_ERR</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>NO_MODIFICATION_ALLOWED_ERR</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1950641247'>Node</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-536297177'>NodeList</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-F68D095'>nodeName</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-111237558'>nodeType</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-F68D080'>nodeValue</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-normalize'>normalize</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>NOT_FOUND_ERR</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>NOT_SUPPORTED_ERR</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-5431D1B9'>Notation</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>NOTATION_NODE</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-6ABAEB38'>notationName</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-D46829EF'>notations</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C30821'>object model</a> <a
  class='index-inst' href='introduction.html#ID-E7C30821'>1</a>, <a
  class='index-inst' href='introduction.html#ID-E7C30822'>2</a>, <a
  class='index-inst' href='glossary.html#dt-object-model'>3</a></td>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>OMGIDL</a> <a
  class='index-inst' href='introduction.html#ID-E7C3082'>1</a>, <a
  class='index-inst' href='core.html#ID-C74D1578'>2</a>, <a
  class='index-inst' href='references.html#OMGIDL'>3</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#node-ownerDoc'>ownerDocument</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#Attr-ownerElement'>ownerElement</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1060184317'>parent</a> <a class='index-inst'
  href='core.html#ID-1060184317'>1</a>, <a class='index-inst'
  href='glossary.html#dt-parent'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1060184317'>parentNode</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-NodeNSPrefix'>prefix</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-640FB3C8'>previousSibling</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>PROCESSING_INSTRUCTION_NODE</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1004215813'>ProcessingInstruction</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-Core-DocType-publicId'>publicId</a> <a
  class='index-inst' href='core.html#ID-Core-DocType-publicId'>1</a>,
  <a class='index-inst' href='core.html#ID-54F2B4D0'>2</a>, <a
  class='index-inst' href='core.html#ID-D7303025'>3</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#Namespaces-Considerations'>qualified name</a> <a
  class='index-inst'
  href='core.html#Namespaces-Considerations'>1</a>, <a
  class='index-inst'
  href='core.html#Level-2-Core-DOM-createDocType'>2</a>, <a
  class='index-inst'
  href='core.html#Level-2-Core-DOM-createDocument'>3</a>, <a
  class='index-inst' href='core.html#ID-DocCrElNS'>4</a>, <a
  class='index-inst' href='core.html#ID-DocCrAttrNS'>5</a>, <a
  class='index-inst' href='core.html#ID-NodeNSPrefix'>6</a>, <a
  class='index-inst' href='core.html#ID-NodeNSLocalN'>7</a>, <a
  class='index-inst' href='core.html#ID-ElSetAttrNS'>8</a>, <a
  class='index-inst' href='glossary.html#dt-qualifiedname'>9</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-3A0ED0A4'>readonly node</a> <a
  class='index-inst' href='core.html#ID-3A0ED0A4'>1</a>, <a
  class='index-inst' href='core.html#ID-5431D1B9'>2</a>, <a
  class='index-inst' href='core.html#ID-527DCFF2'>3</a>, <a
  class='index-inst' href='core.html#ID-11C98490'>4</a>, <a
  class='index-inst' href='glossary.html#dt-readonly-node'>5</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-6D6AC0F9'>removeAttribute</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-D589198'>removeAttributeNode</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-ElRemAtNS'>removeAttributeNS</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1734834066'>removeChild</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-D58B193'>removeNamedItem</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-removeNamedItemNS'>removeNamedItemNS</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-785887307'>replaceChild</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-E5CBA7FB'>replaceData</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='glossary.html#dt-XML-namespace'>RFC2396</a> <a
  class='index-inst' href='glossary.html#dt-XML-namespace'>1</a>, <a
  class='index-inst' href='references.html#URIRef'>2</a></td>
  <td width='30%'><a class='noxref' href='core.html#i-Document'>root
  node</a> <a class='index-inst' href='core.html#i-Document'>1</a>,
  <a class='index-inst' href='glossary.html#dt-root-node'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-F68F082'>setAttribute</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-887236154'>setAttributeNode</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-ElSetAtNodeNS'>setAttributeNodeNS</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-ElSetAttrNS'>setAttributeNS</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1025163788'>setNamedItem</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-setNamedItemNS'>setNamedItemNS</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-B63ED1A3'>sibling</a> <a class='index-inst'
  href='core.html#ID-B63ED1A3'>1</a>, <a class='index-inst'
  href='core.html#ID-38853C1D'>2</a>, <a class='index-inst'
  href='glossary.html#dt-sibling'>3</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-862529273'>specified</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-38853C1D'>splitText</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-5DFED1F0'>string comparison</a> <a
  class='index-inst' href='core.html#ID-5DFED1F0'>1</a>, <a
  class='index-inst'
  href='core.html#Namespaces-Considerations'>2</a>, <a
  class='index-inst'
  href='glossary.html#dt-string-compare'>3</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-6531BCCF'>substringData</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>SYNTAX_ERR</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-Core-DocType-systemId'>systemId</a> <a
  class='index-inst' href='core.html#ID-Core-DocType-systemId'>1</a>,
  <a class='index-inst' href='core.html#ID-E8AAB1D0'>2</a>, <a
  class='index-inst' href='core.html#ID-D7C29F3E'>3</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-104682815'>tagName</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1478689192'>target</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1312295772'>Text</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1841493061'>TEXT_NODE</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-1478689192'>token</a> <a class='index-inst'
  href='core.html#ID-1478689192'>1</a>, <a class='index-inst'
  href='glossary.html#dt-token'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-637646024'>tokenized</a> <a class='index-inst'
  href='core.html#ID-637646024'>1</a>, <a class='index-inst'
  href='glossary.html#dt-tokenized'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-C74D1578'>Unicode</a> <a class='index-inst'
  href='core.html#ID-C74D1578'>1</a>, <a class='index-inst'
  href='glossary.html#dt-16-bit-unit'>2</a>, <a class='index-inst'
  href='glossary.html#dt-string-compare'>3</a>, <a class='index-inst'
  href='references.html#Unicode'>4</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-221662474'>value</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-B63ED1A3'>well-formed document</a> <a
  class='index-inst' href='core.html#ID-B63ED1A3'>1</a>, <a
  class='index-inst' href='glossary.html#dt-well-formed'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#ID-258A00AF'>WRONG_DOCUMENT_ERR</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='introduction.html#ID-E7C3082'>XML</a> <a class='index-inst'
  href='introduction.html#ID-E7C3082'>1</a>, <a class='index-inst'
  href='core.html#ID-5431D1B9'>2</a>, <a class='index-inst'
  href='glossary.html#dt-XML'>3</a>, <a class='index-inst'
  href='glossary.html#dt-element'>4</a>, <a class='index-inst'
  href='glossary.html#dt-well-formed'>5</a>, <a class='index-inst'
  href='glossary.html#dt-XML-name'>6</a>, <a class='index-inst'
  href='references.html#XML'>7</a></td>
  <td width='30%'><a class='noxref' href='core.html#ID-5CED94D7'>XML
  name</a> <a class='index-inst' href='core.html#ID-5CED94D7'>1</a>,
  <a class='index-inst' href='glossary.html#dt-XML-name'>2</a></td>
  <td width='30%'><a class='noxref'
  href='core.html#Namespaces-Considerations'>XML namespace</a> <a
  class='index-inst'
  href='core.html#Namespaces-Considerations'>1</a>, <a
  class='index-inst' href='glossary.html#dt-XML-namespace'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='core.html#ID-normalize'>XPointer</a> <a class='index-inst'
  href='core.html#ID-normalize'>1</a>, <a class='index-inst'
  href='references.html#XPointer'>2</a></td>
  </tr>
  </table>
  </div>
  
  <!-- div1 Index -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='references.html'>previous</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/ecma-script-binding.html
  
  Index: ecma-script-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:24 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>ECMAScript Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='acknowledgements.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='java-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='java-binding.html'>previous</a> &nbsp; <a accesskey='n'
  href='acknowledgements.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="ecma-binding" name='ecma-binding'></a> 
  
  <h1 id='ecma-binding-h1' class='adiv1'>Appendix E: ECMAScript
  Language Binding</h1>
  
  <p>This appendix contains the complete ECMAScript [<a
  class='noxref' href='references.html#ECMAScript'>ECMAScript</a>]
  binding for the Level 2 Document Object Model Core definitions.</p>
  
  <p><b>Note:</b> Exceptions handling is only supported by ECMAScript
  implementation conformant with the Standard ECMA-262 3rd. Edition
  ([<a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a>]).</p>
  
  <div class='ecma-block'>
  <dl>
  <dt>Prototype Object <b>DOMException</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>DOMException</b> class has the following constants:</dt>
  
  <dd>
  <dl>
  <dt><b>DOMException.INDEX_SIZE_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>DOMException.DOMSTRING_SIZE_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>DOMException.HIERARCHY_REQUEST_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>3</b>.</dd>
  
  <dt><b>DOMException.WRONG_DOCUMENT_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>4</b>.</dd>
  
  <dt><b>DOMException.INVALID_CHARACTER_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>5</b>.</dd>
  
  <dt><b>DOMException.NO_DATA_ALLOWED_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>6</b>.</dd>
  
  <dt><b>DOMException.NO_MODIFICATION_ALLOWED_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>7</b>.</dd>
  
  <dt><b>DOMException.NOT_FOUND_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>8</b>.</dd>
  
  <dt><b>DOMException.NOT_SUPPORTED_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>9</b>.</dd>
  
  <dt><b>DOMException.INUSE_ATTRIBUTE_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>10</b>.</dd>
  
  <dt><b>DOMException.INVALID_STATE_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>11</b>.</dd>
  
  <dt><b>DOMException.SYNTAX_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>12</b>.</dd>
  
  <dt><b>DOMException.INVALID_MODIFICATION_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>13</b>.</dd>
  
  <dt><b>DOMException.NAMESPACE_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>14</b>.</dd>
  
  <dt><b>DOMException.INVALID_ACCESS_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>15</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DOMException</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>DOMException</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>code</b></dt>
  
  <dd>This property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DOMImplementation</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>DOMImplementation</b> object has the following
  methods:</dt>
  
  <dd>
  <dl>
  <dt><b>hasFeature(feature, version)</b></dt>
  
  <dd>This method returns a <b>Boolean</b>.<br />
  The <b>feature</b> parameter is of type <b>String</b>.<br />
  The <b>version</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>createDocumentType(qualifiedName, publicId,
  systemId)</b></dt>
  
  <dd>This method returns a <b>DocumentType</b> object.<br />
  The <b>qualifiedName</b> parameter is of type <b>String</b>.<br />
  The <b>publicId</b> parameter is of type <b>String</b>.<br />
  The <b>systemId</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>createDocument(namespaceURI, qualifiedName,
  doctype)</b></dt>
  
  <dd>This method returns a <b>Document</b> object.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>qualifiedName</b> parameter is of type <b>String</b>.<br />
  The <b>doctype</b> parameter is a <b>DocumentType</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DocumentFragment</b></dt>
  
  <dd>
  <dl>
  <dt><b>DocumentFragment</b> has the all the properties and methods
  of the <b>Node</b> object as well as the properties and methods
  defined below.</dt>
  </dl>
  </dd>
  
  <dt>Object <b>Document</b></dt>
  
  <dd>
  <dl>
  <dt><b>Document</b> has the all the properties and methods of the
  <b>Node</b> object as well as the properties and methods defined
  below.</dt>
  
  <dt>The <b>Document</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>doctype</b></dt>
  
  <dd>This read-only property is a <b>DocumentType</b> object.</dd>
  
  <dt><b>implementation</b></dt>
  
  <dd>This read-only property is a <b>DOMImplementation</b>
  object.</dd>
  
  <dt><b>documentElement</b></dt>
  
  <dd>This read-only property is a <b>Element</b> object.</dd>
  </dl>
  </dd>
  
  <dt>The <b>Document</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>createElement(tagName)</b></dt>
  
  <dd>This method returns a <b>Element</b> object.<br />
  The <b>tagName</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>createDocumentFragment()</b></dt>
  
  <dd>This method returns a <b>DocumentFragment</b> object.</dd>
  
  <dt><b>createTextNode(data)</b></dt>
  
  <dd>This method returns a <b>Text</b> object.<br />
  The <b>data</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>createComment(data)</b></dt>
  
  <dd>This method returns a <b>Comment</b> object.<br />
  The <b>data</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>createCDATASection(data)</b></dt>
  
  <dd>This method returns a <b>CDATASection</b> object.<br />
  The <b>data</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>createProcessingInstruction(target, data)</b></dt>
  
  <dd>This method returns a <b>ProcessingInstruction</b>
  object.<br />
  The <b>target</b> parameter is of type <b>String</b>.<br />
  The <b>data</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>createAttribute(name)</b></dt>
  
  <dd>This method returns a <b>Attr</b> object.<br />
  The <b>name</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>createEntityReference(name)</b></dt>
  
  <dd>This method returns a <b>EntityReference</b> object.<br />
  The <b>name</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getElementsByTagName(tagname)</b></dt>
  
  <dd>This method returns a <b>NodeList</b> object.<br />
  The <b>tagname</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>importNode(importedNode, deep)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>importedNode</b> parameter is a <b>Node</b> object.<br />
  The <b>deep</b> parameter is of type <b>Boolean</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>createElementNS(namespaceURI, qualifiedName)</b></dt>
  
  <dd>This method returns a <b>Element</b> object.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>qualifiedName</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>createAttributeNS(namespaceURI, qualifiedName)</b></dt>
  
  <dd>This method returns a <b>Attr</b> object.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>qualifiedName</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getElementsByTagNameNS(namespaceURI, localName)</b></dt>
  
  <dd>This method returns a <b>NodeList</b> object.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>localName</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>getElementById(elementId)</b></dt>
  
  <dd>This method returns a <b>Element</b> object.<br />
  The <b>elementId</b> parameter is of type <b>String</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Prototype Object <b>Node</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>Node</b> class has the following constants:</dt>
  
  <dd>
  <dl>
  <dt><b>Node.ELEMENT_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>Node.ATTRIBUTE_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>Node.TEXT_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>3</b>.</dd>
  
  <dt><b>Node.CDATA_SECTION_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>4</b>.</dd>
  
  <dt><b>Node.ENTITY_REFERENCE_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>5</b>.</dd>
  
  <dt><b>Node.ENTITY_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>6</b>.</dd>
  
  <dt><b>Node.PROCESSING_INSTRUCTION_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>7</b>.</dd>
  
  <dt><b>Node.COMMENT_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>8</b>.</dd>
  
  <dt><b>Node.DOCUMENT_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>9</b>.</dd>
  
  <dt><b>Node.DOCUMENT_TYPE_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>10</b>.</dd>
  
  <dt><b>Node.DOCUMENT_FRAGMENT_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>11</b>.</dd>
  
  <dt><b>Node.NOTATION_NODE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>12</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Node</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>Node</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>nodeName</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>nodeValue</b></dt>
  
  <dd>This property is of type <b>String</b>, can raise a
  <b>DOMException</b> object on setting and can raise a
  <b>DOMException</b> object on retrieval.</dd>
  
  <dt><b>nodeType</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  
  <dt><b>parentNode</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>childNodes</b></dt>
  
  <dd>This read-only property is a <b>NodeList</b> object.</dd>
  
  <dt><b>firstChild</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>lastChild</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>previousSibling</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>nextSibling</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>attributes</b></dt>
  
  <dd>This read-only property is a <b>NamedNodeMap</b> object.</dd>
  
  <dt><b>ownerDocument</b></dt>
  
  <dd>This read-only property is a <b>Document</b> object.</dd>
  
  <dt><b>namespaceURI</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>prefix</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>localName</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>Node</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>insertBefore(newChild, refChild)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>newChild</b> parameter is a <b>Node</b> object.<br />
  The <b>refChild</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>replaceChild(newChild, oldChild)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>newChild</b> parameter is a <b>Node</b> object.<br />
  The <b>oldChild</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>removeChild(oldChild)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>oldChild</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>appendChild(newChild)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>newChild</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>hasChildNodes()</b></dt>
  
  <dd>This method returns a <b>Boolean</b>.</dd>
  
  <dt><b>cloneNode(deep)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>deep</b> parameter is of type <b>Boolean</b>.</dd>
  
  <dt><b>normalize()</b></dt>
  
  <dd>This method has no return value.</dd>
  
  <dt><b>isSupported(feature, version)</b></dt>
  
  <dd>This method returns a <b>Boolean</b>.<br />
  The <b>feature</b> parameter is of type <b>String</b>.<br />
  The <b>version</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>hasAttributes()</b></dt>
  
  <dd>This method returns a <b>Boolean</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>NodeList</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>NodeList</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>length</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>NodeList</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>item(index)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  <b>Note:</b> This object can also be dereferenced using square
  bracket notation (e.g. obj[1]). Dereferencing with an integer
  <b>index</b> is equivalent to invoking the <b>item</b> method with
  that index.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>NamedNodeMap</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>NamedNodeMap</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>length</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>NamedNodeMap</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>getNamedItem(name)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>name</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>setNamedItem(arg)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>arg</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>removeNamedItem(name)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>name</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>item(index)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  <b>Note:</b> This object can also be dereferenced using square
  bracket notation (e.g. obj[1]). Dereferencing with an integer
  <b>index</b> is equivalent to invoking the <b>item</b> method with
  that index.</dd>
  
  <dt><b>getNamedItemNS(namespaceURI, localName)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>localName</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>setNamedItemNS(arg)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>arg</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>removeNamedItemNS(namespaceURI, localName)</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>localName</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CharacterData</b></dt>
  
  <dd>
  <dl>
  <dt><b>CharacterData</b> has the all the properties and methods of
  the <b>Node</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CharacterData</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>data</b></dt>
  
  <dd>This property is of type <b>String</b>, can raise a
  <b>DOMException</b> object on setting and can raise a
  <b>DOMException</b> object on retrieval.</dd>
  
  <dt><b>length</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>CharacterData</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>substringData(offset, count)</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  The <b>offset</b> parameter is of type <b>Number</b>.<br />
  The <b>count</b> parameter is of type <b>Number</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>appendData(arg)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>arg</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>insertData(offset, arg)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>offset</b> parameter is of type <b>Number</b>.<br />
  The <b>arg</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>deleteData(offset, count)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>offset</b> parameter is of type <b>Number</b>.<br />
  The <b>count</b> parameter is of type <b>Number</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>replaceData(offset, count, arg)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>offset</b> parameter is of type <b>Number</b>.<br />
  The <b>count</b> parameter is of type <b>Number</b>.<br />
  The <b>arg</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Attr</b></dt>
  
  <dd>
  <dl>
  <dt><b>Attr</b> has the all the properties and methods of the
  <b>Node</b> object as well as the properties and methods defined
  below.</dt>
  
  <dt>The <b>Attr</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>name</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>specified</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  
  <dt><b>value</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>ownerElement</b></dt>
  
  <dd>This read-only property is a <b>Element</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Element</b></dt>
  
  <dd>
  <dl>
  <dt><b>Element</b> has the all the properties and methods of the
  <b>Node</b> object as well as the properties and methods defined
  below.</dt>
  
  <dt>The <b>Element</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>tagName</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>Element</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>getAttribute(name)</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  The <b>name</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>setAttribute(name, value)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>name</b> parameter is of type <b>String</b>.<br />
  The <b>value</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>removeAttribute(name)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>name</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getAttributeNode(name)</b></dt>
  
  <dd>This method returns a <b>Attr</b> object.<br />
  The <b>name</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>setAttributeNode(newAttr)</b></dt>
  
  <dd>This method returns a <b>Attr</b> object.<br />
  The <b>newAttr</b> parameter is a <b>Attr</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>removeAttributeNode(oldAttr)</b></dt>
  
  <dd>This method returns a <b>Attr</b> object.<br />
  The <b>oldAttr</b> parameter is a <b>Attr</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getElementsByTagName(name)</b></dt>
  
  <dd>This method returns a <b>NodeList</b> object.<br />
  The <b>name</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>getAttributeNS(namespaceURI, localName)</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>localName</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>setAttributeNS(namespaceURI, qualifiedName, value)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>qualifiedName</b> parameter is of type <b>String</b>.<br />
  The <b>value</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>removeAttributeNS(namespaceURI, localName)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>localName</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getAttributeNodeNS(namespaceURI, localName)</b></dt>
  
  <dd>This method returns a <b>Attr</b> object.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>localName</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>setAttributeNodeNS(newAttr)</b></dt>
  
  <dd>This method returns a <b>Attr</b> object.<br />
  The <b>newAttr</b> parameter is a <b>Attr</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getElementsByTagNameNS(namespaceURI, localName)</b></dt>
  
  <dd>This method returns a <b>NodeList</b> object.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>localName</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>hasAttribute(name)</b></dt>
  
  <dd>This method returns a <b>Boolean</b>.<br />
  The <b>name</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>hasAttributeNS(namespaceURI, localName)</b></dt>
  
  <dd>This method returns a <b>Boolean</b>.<br />
  The <b>namespaceURI</b> parameter is of type <b>String</b>.<br />
  The <b>localName</b> parameter is of type <b>String</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Text</b></dt>
  
  <dd>
  <dl>
  <dt><b>Text</b> has the all the properties and methods of the
  <b>CharacterData</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>Text</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>splitText(offset)</b></dt>
  
  <dd>This method returns a <b>Text</b> object.<br />
  The <b>offset</b> parameter is of type <b>Number</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Comment</b></dt>
  
  <dd>
  <dl>
  <dt><b>Comment</b> has the all the properties and methods of the
  <b>CharacterData</b> object as well as the properties and methods
  defined below.</dt>
  </dl>
  </dd>
  
  <dt>Object <b>CDATASection</b></dt>
  
  <dd>
  <dl>
  <dt><b>CDATASection</b> has the all the properties and methods of
  the <b>Text</b> object as well as the properties and methods
  defined below.</dt>
  </dl>
  </dd>
  
  <dt>Object <b>DocumentType</b></dt>
  
  <dd>
  <dl>
  <dt><b>DocumentType</b> has the all the properties and methods of
  the <b>Node</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>DocumentType</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>name</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>entities</b></dt>
  
  <dd>This read-only property is a <b>NamedNodeMap</b> object.</dd>
  
  <dt><b>notations</b></dt>
  
  <dd>This read-only property is a <b>NamedNodeMap</b> object.</dd>
  
  <dt><b>publicId</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>systemId</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>internalSubset</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Notation</b></dt>
  
  <dd>
  <dl>
  <dt><b>Notation</b> has the all the properties and methods of the
  <b>Node</b> object as well as the properties and methods defined
  below.</dt>
  
  <dt>The <b>Notation</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>publicId</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>systemId</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Entity</b></dt>
  
  <dd>
  <dl>
  <dt><b>Entity</b> has the all the properties and methods of the
  <b>Node</b> object as well as the properties and methods defined
  below.</dt>
  
  <dt>The <b>Entity</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>publicId</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>systemId</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>notationName</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>EntityReference</b></dt>
  
  <dd>
  <dl>
  <dt><b>EntityReference</b> has the all the properties and methods
  of the <b>Node</b> object as well as the properties and methods
  defined below.</dt>
  </dl>
  </dd>
  
  <dt>Object <b>ProcessingInstruction</b></dt>
  
  <dd>
  <dl>
  <dt><b>ProcessingInstruction</b> has the all the properties and
  methods of the <b>Node</b> object as well as the properties and
  methods defined below.</dt>
  
  <dt>The <b>ProcessingInstruction</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>target</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>data</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- ecma-block -->
  </div>
  
  <!-- div1 ecma-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='java-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='acknowledgements.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/expanded-toc.html
  
  Index: expanded-toc.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:42:27 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Expanded Table of Contents</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='copyright-notice.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='Overview.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='Overview.html'>previous</a> &nbsp; <a accesskey='n'
  href='copyright-notice.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="TOC" name='TOC'></a> 
  
  <h1 id='TOC-h1' class='div1'>Expanded Table of Contents</h1>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='introduction.html'>What is the Document Object Model?</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='introduction.html#ID-E7C3082'>Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='introduction.html#ID-E7C30821'>What the Document Object Model
  is</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='introduction.html#ID-E7C30822'>What the Document Object Model
  is not</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='introduction.html#ID-E7C30823'>Where the Document Object
  Model came from</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='introduction.html#ID-E7C30824'>Entities and the DOM
  Core</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='introduction.html#ID-Conformance'>Conformance</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='introduction.html#ID-E7C30826'>DOM Interfaces and DOM
  Implementations</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref' href='core.html'>1.
  Document Object Model Core</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='core.html#ID-1590626201'>1.1. Overview of the DOM Core
  Interfaces</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='core.html#ID-1590626202'>1.1.1. The DOM Structure
  Model</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='core.html#ID-249F15BA'>1.1.2. Memory Management</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='core.html#ID-45A944CB'>1.1.3. Naming Conventions</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='core.html#ID-1CED5498'>1.1.4. Inheritance vs. Flattened Views
  of the API</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='core.html#ID-C74D1578'>1.1.5. The DOMString type</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='core.html#Core-DOMTimeStamp'>1.1.6. The DOMTimeStamp
  type</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='core.html#ID-5DFED1F0'>1.1.7. String comparisons in the
  DOM</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='core.html#Namespaces-Considerations'>1.1.8. XML
  Namespaces</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='core.html#ID-BBACDC08'>1.2. Fundamental Interfaces</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='core.html#ID-E067D597'>1.3. Extended Interfaces</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='changes.html'>Appendix A: Changes</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='changes.html#DOMLevel1to2Changes'>A.1. Changes between DOM
  Level 1 Core and DOM Level 2 Core</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='changes.html#DOMLevel1Changes'>A.1.1. Changes to DOM Level 1
  Core interfaces and exceptions</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='changes.html#DOMLevel2Addons'>A.1.2. New features</a></li>
  </ul>
  </li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref' href='i18n.html'>Appendix
  B: Accessing code point boundaries</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='i18n.html#i18n-introduction'>B.1. Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='i18n.html#i18n-methods'>B.2. Methods</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix C: IDL Definitions</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix D: Java Language Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix E: ECMAScript Language
  Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix F: Acknowledgements</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='acknowledgements.html#Productions'>F.1. Production
  Systems</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='glossary.html'>Glossary</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='references.html#References-Normative'>1. Normative
  references</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='references.html#References-Informative'>2. Informative
  references</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  </div>
  
  <!-- div1 TOC -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='Overview.html'>previous</a> &nbsp; <a
  accesskey='n' href='copyright-notice.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/glossary.html
  
  Index: glossary.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:25 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Glossary</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='references.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='acknowledgements.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='acknowledgements.html'>previous</a> &nbsp; <a accesskey='n'
  href='references.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="glossary" name='glossary'></a> 
  
  <h1 id='role-glossary' class='glossary'>Glossary</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Arnaud Le Hors, IBM</dd>
  
  <dd>Lauren Wood, SoftQuad Software Inc.</dd>
  
  <dd>Robert S. Sutor, IBM (for DOM Level 1)</dd>
  </dl>
  
  <p>Several of the following term definitions have been borrowed or
  modified from similar definitions in other W3C or standards
  documents. See the links within the definitions for more
  information.</p>
  
  <dl>
  <dt><b><a id="dt-16-bit-unit" name='dt-16-bit-unit'>16-bit
  unit</a></b></dt>
  
  <dd>The base unit of a <a
  href='core.html#DOMString'><code>DOMString</code></a>. This
  indicates that indexing on a <a class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a> occurs in
  units of 16 bits. This must not be misunderstood to mean that a <a
  class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a> can store
  arbitrary 16-bit units. A <a class='noxref'
  href='core.html#DOMString'><code>DOMString</code></a> is a
  character string encoded in UTF-16; this means that the
  restrictions of UTF-16 as well as the other relevant restrictions
  on character strings must be maintained. A single character, for
  example in the form of a numeric character reference, may
  correspond to one or two 16-bit units.<br />
  For more information, see [<a class='noxref'
  href='references.html#Unicode'>Unicode</a>] and [<a class='noxref'
  href='references.html#ISO10646'>ISO/IEC 10646</a>].</dd>
  
  <dt><b><a id="dt-ancestor" name='dt-ancestor'>ancestor</a></b></dt>
  
  <dd>An <i>ancestor</i> node of any node A is any node above A in a
  tree model of a document, where "above" means "toward the
  root."</dd>
  
  <dt><b><a id="dt-API" name='dt-API'>API</a></b></dt>
  
  <dd>An <i>API</i> is an application programming interface, a set of
  functions or <i>methods</i> used to access some functionality.</dd>
  
  <dt><b><a id="dt-child" name='dt-child'>child</a></b></dt>
  
  <dd>A <i>child</i> is an immediate <i>descendant</i> node of a
  node.</dd>
  
  <dt><b><a id="dt-application" name='dt-application'>client
  application</a></b></dt>
  
  <dd>A [client] application is any software that uses the Document
  Object Model programming interfaces provided by the hosting
  implementation to accomplish useful work. Some examples of client
  applications are scripts within an HTML or XML document.</dd>
  
  <dt><b><a id="dt-COM" name='dt-COM'>COM</a></b></dt>
  
  <dd><i>COM</i> is Microsoft's Component Object Model [<a
  class='noxref' href='references.html#COM'>COM</a>], a technology
  for building applications from binary software components.</dd>
  
  <dt><b><a id="dt-convenience"
  name='dt-convenience'>convenience</a></b></dt>
  
  <dd>A <i>convenience method</i> is an operation on an object that
  could be accomplished by a program consisting of more basic
  operations on the object. Convenience <i>methods</i> are usually
  provided to make the API easier and simpler to use or to allow
  specific programs to create more optimized implementations for
  common operations. A similar definition holds for a <i>convenience
  property</i>.</dd>
  
  <dt><b><a id="dt-datamodel" name='dt-datamodel'>data
  model</a></b></dt>
  
  <dd>A <i>data model</i> is a collection of descriptions of data
  structures and their contained fields, together with the operations
  or functions that manipulate them.</dd>
  
  <dt><b><a id="dt-descendant"
  name='dt-descendant'>descendant</a></b></dt>
  
  <dd>A <i>descendant</i> node of any node A is any node below A in a
  tree model of a document, where "above" means "toward the
  root."</dd>
  
  <dt><b><a id="dt-ECMAScript"
  name='dt-ECMAScript'>ECMAScript</a></b></dt>
  
  <dd>The programming language defined by the ECMA-262 standard [<a
  class='noxref' href='references.html#ECMAScript'>ECMAScript</a>].
  As stated in the standard, the originating technology for
  ECMAScript was JavaScript [<a class='noxref'
  href='references.html#JavaScript'>JavaScript</a>]. Note that in the
  ECMAScript Language binding, the word "property" is used in the
  same sense as the IDL term "attribute."</dd>
  
  <dt><b><a id="dt-element" name='dt-element'>element</a></b></dt>
  
  <dd>Each document contains one or more elements, the boundaries of
  which are either delimited by start-tags and end-tags, or, for
  empty elements by an empty-element tag. Each element has a type,
  identified by name, and may have a set of attributes. Each
  attribute has a name and a value. See <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#sec-logical-struct'>
  <em>Logical Structures</em></a> in XML [<a class='noxref'
  href='references.html#XML'>XML</a>].</dd>
  
  <dt><b><a id="dt-infoitem" name='dt-infoitem'>information
  item</a></b></dt>
  
  <dd>An information item is an abstract representation of some
  component of an XML document. See the [<a class='noxref'
  href='references.html#InfoSet'>Infoset</a>] for details.</dd>
  
  <dt><b><a id="dt-implementation" name='dt-implementation'>hosting
  implementation</a></b></dt>
  
  <dd>A [hosting] implementation is a software module that provides
  an implementation of the DOM interfaces so that a client
  application can use them. Some examples of hosting implementations
  are browsers, editors and document repositories.</dd>
  
  <dt><b><a id="dt-HTML" name='dt-HTML'>HTML</a></b></dt>
  
  <dd>The HyperText Markup Language (<i>HTML</i>) is a simple markup
  language used to create hypertext documents that are portable from
  one platform to another. HTML documents are SGML documents with
  generic semantics that are appropriate for representing information
  from a wide range of applications. [<a class='noxref'
  href='references.html#HTML40'>HTML4.0</a>]</dd>
  
  <dt><b><a id="dt-inheritance"
  name='dt-inheritance'>inheritance</a></b></dt>
  
  <dd>In object-oriented programming, the ability to create new
  classes (or interfaces) that contain all the methods and properties
  of another class (or interface), plus additional methods and
  properties. If class (or interface) D inherits from class (or
  interface) B, then D is said to be <i>derived</i> from B. B is said
  to be a <i>base</i> class (or interface) for D. Some programming
  languages allow for multiple inheritance, that is, inheritance from
  more than one class or interface.</dd>
  
  <dt><b><a id="dt-interface"
  name='dt-interface'>interface</a></b></dt>
  
  <dd>An <i>interface</i> is a declaration of a set of <i>methods</i>
  with no information given about their implementation. In object
  systems that support interfaces and inheritance, interfaces can
  usually inherit from one another.</dd>
  
  <dt><b><a id="dt-lang-binding" name='dt-lang-binding'>language
  binding</a></b></dt>
  
  <dd>A programming <i>language binding</i> for an IDL specification
  is an implementation of the interfaces in the specification for the
  given language. For example, a Java language binding for the
  Document Object Model IDL specification would implement the
  concrete Java classes that provide the functionality exposed by the
  interfaces.</dd>
  
  <dt><b><a id="dt-localname" name='dt-localname'>local
  name</a></b></dt>
  
  <dd>A <i>local name</i> is the local part of a <i>qualified
  name</i>. This is called the local part in Namespaces in XML [<a
  class='noxref'
  href='references.html#Namespaces'>Namespaces</a>].</dd>
  
  <dt><b><a id="dt-method" name='dt-method'>method</a></b></dt>
  
  <dd>A <i>method</i> is an operation or function that is associated
  with an object and is allowed to manipulate the object's data.</dd>
  
  <dt><b><a id="dt-model" name='dt-model'>model</a></b></dt>
  
  <dd>A <i>model</i> is the actual data representation for the
  information at hand. Examples are the structural model and the
  style model representing the parse structure and the style
  information associated with a document. The model might be a tree,
  or a directed graph, or something else.</dd>
  
  <dt><b><a id="dt-namespaceprefix"
  name='dt-namespaceprefix'>namespace prefix</a></b></dt>
  
  <dd>A <i>namespace prefix</i> is a string that associates an
  element or attribute name with a <i>namespace URI</i> in XML. See
  namespace prefix in Namespaces in XML [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>].</dd>
  
  <dt><b><a id="dt-namespaceURI" name='dt-namespaceURI'>namespace
  URI</a></b></dt>
  
  <dd>A <i>namespace URI</i> is a URI that identifies an <i>XML
  namespace</i>. Strictly speaking, this actually is a <i>namespace
  URI reference</i>. This is called the namespace name in Namespaces
  in XML [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>].</dd>
  
  <dt><b><a id="dt-object-model" name='dt-object-model'>object
  model</a></b></dt>
  
  <dd>An <i>object model</i> is a collection of descriptions of
  classes or interfaces, together with their member data, member
  functions, and class-static operations.</dd>
  
  <dt><b><a id="dt-parent" name='dt-parent'>parent</a></b></dt>
  
  <dd>A <i>parent</i> is an immediate <i>ancestor</i> node of a
  node.</dd>
  
  <dt><b><a id="dt-qualifiedname" name='dt-qualifiedname'>qualified
  name</a></b></dt>
  
  <dd>A <i>qualified name</i> is the name of an element or attribute
  defined as the concatenation of a <i>local name</i> (as defined in
  this specification), optionally preceded by a <i>namespace
  prefix</i> and colon character. See <a
  href='http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-qualnames'>
  <em>Qualified Names</em></a> in Namespaces in XML [<a
  class='noxref'
  href='references.html#Namespaces'>Namespaces</a>].</dd>
  
  <dt><b><a id="dt-readonly-node" name='dt-readonly-node'>readonly
  node</a></b></dt>
  
  <dd>A <i>readonly node</i> is a node that is immutable. This means
  its list of children, its content, and its attributes, when it is
  an element, cannot be changed in any way. However, a readonly node
  can possibly be moved, when it is not itself contained in a
  readonly node.</dd>
  
  <dt><b><a id="dt-root-node" name='dt-root-node'>root
  node</a></b></dt>
  
  <dd>The <i>root node</i> is the unique node that is not a
  <i>child</i> of any other node. All other nodes are children or
  other descendants of the root node.</dd>
  
  <dt><b><a id="dt-sibling" name='dt-sibling'>sibling</a></b></dt>
  
  <dd>Two nodes are <i>siblings</i> if and only if they have the same
  <i>parent</i> node.</dd>
  
  <dt><b><a id="dt-string-compare" name='dt-string-compare'>string
  comparison</a></b></dt>
  
  <dd>When string matching is required, it is to occur as though the
  comparison was between 2 sequences of code points from the Unicode
  3.0 standard [<a class='noxref'
  href='references.html#Unicode'>Unicode</a>].</dd>
  
  <dt><b><a id="dt-token" name='dt-token'>token</a></b></dt>
  
  <dd>An information item such as an XML Name which has been <a
  href='glossary.html#dt-tokenized'><em>tokenized</em></a>.</dd>
  
  <dt><b><a id="dt-tokenized"
  name='dt-tokenized'>tokenized</a></b></dt>
  
  <dd>The description given to various information items (for
  example, attribute values of various types, but not including the
  StringType CDATA) after having been processed by the XML processor.
  The process includes stripping leading and trailing white space,
  and replacing multiple space characters by one. See the definition
  of tokenized type.</dd>
  
  <dt><b><a id="dt-well-formed" name='dt-well-formed'>well-formed
  document</a></b></dt>
  
  <dd>A document is <i>well-formed</i> if it is tag valid and
  entities are limited to single elements (i.e., single sub-trees).
  See <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#sec-well-formed'><em>
  Well-Formed XML Documents</em></a> in XML [<a class='noxref'
  href='references.html#XML'>XML</a>].</dd>
  
  <dt><b><a id="dt-XML" name='dt-XML'>XML</a></b></dt>
  
  <dd>Extensible Markup Language (<i>XML</i>) is an extremely simple
  dialect of SGML. The goal is to enable generic SGML to be served,
  received, and processed on the Web in the way that is now possible
  with HTML. XML [<a class='noxref'
  href='references.html#XML'>XML</a>] has been designed for ease of
  implementation and for interoperability with both SGML and
  HTML.</dd>
  
  <dt><b><a id="dt-XML-name" name='dt-XML-name'>XML name</a></b></dt>
  
  <dd>See <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name'><em>XML
  name</em></a> in the XML specification [<a class='noxref'
  href='references.html#XML'>XML</a>].</dd>
  
  <dt><b><a id="dt-XML-namespace" name='dt-XML-namespace'>XML
  namespace</a></b></dt>
  
  <dd>An <i>XML namespace</i> is a collection of names, identified by
  a URI reference [<a class='noxref'
  href='references.html#URIRef'>RFC2396</a>], which are used in XML
  documents as element types and attribute names. [<a class='noxref'
  href='references.html#Namespaces'>Namespaces</a>]</dd>
  </dl>
  </div>
  
  <!-- div1 glossary -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='acknowledgements.html'>previous</a> &nbsp;
  <a accesskey='n' href='references.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/i18n.html
  
  Index: i18n.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:02 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Accessing code point boundaries</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='idl-definitions.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='changes.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='changes.html'>previous</a> &nbsp; <a accesskey='n'
  href='idl-definitions.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="i18n" name='i18n'></a> 
  
  <h1 id='i18n-h1' class='adiv1'>Appendix B: Accessing code point
  boundaries</h1>
  
  <dl>
  <dd>Mark Davis, IBM</dd>
  
  <dd>Lauren Wood, SoftQuad Software Inc.</dd>
  </dl>
  
  <div class='noprint'>
  <h2 id='table-of-contents'>Table of contents</h2>
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='#i18n-introduction'>2.1. Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref' href='#i18n-methods'>2.2.
  Methods</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a
  href='#i18n-methods-StringExtend'>StringExtend</a></li>
  </ul>
  </li>
  </ul>
  </div>
  
  <div class='div2'><a id="i18n-introduction"
  name='i18n-introduction'></a> 
  
  <h2 id='i18n-introduction-h2' class='adiv2'>B.1: Introduction</h2>
  
  <p>This appendix is an informative, not a normative, part of the
  Level 2 DOM specification.</p>
  
  <p>Characters are represented in Unicode by numbers called <i>code
  points</i> (also called <i>scalar values</i>). These numbers can
  range from 0 up to 1,114,111 = 10FFFF<sub>16</sub> (although some
  of these values are illegal). Each code point can be directly
  encoded with a 32-bit code unit. This encoding is termed UCS-4 (or
  UTF-32). The DOM specification, however, uses UTF-16, in which the
  most frequent characters (which have values less than
  FFFF<sub>16</sub>) are represented by a single 16-bit code unit,
  while characters above FFFF<sub>16</sub> use a special pair of code
  units called a <i>surrogate pair</i>. For more information, see [<a
  class='noxref' href='references.html#Unicode'>Unicode</a>] or the
  Unicode Web site.</p>
  
  <p>While indexing by code points as opposed to code units is not
  common in programs, some specifications such as XPath (and
  therefore XSLT and XPointer) use code point indices. For
  interfacing with such formats it is recommended that the
  programming language provide string processing methods for
  converting code point indices to code unit indices and back. Some
  languages do not provide these functions natively; for these it is
  recommended that the native <code>String</code> type that is bound
  to <a href='core.html#DOMString'><code>DOMString</code></a> be
  extended to enable this conversion. An example of how such an API
  might look is supplied below.</p>
  
  <p><b>Note:</b> Since these methods are supplied as an illustrative
  example of the type of functionality that is required, the names of
  the methods, exceptions, and interface may differ from those given
  here.</p>
  </div>
  
  <!-- div2 i18n-introduction -->
  <div class='div2'><a id="i18n-methods" name='i18n-methods'></a> 
  
  <h2 id='i18n-methods-h2' class='adiv2'>B.2: Methods</h2>
  
  <dl>
  <dt><b>Interface <i><a id="i18n-methods-StringExtend"
  name='i18n-methods-StringExtend'>StringExtend</a></i></b></dt>
  
  <dd>
  <p>Extensions to a language's native String class or interface</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  interface StringExtend {
    int                findOffset16(in int offset32)
                                          raises(StringIndexOutOfBoundsException);
    int                findOffset32(in int offset16)
                                          raises(StringIndexOutOfBoundsException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="i18n-methods-StringExtend-findOffset16"
  name='i18n-methods-StringExtend-findOffset16'>findOffset16</a></code></dt>
  
  <dd>
  <div class='method'>Returns the UTF-16 offset that corresponds to a
  UTF-32 offset. Used for random access. 
  
  <p><b>Note:</b> You can always round-trip from a UTF-32 offset to a
  UTF-16 offset and back. You can round-trip from a UTF-16 offset to
  a UTF-32 offset and back if and only if the offset16 is not in the
  middle of a surrogate pair. Unmatched surrogates count as a single
  UTF-16 value.</p>
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>offset32</code> of type
  <code>int</code></dt>
  
  <dd>UTF-32 offset.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>int</code></p>
  </td>
  <td>
  <p>UTF-16 offset</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>StringIndexOutOfBoundsException</code></p>
  </td>
  <td>
  <p>if <code>offset32</code> is out of bounds.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="i18n-methods-StringExtend-findOffset32"
  name='i18n-methods-StringExtend-findOffset32'>findOffset32</a></code></dt>
  
  <dd>
  <div class='method'>Returns the UTF-32 offset corresponding to a
  UTF-16 offset. Used for random access. To find the UTF-32 length of
  a string, use: 
  
  <div class='eg'>
  <pre>
  len32 = findOffset32(source, source.length());
  </pre>
  </div>
  
  <p><b>Note:</b> If the UTF-16 offset is into the middle of a
  surrogate pair, then the UTF-32 offset of the <em>end</em> of the
  pair is returned; that is, the index of the char after the end of
  the pair. You can always round-trip from a UTF-32 offset to a
  UTF-16 offset and back. You can round-trip from a UTF-16 offset to
  a UTF-32 offset and back if and only if the offset16 is not in the
  middle of a surrogate pair. Unmatched surrogates count as a single
  UTF-16 value.</p>
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>offset16</code> of type
  <code>int</code></dt>
  
  <dd>UTF-16 offset<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>int</code></p>
  </td>
  <td>
  <p>UTF-32 offset</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>StringIndexOutOfBoundsException</code></p>
  </td>
  <td>
  <p>if offset16 is out of bounds.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 i18n-methods --></div>
  
  <!-- div1 i18n -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='changes.html'>previous</a> &nbsp; <a
  accesskey='n' href='idl-definitions.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/idl-definitions.html
  
  Index: idl-definitions.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:02 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>IDL Definitions</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='java-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='i18n.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='i18n.html'>previous</a> &nbsp; <a accesskey='n'
  href='java-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="idl" name='idl'></a> 
  
  <h1 id='idl-h1' class='adiv1'>Appendix C: IDL Definitions</h1>
  
  <p>This appendix contains the complete OMG IDL [<a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a>] for the Level 2 Document
  Object Model Core definitions.</p>
  
  <p>The IDL files are also available as: <a
  href='idl.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/idl.zip</a></p>
  
  <h3 id='idl-dom.idl'><a href='idl/dom.idl'>dom.idl</a>:</h3>
  
  <div class='idl-code'>
  <pre>
  // File: dom.idl
  
  #ifndef _DOM_IDL_
  #define _DOM_IDL_
  
  #pragma prefix "w3c.org"
  module dom
  {
  
    valuetype DOMString sequence&lt;unsigned short&gt;;
  
    typedef   unsigned long long DOMTimeStamp;
  
    interface DocumentType;
    interface Document;
    interface NodeList;
    interface NamedNodeMap;
    interface Element;
  
    exception DOMException {
      unsigned short   code;
    };
    // ExceptionCode
    const unsigned short      INDEX_SIZE_ERR                 = 1;
    const unsigned short      DOMSTRING_SIZE_ERR             = 2;
    const unsigned short      HIERARCHY_REQUEST_ERR          = 3;
    const unsigned short      WRONG_DOCUMENT_ERR             = 4;
    const unsigned short      INVALID_CHARACTER_ERR          = 5;
    const unsigned short      NO_DATA_ALLOWED_ERR            = 6;
    const unsigned short      NO_MODIFICATION_ALLOWED_ERR    = 7;
    const unsigned short      NOT_FOUND_ERR                  = 8;
    const unsigned short      NOT_SUPPORTED_ERR              = 9;
    const unsigned short      INUSE_ATTRIBUTE_ERR            = 10;
    // Introduced in DOM Level 2:
    const unsigned short      INVALID_STATE_ERR              = 11;
    // Introduced in DOM Level 2:
    const unsigned short      SYNTAX_ERR                     = 12;
    // Introduced in DOM Level 2:
    const unsigned short      INVALID_MODIFICATION_ERR       = 13;
    // Introduced in DOM Level 2:
    const unsigned short      NAMESPACE_ERR                  = 14;
    // Introduced in DOM Level 2:
    const unsigned short      INVALID_ACCESS_ERR             = 15;
  
  
    interface DOMImplementation {
      boolean            hasFeature(in DOMString feature, 
                                    in DOMString version);
      // Introduced in DOM Level 2:
      DocumentType       createDocumentType(in DOMString qualifiedName, 
                                            in DOMString publicId, 
                                            in DOMString systemId)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Document           createDocument(in DOMString namespaceURI, 
                                        in DOMString qualifiedName, 
                                        in DocumentType doctype)
                                          raises(DOMException);
    };
  
    interface Node {
  
      // NodeType
      const unsigned short      ELEMENT_NODE                   = 1;
      const unsigned short      ATTRIBUTE_NODE                 = 2;
      const unsigned short      TEXT_NODE                      = 3;
      const unsigned short      CDATA_SECTION_NODE             = 4;
      const unsigned short      ENTITY_REFERENCE_NODE          = 5;
      const unsigned short      ENTITY_NODE                    = 6;
      const unsigned short      PROCESSING_INSTRUCTION_NODE    = 7;
      const unsigned short      COMMENT_NODE                   = 8;
      const unsigned short      DOCUMENT_NODE                  = 9;
      const unsigned short      DOCUMENT_TYPE_NODE             = 10;
      const unsigned short      DOCUMENT_FRAGMENT_NODE         = 11;
      const unsigned short      NOTATION_NODE                  = 12;
  
      readonly attribute DOMString        nodeName;
               attribute DOMString        nodeValue;
                                          // raises(DOMException) on setting
                                          // raises(DOMException) on retrieval
  
      readonly attribute unsigned short   nodeType;
      readonly attribute Node             parentNode;
      readonly attribute NodeList         childNodes;
      readonly attribute Node             firstChild;
      readonly attribute Node             lastChild;
      readonly attribute Node             previousSibling;
      readonly attribute Node             nextSibling;
      readonly attribute NamedNodeMap     attributes;
      // Modified in DOM Level 2:
      readonly attribute Document         ownerDocument;
      Node               insertBefore(in Node newChild, 
                                      in Node refChild)
                                          raises(DOMException);
      Node               replaceChild(in Node newChild, 
                                      in Node oldChild)
                                          raises(DOMException);
      Node               removeChild(in Node oldChild)
                                          raises(DOMException);
      Node               appendChild(in Node newChild)
                                          raises(DOMException);
      boolean            hasChildNodes();
      Node               cloneNode(in boolean deep);
      // Modified in DOM Level 2:
      void               normalize();
      // Introduced in DOM Level 2:
      boolean            isSupported(in DOMString feature, 
                                     in DOMString version);
      // Introduced in DOM Level 2:
      readonly attribute DOMString        namespaceURI;
      // Introduced in DOM Level 2:
               attribute DOMString        prefix;
                                          // raises(DOMException) on setting
  
      // Introduced in DOM Level 2:
      readonly attribute DOMString        localName;
      // Introduced in DOM Level 2:
      boolean            hasAttributes();
    };
  
    interface NodeList {
      Node               item(in unsigned long index);
      readonly attribute unsigned long    length;
    };
  
    interface NamedNodeMap {
      Node               getNamedItem(in DOMString name);
      Node               setNamedItem(in Node arg)
                                          raises(DOMException);
      Node               removeNamedItem(in DOMString name)
                                          raises(DOMException);
      Node               item(in unsigned long index);
      readonly attribute unsigned long    length;
      // Introduced in DOM Level 2:
      Node               getNamedItemNS(in DOMString namespaceURI, 
                                        in DOMString localName);
      // Introduced in DOM Level 2:
      Node               setNamedItemNS(in Node arg)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Node               removeNamedItemNS(in DOMString namespaceURI, 
                                           in DOMString localName)
                                          raises(DOMException);
    };
  
    interface CharacterData : Node {
               attribute DOMString        data;
                                          // raises(DOMException) on setting
                                          // raises(DOMException) on retrieval
  
      readonly attribute unsigned long    length;
      DOMString          substringData(in unsigned long offset, 
                                       in unsigned long count)
                                          raises(DOMException);
      void               appendData(in DOMString arg)
                                          raises(DOMException);
      void               insertData(in unsigned long offset, 
                                    in DOMString arg)
                                          raises(DOMException);
      void               deleteData(in unsigned long offset, 
                                    in unsigned long count)
                                          raises(DOMException);
      void               replaceData(in unsigned long offset, 
                                     in unsigned long count, 
                                     in DOMString arg)
                                          raises(DOMException);
    };
  
    interface Attr : Node {
      readonly attribute DOMString        name;
      readonly attribute boolean          specified;
               attribute DOMString        value;
                                          // raises(DOMException) on setting
  
      // Introduced in DOM Level 2:
      readonly attribute Element          ownerElement;
    };
  
    interface Element : Node {
      readonly attribute DOMString        tagName;
      DOMString          getAttribute(in DOMString name);
      void               setAttribute(in DOMString name, 
                                      in DOMString value)
                                          raises(DOMException);
      void               removeAttribute(in DOMString name)
                                          raises(DOMException);
      Attr               getAttributeNode(in DOMString name);
      Attr               setAttributeNode(in Attr newAttr)
                                          raises(DOMException);
      Attr               removeAttributeNode(in Attr oldAttr)
                                          raises(DOMException);
      NodeList           getElementsByTagName(in DOMString name);
      // Introduced in DOM Level 2:
      DOMString          getAttributeNS(in DOMString namespaceURI, 
                                        in DOMString localName);
      // Introduced in DOM Level 2:
      void               setAttributeNS(in DOMString namespaceURI, 
                                        in DOMString qualifiedName, 
                                        in DOMString value)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      void               removeAttributeNS(in DOMString namespaceURI, 
                                           in DOMString localName)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Attr               getAttributeNodeNS(in DOMString namespaceURI, 
                                            in DOMString localName);
      // Introduced in DOM Level 2:
      Attr               setAttributeNodeNS(in Attr newAttr)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      NodeList           getElementsByTagNameNS(in DOMString namespaceURI, 
                                                in DOMString localName);
      // Introduced in DOM Level 2:
      boolean            hasAttribute(in DOMString name);
      // Introduced in DOM Level 2:
      boolean            hasAttributeNS(in DOMString namespaceURI, 
                                        in DOMString localName);
    };
  
    interface Text : CharacterData {
      Text               splitText(in unsigned long offset)
                                          raises(DOMException);
    };
  
    interface Comment : CharacterData {
    };
  
    interface CDATASection : Text {
    };
  
    interface DocumentType : Node {
      readonly attribute DOMString        name;
      readonly attribute NamedNodeMap     entities;
      readonly attribute NamedNodeMap     notations;
      // Introduced in DOM Level 2:
      readonly attribute DOMString        publicId;
      // Introduced in DOM Level 2:
      readonly attribute DOMString        systemId;
      // Introduced in DOM Level 2:
      readonly attribute DOMString        internalSubset;
    };
  
    interface Notation : Node {
      readonly attribute DOMString        publicId;
      readonly attribute DOMString        systemId;
    };
  
    interface Entity : Node {
      readonly attribute DOMString        publicId;
      readonly attribute DOMString        systemId;
      readonly attribute DOMString        notationName;
    };
  
    interface EntityReference : Node {
    };
  
    interface ProcessingInstruction : Node {
      readonly attribute DOMString        target;
               attribute DOMString        data;
                                          // raises(DOMException) on setting
  
    };
  
    interface DocumentFragment : Node {
    };
  
    interface Document : Node {
      readonly attribute DocumentType     doctype;
      readonly attribute DOMImplementation  implementation;
      readonly attribute Element          documentElement;
      Element            createElement(in DOMString tagName)
                                          raises(DOMException);
      DocumentFragment   createDocumentFragment();
      Text               createTextNode(in DOMString data);
      Comment            createComment(in DOMString data);
      CDATASection       createCDATASection(in DOMString data)
                                          raises(DOMException);
      ProcessingInstruction createProcessingInstruction(in DOMString target, 
                                                        in DOMString data)
                                          raises(DOMException);
      Attr               createAttribute(in DOMString name)
                                          raises(DOMException);
      EntityReference    createEntityReference(in DOMString name)
                                          raises(DOMException);
      NodeList           getElementsByTagName(in DOMString tagname);
      // Introduced in DOM Level 2:
      Node               importNode(in Node importedNode, 
                                    in boolean deep)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Element            createElementNS(in DOMString namespaceURI, 
                                         in DOMString qualifiedName)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Attr               createAttributeNS(in DOMString namespaceURI, 
                                           in DOMString qualifiedName)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      NodeList           getElementsByTagNameNS(in DOMString namespaceURI, 
                                                in DOMString localName);
      // Introduced in DOM Level 2:
      Element            getElementById(in DOMString elementId);
    };
  };
  
  #endif // _DOM_IDL_
  
  </pre>
  </div>
  </div>
  
  <!-- div1 idl -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='i18n.html'>previous</a> &nbsp; <a
  accesskey='n' href='java-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/introduction.html
  
  Index: introduction.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:42:28 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>What is the Document Object Model?</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='core.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='copyright-notice.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='copyright-notice.html'>previous</a> &nbsp; <a accesskey='n'
  href='core.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Introduction" name='Introduction'></a> 
  
  <h1 id='Introduction-h1' class='div1'>What is the Document Object
  Model?</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Philippe Le H&eacute;garet, W3C</dd>
  
  <dd>Lauren Wood, SoftQuad Software Inc., WG Chair</dd>
  
  <dd>Jonathan Robie, Texcel (for DOM Level 1)</dd>
  </dl>
  
  <div class='div2'><a id="ID-E7C3082" name='ID-E7C3082'></a> 
  
  <h2 id='ID-E7C3082-h2' class='div2'>Introduction</h2>
  
  <p>The Document Object Model (DOM) is an application programming
  interface (<a href='glossary.html#dt-API'><em>API</em></a>) for
  valid <a href='glossary.html#dt-HTML'><em>HTML</em></a> and
  well-formed <a href='glossary.html#dt-XML'><em>XML</em></a>
  documents. It defines the logical structure of documents and the
  way a document is accessed and manipulated. In the DOM
  specification, the term "document" is used in the broad sense -
  increasingly, XML is being used as a way of representing many
  different kinds of information that may be stored in diverse
  systems, and much of this would traditionally be seen as data
  rather than as documents. Nevertheless, XML presents this data as
  documents, and the DOM may be used to manage this data.</p>
  
  <p>With the Document Object Model, programmers can build documents,
  navigate their structure, and add, modify, or delete elements and
  content. Anything found in an HTML or XML document can be accessed,
  changed, deleted, or added using the Document Object Model, with a
  few exceptions - in particular, the DOM <a
  href='glossary.html#dt-interface'><em>interfaces</em></a> for the
  XML internal and external subsets have not yet been specified.</p>
  
  <p>As a W3C specification, one important objective for the Document
  Object Model is to provide a standard programming interface that
  can be used in a wide variety of environments and <a
  href='glossary.html#dt-application'><em>applications</em></a>. The
  DOM is designed to be used with any programming language. In order
  to provide a precise, language-independent specification of the DOM
  interfaces, we have chosen to define the specifications in Object
  Management Group (OMG) IDL [<a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a>], as defined in the CORBA
  2.3.1 specification [<a class='noxref'
  href='references.html#CORBA'>CORBA</a>]. In addition to the OMG IDL
  specification, we provide <a
  href='glossary.html#dt-lang-binding'><em>language bindings</em></a>
  for Java [<a class='noxref' href='references.html#Java'>Java</a>]
  and ECMAScript [<a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a>] (an
  industry-standard scripting language based on JavaScript [<a
  class='noxref' href='references.html#JavaScript'>JavaScript</a>]
  and JScript [<a class='noxref'
  href='references.html#JScript'>JScript</a>]).</p>
  
  <p><b>Note:</b> OMG IDL is used only as a language-independent and
  implementation-neutral way to specify <a
  href='glossary.html#dt-interface'><em>interfaces</em></a>. Various
  other IDLs could have been used ([<a class='noxref'
  href='references.html#COM'>COM</a>], [<a class='noxref'
  href='references.html#JavaIDL'>JavaIDL</a>], [<a class='noxref'
  href='references.html#MSIDL'>MIDL</a>], ...). In general, IDLs are
  designed for specific computing environments. The Document Object
  Model can be implemented in any computing environment, and does not
  require the object binding runtimes generally associated with such
  IDLs.</p>
  </div>
  
  <!-- div2 ID-E7C3082 -->
  <div class='div2'><a id="ID-E7C30821" name='ID-E7C30821'></a> 
  
  <h2 id='ID-E7C30821-h2' class='div2'>What the Document Object Model
  is</h2>
  
  <p>The DOM is a programming <a
  href='glossary.html#dt-API'><em>API</em></a> for documents. It is
  based on an object structure that closely resembles the structure
  of the documents it <a
  href='glossary.html#dt-model'><em>models</em></a>. For instance,
  consider this table, taken from an HTML document:</p>
  
  <div class='code-block'>
  <pre>
        &lt;TABLE&gt;
        &lt;TBODY&gt; 
        &lt;TR&gt; 
        &lt;TD&gt;Shady Grove&lt;/TD&gt;
        &lt;TD&gt;Aeolian&lt;/TD&gt; 
        &lt;/TR&gt; 
        &lt;TR&gt;
        &lt;TD&gt;Over the River, Charlie&lt;/TD&gt;        
        &lt;TD&gt;Dorian&lt;/TD&gt; 
        &lt;/TR&gt; 
        &lt;/TBODY&gt;
        &lt;/TABLE&gt;
     
  </pre>
  </div>
  
  <p>A graphical representation of the DOM of the example table
  is:<br />
  </p>
  
  <div align='center'>
  <hr width='90%' size='2' />
  <img src='./images/table.gif'
  alt='graphical representation of the DOM of the example table' /> 
  
  <hr width='90%' size='2' />
  <b>graphical representation of the DOM of the example table</b> 
  
  <hr width='90%' size='2' />
  </div>
  
  <p>In the DOM, documents have a logical structure which is very
  much like a tree; to be more precise, which is like a "forest" or
  "grove", which can contain more than one tree. Each document
  contains zero or one doctype nodes, one root element node, and zero
  or more comments or processing instructions; the root element
  serves as the root of the element tree for the document. However,
  the DOM does not specify that documents must be
  <em>implemented</em> as a tree or a grove, nor does it specify how
  the relationships among objects be implemented. The DOM is a
  logical model that may be implemented in any convenient manner. In
  this specification, we use the term <em>structure model</em> to
  describe the tree-like representation of a document. We also use
  the term "tree" when referring to the arrangement of those
  information items which can be reached by using "tree-walking"
  methods; (this does not include attributes). One important property
  of DOM structure models is <em>structural isomorphism</em>: if any
  two Document Object Model implementations are used to create a
  representation of the same document, they will create the same
  structure model, in accordance with the XML Information Set [<a
  class='noxref' href='references.html#InfoSet'>Infoset</a>].</p>
  
  <p><b>Note:</b> There may be some variations depending on the
  parser being used to build the DOM. For instance, the DOM may not
  contain whitespaces in element content if the parser discards
  them.</p>
  
  <p>The name "Document Object Model" was chosen because it is an "<a
  href='glossary.html#dt-object-model'><em>object model</em></a>" in
  the traditional object oriented design sense: documents are modeled
  using objects, and the model encompasses not only the structure of
  a document, but also the behavior of a document and the objects of
  which it is composed. In other words, the nodes in the above
  diagram do not represent a data structure, they represent objects,
  which have functions and identity. As an object model, the DOM
  identifies:</p>
  
  <ul>
  <li>the interfaces and objects used to represent and manipulate a
  document</li>
  
  <li>the semantics of these interfaces and objects - including both
  behavior and attributes</li>
  
  <li>the relationships and collaborations among these interfaces and
  objects</li>
  </ul>
  
  <p>The structure of SGML documents has traditionally been
  represented by an abstract <a
  href='glossary.html#dt-datamodel'><em>data model</em></a>, not by
  an object model. In an abstract <a
  href='glossary.html#dt-datamodel'><em>data model</em></a>, the
  model is centered around the data. In object oriented programming
  languages, the data itself is encapsulated in objects that hide the
  data, protecting it from direct external manipulation. The
  functions associated with these objects determine how the objects
  may be manipulated, and they are part of the object model.</p>
  </div>
  
  <!-- div2 ID-E7C30821 -->
  <div class='div2'><a id="ID-E7C30822" name='ID-E7C30822'></a> 
  
  <h2 id='ID-E7C30822-h2' class='div2'>What the Document Object Model
  is not</h2>
  
  <p>This section is designed to give a more precise understanding of
  the DOM by distinguishing it from other systems that may seem to be
  like it.</p>
  
  <ul>
  <li>The Document Object Model is not a binary specification. DOM
  programs written in the same language binding will be source code
  compatible across platforms, but the DOM does not define any form
  of binary interoperability.</li>
  
  <li>The Document Object Model is not a way of persisting objects to
  XML or HTML. Instead of specifying how objects may be represented
  in XML, the DOM specifies how XML and HTML documents are
  represented as objects, so that they may be used in object oriented
  programs.</li>
  
  <li>The Document Object Model is not a set of data structures; it
  is an <a href='glossary.html#dt-object-model'><em>object
  model</em></a> that specifies interfaces. Although this document
  contains diagrams showing parent/child relationships, these are
  logical relationships defined by the programming interfaces, not
  representations of any particular internal data structures.</li>
  
  <li>The Document Object Model does not define what information in a
  document is relevant or how information in a document is
  structured. For XML, this is specified by the W3C XML Information
  Set [<a class='noxref' href='references.html#InfoSet'>Infoset</a>].
  The DOM is simply an <a
  href='glossary.html#dt-API'><em>API</em></a> to this information
  set.</li>
  
  <li>The Document Object Model, despite its name, is not a
  competitor to the Component Object Model (COM). COM, like CORBA, is
  a language independent way to specify interfaces and objects; the
  DOM is a set of interfaces and objects designed for managing HTML
  and XML documents. The DOM may be implemented using
  language-independent systems like COM or CORBA; it may also be
  implemented using language-specific bindings like the Java or
  ECMAScript bindings specified in this document.</li>
  </ul>
  </div>
  
  <!-- div2 ID-E7C30822 -->
  <div class='div2'><a id="ID-E7C30823" name='ID-E7C30823'></a> 
  
  <h2 id='ID-E7C30823-h2' class='div2'>Where the Document Object
  Model came from</h2>
  
  <p>The DOM originated as a specification to allow JavaScript
  scripts and Java programs to be portable among Web browsers.
  "Dynamic HTML" was the immediate ancestor of the Document Object
  Model, and it was originally thought of largely in terms of
  browsers. However, when the DOM Working Group was formed at W3C, it
  was also joined by vendors in other domains, including HTML or XML
  editors and document repositories. Several of these vendors had
  worked with SGML before XML was developed; as a result, the DOM has
  been influenced by SGML Groves and the HyTime standard. Some of
  these vendors had also developed their own object models for
  documents in order to provide an API for SGML/XML editors or
  document repositories, and these object models have also influenced
  the DOM.</p>
  </div>
  
  <!-- div2 ID-E7C30823 -->
  <div class='div2'><a id="ID-E7C30824" name='ID-E7C30824'></a> 
  
  <h2 id='ID-E7C30824-h2' class='div2'>Entities and the DOM Core</h2>
  
  <p>In the fundamental DOM interfaces, there are no objects
  representing entities. Numeric character references, and references
  to the pre-defined entities in HTML and XML, are replaced by the
  single character that makes up the entity's replacement. For
  example, in:</p>
  
  <div class='code-block'>
  <pre>
          &lt;p&gt;This is a dog &amp;amp; a cat&lt;/p&gt;        
       
  </pre>
  </div>
  
  <p>the "&amp;amp;" will be replaced by the character "&amp;", and
  the text in the P element will form a single continuous sequence of
  characters. Since numeric character references and pre-defined
  entities are not recognized as such in CDATA sections, or in the
  SCRIPT and STYLE elements in HTML, they are not replaced by the
  single character they appear to refer to. If the example above were
  enclosed in a CDATA section, the "&amp;amp;" would not be replaced
  by "&amp;"; neither would the &lt;p&gt; be recognized as a start
  tag. The representation of general entities, both internal and
  external, are defined within the extended (XML) interfaces of DOM
  Level 1 [<a class='noxref' href='references.html#DOM-Level-1'>DOM
  Level 1</a>].</p>
  
  <p>Note: When a DOM representation of a document is serialized as
  XML or HTML text, applications will need to check each character in
  text data to see if it needs to be escaped using a numeric or
  pre-defined entity. Failing to do so could result in invalid HTML
  or XML. Also, <a
  href='glossary.html#dt-implementation'><em>implementations</em></a>
  should be aware of the fact that serialization into a character
  encoding ("charset") that does not fully cover ISO 10646 may fail
  if there are characters in markup or CDATA sections that are not
  present in the encoding.</p>
  </div>
  
  <!-- div2 ID-E7C30824 -->
  <div class='div2'><a id="ID-Conformance" name='ID-Conformance'></a>
  
  
  <h2 id='ID-Conformance-h2' class='div2'>Conformance</h2>
  
  <p>This section explains the different levels of conformance to DOM
  Level 2. DOM Level 2 consists of 14 modules. It is possible to
  conform to DOM Level 2, or to a DOM Level 2 module.</p>
  
  <p>An implementation is DOM Level 2 conformant if it supports the
  Core module defined in this document (see <a
  href='core.html#ID-BBACDC08'>Fundamental Interfaces</a>). An
  implementation conforms to a DOM Level 2 module if it supports all
  the interfaces for that module and the associated semantics.</p>
  
  <p>Here is the complete list of DOM Level 2.0 modules and the
  features used by them. Feature names are case-insensitive.</p>
  
  <dl>
  <dt><b>Core module</b></dt>
  
  <dd>defines the feature <a
  href='core.html#ID-BBACDC08'><em>"Core"</em></a>.</dd>
  
  <dt><b>XML module</b></dt>
  
  <dd>defines the feature <a
  href='core.html#ID-E067D597'><em>"XML"</em></a>.</dd>
  
  <dt><b>HTML module</b></dt>
  
  <dd>defines the feature "HTML". (see [<a class='noxref'
  href='references.html#DOMHTML-inf'>DOM Level 2 HTML</a>]). 
  
  <p><b>Note:</b> At time of publication, this DOM Level 2 module is
  not yet a W3C Recommendation.</p>
  </dd>
  
  <dt><b>Views module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Views/views.html'><em>"Views"</em></a>
  in [<a class='noxref' href='references.html#DOMViews-inf'>DOM Level
  2 Views</a>].</dd>
  
  <dt><b>Style Sheets module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html'><em>"StyleSheets"</em></a>
  in [<a class='noxref' href='references.html#DOMStyleSheets-inf'>DOM
  Level 2 Style Sheets</a>].</dd>
  
  <dt><b>CSS module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Style/css.html'><em>"CSS"</em></a>
  in [<a class='noxref' href='references.html#DOMCSS-inf'>DOM Level 2
  CSS</a>].</dd>
  
  <dt><b>CSS2 module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Style/css.html'><em>"CSS2"</em></a>
  in [<a class='noxref' href='references.html#DOMCSS-inf'>DOM Level 2
  CSS</a>].</dd>
  
  <dt><b>Events module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Events/events.html'><em>"Events"</em></a>
  in [<a class='noxref' href='references.html#DOMEvents-inf'>DOM
  Level 2 Events</a>].</dd>
  
  <dt><b>User interface Events module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Events/events.html'><em>"UIEvents"</em></a>
  in [<a class='noxref' href='references.html#DOMEvents-inf'>DOM
  Level 2 Events</a>].</dd>
  
  <dt><b>Mouse Events module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Events/events.html'><em>"MouseEvents"</em></a>
  in [<a class='noxref' href='references.html#DOMEvents-inf'>DOM
  Level 2 Events</a>].</dd>
  
  <dt><b>Mutation Events module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Events/events.html'><em>"MutationEvents"</em></a>
  in [<a class='noxref' href='references.html#DOMEvents-inf'>DOM
  Level 2 Events</a>].</dd>
  
  <dt><b>HTML Events module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Events/events.html'><em>"HTMLEvents"</em></a>
  in [<a class='noxref' href='references.html#DOMEvents-inf'>DOM
  Level 2 Events</a>].</dd>
  
  <dt><b>Range module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html'>
  <em>"Range"</em></a> in [<a class='noxref'
  href='references.html#DOMRange-inf'>DOM Level 2 Range</a>].</dd>
  
  <dt><b>Traversal module</b></dt>
  
  <dd>defines the feature <a
  href='http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html'>
  <em>"Traversal"</em></a> in [<a class='noxref'
  href='references.html#DOMTraversal-inf'>DOM Level 2
  Traversal</a>].</dd>
  </dl>
  
  <p>A DOM implementation must not return <code>"true"</code> to the
  <code>hasFeature(feature, version)</code> <a
  href='glossary.html#dt-method'><em>method</em></a> of the <a
  href='core.html#ID-102161490'><code>DOMImplementation</code></a>
  interface for that feature unless the implementation conforms to
  that module. The <code>version</code> number for all features used
  in DOM Level 2.0 is "2.0".</p>
  </div>
  
  <!-- div2 ID-Conformance -->
  <div class='div2'><a id="ID-E7C30826" name='ID-E7C30826'></a> 
  
  <h2 id='ID-E7C30826-h2' class='div2'>DOM Interfaces and DOM
  Implementations</h2>
  
  <p>The DOM specifies interfaces which may be used to manage XML or
  HTML documents. It is important to realize that these interfaces
  are an abstraction - much like "abstract base classes" in C++, they
  are a means of specifying a way to access and manipulate an
  application's internal representation of a document. Interfaces do
  not imply a particular concrete implementation. Each DOM
  application is free to maintain documents in any convenient
  representation, as long as the interfaces shown in this
  specification are supported. Some DOM implementations will be
  existing programs that use the DOM interfaces to access software
  written long before the DOM specification existed. Therefore, the
  DOM is designed to avoid implementation dependencies; in
  particular,</p>
  
  <ol>
  <li>Attributes defined in the IDL do not imply concrete objects
  which must have specific data members - in the language bindings,
  they are translated to a pair of get()/set() functions, not to a
  data member. Read-only attributes have only a get() function in the
  language bindings.</li>
  
  <li>DOM applications may provide additional interfaces and objects
  not found in this specification and still be considered DOM
  conformant.</li>
  
  <li>Because we specify interfaces and not the actual objects that
  are to be created, the DOM cannot know what constructors to call
  for an implementation. In general, DOM users call the createX()
  methods on the Document class to create document structures, and
  DOM implementations create their own internal representations of
  these structures in their implementations of the createX()
  functions.</li>
  </ol>
  
  <p>The Level 1 interfaces were extended to provide both Level 1 and
  Level 2 functionality.</p>
  
  <p>DOM implementations in languages other than Java or ECMAScript
  may choose bindings that are appropriate and natural for their
  language and run time environment. For example, some systems may
  need to create a Document2 class which inherits from Document and
  contains the new methods and attributes.</p>
  
  <p>DOM Level 2 does not specify multithreading mechanisms.</p>
  </div>
  
  <!-- div2 ID-E7C30826 --></div>
  
  <!-- div1 Introduction -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='copyright-notice.html'>previous</a> &nbsp;
  <a accesskey='n' href='core.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/java-binding.html
  
  Index: java-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:07 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Java Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='ecma-script-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='idl-definitions.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='idl-definitions.html'>previous</a> &nbsp; <a accesskey='n'
  href='ecma-script-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="java-binding" name='java-binding'></a> 
  
  <h1 id='java-binding-h1' class='adiv1'>Appendix D: Java Language
  Binding</h1>
  
  <p>This appendix contains the complete Java Language [<a
  class='noxref' href='references.html#Java'>Java</a>] binding for
  the Level 2 Document Object Model Core.</p>
  
  <p>The Java files are also available as <a
  href='java-binding.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/java-binding.zip</a></p>
  
  <h3 id='org.w3c.dom.DOMException'>
  org/w3c/dom/DOMException.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public class DOMException extends RuntimeException {
      public DOMException(short code, String message) {
         super(message);
         this.code = code;
      }
      public short   code;
      // ExceptionCode
      public static final short INDEX_SIZE_ERR            = 1;
      public static final short DOMSTRING_SIZE_ERR        = 2;
      public static final short HIERARCHY_REQUEST_ERR     = 3;
      public static final short WRONG_DOCUMENT_ERR        = 4;
      public static final short INVALID_CHARACTER_ERR     = 5;
      public static final short NO_DATA_ALLOWED_ERR       = 6;
      public static final short NO_MODIFICATION_ALLOWED_ERR = 7;
      public static final short NOT_FOUND_ERR             = 8;
      public static final short NOT_SUPPORTED_ERR         = 9;
      public static final short INUSE_ATTRIBUTE_ERR       = 10;
      public static final short INVALID_STATE_ERR         = 11;
      public static final short SYNTAX_ERR                = 12;
      public static final short INVALID_MODIFICATION_ERR  = 13;
      public static final short NAMESPACE_ERR             = 14;
      public static final short INVALID_ACCESS_ERR        = 15;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.DOMImplementation'>
  org/w3c/dom/DOMImplementation.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface DOMImplementation {
      public boolean hasFeature(String feature, 
                                String version);
  
      public DocumentType createDocumentType(String qualifiedName, 
                                             String publicId, 
                                             String systemId)
                                             throws DOMException;
  
      public Document createDocument(String namespaceURI, 
                                     String qualifiedName, 
                                     DocumentType doctype)
                                     throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.DocumentFragment'>
  org/w3c/dom/DocumentFragment.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface DocumentFragment extends Node {
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.Document'>org/w3c/dom/Document.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface Document extends Node {
      public DocumentType getDoctype();
  
      public DOMImplementation getImplementation();
  
      public Element getDocumentElement();
  
      public Element createElement(String tagName)
                                   throws DOMException;
  
      public DocumentFragment createDocumentFragment();
  
      public Text createTextNode(String data);
  
      public Comment createComment(String data);
  
      public CDATASection createCDATASection(String data)
                                             throws DOMException;
  
      public ProcessingInstruction createProcessingInstruction(String target, 
                                                               String data)
                                                               throws DOMException;
  
      public Attr createAttribute(String name)
                                  throws DOMException;
  
      public EntityReference createEntityReference(String name)
                                                   throws DOMException;
  
      public NodeList getElementsByTagName(String tagname);
  
      public Node importNode(Node importedNode, 
                             boolean deep)
                             throws DOMException;
  
      public Element createElementNS(String namespaceURI, 
                                     String qualifiedName)
                                     throws DOMException;
  
      public Attr createAttributeNS(String namespaceURI, 
                                    String qualifiedName)
                                    throws DOMException;
  
      public NodeList getElementsByTagNameNS(String namespaceURI, 
                                             String localName);
  
      public Element getElementById(String elementId);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.Node'>org/w3c/dom/Node.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface Node {
      // NodeType
      public static final short ELEMENT_NODE              = 1;
      public static final short ATTRIBUTE_NODE            = 2;
      public static final short TEXT_NODE                 = 3;
      public static final short CDATA_SECTION_NODE        = 4;
      public static final short ENTITY_REFERENCE_NODE     = 5;
      public static final short ENTITY_NODE               = 6;
      public static final short PROCESSING_INSTRUCTION_NODE = 7;
      public static final short COMMENT_NODE              = 8;
      public static final short DOCUMENT_NODE             = 9;
      public static final short DOCUMENT_TYPE_NODE        = 10;
      public static final short DOCUMENT_FRAGMENT_NODE    = 11;
      public static final short NOTATION_NODE             = 12;
  
      public String getNodeName();
  
      public String getNodeValue()
                                    throws DOMException;
      public void setNodeValue(String nodeValue)
                                    throws DOMException;
  
      public short getNodeType();
  
      public Node getParentNode();
  
      public NodeList getChildNodes();
  
      public Node getFirstChild();
  
      public Node getLastChild();
  
      public Node getPreviousSibling();
  
      public Node getNextSibling();
  
      public NamedNodeMap getAttributes();
  
      public Document getOwnerDocument();
  
      public Node insertBefore(Node newChild, 
                               Node refChild)
                               throws DOMException;
  
      public Node replaceChild(Node newChild, 
                               Node oldChild)
                               throws DOMException;
  
      public Node removeChild(Node oldChild)
                              throws DOMException;
  
      public Node appendChild(Node newChild)
                              throws DOMException;
  
      public boolean hasChildNodes();
  
      public Node cloneNode(boolean deep);
  
      public void normalize();
  
      public boolean isSupported(String feature, 
                                 String version);
  
      public String getNamespaceURI();
  
      public String getPrefix();
      public void setPrefix(String prefix)
                                 throws DOMException;
  
      public String getLocalName();
  
      public boolean hasAttributes();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.NodeList'>org/w3c/dom/NodeList.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface NodeList {
      public Node item(int index);
  
      public int getLength();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.NamedNodeMap'>
  org/w3c/dom/NamedNodeMap.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface NamedNodeMap {
      public Node getNamedItem(String name);
  
      public Node setNamedItem(Node arg)
                               throws DOMException;
  
      public Node removeNamedItem(String name)
                                  throws DOMException;
  
      public Node item(int index);
  
      public int getLength();
  
      public Node getNamedItemNS(String namespaceURI, 
                                 String localName);
  
      public Node setNamedItemNS(Node arg)
                                 throws DOMException;
  
      public Node removeNamedItemNS(String namespaceURI, 
                                    String localName)
                                    throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.CharacterData'>
  org/w3c/dom/CharacterData.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface CharacterData extends Node {
      public String getData()
                                    throws DOMException;
      public void setData(String data)
                                    throws DOMException;
  
      public int getLength();
  
      public String substringData(int offset, 
                                  int count)
                                  throws DOMException;
  
      public void appendData(String arg)
                             throws DOMException;
  
      public void insertData(int offset, 
                             String arg)
                             throws DOMException;
  
      public void deleteData(int offset, 
                             int count)
                             throws DOMException;
  
      public void replaceData(int offset, 
                              int count, 
                              String arg)
                              throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.Attr'>org/w3c/dom/Attr.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface Attr extends Node {
      public String getName();
  
      public boolean getSpecified();
  
      public String getValue();
      public void setValue(String value)
                              throws DOMException;
  
      public Element getOwnerElement();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.Element'>org/w3c/dom/Element.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface Element extends Node {
      public String getTagName();
  
      public String getAttribute(String name);
  
      public void setAttribute(String name, 
                               String value)
                               throws DOMException;
  
      public void removeAttribute(String name)
                                  throws DOMException;
  
      public Attr getAttributeNode(String name);
  
      public Attr setAttributeNode(Attr newAttr)
                                   throws DOMException;
  
      public Attr removeAttributeNode(Attr oldAttr)
                                      throws DOMException;
  
      public NodeList getElementsByTagName(String name);
  
      public String getAttributeNS(String namespaceURI, 
                                   String localName);
  
      public void setAttributeNS(String namespaceURI, 
                                 String qualifiedName, 
                                 String value)
                                 throws DOMException;
  
      public void removeAttributeNS(String namespaceURI, 
                                    String localName)
                                    throws DOMException;
  
      public Attr getAttributeNodeNS(String namespaceURI, 
                                     String localName);
  
      public Attr setAttributeNodeNS(Attr newAttr)
                                     throws DOMException;
  
      public NodeList getElementsByTagNameNS(String namespaceURI, 
                                             String localName);
  
      public boolean hasAttribute(String name);
  
      public boolean hasAttributeNS(String namespaceURI, 
                                    String localName);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.Text'>org/w3c/dom/Text.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface Text extends CharacterData {
      public Text splitText(int offset)
                            throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.Comment'>org/w3c/dom/Comment.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface Comment extends CharacterData {
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.CDATASection'>
  org/w3c/dom/CDATASection.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface CDATASection extends Text {
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.DocumentType'>
  org/w3c/dom/DocumentType.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface DocumentType extends Node {
      public String getName();
  
      public NamedNodeMap getEntities();
  
      public NamedNodeMap getNotations();
  
      public String getPublicId();
  
      public String getSystemId();
  
      public String getInternalSubset();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.Notation'>org/w3c/dom/Notation.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface Notation extends Node {
      public String getPublicId();
  
      public String getSystemId();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.Entity'>org/w3c/dom/Entity.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface Entity extends Node {
      public String getPublicId();
  
      public String getSystemId();
  
      public String getNotationName();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.EntityReference'>
  org/w3c/dom/EntityReference.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface EntityReference extends Node {
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.ProcessingInstruction'>
  org/w3c/dom/ProcessingInstruction.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom;
  
  public interface ProcessingInstruction extends Node {
      public String getTarget();
  
      public String getData();
      public void setData(String data)
                            throws DOMException;
  
  }
  </pre>
  </div>
  </div>
  
  <!-- div1 java-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='idl-definitions.html'>previous</a> &nbsp; <a
  accesskey='n' href='ecma-script-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/references.html
  
  Index: references.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:26 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>References</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='def-index.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='glossary.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='glossary.html'>previous</a> &nbsp; <a accesskey='n'
  href='def-index.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="References" name='References'></a> 
  
  <h1 id='role-references' class='references'>References</h1>
  
  <p>For the latest version of any W3C specification please consult
  the list of <a href='http://www.w3.org/TR'>W3C Technical
  Reports</a> available at http://www.w3.org/TR.</p>
  
  <div class='div2'><a id="References-Normative"
  name='References-Normative'></a> 
  
  <h2 id='References-Normative-h2' class='adiv2'>H.1: Normative
  references</h2>
  
  <dl>
  <dt><b><a id="Charmod" name='Charmod'>Charmod</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/1999/WD-charmod-19991129'>Character
  Model for the World Wide Web</a>, November 1999. Available at
  http://www.w3.org/TR/1999/WD-charmod-19991129</dd>
  
  <dt><b><a id="ECMAScript" name='ECMAScript'>ECMAScript</a></b></dt>
  
  <dd>ECMA (European Computer Manufacturers Association) <a
  href='http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM'>ECMAScript
  Language Specification</a>. Available at
  http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM</dd>
  
  <dt><b><a id="HTML40" name='HTML40'>HTML4.0</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424'>HTML 4.0
  Specification</a>, April 1998. Available at
  http://www.w3.org/TR/1998/REC-html40-19980424</dd>
  
  <dt><b><a id="ISO10646" name='ISO10646'>ISO/IEC 10646</a></b></dt>
  
  <dd>ISO (International Organization for Standardization). ISO/IEC
  10646-1:2000 (E). Information technology - Universal Multiple-Octet
  Coded Character Set (UCS) - Part 1: Architecture and Basic
  Multilingual Plane. [Geneva]: International Organization for
  Standardization.</dd>
  
  <dt><b><a id="Java" name='Java'>Java</a></b></dt>
  
  <dd>Sun Microsystems Inc. <a
  href='http://java.sun.com/docs/books/jls'>The Java Language
  Specification</a>, James Gosling, Bill Joy, and Guy Steele,
  September 1996. Available at
  http://java.sun.com/docs/books/jls</dd>
  
  <dt><b><a id="Namespaces" name='Namespaces'>Namespaces</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/1999/REC-xml-names-19990114'>Namespaces
  in XML</a>, January 1999. Available at
  http://www.w3.org/TR/1999/REC-xml-names-19990114</dd>
  
  <dt><b><a id="OMGIDL" name='OMGIDL'>OMGIDL</a></b></dt>
  
  <dd>OMG (<a href='http://www.omg.org/'>Object Management Group</a>)
  IDL (Interface Definition Language) defined in The Common Object
  Request Broker: Architecture and Specification, version 2.3.1,
  October 1999. Available from http://www.omg.org/</dd>
  
  <dt><b><a id="URIRef" name='URIRef'>RFC2396</a></b></dt>
  
  <dd>IETF (Internet Engineering Task Force) <a
  href='http://www.ietf.org/rfc/rfc2396.txt'>RFC 2396: Uniform
  Resource Identifiers (URI): Generic Syntax</a>, eds. T.
  Berners-Lee, R. Fielding, L. Masinter. August 1998. Available at
  http://www.ietf.org/rfc/rfc2396.txt</dd>
  
  <dt><b><a id="Unicode" name='Unicode'>Unicode</a></b></dt>
  
  <dd>The Unicode Consortium. <a
  href='http://www.unicode.org/unicode/standard/versions/Unicode3.0.html'>
  The Unicode Standard, Version 3.0.</a>, February 2000. Available at
  http://www.unicode.org/unicode/standard/versions/Unicode3.0.html.</dd>
  
  <dt><b><a id="XML" name='XML'>XML</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210'>Extensible Markup
  Language (XML) 1.0</a>, February 1998. Available at
  http://www.w3.org/TR/1998/REC-xml-19980210</dd>
  </dl>
  </div>
  
  <!-- div2 References-Normative -->
  <div class='div2'><a id="References-Informative"
  name='References-Informative'></a> 
  
  <h2 id='References-Informative-h2' class='adiv2'>H.2: Informative
  references</h2>
  
  <dl>
  <dt><b><a id="DOMCSS-inf" name='DOMCSS-inf'>DOM Level 2
  CSS</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/DOM-Level-2-Style/css'>Document Object
  Model Level 2 CSS</a>. Available at
  http://www.w3.org/TR/DOM-Level-2-Style/css</dd>
  
  <dt><b><a id="COM" name='COM'>COM</a></b></dt>
  
  <dd>Microsoft Corp. <a href='http://www.microsoft.com/com'>The
  Component Object Model</a>. Available at
  http://www.microsoft.com/com</dd>
  
  <dt><b><a id="CORBA" name='CORBA'>CORBA</a></b></dt>
  
  <dd>OMG (<a href='http://www.omg.org/'>Object Management Group</a>)
  The Common Object Request Broker: Architecture and Specification,
  version 2.3.1, October 1999. Available from
  http://www.omg.org/</dd>
  
  <dt><b><a id="DOM-Level-1" name='DOM-Level-1'>DOM Level
  1</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/REC-DOM-Level-1'>DOM Level 1
  Specification</a>, October 1998. Available at
  http://www.w3.org/TR/REC-DOM-Level-1</dd>
  
  <dt><b><a id="DOMHTML-inf" name='DOMHTML-inf'>DOM Level 2
  HTML</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/DOM-Level-2-HTML'>Document Object Model
  Level 2 HTML Specification</a>. Available at
  http://www.w3.org/TR/DOM-Level-2-HTML</dd>
  
  <dt><b><a id="DOMEvents-inf" name='DOMEvents-inf'>DOM Level 2
  Events</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/DOM-Level-2-Events'>Document Object
  Model Level 2 Events Specification</a>. Available at
  http://www.w3.org/TR/DOM-Level-2-Events</dd>
  
  <dt><b><a id="InfoSet" name='InfoSet'>Infoset</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/xml-infoset'>XML Information Set</a>,
  December 1999. Available at http://www.w3.org/TR/xml-infoset</dd>
  
  <dt><b><a id="JavaIDL" name='JavaIDL'>JavaIDL</a></b></dt>
  
  <dd>Sun Microsystems Inc. <a
  href='http://java.sun.com/products/jdk/1.2/docs/guide/idl'>Java
  IDL</a>. Available at
  http://java.sun.com/products/jdk/1.2/docs/guide/idl</dd>
  
  <dt><b><a id="JavaScript" name='JavaScript'>JavaScript</a></b></dt>
  
  <dd>Netscape Communications Corp. <a
  href='http://developer.netscape.com/tech/javascript/resources.html'>
  JavaScript Resources</a>. Available at
  http://developer.netscape.com/tech/javascript/resources.html</dd>
  
  <dt><b><a id="JScript" name='JScript'>JScript</a></b></dt>
  
  <dd>Microsoft Corp. <a
  href='http://msdn.microsoft.com/scripting/default.htm'>JScript
  Resources</a>. Available at
  http://msdn.microsoft.com/scripting/default.htm</dd>
  
  <dt><b><a id="MSIDL" name='MSIDL'>MIDL</a></b></dt>
  
  <dd>Microsoft Corp. <a
  href='http://msdn.microsoft.com/library/psdk/midl/mi-laref_1r1h.htm'>
  MIDL Language Reference</a>. Available at
  http://msdn.microsoft.com/library/psdk/midl/mi-laref_1r1h.htm</dd>
  
  <dt><b><a id="DOMStyleSheets-inf" name='DOMStyleSheets-inf'>DOM
  Level 2 Style Sheets</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/DOM-Level-2-Style/stylesheets'>Document
  Object Model Level 2 Style Sheets</a>. Available at
  http://www.w3.org/TR/DOM-Level-2-Style/stylesheets</dd>
  
  <dt><b><a id="DOMTraversal-inf" name='DOMTraversal-inf'>DOM Level 2
  Traversal</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal'>Document
  Object Model Level 2 Traversal</a>. Available at
  http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal</dd>
  
  <dt><b><a id="DOMRange-inf" name='DOMRange-inf'>DOM Level 2
  Range</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html'>
  Document Object Model Level 2 Range</a>. Available at
  http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges</dd>
  
  <dt><b><a id="DOMViews-inf" name='DOMViews-inf'>DOM Level 2
  Views</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/DOM-Level-2-Views'>Document Object Model
  Level 2 Views Specification</a>. Available at
  http://www.w3.org/TR/DOM-Level-2-Views</dd>
  
  <dt><b><a id="XPointer" name='XPointer'>XPointer</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/xptr'>XML Pointer Language
  (XPointer)</a>, June 2000. Available at
  http://www.w3.org/TR/xptr</dd>
  </dl>
  </div>
  
  <!-- div2 References-Informative --></div>
  
  <!-- div1 References -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='glossary.html'>previous</a> &nbsp; <a
  accesskey='n' href='def-index.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/spec.css
  
  Index: spec.css
  ===================================================================
  H4 {
    text-align: left;
    font-family: sans-serif;
    font-weight: normal;
    color: #0050B2; 
  }
  .idl-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  .java-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .code-block { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .ecma-block { 
    border: 1px solid black;
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .interface-name {
    font-weight: bold
  }
  
  .attribute-name {  
    color: black;
    background-color: #FFFFD2;
  }
  
  .constant-name {
    color: black;
    background-color: #DDFFD2;
  }
  
  .method-name {  
    color: black;
    background-color: #D9E6F8;
  }
  
  .parameter-name {
    color: black;
    background-color: #FEE6F8; 
  }
  
  UL.toc, OL.toc {list-style: none}
  DIV.toc UL UL, DIV.toc OL OL {margin-left: 0}
  DIV.toc UL UL UL, DIV.toc OL OL OL {margin-left: 1em}
  DIV.toc UL UL UL UL, DIV.toc OL OL OL OL {margin-left: 0}
  LI.tocline1 {font-weight: bold}
  LI.tocline2 {font-weight: normal}
  LI.tocline4 {font-style: italic}
  
  code { font-family: monospace }
  
  div.paramtable { margin-left: 1em }
  div.returntable { margin-left: 1em }
  div.exceptiontable { margin-left: 1em }
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/idl/dom.idl
  
  Index: dom.idl
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  // File: http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/dom.idl
  
  #ifndef _DOM_IDL_
  #define _DOM_IDL_
  
  #pragma prefix "w3c.org"
  module dom
  {
  
    valuetype DOMString sequence<unsigned short>;
  
    typedef   unsigned long long DOMTimeStamp;
  
    interface DocumentType;
    interface Document;
    interface NodeList;
    interface NamedNodeMap;
    interface Element;
  
    exception DOMException {
      unsigned short   code;
    };
    // ExceptionCode
    const unsigned short      INDEX_SIZE_ERR                 = 1;
    const unsigned short      DOMSTRING_SIZE_ERR             = 2;
    const unsigned short      HIERARCHY_REQUEST_ERR          = 3;
    const unsigned short      WRONG_DOCUMENT_ERR             = 4;
    const unsigned short      INVALID_CHARACTER_ERR          = 5;
    const unsigned short      NO_DATA_ALLOWED_ERR            = 6;
    const unsigned short      NO_MODIFICATION_ALLOWED_ERR    = 7;
    const unsigned short      NOT_FOUND_ERR                  = 8;
    const unsigned short      NOT_SUPPORTED_ERR              = 9;
    const unsigned short      INUSE_ATTRIBUTE_ERR            = 10;
    // Introduced in DOM Level 2:
    const unsigned short      INVALID_STATE_ERR              = 11;
    // Introduced in DOM Level 2:
    const unsigned short      SYNTAX_ERR                     = 12;
    // Introduced in DOM Level 2:
    const unsigned short      INVALID_MODIFICATION_ERR       = 13;
    // Introduced in DOM Level 2:
    const unsigned short      NAMESPACE_ERR                  = 14;
    // Introduced in DOM Level 2:
    const unsigned short      INVALID_ACCESS_ERR             = 15;
  
  
    interface DOMImplementation {
      boolean            hasFeature(in DOMString feature, 
                                    in DOMString version);
      // Introduced in DOM Level 2:
      DocumentType       createDocumentType(in DOMString qualifiedName, 
                                            in DOMString publicId, 
                                            in DOMString systemId)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Document           createDocument(in DOMString namespaceURI, 
                                        in DOMString qualifiedName, 
                                        in DocumentType doctype)
                                          raises(DOMException);
    };
  
    interface Node {
  
      // NodeType
      const unsigned short      ELEMENT_NODE                   = 1;
      const unsigned short      ATTRIBUTE_NODE                 = 2;
      const unsigned short      TEXT_NODE                      = 3;
      const unsigned short      CDATA_SECTION_NODE             = 4;
      const unsigned short      ENTITY_REFERENCE_NODE          = 5;
      const unsigned short      ENTITY_NODE                    = 6;
      const unsigned short      PROCESSING_INSTRUCTION_NODE    = 7;
      const unsigned short      COMMENT_NODE                   = 8;
      const unsigned short      DOCUMENT_NODE                  = 9;
      const unsigned short      DOCUMENT_TYPE_NODE             = 10;
      const unsigned short      DOCUMENT_FRAGMENT_NODE         = 11;
      const unsigned short      NOTATION_NODE                  = 12;
  
      readonly attribute DOMString        nodeName;
               attribute DOMString        nodeValue;
                                          // raises(DOMException) on setting
                                          // raises(DOMException) on retrieval
  
      readonly attribute unsigned short   nodeType;
      readonly attribute Node             parentNode;
      readonly attribute NodeList         childNodes;
      readonly attribute Node             firstChild;
      readonly attribute Node             lastChild;
      readonly attribute Node             previousSibling;
      readonly attribute Node             nextSibling;
      readonly attribute NamedNodeMap     attributes;
      // Modified in DOM Level 2:
      readonly attribute Document         ownerDocument;
      Node               insertBefore(in Node newChild, 
                                      in Node refChild)
                                          raises(DOMException);
      Node               replaceChild(in Node newChild, 
                                      in Node oldChild)
                                          raises(DOMException);
      Node               removeChild(in Node oldChild)
                                          raises(DOMException);
      Node               appendChild(in Node newChild)
                                          raises(DOMException);
      boolean            hasChildNodes();
      Node               cloneNode(in boolean deep);
      // Modified in DOM Level 2:
      void               normalize();
      // Introduced in DOM Level 2:
      boolean            isSupported(in DOMString feature, 
                                     in DOMString version);
      // Introduced in DOM Level 2:
      readonly attribute DOMString        namespaceURI;
      // Introduced in DOM Level 2:
               attribute DOMString        prefix;
                                          // raises(DOMException) on setting
  
      // Introduced in DOM Level 2:
      readonly attribute DOMString        localName;
      // Introduced in DOM Level 2:
      boolean            hasAttributes();
    };
  
    interface NodeList {
      Node               item(in unsigned long index);
      readonly attribute unsigned long    length;
    };
  
    interface NamedNodeMap {
      Node               getNamedItem(in DOMString name);
      Node               setNamedItem(in Node arg)
                                          raises(DOMException);
      Node               removeNamedItem(in DOMString name)
                                          raises(DOMException);
      Node               item(in unsigned long index);
      readonly attribute unsigned long    length;
      // Introduced in DOM Level 2:
      Node               getNamedItemNS(in DOMString namespaceURI, 
                                        in DOMString localName);
      // Introduced in DOM Level 2:
      Node               setNamedItemNS(in Node arg)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Node               removeNamedItemNS(in DOMString namespaceURI, 
                                           in DOMString localName)
                                          raises(DOMException);
    };
  
    interface CharacterData : Node {
               attribute DOMString        data;
                                          // raises(DOMException) on setting
                                          // raises(DOMException) on retrieval
  
      readonly attribute unsigned long    length;
      DOMString          substringData(in unsigned long offset, 
                                       in unsigned long count)
                                          raises(DOMException);
      void               appendData(in DOMString arg)
                                          raises(DOMException);
      void               insertData(in unsigned long offset, 
                                    in DOMString arg)
                                          raises(DOMException);
      void               deleteData(in unsigned long offset, 
                                    in unsigned long count)
                                          raises(DOMException);
      void               replaceData(in unsigned long offset, 
                                     in unsigned long count, 
                                     in DOMString arg)
                                          raises(DOMException);
    };
  
    interface Attr : Node {
      readonly attribute DOMString        name;
      readonly attribute boolean          specified;
               attribute DOMString        value;
                                          // raises(DOMException) on setting
  
      // Introduced in DOM Level 2:
      readonly attribute Element          ownerElement;
    };
  
    interface Element : Node {
      readonly attribute DOMString        tagName;
      DOMString          getAttribute(in DOMString name);
      void               setAttribute(in DOMString name, 
                                      in DOMString value)
                                          raises(DOMException);
      void               removeAttribute(in DOMString name)
                                          raises(DOMException);
      Attr               getAttributeNode(in DOMString name);
      Attr               setAttributeNode(in Attr newAttr)
                                          raises(DOMException);
      Attr               removeAttributeNode(in Attr oldAttr)
                                          raises(DOMException);
      NodeList           getElementsByTagName(in DOMString name);
      // Introduced in DOM Level 2:
      DOMString          getAttributeNS(in DOMString namespaceURI, 
                                        in DOMString localName);
      // Introduced in DOM Level 2:
      void               setAttributeNS(in DOMString namespaceURI, 
                                        in DOMString qualifiedName, 
                                        in DOMString value)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      void               removeAttributeNS(in DOMString namespaceURI, 
                                           in DOMString localName)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Attr               getAttributeNodeNS(in DOMString namespaceURI, 
                                            in DOMString localName);
      // Introduced in DOM Level 2:
      Attr               setAttributeNodeNS(in Attr newAttr)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      NodeList           getElementsByTagNameNS(in DOMString namespaceURI, 
                                                in DOMString localName);
      // Introduced in DOM Level 2:
      boolean            hasAttribute(in DOMString name);
      // Introduced in DOM Level 2:
      boolean            hasAttributeNS(in DOMString namespaceURI, 
                                        in DOMString localName);
    };
  
    interface Text : CharacterData {
      Text               splitText(in unsigned long offset)
                                          raises(DOMException);
    };
  
    interface Comment : CharacterData {
    };
  
    interface CDATASection : Text {
    };
  
    interface DocumentType : Node {
      readonly attribute DOMString        name;
      readonly attribute NamedNodeMap     entities;
      readonly attribute NamedNodeMap     notations;
      // Introduced in DOM Level 2:
      readonly attribute DOMString        publicId;
      // Introduced in DOM Level 2:
      readonly attribute DOMString        systemId;
      // Introduced in DOM Level 2:
      readonly attribute DOMString        internalSubset;
    };
  
    interface Notation : Node {
      readonly attribute DOMString        publicId;
      readonly attribute DOMString        systemId;
    };
  
    interface Entity : Node {
      readonly attribute DOMString        publicId;
      readonly attribute DOMString        systemId;
      readonly attribute DOMString        notationName;
    };
  
    interface EntityReference : Node {
    };
  
    interface ProcessingInstruction : Node {
      readonly attribute DOMString        target;
               attribute DOMString        data;
                                          // raises(DOMException) on setting
  
    };
  
    interface DocumentFragment : Node {
    };
  
    interface Document : Node {
      readonly attribute DocumentType     doctype;
      readonly attribute DOMImplementation  implementation;
      readonly attribute Element          documentElement;
      Element            createElement(in DOMString tagName)
                                          raises(DOMException);
      DocumentFragment   createDocumentFragment();
      Text               createTextNode(in DOMString data);
      Comment            createComment(in DOMString data);
      CDATASection       createCDATASection(in DOMString data)
                                          raises(DOMException);
      ProcessingInstruction createProcessingInstruction(in DOMString target, 
                                                        in DOMString data)
                                          raises(DOMException);
      Attr               createAttribute(in DOMString name)
                                          raises(DOMException);
      EntityReference    createEntityReference(in DOMString name)
                                          raises(DOMException);
      NodeList           getElementsByTagName(in DOMString tagname);
      // Introduced in DOM Level 2:
      Node               importNode(in Node importedNode, 
                                    in boolean deep)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Element            createElementNS(in DOMString namespaceURI, 
                                         in DOMString qualifiedName)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      Attr               createAttributeNS(in DOMString namespaceURI, 
                                           in DOMString qualifiedName)
                                          raises(DOMException);
      // Introduced in DOM Level 2:
      NodeList           getElementsByTagNameNS(in DOMString namespaceURI, 
                                                in DOMString localName);
      // Introduced in DOM Level 2:
      Element            getElementById(in DOMString elementId);
    };
  };
  
  #endif // _DOM_IDL_
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/images/REC.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/images/table.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/core/images/w3c_home.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/COPYRIGHT.html
  
  Index: COPYRIGHT.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
                        "http://www.w3.org/TR/REC-html40/loose.dtd">
  <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>W3C IPR SOFTWARE NOTICE</title>
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
      <h1>
        W3C IPR SOFTWARE NOTICE
      </h1>
      <h3>
        Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
        Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</loc>, <loc
        href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
        Reserved.
      </h3>
      <p>
        The DOM bindings are published under the W3C Software Copyright Notice
        and License. The software license requires "Notice of any changes or
        modifications to the W3C files, including the date changes were made."
        Consequently, modified versions of the DOM bindings must document that
        they do not conform to the W3C standard; in the case of the IDL binding,
        the pragma prefix can no longer be 'w3c.org'; in the case of the Java
        binding, the package names can no longer be in the 'org.w3c' package.
      </p>
      <p>
        <b>Note:</b> The original version of the W3C Software Copyright Notice
        and License could be found at <a
        href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
      </p>
      <h3>
        Copyright &copy; 1994-2000 <a href="http://www.w3.org/">World Wide Web
        Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</a>, <a
        href="http://www.keio.ac.jp/">Keio University</a>). All Rights
        Reserved. http://www.w3.org/Consortium/Legal/
      </h3>
      <p>
        This W3C work (including software, documents, or other related items) is
        being provided by the copyright holders under the following license. By
        obtaining, using and/or copying this work, you (the licensee) agree that
        you have read, understood, and will comply with the following terms and
        conditions:
      </p>
      <p>
        Permission to use, copy, and modify this software and its documentation,
        with or without modification,&nbsp; for any purpose and without fee or
        royalty is hereby granted, provided that you include the following on ALL
        copies of the software and documentation or portions thereof, including
        modifications, that you make:
      </p>
      <ol>
        <li>
  	The full text of this NOTICE in a location viewable to users of the
  	redistributed or derivative work.
        </li>
        <li>
  	Any pre-existing intellectual property disclaimers, notices, or terms
  	and conditions. If none exist, a short notice of the following form
  	(hypertext is preferred, text is permitted) should be used within the
  	body of any redistributed or derivative code: "Copyright &copy;
  	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
  	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
  	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
  	National de Recherche en Informatique et en Automatique</a>, <a
  	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
  	Reserved. http://www.w3.org/Consortium/Legal/"
        </li>
        <li>
  	Notice of any changes or modifications to the W3C files, including the
  	date changes were made. (We recommend you provide URIs to the location
  	from which the code is derived.)
        </li>
      </ol>
      <p>
        THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
        HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
        INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
        FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
        DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
        TRADEMARKS OR OTHER RIGHTS.
      </p>
      <p>
        COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
        CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
        DOCUMENTATION.
      </p>
      <p>
        The name and trademarks of copyright holders may NOT be used in
        advertising or publicity pertaining to the software without specific,
        written prior permission. Title to copyright in this software and any
        associated documentation will at all times remain with copyright
        holders.
      </p>
    </body>
  </html>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/Overview.html
  
  Index: Overview.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:56 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model (DOM) Level 2 Events
  Specification</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='expanded-toc.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='n'
  href='expanded-toc.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='head'>
  <p><a href='http://www.w3.org/'><img height='48' width='72'
  alt='W3C' src='./images/w3c_home.gif' /></a></p>
  
  <h1 id='title'>Document Object Model (DOM) Level 2 Events
  Specification</h1>
  
  <h2 id='version'>Version 1.0</h2>
  
  <!-- REC-DOM-Level-2-Events-20001113
   -->
  <h2 id='W3C-doctype'>W3C Recommendation <i>13 November,
  2000</i></h2>
  
  <dl>
  <dt>This version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113</a><br />
   (<a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/DOM2-Events.ps'>
  PostScript file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/DOM2-Events.pdf'>
  PDF file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/DOM2-Events.txt'>
  plain text</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/DOM2-Events.zip'>
  ZIP file</a>)</dd>
  
  <dt>Latest version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/DOM-Level-2-Events'>http://www.w3.org/TR/DOM-Level-2-Events</a></dd>
  
  <dt>Previous version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Events-20000927'>http://www.w3.org/TR/2000/PR-DOM-Level-2-Events-20000927</a></dd>
  </dl>
  
  <dl>
  <dt>Editors:</dt>
  
  <dd>Tom Pixley, <i>Netscape Communications Corp.</i></dd>
  </dl>
  
  <p class='copyright'>Copyright &copy; 2000 <a
  href='http://www.w3.org/'><abbr
  title='World Wide Web Consortium'>W3C</abbr></a><sup>&reg;</sup>
  (<a href='http://www.lcs.mit.edu/'><abbr
  title='Massachusetts Institute of Technology'>MIT</abbr></a>, <a
  href='http://www.inria.fr/'><abbr lang='fr'
  title='Institut National de Recherche en Informatique et Automatique'>
  INRIA</abbr></a>, <a href='http://www.keio.ac.jp/'>Keio</a>), All
  Rights Reserved. W3C <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer'>
  liability</a>, <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks'>
  trademark</a>, <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  document use</a> and <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  software licensing</a> rules apply.</p>
  </div>
  
  <hr title='separator from header' />
  <h2 id='abstract'>Abstract</h2>
  
  <div class='abstract'>
  <p>This specification defines the Document Object Model Level 2
  Events, a platform- and language-neutral interface that gives to
  programs and scripts a generic event system. The Document Object
  Model Level 2 Events builds on the Document Object Model Level 2
  Core [<a class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>] and on Document Object Model Level 2 Views [<a
  class='noxref' href='references.html#DOMViews'>DOM Level 2
  Views</a>].</p>
  </div>
  
  <h2 id='status'>Status of this document</h2>
  
  <div class='status'>
  <p><em>This section describes the status of this document at the
  time of its publication. Other documents may supersede this
  document. The latest status of this document series is maintained
  at the W3C.</em></p>
  
  <p>This document has been reviewed by W3C Members and other
  interested parties and has been endorsed by the Director as a <a
  href='http://www.w3.org/Consortium/Process/Process-19991111/tr.html#RecsW3C'>
  W3C Recommendation</a>. It is a stable document and may be used as
  reference material or cited as a normative reference from another
  document. W3C's role in making the Recommendation is to draw
  attention to the specification and to promote its widespread
  deployment. This enhances the functionality and interoperability of
  the Web.</p>
  
  <p>This document has been produced as part of the <a
  href='http://www.w3.org/DOM/Activity.html'>W3C DOM Activity</a>.
  The authors of this document are the DOM Working Group members.
  Different modules of the Document Object Model have different
  editors.</p>
  
  <p>Please send general comments about this document to the public
  mailing list <a href='mailto:www-dom@w3.org'>www-dom@w3.org</a>. An
  <a href='http://lists.w3.org/Archives/Public/www-dom/'>archive</a>
  is available at http://lists.w3.org/Archives/Public/www-dom/.</p>
  
  <p>The English version of this specification is the only normative
  version. Information about <a
  href='http://www.w3.org/2000/11/DOM-Level-2-translations'>translations</a>
  of this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-translations.</p>
  
  <p>The <a href='http://www.w3.org/2000/11/DOM-Level-2-errata'>list
  of known errors</a> in this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-errata</p>
  
  <p>A list of <a href='http://www.w3.org/TR/'>current W3C
  Recommendations and other technical documents</a> can be found at
  http://www.w3.org/TR.</p>
  </div>
  
  <h2 id='table-of-contents'><a id="contents" name='contents'>Table
  of contents</a></h2>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref' href='events.html'>1.
  Document Object Model Events</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix A: IDL Definitions</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix B: Java Language Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix C: ECMAScript Language
  Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix D: Acknowledgements</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='glossary.html'>Glossary</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='n' href='expanded-toc.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/W3C-REC.css
  
  Index: W3C-REC.css
  ===================================================================
  /* This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  */
  /* Style for a "Recommendation" */
  
  /*
     This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  
     Acknowledgments:
  
     - 'background-color' doesn't work on Mac IE 3, but 'background'
       does (Susan Lesch <le...@macvirus.com>)
  
     - 'smaller' leads to illegible text in both Mac IE and Mac NS,
       'small' is better: works in Mac NS, but is always 12pt in Mac IE
       3 (Susan Lesch <le...@macvirus.com>)
  
     $Id: W3C-REC.css,v 1.1 2001/06/01 11:13:47 dims Exp $
  */
  
  body {
    margin: 2em 1em 2em 70px;
    font-family: sans-serif;
    color: black;
    background: white;
    background-position: top left;
    background-attachment: fixed;
    background-repeat: no-repeat;
  }
  
  th, td { /* ns 4 */
    font-family: sans-serif;
  }
  
  h1, h2, h3, h4, h5, h6 { text-align: left }
  h1, h2, h3 { color: #005A9C }
  h1 { font: 170% sans-serif }
  h2 { font: 140% sans-serif }
  h3 { font: 120% sans-serif }
  h4 { font: bold 100% sans-serif }
  h5 { font: italic 100% sans-serif }
  h6 { font: small-caps 100% sans-serif }
  
  .hide { display: none }
  
  div.head { margin-bottom: 1em }
  div.head h1 { margin-top: 2em; clear: both }
  div.head table { margin-left: 2em; margin-top: 2em }
  div.head img { color: white; border: none } /* remove border from top image */
  
  p.copyright { font-size: small }
  p.copyright small { font-size: small }
  
  @media screen {  /* hide from IE3 */
  a:hover { background: #ffa } 
  }
  
  pre { margin-left: 2em }
  /*
  p {
    margin-top: 0.6em;
    margin-bottom: 0.6em;
  }
  */
  dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
  dt { font-weight: bold }
  
  pre, code { font-family: monospace } /* navigator 4 requires this */
  
  ul.toc {
    list-style: disc;		/* Mac NS has problem with 'none' */
    list-style: none;
  }
  
  @media aural {  
    h1, h2, h3 { stress: 20; richness: 90 }
    .hide { speak: none }
    p.copyright { volume: x-soft; speech-rate: x-fast }
    dt { pause-before: 20% }
    pre { speak-punctuation: code } 
  }
  
  /* Things (icons) that should only show up in projection mode */
  .projection { display: none }
  @media projection { .projection { display: inline } }
  
  
  body {
    background-image: url(http://www.w3.org/StyleSheets/TR/logo-REC);
  }
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/acknowledgements.html
  
  Index: acknowledgements.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:27 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Acknowledgements</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='glossary.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='ecma-script-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='ecma-script-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='glossary.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="contributors" name='contributors'></a> 
  
  <h1 id='contributors-h1' class='adiv1'>Appendix D:
  Acknowledgements</h1>
  
  <p>Many people contributed to this specification, including members
  of the DOM Working Group and the DOM Interest Group. We especially
  thank the following:</p>
  
  <p>Lauren Wood (SoftQuad Software Inc., <em>chair</em>), Andrew
  Watson (Object Management Group), Andy Heninger (IBM), Arnaud Le
  Hors (W3C and IBM), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea
  (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris
  Wilson (Microsoft), David Brownell (Sun), David Singer (IBM), Don
  Park (invited), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian
  Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared
  Sorensen (Novell), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe
  Marini (Macromedia), Johnny Stenback (Netscape), Jonathan Marsh
  (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim
  Adamson-Sharpe (SoftQuad Software Inc.), Laurence Cable (Sun), Mark
  Davis (IBM), Mark Scardina (Oracle), Martin D&uuml;rst (W3C), Mick
  Goulish (Software AG), Mike Champion (Arbortext and Software AG),
  Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso
  (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton
  (Netscape), Philippe Le H&eacute;garet (W3C, <em>W3C team
  contact</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer
  (iMall, Excite@Home and Netscape), Rich Rollman (Microsoft), Rick
  Gessner (Netscape), Scott Isaacs (Microsoft), Sharon Adler (INSO),
  Steve Byrne (JavaSoft), Tim Bray (invited), Tom Pixley (Netscape),
  Vidur Apparao (Netscape), Vinod Anupam (Lucent).</p>
  
  <p>Thanks to all those who have helped to improve this
  specification by sending suggestions and corrections.</p>
  
  <div class='div2'><a id="Productions" name='Productions'></a> 
  
  <h2 id='Productions-h2' class='adiv2'>D.1: Production Systems</h2>
  
  <p>This specification was written in XML. The HTML, OMG IDL, Java
  and ECMA Script bindings were all produced automatically.</p>
  
  <p>Thanks to Joe English, author of <a
  href='http://www.flightlab.com/cost'>cost</a>, which was used as
  the basis for producing DOM Level 1. Thanks also to Gavin Nicol,
  who wrote the scripts which run on top of cost. Arnaud Le Hors and
  Philippe Le H&eacute;garet maintained the scripts.</p>
  
  <p>For DOM Level 2, we used <a
  href='http://xml.apache.org/xerces-j'>Xerces</a> as the basis DOM
  implementation and wish to thank the authors. Philippe Le
  H&eacute;garet and Arnaud Le Hors wrote the <a
  href='http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/'>
  Java programs</a> which are the DOM application.</p>
  
  <p>Thanks also to Jan K&auml;rrman, author of <a
  href='http://www.tdb.uu.se/~jan/html2ps.html'>html2ps</a>, which we
  use in creating the PostScript version of the specification.</p>
  </div>
  
  <!-- div2 Productions --></div>
  
  <!-- div1 contributors -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='ecma-script-binding.html'>previous</a>
  &nbsp; <a accesskey='n' href='glossary.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/copyright-notice.html
  
  Index: copyright-notice.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:57 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Copyright Notice</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='events.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='expanded-toc.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='expanded-toc.html'>previous</a> &nbsp; <a accesskey='n'
  href='events.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Copyright-Notice"
  name='Copyright-Notice'></a> 
  
  <h1 id='Copyright-Notice-h1' class='div1'>Copyright Notice</h1>
  
  <p><b>Copyright &copy; 2000 <a href='http://www.w3.org/'>World Wide
  Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p>This document is published under the <a
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a>. The bindings within this document
  are published under the <a
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a>. The software license requires
  "Notice of any changes or modifications to the W3C files, including
  the date changes were made." Consequently, modified versions of the
  DOM bindings must document that they do not conform to the W3C
  standard; in the case of the IDL definitions, the pragma prefix can
  no longer be 'w3c.org'; in the case of the Java Language binding,
  the package names can no longer be in the 'org.w3c' package.</p>
  
  <div class='div2'><a id="Copyright-notice-document"
  name='Copyright-notice-document'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-document-h2' class='div2'>W3C Document
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Document Notice
  and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  http://www.w3.org/Consortium/Legal/copyright-documents-19990405</a>.</p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>Public documents on the W3C site are provided by the copyright
  holders under the following license. The software or Document Type
  Definitions (DTDs) associated with W3C specifications are governed
  by the <a
  href='http://www.w3.org/Consortium/Legal/copyright-software.html'>Software
  Notice</a>. By using and/or copying this document, or the W3C
  document from which this statement is linked, you (the licensee)
  agree that you have read, understood, and will comply with the
  following terms and conditions:</p>
  
  <p>Permission to use, copy, and distribute the contents of this
  document, or the W3C document from which this statement is linked,
  in any medium for any purpose and without fee or royalty is hereby
  granted, provided that you include the following on <em>ALL</em>
  copies of the document, or portions thereof, that you use:</p>
  
  <ol>
  <li>A link or URL to the original W3C document.</li>
  
  <li>The pre-existing copyright notice of the original author, or if
  it doesn't exist, a notice of the form: "Copyright &copy;
  [$date-of-document] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/" (Hypertext is
  preferred, but a textual representation is permitted.)</li>
  
  <li><em>If it exists</em>, the STATUS of the W3C document.</li>
  </ol>
  
  <p>When space permits, inclusion of the full text of this
  <b>NOTICE</b> should be provided. We request that authorship
  attribution be provided in any software, documents, or other items
  or products that you create pursuant to the implementation of the
  contents of this document, or any portion thereof.</p>
  
  <p>No right to create modifications or derivatives of W3C documents
  is granted pursuant to this license. However, if additional
  requirements (documented in the <a
  href='http://www.w3.org/Consortium/Legal/IPR-FAQ.html'>Copyright
  FAQ</a>) are satisfied, the right to create modifications or
  derivatives is sometimes granted by the W3C to individuals
  complying with those requirements.</p>
  
  <p>THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
  REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT
  NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS
  OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
  IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
  PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS
  THEREOF.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to this document or its
  contents without specific, written prior permission. Title to
  copyright in this document will at all times remain with copyright
  holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-document -->
  <div class='div2'><a id="Copyright-notice-software"
  name='Copyright-notice-software'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-software-h2' class='div2'>W3C Software
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Software
  Copyright Notice and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  http://www.w3.org/Consortium/Legal/copyright-software-19980720</a></p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>This W3C work (including software, documents, or other related
  items) is being provided by the copyright holders under the
  following license. By obtaining, using and/or copying this work,
  you (the licensee) agree that you have read, understood, and will
  comply with the following terms and conditions:</p>
  
  <p>Permission to use, copy, and modify this software and its
  documentation, with or without modification, for any purpose and
  without fee or royalty is hereby granted, provided that you include
  the following on ALL copies of the software and documentation or
  portions thereof, including modifications, that you make:</p>
  
  <ol>
  <li>The full text of this NOTICE in a location viewable to users of
  the redistributed or derivative work.</li>
  
  <li>Any pre-existing intellectual property disclaimers. If none
  exist, then a notice of the following form: "Copyright &copy;
  [$date-of-software] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/."</li>
  
  <li>Notice of any changes or modifications to the W3C files,
  including the date changes were made. (We recommend you provide
  URIs to the location from which the code is derived.)</li>
  </ol>
  
  <p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
  COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
  MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
  USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
  PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  SOFTWARE OR DOCUMENTATION.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to the software without
  specific, written prior permission. Title to copyright in this
  software and any associated documentation will at all times remain
  with copyright holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-software --></div>
  
  <!-- div1 Copyright-Notice -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='expanded-toc.html'>previous</a> &nbsp; <a
  accesskey='n' href='events.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/def-index.html
  
  Index: def-index.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:28 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Index</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='previous' href='references.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='references.html'>previous</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Index" name='Index'></a> 
  
  <h1 id='role-index' class='index'>Index</h1>
  
  <table
  summary='the table contains all keywords used in this document'>
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-EventTarget-addEventListener'>addEventListener</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent-attrChangeType'>ADDITION</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-altKey'>altKey</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-overview-terminology'>ancestor</a> <a
  class='index-inst'
  href='events.html#Events-overview-terminology'>1</a>, <a
  class='index-inst' href='events.html#Events-flow-capture'>2</a>, <a
  class='index-inst' href='glossary.html#dt-ancestor'>3</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-eventPhaseType'>AT_TARGET</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent-attrChange'>attrChange</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent-attrName'>attrName</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-canBubble'>bubbles</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-eventPhaseType'>BUBBLING_PHASE</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-button'>button</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-canCancel'>cancelable</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-eventPhaseType'>CAPTURING_PHASE</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-eventgroupings-mutationevents'>child</a>
  <a class='index-inst'
  href='events.html#Events-eventgroupings-mutationevents'>1</a>, <a
  class='index-inst' href='glossary.html#dt-child'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-clientX'>clientX</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-clientY'>clientY</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-DocumentEvent-createEvent'>createEvent</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-ctrlKey'>ctrlKey</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-currentTarget'>currentTarget</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-flow-capture'>descendant</a> <a
  class='index-inst' href='events.html#Events-flow-capture'>1</a>, <a
  class='index-inst' href='glossary.html#dt-descendant'>2</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-UIEvent-detail'>detail</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-EventTarget-dispatchEvent'>dispatchEvent</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-DocumentEvent'>DocumentEvent</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-overview'>DOM Level 0</a> <a
  class='index-inst' href='events.html#Events-overview'>1</a>, <a
  class='index-inst'
  href='events.html#Events-eventgroupings-uievents'>2</a>, <a
  class='index-inst'
  href='events.html#Events-eventgroupings-mouseevents'>3</a>, <a
  class='index-inst'
  href='events.html#Events-eventgroupings-htmlevents'>4</a>, <a
  class='index-inst' href='glossary.html#dt-DOM-Level-0'>5</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-overview'>DOM Level 2 Core</a> <a
  class='index-inst' href='events.html#Events-overview'>1</a>, <a
  class='index-inst'
  href='events.html#Events-eventgroupings-uievents'>2</a>, <a
  class='index-inst'
  href='events.html#Events-eventgroupings-mouseevents'>3</a>, <a
  class='index-inst'
  href='events.html#Events-eventgroupings-mutationevents'>4</a>, <a
  class='index-inst'
  href='events.html#Events-eventgroupings-htmlevents'>5</a>, <a
  class='index-inst' href='references.html#DOMCore'>6</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-eventgroupings-uievents'>DOM Level 2
  Views</a> <a class='index-inst'
  href='events.html#Events-eventgroupings-uievents'>1</a>, <a
  class='index-inst' href='references.html#DOMViews'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event'>Event</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-EventException'>EventException</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-EventListener'>EventListener</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-eventPhase'>eventPhase</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-EventTarget'>EventTarget</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-EventListener-handleEvent'>handleEvent</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-initEvent'>initEvent</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-initMouseEvent'>initMouseEvent</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-initMutationEvent'>initMutationEvent</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-initUIEvent'>initUIEvent</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#Java'>Java</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-metaKey'>metaKey</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent-attrChangeType'>MODIFICATION</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent'>MouseEvent</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent'>MutationEvent</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent-newValue'>newValue</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-preventDefault'>preventDefault</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent-prevValue'>prevValue</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent-relatedNode'>relatedNode</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-relatedTarget'>relatedTarget</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MutationEvent-attrChangeType'>REMOVAL</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-EventTarget-removeEventListener'>removeEventListener</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-screenX'>screenX</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-screenY'>screenY</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-MouseEvent-shiftKey'>shiftKey</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-flow-capture'>sibling</a> <a
  class='index-inst' href='events.html#Events-flow-capture'>1</a>, <a
  class='index-inst' href='glossary.html#dt-sibling'>2</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-stopPropagation'>stopPropagation</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-target'>target</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-timeStamp'>timeStamp</a></td>
  <td width='30%'><a class='noxref'
  href='glossary.html#dt-tokenized'>tokenized</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-type'>type</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-UIEvent'>UIEvent</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-EventException-EventExceptionCode'>UNSPECIFIED_EVENT_TYPE_ERR</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='events.html#Events-UIEvent-view'>view</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='glossary.html#dt-XML-name'>XML</a> <a class='index-inst'
  href='glossary.html#dt-XML-name'>1</a>, <a class='index-inst'
  href='references.html#XML'>2</a></td>
  <td width='30%'><a class='noxref'
  href='events.html#Events-Event-type'>XML name</a> <a
  class='index-inst' href='events.html#Events-Event-type'>1</a>, <a
  class='index-inst' href='events.html#Events-Event-initEvent'>2</a>,
  <a class='index-inst' href='glossary.html#dt-XML-name'>3</a></td>
  </tr>
  </table>
  </div>
  
  <!-- div1 Index -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='references.html'>previous</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/ecma-script-binding.html
  
  Index: ecma-script-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:26 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>ECMAScript Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='acknowledgements.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='java-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='java-binding.html'>previous</a> &nbsp; <a accesskey='n'
  href='acknowledgements.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="ecma-binding" name='ecma-binding'></a> 
  
  <h1 id='ecma-binding-h1' class='adiv1'>Appendix C: ECMAScript
  Language Binding</h1>
  
  <p>This appendix contains the complete ECMAScript [<a
  class='noxref' href='references.html#ECMAScript'>ECMAScript</a>]
  binding for the Level 2 Document Object Model Events
  definitions.</p>
  
  <p><b>Note:</b> Exceptions handling is only supported by ECMAScript
  implementation conformant with the Standard ECMA-262 3rd. Edition
  ([<a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a>]).</p>
  
  <div class='ecma-block'>
  <dl>
  <dt>Object <b>EventTarget</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>EventTarget</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>addEventListener(type, listener, useCapture)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>type</b> parameter is of type <b>String</b>.<br />
  The <b>listener</b> parameter is a <b>EventListener</b>
  object.<br />
  The <b>useCapture</b> parameter is of type <b>Boolean</b>.</dd>
  
  <dt><b>removeEventListener(type, listener, useCapture)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>type</b> parameter is of type <b>String</b>.<br />
  The <b>listener</b> parameter is a <b>EventListener</b>
  object.<br />
  The <b>useCapture</b> parameter is of type <b>Boolean</b>.</dd>
  
  <dt><b>dispatchEvent(evt)</b></dt>
  
  <dd>This method returns a <b>Boolean</b>.<br />
  The <b>evt</b> parameter is a <b>Event</b> object.<br />
  This method can raise a <b>EventException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>EventListener</b></dt>
  
  <dd>This is an ECMAScript function reference. This method has no
  return value. The parameter is a <b>Event</b> object.</dd>
  
  <dt>Prototype Object <b>Event</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>Event</b> class has the following constants:</dt>
  
  <dd>
  <dl>
  <dt><b>Event.CAPTURING_PHASE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>Event.AT_TARGET</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>Event.BUBBLING_PHASE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>3</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Event</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>Event</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>type</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>target</b></dt>
  
  <dd>This read-only property is a <b>EventTarget</b> object.</dd>
  
  <dt><b>currentTarget</b></dt>
  
  <dd>This read-only property is a <b>EventTarget</b> object.</dd>
  
  <dt><b>eventPhase</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  
  <dt><b>bubbles</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  
  <dt><b>cancelable</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  
  <dt><b>timeStamp</b></dt>
  
  <dd>This read-only property is a <b>Date</b> object.</dd>
  </dl>
  </dd>
  
  <dt>The <b>Event</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>stopPropagation()</b></dt>
  
  <dd>This method has no return value.</dd>
  
  <dt><b>preventDefault()</b></dt>
  
  <dd>This method has no return value.</dd>
  
  <dt><b>initEvent(eventTypeArg, canBubbleArg,
  cancelableArg)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>eventTypeArg</b> parameter is of type <b>String</b>.<br />
  The <b>canBubbleArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>cancelableArg</b> parameter is of type <b>Boolean</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Prototype Object <b>EventException</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>EventException</b> class has the following
  constants:</dt>
  
  <dd>
  <dl>
  <dt><b>EventException.UNSPECIFIED_EVENT_TYPE_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>EventException</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>EventException</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>code</b></dt>
  
  <dd>This property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DocumentEvent</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>DocumentEvent</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>createEvent(eventType)</b></dt>
  
  <dd>This method returns a <b>Event</b> object.<br />
  The <b>eventType</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>UIEvent</b></dt>
  
  <dd>
  <dl>
  <dt><b>UIEvent</b> has the all the properties and methods of the
  <b>Event</b> object as well as the properties and methods defined
  below.</dt>
  
  <dt>The <b>UIEvent</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>view</b></dt>
  
  <dd>This read-only property is a <b>AbstractView</b> object.</dd>
  
  <dt><b>detail</b></dt>
  
  <dd>This read-only property is a <b>long</b> object.</dd>
  </dl>
  </dd>
  
  <dt>The <b>UIEvent</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>initUIEvent(typeArg, canBubbleArg, cancelableArg, viewArg,
  detailArg)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>typeArg</b> parameter is of type <b>String</b>.<br />
  The <b>canBubbleArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>cancelableArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>viewArg</b> parameter is a <b>AbstractView</b> object.<br />
  The <b>detailArg</b> parameter is a <b>long</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>MouseEvent</b></dt>
  
  <dd>
  <dl>
  <dt><b>MouseEvent</b> has the all the properties and methods of the
  <b>UIEvent</b> object as well as the properties and methods defined
  below.</dt>
  
  <dt>The <b>MouseEvent</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>screenX</b></dt>
  
  <dd>This read-only property is a <b>long</b> object.</dd>
  
  <dt><b>screenY</b></dt>
  
  <dd>This read-only property is a <b>long</b> object.</dd>
  
  <dt><b>clientX</b></dt>
  
  <dd>This read-only property is a <b>long</b> object.</dd>
  
  <dt><b>clientY</b></dt>
  
  <dd>This read-only property is a <b>long</b> object.</dd>
  
  <dt><b>ctrlKey</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  
  <dt><b>shiftKey</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  
  <dt><b>altKey</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  
  <dt><b>metaKey</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  
  <dt><b>button</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  
  <dt><b>relatedTarget</b></dt>
  
  <dd>This read-only property is a <b>EventTarget</b> object.</dd>
  </dl>
  </dd>
  
  <dt>The <b>MouseEvent</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>initMouseEvent(typeArg, canBubbleArg, cancelableArg,
  viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg,
  ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, buttonArg,
  relatedTargetArg)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>typeArg</b> parameter is of type <b>String</b>.<br />
  The <b>canBubbleArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>cancelableArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>viewArg</b> parameter is a <b>AbstractView</b> object.<br />
  The <b>detailArg</b> parameter is a <b>long</b> object.<br />
  The <b>screenXArg</b> parameter is a <b>long</b> object.<br />
  The <b>screenYArg</b> parameter is a <b>long</b> object.<br />
  The <b>clientXArg</b> parameter is a <b>long</b> object.<br />
  The <b>clientYArg</b> parameter is a <b>long</b> object.<br />
  The <b>ctrlKeyArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>altKeyArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>shiftKeyArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>metaKeyArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>buttonArg</b> parameter is of type <b>Number</b>.<br />
  The <b>relatedTargetArg</b> parameter is a <b>EventTarget</b>
  object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Prototype Object <b>MutationEvent</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>MutationEvent</b> class has the following
  constants:</dt>
  
  <dd>
  <dl>
  <dt><b>MutationEvent.MODIFICATION</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>MutationEvent.ADDITION</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>MutationEvent.REMOVAL</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>3</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>MutationEvent</b></dt>
  
  <dd>
  <dl>
  <dt><b>MutationEvent</b> has the all the properties and methods of
  the <b>Event</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>MutationEvent</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>relatedNode</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>prevValue</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>newValue</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>attrName</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>attrChange</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>MutationEvent</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>initMutationEvent(typeArg, canBubbleArg, cancelableArg,
  relatedNodeArg, prevValueArg, newValueArg, attrNameArg,
  attrChangeArg)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>typeArg</b> parameter is of type <b>String</b>.<br />
  The <b>canBubbleArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>cancelableArg</b> parameter is of type <b>Boolean</b>.<br />
  The <b>relatedNodeArg</b> parameter is a <b>Node</b> object.<br />
  The <b>prevValueArg</b> parameter is of type <b>String</b>.<br />
  The <b>newValueArg</b> parameter is of type <b>String</b>.<br />
  The <b>attrNameArg</b> parameter is of type <b>String</b>.<br />
  The <b>attrChangeArg</b> parameter is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- ecma-block -->
  <p>The following example will add an ECMAScript based EventListener
  to the Node 'exampleNode':</p>
  
  <div class='code-block'>
  <pre>
    // Given the Node 'exampleNode'
  
    // Define the EventListener function
    function clickHandler(evt) 
    {
      // Function contents 
    }
  
    // The following line will add a non-capturing 'click' listener
    // to 'exampleNode'. 
    exampleNode.addEventListener("click", clickHandler, false);      
     
  </pre>
  </div>
  </div>
  
  <!-- div1 ecma-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='java-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='acknowledgements.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/events.html
  
  Index: events.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:59 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model Events</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='idl-definitions.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='copyright-notice.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='copyright-notice.html'>previous</a> &nbsp; <a accesskey='n'
  href='idl-definitions.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Events" name='Events'></a> 
  
  <h1 id='Events-h1' class='div1'>1. Document Object Model
  Events</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Tom Pixley, Netscape Communications Corp.</dd>
  </dl>
  
  <div class='noprint'>
  <h2 id='table-of-contents'>Table of contents</h2>
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='#Events-overview'>1.1. Overview of the DOM Level 2 Event
  Model</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='#Events-overview-terminology'>1.1.1. Terminology</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref' href='#Events-flow'>1.2.
  Description of event flow</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='#Events-flow-basic'>1.2.1. Basic event flow</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Events-flow-capture'>1.2.2. Event capture</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Events-flow-bubbling'>1.2.3. Event bubbling</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Events-flow-cancelation'>1.2.4. Event cancelation</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Events-registration'>1.3. Event listener registration</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='#Events-Registration-interfaces'>1.3.1. Event registration
  interfaces</a> 
  
  <ul>
  <li class='tocline5'><a href='#Events-EventTarget'>EventTarget</a>,
  <a href='#Events-EventListener'>EventListener</a></li>
  </ul>
  </li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Events-registration-html40'>1.3.2. Interaction with HTML 4.0
  event listeners</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Events-interface'>1.4. Event interface</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a href='#Events-Event'>Event</a>, <a
  href='#Events-EventException'>EventException</a>, <a
  href='#Events-EventException-EventExceptionCode'>EventExceptionCode</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Events-document'>1.5. DocumentEvent interface</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a
  href='#Events-DocumentEvent'>DocumentEvent</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Events-eventgroupings'>1.6. Event module definitions</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='#Events-eventgroupings-uievents'>1.6.1. User Interface event
  types</a> 
  
  <ul>
  <li class='tocline5'><a href='#Events-UIEvent'>UIEvent</a></li>
  </ul>
  </li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Events-eventgroupings-mouseevents'>1.6.2. Mouse event
  types</a> 
  
  <ul>
  <li class='tocline5'><a
  href='#Events-MouseEvent'>MouseEvent</a></li>
  </ul>
  </li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Events-eventgroupings-keyevents'>1.6.3. Key events</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Events-eventgroupings-mutationevents'>1.6.4. Mutation event
  types</a> 
  
  <ul>
  <li class='tocline5'><a
  href='#Events-MutationEvent'>MutationEvent</a></li>
  </ul>
  </li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Events-eventgroupings-htmlevents'>1.6.5. HTML event
  types</a></li>
  </ul>
  </li>
  </ul>
  </div>
  
  <div class='div2'><a id="Events-overview"
  name='Events-overview'></a> 
  
  <h2 id='Events-overview-h2' class='div2'>1.1. Overview of the DOM
  Level 2 Event Model</h2>
  
  <p>The DOM Level 2 Event Model is designed with two main goals. The
  first goal is the design of a generic event system which allows
  registration of event handlers, describes event flow through a tree
  structure, and provides basic contextual information for each
  event. Additionally, the specification will provide standard
  modules of events for user interface control and document mutation
  notifications, including defined contextual information for each of
  these event modules.</p>
  
  <p>The second goal of the event model is to provide a common subset
  of the current event systems used in <a
  href='glossary.html#dt-DOM-Level-0'><em>DOM Level 0</em></a>
  browsers. This is intended to foster interoperability of existing
  scripts and content. It is not expected that this goal will be met
  with full backwards compatibility. However, the specification
  attempts to achieve this when possible.</p>
  
  <p>The following sections of the Event Model specification define
  both the specification for the DOM Event Model and a number of
  conformant event modules designed for use within the model. The
  Event Model consists of the two sections on event propagation and
  event listener registration and the Event interface.</p>
  
  <p>A DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "Events" and "2.0" (respectively)
  to determine whether or not the event module is supported by the
  implementation. In order to fully support this module, an
  implementation must also support the "Core" feature defined in the
  DOM Level 2 Core specification [<a class='noxref'
  href='references.html#DOMCore'>DOM Level 2 Core</a>]. Please, refer
  to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <p>Each event module describes its own feature string in the event
  module listing.</p>
  
  <div class='div3'><a id="Events-overview-terminology"
  name='Events-overview-terminology'></a> 
  
  <h3 id='Events-overview-terminology-h3' class='div3'>1.1.1.
  Terminology</h3>
  
  <dl>
  <dt><b>UI events</b></dt>
  
  <dd>User interface events. These events are generated by user
  interaction through an external device (mouse, keyboard, etc.)</dd>
  
  <dt><b>UI Logical events</b></dt>
  
  <dd>Device independent user interface events such as focus change
  messages or element triggering notifications.</dd>
  
  <dt><b>Mutation events</b></dt>
  
  <dd>Events caused by any action which modifies the structure of the
  document.</dd>
  
  <dt><b>Capturing</b></dt>
  
  <dd>The process by which an event can be handled by one of the
  event's target's <a
  href='glossary.html#dt-ancestor'><em>ancestors</em></a> before
  being handled by the event's target.</dd>
  
  <dt><b>Bubbling</b></dt>
  
  <dd>The process by which an event propagates upward through its <a
  href='glossary.html#dt-ancestor'><em>ancestors</em></a> after being
  handled by the event's target.</dd>
  
  <dt><b>Cancelable</b></dt>
  
  <dd>A designation for events which indicates that upon handling the
  event the client may choose to prevent the DOM implementation from
  processing any default action associated with the event.</dd>
  </dl>
  </div>
  
  <!-- div3 Events-overview-terminology --></div>
  
  <!-- div2 Events-overview -->
  <div class='div2'><a id="Events-flow" name='Events-flow'></a> 
  
  <h2 id='Events-flow-h2' class='div2'>1.2. Description of event
  flow</h2>
  
  <p>Event flow is the process through which the an event originates
  from the DOM implementation and is passed into the Document Object
  Model. The methods of event capture and event bubbling, along with
  various event listener registration techniques, allow the event to
  then be handled in a number of ways. It can be handled locally at
  the <code>EventTarget</code> level or centrally from an <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  higher in the document tree.</p>
  
  <div class='div3'><a id="Events-flow-basic"
  name='Events-flow-basic'></a> 
  
  <h3 id='Events-flow-basic-h3' class='div3'>1.2.1. Basic event
  flow</h3>
  
  <p>Each event has an <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  toward which the event is directed by the DOM implementation. This
  <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  is specified in the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  <code>target</code> attribute. When the event reaches the target,
  any event listeners registered on the <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  are triggered. Although all <a
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  on the <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  are guaranteed to be triggered by any event which is received by
  that <code>EventTarget</code>, no specification is made as to the
  order in which they will receive the event with regards to the
  other <a
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  on the <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>.
  If neither event capture or event bubbling are in use for that
  particular event, the event flow process will complete after all
  listeners have been triggered. If event capture or event bubbling
  is in use, the event flow will be modified as described in the
  sections below.</p>
  
  <p>Any exceptions thrown inside an <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  will not stop propagation of the event. It will continue processing
  any additional <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  in the described manner.</p>
  
  <p>It is expected that actions taken by <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>s
  may cause additional events to fire. Additional events should be
  handled in a synchronous manner and may cause reentrancy into the
  event model.</p>
  </div>
  
  <!-- div3 Events-flow-basic -->
  <div class='div3'><a id="Events-flow-capture"
  name='Events-flow-capture'></a> 
  
  <h3 id='Events-flow-capture-h3' class='div3'>1.2.2. Event
  capture</h3>
  
  <p>Event capture is the process by which an EventListener
  registered on an <a
  href='glossary.html#dt-ancestor'><em>ancestor</em></a> of the
  event's target can intercept events of a given type before they are
  received by the event's target. Capture operates from the top of
  the tree, generally the <code>Document</code>, downward, making it
  the symmetrical opposite of bubbling which is described below. The
  chain of <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>s
  from the top of the tree to the event's target is determined before
  the initial dispatch of the event. If modifications occur to the
  tree during event processing, event flow will proceed based on the
  initial state of the tree.</p>
  
  <p>An <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  being registered on an <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  may choose to have that <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  capture events by specifying the <code>useCapture</code> parameter
  of the <code>addEventListener</code> method to be
  <code>true</code>. Thereafter, when an event of the given type is
  dispatched toward a <a
  href='glossary.html#dt-descendant'><em>descendant</em></a> of the
  capturing object, the event will trigger any capturing event
  listeners of the appropriate type which exist in the direct line
  between the top of the document and the event's target. This
  downward propagation continues until the event's target is reached.
  A capturing <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  will not be triggered by events dispatched directly to the <a
  class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  upon which it is registered.</p>
  
  <p>If the capturing <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  wishes to prevent further processing of the event from occurring it
  may call the <code>stopProgagation</code> method of the <a
  href='events.html#Events-Event'><code>Event</code></a> interface.
  This will prevent further dispatch of the event, although
  additional <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  registered at the same hierarchy level will still receive the
  event. Once an event's <code>stopPropagation</code> method has been
  called, further calls to that method have no additional effect. If
  no additional capturers exist and <code>stopPropagation</code> has
  not been called, the event triggers the appropriate <a
  class='noxref'
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  on the target itself.</p>
  
  <p>Although event capture is similar to the delegation based event
  model in which all interested parties register their listeners
  directly on the target about which they wish to receive
  notifications, it is different in two important respects. First,
  event capture only allows interception of events which are targeted
  at <a href='glossary.html#dt-descendant'><em>descendants</em></a>
  of the capturing <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>.
  It does not allow interception of events targeted to the capturer's
  <a href='glossary.html#dt-ancestor'><em>ancestors</em></a>, its <a
  href='glossary.html#dt-sibling'><em>siblings</em></a>, or its
  sibling's <a
  href='glossary.html#dt-descendant'><em>descendants</em></a>.
  Secondly, event capture is not specified for a single <a
  class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>,
  it is specified for a specific type of event. Once specified, event
  capture intercepts all events of the specified type targeted toward
  any of the capturer's <a
  href='glossary.html#dt-descendant'><em>descendants</em></a>.</p>
  </div>
  
  <!-- div3 Events-flow-capture -->
  <div class='div3'><a id="Events-flow-bubbling"
  name='Events-flow-bubbling'></a> 
  
  <h3 id='Events-flow-bubbling-h3' class='div3'>1.2.3. Event
  bubbling</h3>
  
  <p>Events which are designated as bubbling will initially proceed
  with the same event flow as non-bubbling events. The event is
  dispatched to its target <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  and any event listeners found there are triggered. Bubbling events
  will then trigger any additional event listeners found by following
  the <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>'s
  parent chain upward, checking for any event listeners registered on
  each successive <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>.
  This upward propagation will continue up to and including the
  <code>Document</code>. <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>s
  registered as capturers will not be triggered during this phase.
  The chain of <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>s
  from the event target to the top of the tree is determined before
  the initial dispatch of the event. If modifications occur to the
  tree during event processing, event flow will proceed based on the
  initial state of the tree.</p>
  
  <p>Any event handler may choose to prevent further event
  propagation by calling the <code>stopPropagation</code> method of
  the <a href='events.html#Events-Event'><code>Event</code></a>
  interface. If any <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  calls this method, all additional <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  on the current <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  will be triggered but bubbling will cease at that level. Only one
  call to <code>stopPropagation</code> is required to prevent further
  bubbling.</p>
  </div>
  
  <!-- div3 Events-flow-bubbling -->
  <div class='div3'><a id="Events-flow-cancelation"
  name='Events-flow-cancelation'></a> 
  
  <h3 id='Events-flow-cancelation-h3' class='div3'>1.2.4. Event
  cancelation</h3>
  
  <p>Some events are specified as cancelable. For these events, the
  DOM implementation generally has a default action associated with
  the event. An example of this is a hyperlink in a web browser. When
  the user clicks on the hyperlink the default action is generally to
  active that hyperlink. Before processing these events, the
  implementation must check for event listeners registered to receive
  the event and dispatch the event to those listeners. These
  listeners then have the option of canceling the implementation's
  default action or allowing the default action to proceed. In the
  case of the hyperlink in the browser, canceling the action would
  have the result of not activating the hyperlink.</p>
  
  <p>Cancelation is accomplished by calling the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  <code>preventDefault</code> method. If one or more <a
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  call <code>preventDefault</code> during any phase of event flow the
  default action will be canceled.</p>
  
  <p>Different implementations will specify their own default
  actions, if any, associated with each event. The DOM does not
  attempt to specify these actions.</p>
  </div>
  
  <!-- div3 Events-flow-cancelation --></div>
  
  <!-- div2 Events-flow -->
  <div class='div2'><a id="Events-registration"
  name='Events-registration'></a> 
  
  <h2 id='Events-registration-h2' class='div2'>1.3. Event listener
  registration</h2>
  
  <div class='div3'><a id="Events-Registration-interfaces"
  name='Events-Registration-interfaces'></a> 
  
  <h3 id='Events-Registration-interfaces-h3' class='div3'>1.3.1.
  Event registration interfaces</h3>
  
  <dl>
  <dt><b>Interface <i><a id="Events-EventTarget"
  name='Events-EventTarget'>EventTarget</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>EventTarget</code> interface is implemented by all
  <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 <a
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  on an <code>EventTarget</code> and dispatch of events to that
  <code>EventTarget</code>.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface EventTarget {
    void               addEventListener(in DOMString type, 
                                        in EventListener listener, 
                                        in boolean useCapture);
    void               removeEventListener(in DOMString type, 
                                           in EventListener listener, 
                                           in boolean useCapture);
    boolean            dispatchEvent(in Event evt)
                                          raises(EventException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Events-EventTarget-addEventListener"
  name='Events-EventTarget-addEventListener'>addEventListener</a></code></dt>
  
  <dd>
  <div class='method'>This method allows the registration of event
  listeners on the event target. If an <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  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 <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>s
  are registered on the same <code>EventTarget</code> with the same
  parameters the duplicate instances are discarded. They do not cause
  the <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  to be called twice and since they are discarded they do not need to
  be removed with the <code>removeEventListener</code> method. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>type</code> of type
  <code>DOMString</code></dt>
  
  <dd>The event type for which the user is registering<br />
  </dd>
  
  <dt><code class='parameter-name'>listener</code> of type <a
  href='events.html#Events-EventListener'><code>EventListener</code></a></dt>
  
  <dd>The <code>listener</code> parameter takes an interface
  implemented by the user which contains the methods to be called
  when the event occurs.<br />
  </dd>
  
  <dt><code class='parameter-name'>useCapture</code> of type
  <code>boolean</code></dt>
  
  <dd>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 <a
  class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  before being dispatched to any <code>EventTargets</code> beneath
  them in the tree. Events which are bubbling upward through the tree
  will not trigger an <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  designated to use capture.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Events-EventTarget-dispatchEvent"
  name='Events-EventTarget-dispatchEvent'>dispatchEvent</a></code></dt>
  
  <dd>
  <div class='method'>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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>evt</code> of type <a
  href='events.html#Events-Event'><code>Event</code></a></dt>
  
  <dd>Specifies the event type, behavior, and contextual information
  to be used in processing the event.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>boolean</code></p>
  </td>
  <td>
  <p>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
  called the value is false, else the value is true.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='events.html#Events-EventException'><code>EventException</code></a></p>
  </td>
  <td>
  <p>UNSPECIFIED_EVENT_TYPE_ERR: Raised if the <a
  href='events.html#Events-Event'><code>Event</code></a>'s type was
  not specified by initializing the event before
  <code>dispatchEvent</code> was called. Specification of the <a
  class='noxref'
  href='events.html#Events-Event'><code>Event</code></a>'s type as
  <code>null</code> or an empty string will also trigger this
  exception.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Events-EventTarget-removeEventListener"
  name='Events-EventTarget-removeEventListener'>removeEventListener</a></code></dt>
  
  <dd>
  <div class='method'>This method allows the removal of event
  listeners from the event target. If an <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  is removed from an <code>EventTarget</code> while it is processing
  an event, it will not be triggered by the current actions. <a
  class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>s
  can never be invoked after being removed.<br />
  Calling <code>removeEventListener</code> with arguments which do
  not identify any currently registered <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  on the <code>EventTarget</code> has no effect. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>type</code> of type
  <code>DOMString</code></dt>
  
  <dd>Specifies the event type of the <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  being removed.<br />
  </dd>
  
  <dt><code class='parameter-name'>listener</code> of type <a
  href='events.html#Events-EventListener'><code>EventListener</code></a></dt>
  
  <dd>The <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  parameter indicates the <code>EventListener</code> to be
  removed.<br />
  </dd>
  
  <dt><code class='parameter-name'>useCapture</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether the <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  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
  does not affect a non-capturing version of the same listener, and
  vice versa.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="Events-EventListener"
  name='Events-EventListener'>EventListener</a></i></b> (introduced
  in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>EventListener</code> interface is the primary method
  for handling events. Users implement the <code>EventListener</code>
  interface and register their listener on an <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  using the <code>AddEventListener</code> method. The users should
  also remove their <code>EventListener</code> from its <a
  class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  after they have completed using the listener.</p>
  
  <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>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface EventListener {
    void               handleEvent(in Event evt);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Events-EventListener-handleEvent"
  name='Events-EventListener-handleEvent'>handleEvent</a></code></dt>
  
  <dd>
  <div class='method'>This method is called whenever an event occurs
  of the type for which the <code>EventListener</code> interface was
  registered. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>evt</code> of type <a
  href='events.html#Events-Event'><code>Event</code></a></dt>
  
  <dd>The <a class='noxref'
  href='events.html#Events-Event'><code>Event</code></a> contains
  contextual information about the event. It also contains the
  <code>stopPropagation</code> and <code>preventDefault</code>
  methods which are used in determining the event's flow and default
  action.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div3 Events-Registration-interfaces -->
  <div class='div3'><a id="Events-registration-html40"
  name='Events-registration-html40'></a> 
  
  <h3 id='Events-registration-html40-h3' class='div3'>1.3.2.
  Interaction with HTML 4.0 event listeners</h3>
  
  <p>In HTML 4.0, event listeners were specified as attributes of an
  element. As such, registration of a second event listener of the
  same type would replace the first listener. The DOM Event Model
  allows registration of multiple event listeners on a single <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>.
  To achieve this, event listeners are no longer stored as attribute
  values.</p>
  
  <p>In order to achieve compatibility with HTML 4.0, implementors
  may view the setting of attributes which represent event handlers
  as the creation and registration of an <code>EventListener</code>
  on the <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>.
  The value of <code>useCapture</code> defaults to
  <code>false</code>. This <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  behaves in the same manner as any other <a class='noxref'
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  which may be registered on the <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>.
  If the attribute representing the event listener is changed, this
  may be viewed as the removal of the previously registered <a
  class='noxref'
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  and the registration of a new one. No technique is provided to
  allow HTML 4.0 event listeners access to the context information
  defined for each event.</p>
  </div>
  
  <!-- div3 Events-registration-html40 --></div>
  
  <!-- div2 Events-registration -->
  <div class='div2'><a id="Events-interface"
  name='Events-interface'></a> 
  
  <h2 id='Events-interface-h2' class='div2'>1.4. Event interface</h2>
  
  <dl>
  <dt><b>Interface <i><a id="Events-Event"
  name='Events-Event'>Event</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>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.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface Event {
  
    // PhaseType
    const unsigned short      CAPTURING_PHASE                = 1;
    const unsigned short      AT_TARGET                      = 2;
    const unsigned short      BUBBLING_PHASE                 = 3;
  
    readonly attribute DOMString        type;
    readonly attribute EventTarget      target;
    readonly attribute EventTarget      currentTarget;
    readonly attribute unsigned short   eventPhase;
    readonly attribute boolean          bubbles;
    readonly attribute boolean          cancelable;
    readonly attribute DOMTimeStamp     timeStamp;
    void               stopPropagation();
    void               preventDefault();
    void               initEvent(in DOMString eventTypeArg, 
                                 in boolean canBubbleArg, 
                                 in boolean cancelableArg);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a id="Events-Event-eventPhaseType"
  name='Events-Event-eventPhaseType'>PhaseType</a></i></b></dt>
  
  <dd>
  <p>An integer indicating which phase of event flow is being
  processed.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>AT_TARGET</code></dt>
  
  <dd>The event is currently being evaluated at the target <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>.</dd>
  
  <dt><code class='constant-name'>BUBBLING_PHASE</code></dt>
  
  <dd>The current event phase is the bubbling phase.</dd>
  
  <dt><code class='constant-name'>CAPTURING_PHASE</code></dt>
  
  <dd>The current event phase is the capturing phase.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="Events-Event-canBubble"
  name='Events-Event-canBubble'>bubbles</a></code> of type
  <code>boolean</code>, readonly</dt>
  
  <dd>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.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-Event-canCancel"
  name='Events-Event-canCancel'>cancelable</a></code> of type
  <code>boolean</code>, readonly</dt>
  
  <dd>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.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-Event-currentTarget"
  name='Events-Event-currentTarget'>currentTarget</a></code> of type
  <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>,
  readonly</dt>
  
  <dd>Used to indicate the <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  whose <a
  href='events.html#Events-EventListener'><code>EventListeners</code></a>
  are currently being processed. This is particularly useful during
  capturing and bubbling.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-Event-eventPhase"
  name='Events-Event-eventPhase'>eventPhase</a></code> of type
  <code>unsigned short</code>, readonly</dt>
  
  <dd>Used to indicate which phase of event flow is currently being
  evaluated.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-Event-target"
  name='Events-Event-target'>target</a></code> of type <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>,
  readonly</dt>
  
  <dd>Used to indicate the <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  to which the event was originally dispatched.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-Event-timeStamp"
  name='Events-Event-timeStamp'>timeStamp</a></code> of type
  <code>DOMTimeStamp</code>, readonly</dt>
  
  <dd>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.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-Event-type"
  name='Events-Event-type'>type</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd>The name of the event (case-insensitive). The name must be an
  <a href='glossary.html#dt-XML-name'><em>XML name</em></a>.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="Events-Event-initEvent"
  name='Events-Event-initEvent'>initEvent</a></code></dt>
  
  <dd>
  <div class='method'>The <code>initEvent</code> method is used to
  initialize the value of an <code>Event</code> created through the
  <a
  href='events.html#Events-DocumentEvent'><code>DocumentEvent</code></a>
  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
  <code>Event</code> interface only the values specified in the
  <code>initEvent</code> method are modified, all other attributes
  are left unchanged. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>eventTypeArg</code> of type
  <code>DOMString</code></dt>
  
  <dd>Specifies 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 <a href='glossary.html#dt-XML-name'><em>XML
  name</em></a>.<br />
  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.<br />
  </dd>
  
  <dt><code class='parameter-name'>canBubbleArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not the event can bubble.<br />
  </dd>
  
  <dt><code class='parameter-name'>cancelableArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not the event's default action can be
  prevented.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Events-Event-preventDefault"
  name='Events-Event-preventDefault'>preventDefault</a></code></dt>
  
  <dd>
  <div class='method'>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 <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
  <code>preventDefault</code> has been called it will remain in
  effect throughout the remainder of the event's propagation. This
  method may be used during any stage of event flow. 
  
  <div><b>No Parameters</b></div>
  
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Events-Event-stopPropagation"
  name='Events-Event-stopPropagation'>stopPropagation</a></code></dt>
  
  <dd>
  <div class='method'>The <code>stopPropagation</code> method is used
  prevent further propagation of an event during event flow. If this
  method is called by any <a
  href='events.html#Events-EventListener'><code>EventListener</code></a>
  the event will cease propagating through the tree. The event will
  complete dispatch to all listeners on the current <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  before event flow stops. This method may be used during any stage
  of event flow. 
  
  <div><b>No Parameters</b></div>
  
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Exception <i><a id="Events-EventException"
  name='Events-EventException'>EventException</a></i></b> introduced
  in <b class='version'>DOM Level 2</b></dt>
  
  <dd>
  <p>Event operations may throw an <a
  href='events.html#Events-EventException'><code>EventException</code></a>
  as specified in their method descriptions.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  exception EventException {
    unsigned short   code;
  };
  // EventExceptionCode
  const unsigned short      UNSPECIFIED_EVENT_TYPE_ERR     = 0;
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a
  id="Events-EventException-EventExceptionCode"
  name='Events-EventException-EventExceptionCode'>EventExceptionCode</a></i></b></dt>
  
  <dd>
  <p>An integer indicating the type of error generated.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code
  class='constant-name'>UNSPECIFIED_EVENT_TYPE_ERR</code></dt>
  
  <dd>If the <a
  href='events.html#Events-Event'><code>Event</code></a>'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.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 Events-interface -->
  <div class='div2'><a id="Events-document"
  name='Events-document'></a> 
  
  <h2 id='Events-document-h2' class='div2'>1.5. DocumentEvent
  interface</h2>
  
  <dl>
  <dt><b>Interface <i><a id="Events-DocumentEvent"
  name='Events-DocumentEvent'>DocumentEvent</a></i></b> (introduced
  in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>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.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface DocumentEvent {
    Event              createEvent(in DOMString eventType)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Events-DocumentEvent-createEvent"
  name='Events-DocumentEvent-createEvent'>createEvent</a></code></dt>
  
  <dd>
  <div class='method'>
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>eventType</code> of type
  <code>DOMString</code></dt>
  
  <dd>The <code>eventType</code> parameter specifies the type of <a
  href='events.html#Events-Event'><code>Event</code></a> interface to
  be created. If the <a class='noxref'
  href='events.html#Events-Event'><code>Event</code></a> interface
  specified is supported by the implementation this method will
  return a new <a class='noxref'
  href='events.html#Events-Event'><code>Event</code></a> of the
  interface type requested. If the <a class='noxref'
  href='events.html#Events-Event'><code>Event</code></a> 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 <a class='noxref'
  href='events.html#Events-Event'><code>Event</code></a>'s values. As
  an example, a user wishing to synthesize some kind of <a
  href='events.html#Events-UIEvent'><code>UIEvent</code></a> would
  call <code>createEvent</code> with the parameter "UIEvents". The
  <code>initUIEvent</code> method could then be called on the newly
  created <a class='noxref'
  href='events.html#Events-UIEvent'><code>UIEvent</code></a> to set
  the specific type of UIEvent to be dispatched and set its context
  information.<br />
  The <code>createEvent</code> method is used in creating <a
  href='events.html#Events-Event'><code>Event</code></a>s when it is
  either inconvenient or unnecessary for the user to create an <a
  class='noxref'
  href='events.html#Events-Event'><code>Event</code></a> themselves.
  In cases where the implementation provided <a class='noxref'
  href='events.html#Events-Event'><code>Event</code></a> is
  insufficient, users may supply their own <a class='noxref'
  href='events.html#Events-Event'><code>Event</code></a>
  implementations for use with the <code>dispatchEvent</code>
  method.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='events.html#Events-Event'><code>Event</code></a></p>
  </td>
  <td>
  <p>The newly created <a class='noxref'
  href='events.html#Events-Event'><code>Event</code></a></p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NOT_SUPPORTED_ERR: Raised if the implementation does not support
  the type of <a
  href='events.html#Events-Event'><code>Event</code></a> interface
  requested</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 Events-document -->
  <div class='div2'><a id="Events-eventgroupings"
  name='Events-eventgroupings'></a> 
  
  <h2 id='Events-eventgroupings-h2' class='div2'>1.6. Event module
  definitions</h2>
  
  <p>The DOM Level 2 Event Model allows a DOM implementation to
  support multiple modules of events. The model has been designed to
  allow addition of new event modules as is required. The DOM will
  not attempt to define all possible events. For purposes of
  interoperability, the DOM will define a module of user interface
  events including lower level device dependent events, a module of
  UI logical events, and a module of document mutation events. Any
  new event types defined by third parties must not begin with any
  upper, lower, or mixed case version of the string "DOM". This
  prefix is reserved for future DOM event modules. 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.</p>
  
  <div class='div3'><a id="Events-eventgroupings-uievents"
  name='Events-eventgroupings-uievents'></a> 
  
  <h3 id='Events-eventgroupings-uievents-h3' class='div3'>1.6.1. User
  Interface event types</h3>
  
  <p>The User Interface event module is composed of events listed in
  HTML 4.0 and additional events which are supported in <a
  href='glossary.html#dt-DOM-Level-0'><em>DOM Level 0</em></a>
  browsers.</p>
  
  <p>A DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "UIEvents" and "2.0" (respectively)
  to determine whether or not the User Interface event module is
  supported by the implementation. In order to fully support this
  module, an implementation must also support the "Events" feature
  defined in this specification and the "Views" feature defined in
  the DOM Level 2 Views specification [<a class='noxref'
  href='references.html#DOMViews'>DOM Level 2 Views</a>]. Please,
  refer to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <p><b>Note:</b> To create an instance of the <a
  href='events.html#Events-UIEvent'><code>UIEvent</code></a>
  interface, use the feature string "UIEvents" as the value of the
  input parameter used with the <code>createEvent</code> method of
  the <a
  href='events.html#Events-DocumentEvent'><code>DocumentEvent</code></a>
  interface.</p>
  
  <dl>
  <dt><b>Interface <i><a id="Events-UIEvent"
  name='Events-UIEvent'>UIEvent</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>UIEvent</code> interface provides specific contextual
  information associated with User Interface events.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface UIEvent : Event {
    readonly attribute views::AbstractView  view;
    readonly attribute long             detail;
    void               initUIEvent(in DOMString typeArg, 
                                   in boolean canBubbleArg, 
                                   in boolean cancelableArg, 
                                   in views::AbstractView viewArg, 
                                   in long detailArg);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="Events-UIEvent-detail"
  name='Events-UIEvent-detail'>detail</a></code> of type
  <code>long</code>, readonly</dt>
  
  <dd>Specifies some detail information about the <a
  href='events.html#Events-Event'><code>Event</code></a>, depending
  on the type of event.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-UIEvent-view"
  name='Events-UIEvent-view'>view</a></code> of type
  <code>views::AbstractView</code>, readonly</dt>
  
  <dd>The <code>view</code> attribute identifies the
  <code>AbstractView</code> from which the event was generated.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="Events-Event-initUIEvent"
  name='Events-Event-initUIEvent'>initUIEvent</a></code></dt>
  
  <dd>
  <div class='method'>The <code>initUIEvent</code> method is used to
  initialize the value of a <code>UIEvent</code> created through the
  <a
  href='events.html#Events-DocumentEvent'><code>DocumentEvent</code></a>
  interface. This method may only be called before the
  <code>UIEvent</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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>typeArg</code> of type
  <code>DOMString</code></dt>
  
  <dd>Specifies the event type.<br />
  </dd>
  
  <dt><code class='parameter-name'>canBubbleArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not the event can bubble.<br />
  </dd>
  
  <dt><code class='parameter-name'>cancelableArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not the event's default action can be
  prevented.<br />
  </dd>
  
  <dt><code class='parameter-name'>viewArg</code> of type
  <code>views::AbstractView</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  <code>AbstractView</code>.<br />
  </dd>
  
  <dt><code class='parameter-name'>detailArg</code> of type
  <code>long</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  detail.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  
  <p>The different types of such events that can occur are:</p>
  
  <dl>
  <dt><b>DOMFocusIn</b></dt>
  
  <dd>The DOMFocusIn event occurs when an <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  receives focus, for instance via a pointing device being moved onto
  an element or by tabbing navigation to the element. Unlike the HTML
  event focus, DOMFocusIn can be applied to any focusable <a
  class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>,
  not just FORM controls. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>DOMFocusOut</b></dt>
  
  <dd>The DOMFocusOut event occurs when a <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  loses focus, for instance via a pointing device being moved out of
  an element or by tabbing navigation out of the element. Unlike the
  HTML event blur, DOMFocusOut can be applied to any focusable <a
  class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>,
  not just FORM controls. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>DOMActivate</b></dt>
  
  <dd>The activate event occurs when an element is activated, for
  instance, thru a mouse click or a keypress. A numerical argument is
  provided to give an indication of the type of activation that
  occurs: 1 for a simple activation (e.g. a simple click or Enter), 2
  for hyperactivation (for instance a double click or Shift Enter). 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: Yes</li>
  
  <li>Context Info: detail (the numerical value)</li>
  </ul>
  </dd>
  </dl>
  </div>
  
  <!-- div3 Events-eventgroupings-uievents -->
  <div class='div3'><a id="Events-eventgroupings-mouseevents"
  name='Events-eventgroupings-mouseevents'></a> 
  
  <h3 id='Events-eventgroupings-mouseevents-h3' class='div3'>1.6.2.
  Mouse event types</h3>
  
  <p>The Mouse event module is composed of events listed in HTML 4.0
  and additional events which are supported in <a
  href='glossary.html#dt-DOM-Level-0'><em>DOM Level 0</em></a>
  browsers. This event module is specifically designed for use with
  mouse input devices.</p>
  
  <p>A DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "MouseEvents" and "2.0"
  (respectively) to determine whether or not the Mouse event module
  is supported by the implementation. In order to fully support this
  module, an implementation must also support the "UIEvents" feature
  defined in this specification. Please, refer to additional
  information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <p><b>Note:</b> To create an instance of the <a
  href='events.html#Events-MouseEvent'><code>MouseEvent</code></a>
  interface, use the feature string "MouseEvents" as the value of the
  input parameter used with the <code>createEvent</code> method of
  the <a
  href='events.html#Events-DocumentEvent'><code>DocumentEvent</code></a>
  interface.</p>
  
  <dl>
  <dt><b>Interface <i><a id="Events-MouseEvent"
  name='Events-MouseEvent'>MouseEvent</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>MouseEvent</code> interface provides specific
  contextual information associated with Mouse events.</p>
  
  <p>The <code>detail</code> attribute inherited from <a
  href='events.html#Events-UIEvent'><code>UIEvent</code></a>
  indicates the number of times a mouse button has been pressed and
  released over the same screen location during a user action. The
  attribute value is 1 when the user begins this action and
  increments by 1 for each full sequence of pressing and releasing.
  If the user moves the mouse between the mousedown and mouseup the
  value will be set to 0, indicating that no click is occurring.</p>
  
  <p>In the case of nested elements mouse events are always targeted
  at the most deeply nested element. Ancestors of the targeted
  element may use bubbling to obtain notification of mouse events
  which occur within its descendent elements.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface MouseEvent : UIEvent {
    readonly attribute long             screenX;
    readonly attribute long             screenY;
    readonly attribute long             clientX;
    readonly attribute long             clientY;
    readonly attribute boolean          ctrlKey;
    readonly attribute boolean          shiftKey;
    readonly attribute boolean          altKey;
    readonly attribute boolean          metaKey;
    readonly attribute unsigned short   button;
    readonly attribute EventTarget      relatedTarget;
    void               initMouseEvent(in DOMString typeArg, 
                                      in boolean canBubbleArg, 
                                      in boolean cancelableArg, 
                                      in views::AbstractView viewArg, 
                                      in long detailArg, 
                                      in long screenXArg, 
                                      in long screenYArg, 
                                      in long clientXArg, 
                                      in long clientYArg, 
                                      in boolean ctrlKeyArg, 
                                      in boolean altKeyArg, 
                                      in boolean shiftKeyArg, 
                                      in boolean metaKeyArg, 
                                      in unsigned short buttonArg, 
                                      in EventTarget relatedTargetArg);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="Events-MouseEvent-altKey"
  name='Events-MouseEvent-altKey'>altKey</a></code> of type
  <code>boolean</code>, readonly</dt>
  
  <dd>Used to indicate whether the 'alt' key was depressed during the
  firing of the event. On some platforms this key may map to an
  alternative key name.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-MouseEvent-button"
  name='Events-MouseEvent-button'>button</a></code> of type
  <code>unsigned short</code>, readonly</dt>
  
  <dd>During mouse events caused by the depression or release of a
  mouse button, <code>button</code> is used to indicate which mouse
  button changed state. The values for <code>button</code> range from
  zero to indicate the left button of the mouse, one to indicate the
  middle button if present, and two to indicate the right button. For
  mice configured for left handed use in which the button actions are
  reversed the values are instead read from right to left.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-MouseEvent-clientX"
  name='Events-MouseEvent-clientX'>clientX</a></code> of type
  <code>long</code>, readonly</dt>
  
  <dd>The horizontal coordinate at which the event occurred relative
  to the DOM implementation's client area.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-MouseEvent-clientY"
  name='Events-MouseEvent-clientY'>clientY</a></code> of type
  <code>long</code>, readonly</dt>
  
  <dd>The vertical coordinate at which the event occurred relative to
  the DOM implementation's client area.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-MouseEvent-ctrlKey"
  name='Events-MouseEvent-ctrlKey'>ctrlKey</a></code> of type
  <code>boolean</code>, readonly</dt>
  
  <dd>Used to indicate whether the 'ctrl' key was depressed during
  the firing of the event.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-MouseEvent-metaKey"
  name='Events-MouseEvent-metaKey'>metaKey</a></code> of type
  <code>boolean</code>, readonly</dt>
  
  <dd>Used to indicate whether the 'meta' key was depressed during
  the firing of the event. On some platforms this key may map to an
  alternative key name.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Events-MouseEvent-relatedTarget"
  name='Events-MouseEvent-relatedTarget'>relatedTarget</a></code> of
  type <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>,
  readonly</dt>
  
  <dd>Used to identify a secondary <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  related to a UI event. Currently this attribute is used with the
  mouseover event to indicate the <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  which the pointing device exited and with the mouseout event to
  indicate the <a class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  which the pointing device entered.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-MouseEvent-screenX"
  name='Events-MouseEvent-screenX'>screenX</a></code> of type
  <code>long</code>, readonly</dt>
  
  <dd>The horizontal coordinate at which the event occurred relative
  to the origin of the screen coordinate system.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-MouseEvent-screenY"
  name='Events-MouseEvent-screenY'>screenY</a></code> of type
  <code>long</code>, readonly</dt>
  
  <dd>The vertical coordinate at which the event occurred relative to
  the origin of the screen coordinate system.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Events-MouseEvent-shiftKey"
  name='Events-MouseEvent-shiftKey'>shiftKey</a></code> of type
  <code>boolean</code>, readonly</dt>
  
  <dd>Used to indicate whether the 'shift' key was depressed during
  the firing of the event.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="Events-Event-initMouseEvent"
  name='Events-Event-initMouseEvent'>initMouseEvent</a></code></dt>
  
  <dd>
  <div class='method'>The <code>initMouseEvent</code> method is used
  to initialize the value of a <code>MouseEvent</code> created
  through the <a
  href='events.html#Events-DocumentEvent'><code>DocumentEvent</code></a>
  interface. This method may only be called before the
  <code>MouseEvent</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. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>typeArg</code> of type
  <code>DOMString</code></dt>
  
  <dd>Specifies the event type.<br />
  </dd>
  
  <dt><code class='parameter-name'>canBubbleArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not the event can bubble.<br />
  </dd>
  
  <dt><code class='parameter-name'>cancelableArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not the event's default action can be
  prevented.<br />
  </dd>
  
  <dt><code class='parameter-name'>viewArg</code> of type
  <code>views::AbstractView</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  <code>AbstractView</code>.<br />
  </dd>
  
  <dt><code class='parameter-name'>detailArg</code> of type
  <code>long</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s mouse
  click count.<br />
  </dd>
  
  <dt><code class='parameter-name'>screenXArg</code> of type
  <code>long</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s screen x
  coordinate<br />
  </dd>
  
  <dt><code class='parameter-name'>screenYArg</code> of type
  <code>long</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s screen y
  coordinate<br />
  </dd>
  
  <dt><code class='parameter-name'>clientXArg</code> of type
  <code>long</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s client x
  coordinate<br />
  </dd>
  
  <dt><code class='parameter-name'>clientYArg</code> of type
  <code>long</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s client y
  coordinate<br />
  </dd>
  
  <dt><code class='parameter-name'>ctrlKeyArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not control key was depressed during the
  <a href='events.html#Events-Event'><code>Event</code></a>.<br />
  </dd>
  
  <dt><code class='parameter-name'>altKeyArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not alt key was depressed during the <a
  href='events.html#Events-Event'><code>Event</code></a>.<br />
  </dd>
  
  <dt><code class='parameter-name'>shiftKeyArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not shift key was depressed during the <a
  href='events.html#Events-Event'><code>Event</code></a>.<br />
  </dd>
  
  <dt><code class='parameter-name'>metaKeyArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not meta key was depressed during the <a
  href='events.html#Events-Event'><code>Event</code></a>.<br />
  </dd>
  
  <dt><code class='parameter-name'>buttonArg</code> of type
  <code>unsigned short</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s mouse
  button.<br />
  </dd>
  
  <dt><code class='parameter-name'>relatedTargetArg</code> of type <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s related <a
  class='noxref'
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  
  <p>The different types of Mouse events that can occur are:</p>
  
  <dl>
  <dt><b>click</b></dt>
  
  <dd>The click event occurs when the pointing device button is
  clicked over an element. A click is defined as a mousedown and
  mouseup over the same screen location. The sequence of these events
  is: 
  
  <div class='eg'>
  <pre>
      mousedown
      mouseup
      click
     
  </pre>
  </div>
  
  If multiple clicks occur at the same screen location, the sequence
  repeats with the <code>detail</code> attribute incrementing with
  each repetition. This event is valid for most elements. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: Yes</li>
  
  <li>Context Info: screenX, screenY, clientX, clientY, altKey,
  ctrlKey, shiftKey, metaKey, button, detail</li>
  </ul>
  </dd>
  
  <dt><b>mousedown</b></dt>
  
  <dd>The mousedown event occurs when the pointing device button is
  pressed over an element. This event is valid for most elements. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: Yes</li>
  
  <li>Context Info: screenX, screenY, clientX, clientY, altKey,
  ctrlKey, shiftKey, metaKey, button, detail</li>
  </ul>
  </dd>
  
  <dt><b>mouseup</b></dt>
  
  <dd>The mouseup event occurs when the pointing device button is
  released over an element. This event is valid for most elements. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: Yes</li>
  
  <li>Context Info: screenX, screenY, clientX, clientY, altKey,
  ctrlKey, shiftKey, metaKey, button, detail</li>
  </ul>
  </dd>
  
  <dt><b>mouseover</b></dt>
  
  <dd>The mouseover event occurs when the pointing device is moved
  onto an element. This event is valid for most elements. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: Yes</li>
  
  <li>Context Info: screenX, screenY, clientX, clientY, altKey,
  ctrlKey, shiftKey, metaKey, relatedTarget indicates the <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  the pointing device is exiting.</li>
  </ul>
  </dd>
  
  <dt><b>mousemove</b></dt>
  
  <dd>The mousemove event occurs when the pointing device is moved
  while it is over an element. This event is valid for most elements.
  
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: screenX, screenY, clientX, clientY, altKey,
  ctrlKey, shiftKey, metaKey</li>
  </ul>
  </dd>
  
  <dt><b>mouseout</b></dt>
  
  <dd>The mouseout event occurs when the pointing device is moved
  away from an element. This event is valid for most elements.. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: Yes</li>
  
  <li>Context Info: screenX, screenY, clientX, clientY, altKey,
  ctrlKey, shiftKey, metaKey, relatedTarget indicates the <a
  href='events.html#Events-EventTarget'><code>EventTarget</code></a>
  the pointing device is entering.</li>
  </ul>
  </dd>
  </dl>
  </div>
  
  <!-- div3 Events-eventgroupings-mouseevents -->
  <div class='div3'><a id="Events-eventgroupings-keyevents"
  name='Events-eventgroupings-keyevents'></a> 
  
  <h3 id='Events-eventgroupings-keyevents-h3' class='div3'>1.6.3. Key
  events</h3>
  
  <p>The DOM Level 2 Event specification does not provide a key event
  module. An event module designed for use with keyboard input
  devices will be included in a later version of the DOM
  specification.</p>
  </div>
  
  <!-- div3 Events-eventgroupings-keyevents -->
  <div class='div3'><a id="Events-eventgroupings-mutationevents"
  name='Events-eventgroupings-mutationevents'></a> 
  
  <h3 id='Events-eventgroupings-mutationevents-h3' class='div3'>
  1.6.4. Mutation event types</h3>
  
  <p>The mutation event module is designed to allow notification of
  any changes to the structure of a document, including attr and text
  modifications. It may be noted that none of the mutation events
  listed are designated as cancelable. This stems from the fact that
  it is very difficult to make use of existing DOM interfaces which
  cause document modifications if any change to the document might or
  might not take place due to cancelation of the related event.
  Although this is still a desired capability, it was decided that it
  would be better left until the addition of transactions into the
  DOM.</p>
  
  <p>Many single modifications of the tree can cause multiple
  mutation events to be fired. Rather than attempt to specify the
  ordering of mutation events due to every possible modification of
  the tree, the ordering of these events is left to the
  implementation.</p>
  
  <p>A DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "MutationEvents" and "2.0"
  (respectively) to determine whether or not the Mutation event
  module is supported by the implementation. In order to fully
  support this module, an implementation must also support the
  "Events" feature defined in this specification. Please, refer to
  additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <p><b>Note:</b> To create an instance of the <a
  href='events.html#Events-MutationEvent'><code>MutationEvent</code></a>
  interface, use the feature string "MutationEvents" as the value of
  the input parameter used with the <code>createEvent</code> method
  of the <a
  href='events.html#Events-DocumentEvent'><code>DocumentEvent</code></a>
  interface.</p>
  
  <dl>
  <dt><b>Interface <i><a id="Events-MutationEvent"
  name='Events-MutationEvent'>MutationEvent</a></i></b> (introduced
  in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>MutationEvent</code> interface provides specific
  contextual information associated with Mutation events.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface MutationEvent : Event {
  
    // attrChangeType
    const unsigned short      MODIFICATION                   = 1;
    const unsigned short      ADDITION                       = 2;
    const unsigned short      REMOVAL                        = 3;
  
    readonly attribute Node             relatedNode;
    readonly attribute DOMString        prevValue;
    readonly attribute DOMString        newValue;
    readonly attribute DOMString        attrName;
    readonly attribute unsigned short   attrChange;
    void               initMutationEvent(in DOMString typeArg, 
                                         in boolean canBubbleArg, 
                                         in boolean cancelableArg, 
                                         in Node relatedNodeArg, 
                                         in DOMString prevValueArg, 
                                         in DOMString newValueArg, 
                                         in DOMString attrNameArg, 
                                         in unsigned short attrChangeArg);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a
  id="Events-MutationEvent-attrChangeType"
  name='Events-MutationEvent-attrChangeType'>attrChangeType</a></i></b></dt>
  
  <dd>
  <p>An integer indicating in which way the <code>Attr</code> was
  changed.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>ADDITION</code></dt>
  
  <dd>The <code>Attr</code> was just added.</dd>
  
  <dt><code class='constant-name'>MODIFICATION</code></dt>
  
  <dd>The <code>Attr</code> was modified in place.</dd>
  
  <dt><code class='constant-name'>REMOVAL</code></dt>
  
  <dd>The <code>Attr</code> was just removed.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="Events-MutationEvent-attrChange"
  name='Events-MutationEvent-attrChange'>attrChange</a></code> of
  type <code>unsigned short</code>, readonly</dt>
  
  <dd><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>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Events-MutationEvent-attrName"
  name='Events-MutationEvent-attrName'>attrName</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd><code>attrName</code> indicates the name of the changed
  <code>Attr</code> node in a DOMAttrModified event.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Events-MutationEvent-newValue"
  name='Events-MutationEvent-newValue'>newValue</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd><code>newValue</code> indicates the new value of the
  <code>Attr</code> node in DOMAttrModified events, and of the
  <code>CharacterData</code> node in DOMCharDataModified
  events.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Events-MutationEvent-prevValue"
  name='Events-MutationEvent-prevValue'>prevValue</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd><code>prevValue</code> indicates the previous value of the
  <code>Attr</code> node in DOMAttrModified events, and of the
  <code>CharacterData</code> node in DOMCharDataModified
  events.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Events-MutationEvent-relatedNode"
  name='Events-MutationEvent-relatedNode'>relatedNode</a></code> of
  type <code>Node</code>, readonly</dt>
  
  <dd><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 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.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Events-Event-initMutationEvent"
  name='Events-Event-initMutationEvent'>initMutationEvent</a></code></dt>
  
  <dd>
  <div class='method'>The <code>initMutationEvent</code> method is
  used to initialize the value of a <code>MutationEvent</code>
  created through the <a
  href='events.html#Events-DocumentEvent'><code>DocumentEvent</code></a>
  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
  final invocation takes precedence. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>typeArg</code> of type
  <code>DOMString</code></dt>
  
  <dd>Specifies the event type.<br />
  </dd>
  
  <dt><code class='parameter-name'>canBubbleArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not the event can bubble.<br />
  </dd>
  
  <dt><code class='parameter-name'>cancelableArg</code> of type
  <code>boolean</code></dt>
  
  <dd>Specifies whether or not the event's default action can be
  prevented.<br />
  </dd>
  
  <dt><code class='parameter-name'>relatedNodeArg</code> of type
  <code>Node</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s related
  Node.<br />
  </dd>
  
  <dt><code class='parameter-name'>prevValueArg</code> of type
  <code>DOMString</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  <code>prevValue</code> attribute. This value may be null.<br />
  </dd>
  
  <dt><code class='parameter-name'>newValueArg</code> of type
  <code>DOMString</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  <code>newValue</code> attribute. This value may be null.<br />
  </dd>
  
  <dt><code class='parameter-name'>attrNameArg</code> of type
  <code>DOMString</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  <code>attrName</code> attribute. This value may be null.<br />
  </dd>
  
  <dt><code class='parameter-name'>attrChangeArg</code> of type
  <code>unsigned short</code></dt>
  
  <dd>Specifies the <a
  href='events.html#Events-Event'><code>Event</code></a>'s
  <code>attrChange</code> attribute<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  
  <p>The different types of Mutation events that can occur are:</p>
  
  <dl>
  <dt><b>DOMSubtreeModified</b></dt>
  
  <dd>This is a general event for notification of all changes to the
  document. It can be used instead of the more specific events listed
  below. It may be fired after a single modification to the document
  or, at the implementation's discretion, after multiple changes have
  occurred. The latter use should generally be used to accomodate
  multiple changes which occur either simultaneously or in rapid
  succession. The target of this event is the lowest common parent of
  the changes which have taken place. This event is dispatched after
  any other events caused by the mutation have fired. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>DOMNodeInserted</b></dt>
  
  <dd>Fired when a node has been added as a <a
  href='glossary.html#dt-child'><em>child</em></a> of another node.
  This event is dispatched after the insertion has taken place. The
  target of this event is the node being inserted. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: relatedNode holds the parent node</li>
  </ul>
  </dd>
  
  <dt><b>DOMNodeRemoved</b></dt>
  
  <dd>Fired when a node is being removed from its parent node. This
  event is dispatched before the node is removed from the tree. The
  target of this event is the node being removed. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: relatedNode holds the parent node</li>
  </ul>
  </dd>
  
  <dt><b>DOMNodeRemovedFromDocument</b></dt>
  
  <dd>Fired when a node is being removed from a document, either
  through direct removal of the Node or removal of a subtree in which
  it is contained. This event is dispatched before the removal takes
  place. The target of this event is the Node being removed. If the
  Node is being directly removed the DOMNodeRemoved event will fire
  before the DOMNodeRemovedFromDocument event. 
  
  <ul>
  <li>Bubbles: No</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>DOMNodeInsertedIntoDocument</b></dt>
  
  <dd>Fired when a node is being inserted into a document, either
  through direct insertion of the Node or insertion of a subtree in
  which it is contained. This event is dispatched after the insertion
  has taken place. The target of this event is the node being
  inserted. If the Node is being directly inserted the
  DOMNodeInserted event will fire before the
  DOMNodeInsertedIntoDocument event. 
  
  <ul>
  <li>Bubbles: No</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>DOMAttrModified</b></dt>
  
  <dd>Fired after an <code>Attr</code> has been modified on a node.
  The target of this event is the <code>Node</code> whose
  <code>Attr</code> changed. The value of attrChange indicates
  whether the <code>Attr</code> was modified, added, or removed. The
  value of relatedNode indicates the <code>Attr</code> node whose
  value has been affected. It is expected that string based
  replacement of an <code>Attr</code> value will be viewed as a
  modification of the <code>Attr</code> since its identity does not
  change. Subsequently replacement of the <code>Attr</code> node with
  a different <code>Attr</code> node is viewed as the removal of the
  first <code>Attr</code> node and the addition of the second. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: attrName, attrChange, prevValue, newValue,
  relatedNode</li>
  </ul>
  </dd>
  
  <dt><b>DOMCharacterDataModified</b></dt>
  
  <dd>Fired after CharacterData within a node has been modified but
  the node itself has not been inserted or deleted. This event is
  also triggered by modifications to PI elements. The target of this
  event is the CharacterData node. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: prevValue, newValue</li>
  </ul>
  </dd>
  </dl>
  </div>
  
  <!-- div3 Events-eventgroupings-mutationevents -->
  <div class='div3'><a id="Events-eventgroupings-htmlevents"
  name='Events-eventgroupings-htmlevents'></a> 
  
  <h3 id='Events-eventgroupings-htmlevents-h3' class='div3'>1.6.5.
  HTML event types</h3>
  
  <p>The HTML event module is composed of events listed in HTML 4.0
  and additional events which are supported in <a
  href='glossary.html#dt-DOM-Level-0'><em>DOM Level 0</em></a>
  browsers.</p>
  
  <p>A DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "HTMLEvents" and "2.0"
  (respectively) to determine whether or not the HTML event module is
  supported by the implementation. In order to fully support this
  module, an implementation must also support the "Events" feature
  defined in this specification. Please, refer to additional
  information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <p><b>Note:</b> To create an instance of the <a
  href='events.html#Events-Event'><code>Event</code></a> interface
  for the HTML event module, use the feature string "HTMLEvents" as
  the value of the input parameter used with the
  <code>createEvent</code> method of the <a
  href='events.html#Events-DocumentEvent'><code>DocumentEvent</code></a>
  interface.</p>
  
  <p>The HTML events use the base DOM Event interface to pass
  contextual information.</p>
  
  <p>The different types of such events that can occur are:</p>
  
  <dl>
  <dt><b>load</b></dt>
  
  <dd>The load event occurs when the DOM implementation finishes
  loading all content within a document, all frames within a
  FRAMESET, or an OBJECT element. 
  
  <ul>
  <li>Bubbles: No</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>unload</b></dt>
  
  <dd>The unload event occurs when the DOM implementation removes a
  document from a window or frame. This event is valid for BODY and
  FRAMESET elements. 
  
  <ul>
  <li>Bubbles: No</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>abort</b></dt>
  
  <dd>The abort event occurs when page loading is stopped before an
  image has been allowed to completely load. This event applies to
  OBJECT elements. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>error</b></dt>
  
  <dd>The error event occurs when an image does not load properly or
  when an error occurs during script execution. This event is valid
  for OBJECT elements, BODY elements, and FRAMESET element. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>select</b></dt>
  
  <dd>The select event occurs when a user selects some text in a text
  field. This event is valid for INPUT and TEXTAREA elements. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>change</b></dt>
  
  <dd>The change event occurs when a control loses the input focus
  and its value has been modified since gaining focus. This event is
  valid for INPUT, SELECT, and TEXTAREA. element. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>submit</b></dt>
  
  <dd>The submit event occurs when a form is submitted. This event
  only applies to the FORM element. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: Yes</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>reset</b></dt>
  
  <dd>The reset event occurs when a form is reset. This event only
  applies to the FORM element. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>focus</b></dt>
  
  <dd>The focus event occurs when an element receives focus either
  via a pointing device or by tabbing navigation. This event is valid
  for the following elements: LABEL, INPUT, SELECT, TEXTAREA, and
  BUTTON. 
  
  <ul>
  <li>Bubbles: No</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>blur</b></dt>
  
  <dd>The blur event occurs when an element loses focus either via
  the pointing device or by tabbing navigation. This event is valid
  for the following elements: LABEL, INPUT, SELECT, TEXTAREA, and
  BUTTON. 
  
  <ul>
  <li>Bubbles: No</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>resize</b></dt>
  
  <dd>The resize event occurs when a document view is resized. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  
  <dt><b>scroll</b></dt>
  
  <dd>The scroll event occurs when a document view is scrolled. 
  
  <ul>
  <li>Bubbles: Yes</li>
  
  <li>Cancelable: No</li>
  
  <li>Context Info: None</li>
  </ul>
  </dd>
  </dl>
  </div>
  
  <!-- div3 Events-eventgroupings-htmlevents --></div>
  
  <!-- div2 Events-eventgroupings --></div>
  
  <!-- div1 Events -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='copyright-notice.html'>previous</a> &nbsp;
  <a accesskey='n' href='idl-definitions.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/expanded-toc.html
  
  Index: expanded-toc.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:56 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Expanded Table of Contents</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='copyright-notice.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='Overview.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='Overview.html'>previous</a> &nbsp; <a accesskey='n'
  href='copyright-notice.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="TOC" name='TOC'></a> 
  
  <h1 id='TOC-h1' class='div1'>Expanded Table of Contents</h1>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref' href='events.html'>1.
  Document Object Model Events</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='events.html#Events-overview'>1.1. Overview of the DOM Level 2
  Event Model</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-overview-terminology'>1.1.1.
  Terminology</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='events.html#Events-flow'>1.2. Description of event flow</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-flow-basic'>1.2.1. Basic event
  flow</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-flow-capture'>1.2.2. Event
  capture</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-flow-bubbling'>1.2.3. Event
  bubbling</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-flow-cancelation'>1.2.4. Event
  cancelation</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='events.html#Events-registration'>1.3. Event listener
  registration</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-Registration-interfaces'>1.3.1. Event
  registration interfaces</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-registration-html40'>1.3.2. Interaction
  with HTML 4.0 event listeners</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='events.html#Events-interface'>1.4. Event interface</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='events.html#Events-document'>1.5. DocumentEvent
  interface</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='events.html#Events-eventgroupings'>1.6. Event module
  definitions</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-eventgroupings-uievents'>1.6.1. User
  Interface event types</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-eventgroupings-mouseevents'>1.6.2. Mouse
  event types</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-eventgroupings-keyevents'>1.6.3. Key
  events</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-eventgroupings-mutationevents'>1.6.4.
  Mutation event types</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='events.html#Events-eventgroupings-htmlevents'>1.6.5. HTML
  event types</a></li>
  </ul>
  </li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix A: IDL Definitions</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix B: Java Language Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix C: ECMAScript Language
  Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix D: Acknowledgements</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='acknowledgements.html#Productions'>D.1. Production
  Systems</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='glossary.html'>Glossary</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='references.html#References-Normative'>1. Normative
  references</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  </div>
  
  <!-- div1 TOC -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='Overview.html'>previous</a> &nbsp; <a
  accesskey='n' href='copyright-notice.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/glossary.html
  
  Index: glossary.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:27 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Glossary</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='references.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='acknowledgements.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='acknowledgements.html'>previous</a> &nbsp; <a accesskey='n'
  href='references.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="glossary" name='glossary'></a> 
  
  <h1 id='role-glossary' class='glossary'>Glossary</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Arnaud Le Hors, IBM</dd>
  
  <dd>Lauren Wood, SoftQuad Software Inc.</dd>
  
  <dd>Robert S. Sutor, IBM (for DOM Level 1)</dd>
  </dl>
  
  <p>Several of the following term definitions have been borrowed or
  modified from similar definitions in other W3C or standards
  documents. See the links within the definitions for more
  information.</p>
  
  <dl>
  <dt><b><a id="dt-ancestor" name='dt-ancestor'>ancestor</a></b></dt>
  
  <dd>An <i>ancestor</i> node of any node A is any node above A in a
  tree model of a document, where "above" means "toward the
  root."</dd>
  
  <dt><b><a id="dt-child" name='dt-child'>child</a></b></dt>
  
  <dd>A <i>child</i> is an immediate <i>descendant</i> node of a
  node.</dd>
  
  <dt><b><a id="dt-descendant"
  name='dt-descendant'>descendant</a></b></dt>
  
  <dd>A <i>descendant</i> node of any node A is any node below A in a
  tree model of a document, where "above" means "toward the
  root."</dd>
  
  <dt><b><a id="dt-DOM-Level-0" name='dt-DOM-Level-0'>DOM Level
  0</a></b></dt>
  
  <dd>The term "<i>DOM Level 0</i>" refers to a mix (not formally
  specified) of HTML document functionalities offered by Netscape
  Navigator version 3.0 and Microsoft Internet Explorer version 3.0.
  In some cases, attributes or <i>methods</i> have been included for
  reasons of backward compatibility with "DOM Level 0".</dd>
  
  <dt><b><a id="dt-sibling" name='dt-sibling'>sibling</a></b></dt>
  
  <dd>Two nodes are <i>siblings</i> if and only if they have the same
  <i>parent</i> node.</dd>
  
  <dt><b><a id="dt-tokenized"
  name='dt-tokenized'>tokenized</a></b></dt>
  
  <dd>The description given to various information items (for
  example, attribute values of various types, but not including the
  StringType CDATA) after having been processed by the XML processor.
  The process includes stripping leading and trailing white space,
  and replacing multiple space characters by one. See the definition
  of tokenized type.</dd>
  
  <dt><b><a id="dt-XML-name" name='dt-XML-name'>XML name</a></b></dt>
  
  <dd>See <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name'><em>XML
  name</em></a> in the XML specification [<a class='noxref'
  href='references.html#XML'>XML</a>].</dd>
  </dl>
  </div>
  
  <!-- div1 glossary -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='acknowledgements.html'>previous</a> &nbsp;
  <a accesskey='n' href='references.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/idl-definitions.html
  
  Index: idl-definitions.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:19 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>IDL Definitions</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='java-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='events.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='events.html'>previous</a> &nbsp; <a accesskey='n'
  href='java-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="idl" name='idl'></a> 
  
  <h1 id='idl-h1' class='adiv1'>Appendix A: IDL Definitions</h1>
  
  <p>This appendix contains the complete OMG IDL [<a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a>] for the Level 2 Document
  Object Model Events definitions.</p>
  
  <p>The IDL files are also available as: <a
  href='idl.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/idl.zip</a></p>
  
  <h3 id='idl-events.idl'><a
  href='idl/events.idl'>events.idl</a>:</h3>
  
  <div class='idl-code'>
  <pre>
  // File: events.idl
  
  #ifndef _EVENTS_IDL_
  #define _EVENTS_IDL_
  
  #include "dom.idl"
  #include "views.idl"
  
  #pragma prefix "dom.w3c.org"
  module events
  {
  
    typedef dom::DOMString DOMString;
    typedef dom::DOMTimeStamp DOMTimeStamp;
    typedef dom::Node Node;
  
    interface EventListener;
    interface Event;
  
    // Introduced in DOM Level 2:
    exception EventException {
      unsigned short   code;
    };
    // EventExceptionCode
    const unsigned short      UNSPECIFIED_EVENT_TYPE_ERR     = 0;
  
  
    // Introduced in DOM Level 2:
    interface EventTarget {
      void               addEventListener(in DOMString type, 
                                          in EventListener listener, 
                                          in boolean useCapture);
      void               removeEventListener(in DOMString type, 
                                             in EventListener listener, 
                                             in boolean useCapture);
      boolean            dispatchEvent(in Event evt)
                                          raises(EventException);
    };
  
    // Introduced in DOM Level 2:
    interface EventListener {
      void               handleEvent(in Event evt);
    };
  
    // Introduced in DOM Level 2:
    interface Event {
  
      // PhaseType
      const unsigned short      CAPTURING_PHASE                = 1;
      const unsigned short      AT_TARGET                      = 2;
      const unsigned short      BUBBLING_PHASE                 = 3;
  
      readonly attribute DOMString        type;
      readonly attribute EventTarget      target;
      readonly attribute EventTarget      currentTarget;
      readonly attribute unsigned short   eventPhase;
      readonly attribute boolean          bubbles;
      readonly attribute boolean          cancelable;
      readonly attribute DOMTimeStamp     timeStamp;
      void               stopPropagation();
      void               preventDefault();
      void               initEvent(in DOMString eventTypeArg, 
                                   in boolean canBubbleArg, 
                                   in boolean cancelableArg);
    };
  
    // Introduced in DOM Level 2:
    interface DocumentEvent {
      Event              createEvent(in DOMString eventType)
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface UIEvent : Event {
      readonly attribute views::AbstractView  view;
      readonly attribute long             detail;
      void               initUIEvent(in DOMString typeArg, 
                                     in boolean canBubbleArg, 
                                     in boolean cancelableArg, 
                                     in views::AbstractView viewArg, 
                                     in long detailArg);
    };
  
    // Introduced in DOM Level 2:
    interface MouseEvent : UIEvent {
      readonly attribute long             screenX;
      readonly attribute long             screenY;
      readonly attribute long             clientX;
      readonly attribute long             clientY;
      readonly attribute boolean          ctrlKey;
      readonly attribute boolean          shiftKey;
      readonly attribute boolean          altKey;
      readonly attribute boolean          metaKey;
      readonly attribute unsigned short   button;
      readonly attribute EventTarget      relatedTarget;
      void               initMouseEvent(in DOMString typeArg, 
                                        in boolean canBubbleArg, 
                                        in boolean cancelableArg, 
                                        in views::AbstractView viewArg, 
                                        in long detailArg, 
                                        in long screenXArg, 
                                        in long screenYArg, 
                                        in long clientXArg, 
                                        in long clientYArg, 
                                        in boolean ctrlKeyArg, 
                                        in boolean altKeyArg, 
                                        in boolean shiftKeyArg, 
                                        in boolean metaKeyArg, 
                                        in unsigned short buttonArg, 
                                        in EventTarget relatedTargetArg);
    };
  
    // Introduced in DOM Level 2:
    interface MutationEvent : Event {
  
      // attrChangeType
      const unsigned short      MODIFICATION                   = 1;
      const unsigned short      ADDITION                       = 2;
      const unsigned short      REMOVAL                        = 3;
  
      readonly attribute Node             relatedNode;
      readonly attribute DOMString        prevValue;
      readonly attribute DOMString        newValue;
      readonly attribute DOMString        attrName;
      readonly attribute unsigned short   attrChange;
      void               initMutationEvent(in DOMString typeArg, 
                                           in boolean canBubbleArg, 
                                           in boolean cancelableArg, 
                                           in Node relatedNodeArg, 
                                           in DOMString prevValueArg, 
                                           in DOMString newValueArg, 
                                           in DOMString attrNameArg, 
                                           in unsigned short attrChangeArg);
    };
  };
  
  #endif // _EVENTS_IDL_
  
  </pre>
  </div>
  </div>
  
  <!-- div1 idl -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='events.html'>previous</a> &nbsp; <a
  accesskey='n' href='java-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/java-binding.html
  
  Index: java-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:21 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Java Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='ecma-script-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='idl-definitions.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='idl-definitions.html'>previous</a> &nbsp; <a accesskey='n'
  href='ecma-script-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="java-binding" name='java-binding'></a> 
  
  <h1 id='java-binding-h1' class='adiv1'>Appendix B: Java Language
  Binding</h1>
  
  <p>This appendix contains the complete Java [<a class='noxref'
  href='references.html#Java'>Java</a>] bindings for the Level 2
  Document Object Model Events.</p>
  
  <p>The Java files are also available as <a
  href='java-binding.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/java-binding.zip</a></p>
  
  <h3 id='org.w3c.dom.events.EventException'>
  org/w3c/dom/events/EventException.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.events;
  
  public class EventException extends RuntimeException {
      public EventException(short code, String message) {
         super(message);
         this.code = code;
      }
      public short   code;
      // EventExceptionCode
      public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.events.EventTarget'>
  org/w3c/dom/events/EventTarget.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.events;
  
  public interface EventTarget {
      public void addEventListener(String type, 
                                   EventListener listener, 
                                   boolean useCapture);
  
      public void removeEventListener(String type, 
                                      EventListener listener, 
                                      boolean useCapture);
  
      public boolean dispatchEvent(Event evt)
                                   throws EventException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.events.EventListener'>
  org/w3c/dom/events/EventListener.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.events;
  
  public interface EventListener {
      public void handleEvent(Event evt);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.events.Event'>
  org/w3c/dom/events/Event.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.events;
  
  public interface Event {
      // PhaseType
      public static final short CAPTURING_PHASE           = 1;
      public static final short AT_TARGET                 = 2;
      public static final short BUBBLING_PHASE            = 3;
  
      public String getType();
  
      public EventTarget getTarget();
  
      public EventTarget getCurrentTarget();
  
      public short getEventPhase();
  
      public boolean getBubbles();
  
      public boolean getCancelable();
  
      public long getTimeStamp();
  
      public void stopPropagation();
  
      public void preventDefault();
  
      public void initEvent(String eventTypeArg, 
                            boolean canBubbleArg, 
                            boolean cancelableArg);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.events.DocumentEvent'>
  org/w3c/dom/events/DocumentEvent.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.events;
  
  import org.w3c.dom.DOMException;
  
  public interface DocumentEvent {
      public Event createEvent(String eventType)
                               throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.events.UIEvent'>
  org/w3c/dom/events/UIEvent.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.events;
  
  import org.w3c.dom.views.AbstractView;
  
  public interface UIEvent extends Event {
      public AbstractView getView();
  
      public int getDetail();
  
      public void initUIEvent(String typeArg, 
                              boolean canBubbleArg, 
                              boolean cancelableArg, 
                              AbstractView viewArg, 
                              int detailArg);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.events.MouseEvent'>
  org/w3c/dom/events/MouseEvent.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.events;
  
  import org.w3c.dom.views.AbstractView;
  
  public interface MouseEvent extends UIEvent {
      public int getScreenX();
  
      public int getScreenY();
  
      public int getClientX();
  
      public int getClientY();
  
      public boolean getCtrlKey();
  
      public boolean getShiftKey();
  
      public boolean getAltKey();
  
      public boolean getMetaKey();
  
      public short getButton();
  
      public EventTarget getRelatedTarget();
  
      public void initMouseEvent(String typeArg, 
                                 boolean canBubbleArg, 
                                 boolean cancelableArg, 
                                 AbstractView viewArg, 
                                 int detailArg, 
                                 int screenXArg, 
                                 int screenYArg, 
                                 int clientXArg, 
                                 int clientYArg, 
                                 boolean ctrlKeyArg, 
                                 boolean altKeyArg, 
                                 boolean shiftKeyArg, 
                                 boolean metaKeyArg, 
                                 short buttonArg, 
                                 EventTarget relatedTargetArg);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.events.MutationEvent'>
  org/w3c/dom/events/MutationEvent.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.events;
  
  import org.w3c.dom.Node;
  
  public interface MutationEvent extends Event {
      // attrChangeType
      public static final short MODIFICATION              = 1;
      public static final short ADDITION                  = 2;
      public static final short REMOVAL                   = 3;
  
      public Node getRelatedNode();
  
      public String getPrevValue();
  
      public String getNewValue();
  
      public String getAttrName();
  
      public short getAttrChange();
  
      public void initMutationEvent(String typeArg, 
                                    boolean canBubbleArg, 
                                    boolean cancelableArg, 
                                    Node relatedNodeArg, 
                                    String prevValueArg, 
                                    String newValueArg, 
                                    String attrNameArg, 
                                    short attrChangeArg);
  
  }
  </pre>
  </div>
  </div>
  
  <!-- div1 java-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='idl-definitions.html'>previous</a> &nbsp; <a
  accesskey='n' href='ecma-script-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/references.html
  
  Index: references.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:27 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>References</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='def-index.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='glossary.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='glossary.html'>previous</a> &nbsp; <a accesskey='n'
  href='def-index.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="References" name='References'></a> 
  
  <h1 id='role-references' class='references'>References</h1>
  
  <p>For the latest version of any W3C specification please consult
  the list of <a href='http://www.w3.org/TR'>W3C Technical
  Reports</a> available at http://www.w3.org/TR.</p>
  
  <div class='div2'><a id="References-Normative"
  name='References-Normative'></a> 
  
  <h2 id='References-Normative-h2' class='adiv2'>F.1: Normative
  references</h2>
  
  <dl>
  <dt><b><a id="DOMCore" name='DOMCore'>DOM Level 2 Core</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document
  Object Model Level 2 Core Specification</a>, November 2000.
  Available at
  http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113</dd>
  
  <dt><b><a id="ECMAScript" name='ECMAScript'>ECMAScript</a></b></dt>
  
  <dd>ECMA (European Computer Manufacturers Association) <a
  href='http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM'>ECMAScript
  Language Specification</a>. Available at
  http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM</dd>
  
  <dt><b><a id="Java" name='Java'>Java</a></b></dt>
  
  <dd>Sun Microsystems Inc. <a
  href='http://java.sun.com/docs/books/jls'>The Java Language
  Specification</a>, James Gosling, Bill Joy, and Guy Steele,
  September 1996. Available at
  http://java.sun.com/docs/books/jls</dd>
  
  <dt><b><a id="OMGIDL" name='OMGIDL'>OMGIDL</a></b></dt>
  
  <dd>OMG (<a href='http://www.omg.org/'>Object Management Group</a>)
  IDL (Interface Definition Language) defined in The Common Object
  Request Broker: Architecture and Specification, version 2.3.1,
  October 1999. Available from http://www.omg.org/</dd>
  
  <dt><b><a id="DOMViews" name='DOMViews'>DOM Level 2
  Views</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>Document
  Object Model Level 2 Views Specification</a>, November 2000.
  Available at
  http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113</dd>
  
  <dt><b><a id="XML" name='XML'>XML</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/1998/REC-xml-19980210'>Extensible Markup
  Language (XML) 1.0</a>, February 1998. Available at
  http://www.w3.org/TR/1998/REC-xml-19980210</dd>
  </dl>
  </div>
  
  <!-- div2 References-Normative --></div>
  
  <!-- div1 References -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='glossary.html'>previous</a> &nbsp; <a
  accesskey='n' href='def-index.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/spec.css
  
  Index: spec.css
  ===================================================================
  H4 {
    text-align: left;
    font-family: sans-serif;
    font-weight: normal;
    color: #0050B2; 
  }
  .idl-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  .java-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .code-block { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .ecma-block { 
    border: 1px solid black;
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .interface-name {
    font-weight: bold
  }
  
  .attribute-name {  
    color: black;
    background-color: #FFFFD2;
  }
  
  .constant-name {
    color: black;
    background-color: #DDFFD2;
  }
  
  .method-name {  
    color: black;
    background-color: #D9E6F8;
  }
  
  .parameter-name {
    color: black;
    background-color: #FEE6F8; 
  }
  
  UL.toc, OL.toc {list-style: none}
  DIV.toc UL UL, DIV.toc OL OL {margin-left: 0}
  DIV.toc UL UL UL, DIV.toc OL OL OL {margin-left: 1em}
  DIV.toc UL UL UL UL, DIV.toc OL OL OL OL {margin-left: 0}
  LI.tocline1 {font-weight: bold}
  LI.tocline2 {font-weight: normal}
  LI.tocline4 {font-style: italic}
  
  code { font-family: monospace }
  
  div.paramtable { margin-left: 1em }
  div.returntable { margin-left: 1em }
  div.exceptiontable { margin-left: 1em }
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/idl/events.idl
  
  Index: events.idl
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  // File: http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.idl
  
  #ifndef _EVENTS_IDL_
  #define _EVENTS_IDL_
  
  #include "dom.idl"
  #include "views.idl"
  
  #pragma prefix "dom.w3c.org"
  module events
  {
  
    typedef dom::DOMString DOMString;
    typedef dom::DOMTimeStamp DOMTimeStamp;
    typedef dom::Node Node;
  
    interface EventListener;
    interface Event;
  
    // Introduced in DOM Level 2:
    exception EventException {
      unsigned short   code;
    };
    // EventExceptionCode
    const unsigned short      UNSPECIFIED_EVENT_TYPE_ERR     = 0;
  
  
    // Introduced in DOM Level 2:
    interface EventTarget {
      void               addEventListener(in DOMString type, 
                                          in EventListener listener, 
                                          in boolean useCapture);
      void               removeEventListener(in DOMString type, 
                                             in EventListener listener, 
                                             in boolean useCapture);
      boolean            dispatchEvent(in Event evt)
                                          raises(EventException);
    };
  
    // Introduced in DOM Level 2:
    interface EventListener {
      void               handleEvent(in Event evt);
    };
  
    // Introduced in DOM Level 2:
    interface Event {
  
      // PhaseType
      const unsigned short      CAPTURING_PHASE                = 1;
      const unsigned short      AT_TARGET                      = 2;
      const unsigned short      BUBBLING_PHASE                 = 3;
  
      readonly attribute DOMString        type;
      readonly attribute EventTarget      target;
      readonly attribute EventTarget      currentTarget;
      readonly attribute unsigned short   eventPhase;
      readonly attribute boolean          bubbles;
      readonly attribute boolean          cancelable;
      readonly attribute DOMTimeStamp     timeStamp;
      void               stopPropagation();
      void               preventDefault();
      void               initEvent(in DOMString eventTypeArg, 
                                   in boolean canBubbleArg, 
                                   in boolean cancelableArg);
    };
  
    // Introduced in DOM Level 2:
    interface DocumentEvent {
      Event              createEvent(in DOMString eventType)
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface UIEvent : Event {
      readonly attribute views::AbstractView  view;
      readonly attribute long             detail;
      void               initUIEvent(in DOMString typeArg, 
                                     in boolean canBubbleArg, 
                                     in boolean cancelableArg, 
                                     in views::AbstractView viewArg, 
                                     in long detailArg);
    };
  
    // Introduced in DOM Level 2:
    interface MouseEvent : UIEvent {
      readonly attribute long             screenX;
      readonly attribute long             screenY;
      readonly attribute long             clientX;
      readonly attribute long             clientY;
      readonly attribute boolean          ctrlKey;
      readonly attribute boolean          shiftKey;
      readonly attribute boolean          altKey;
      readonly attribute boolean          metaKey;
      readonly attribute unsigned short   button;
      readonly attribute EventTarget      relatedTarget;
      void               initMouseEvent(in DOMString typeArg, 
                                        in boolean canBubbleArg, 
                                        in boolean cancelableArg, 
                                        in views::AbstractView viewArg, 
                                        in long detailArg, 
                                        in long screenXArg, 
                                        in long screenYArg, 
                                        in long clientXArg, 
                                        in long clientYArg, 
                                        in boolean ctrlKeyArg, 
                                        in boolean altKeyArg, 
                                        in boolean shiftKeyArg, 
                                        in boolean metaKeyArg, 
                                        in unsigned short buttonArg, 
                                        in EventTarget relatedTargetArg);
    };
  
    // Introduced in DOM Level 2:
    interface MutationEvent : Event {
  
      // attrChangeType
      const unsigned short      MODIFICATION                   = 1;
      const unsigned short      ADDITION                       = 2;
      const unsigned short      REMOVAL                        = 3;
  
      readonly attribute Node             relatedNode;
      readonly attribute DOMString        prevValue;
      readonly attribute DOMString        newValue;
      readonly attribute DOMString        attrName;
      readonly attribute unsigned short   attrChange;
      void               initMutationEvent(in DOMString typeArg, 
                                           in boolean canBubbleArg, 
                                           in boolean cancelableArg, 
                                           in Node relatedNodeArg, 
                                           in DOMString prevValueArg, 
                                           in DOMString newValueArg, 
                                           in DOMString attrNameArg, 
                                           in unsigned short attrChangeArg);
    };
  };
  
  #endif // _EVENTS_IDL_
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/images/REC.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/events/images/w3c_home.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/COPYRIGHT.html
  
  Index: COPYRIGHT.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
                        "http://www.w3.org/TR/REC-html40/loose.dtd">
  <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>W3C IPR SOFTWARE NOTICE</title>
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
      <h1>
        W3C IPR SOFTWARE NOTICE
      </h1>
      <h3>
        Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
        Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</loc>, <loc
        href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
        Reserved.
      </h3>
      <p>
        The DOM bindings are published under the W3C Software Copyright Notice
        and License. The software license requires "Notice of any changes or
        modifications to the W3C files, including the date changes were made."
        Consequently, modified versions of the DOM bindings must document that
        they do not conform to the W3C standard; in the case of the IDL binding,
        the pragma prefix can no longer be 'w3c.org'; in the case of the Java
        binding, the package names can no longer be in the 'org.w3c' package.
      </p>
      <p>
        <b>Note:</b> The original version of the W3C Software Copyright Notice
        and License could be found at <a
        href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
      </p>
      <h3>
        Copyright &copy; 1994-2000 <a href="http://www.w3.org/">World Wide Web
        Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</a>, <a
        href="http://www.keio.ac.jp/">Keio University</a>). All Rights
        Reserved. http://www.w3.org/Consortium/Legal/
      </h3>
      <p>
        This W3C work (including software, documents, or other related items) is
        being provided by the copyright holders under the following license. By
        obtaining, using and/or copying this work, you (the licensee) agree that
        you have read, understood, and will comply with the following terms and
        conditions:
      </p>
      <p>
        Permission to use, copy, and modify this software and its documentation,
        with or without modification,&nbsp; for any purpose and without fee or
        royalty is hereby granted, provided that you include the following on ALL
        copies of the software and documentation or portions thereof, including
        modifications, that you make:
      </p>
      <ol>
        <li>
  	The full text of this NOTICE in a location viewable to users of the
  	redistributed or derivative work.
        </li>
        <li>
  	Any pre-existing intellectual property disclaimers, notices, or terms
  	and conditions. If none exist, a short notice of the following form
  	(hypertext is preferred, text is permitted) should be used within the
  	body of any redistributed or derivative code: "Copyright &copy;
  	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
  	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
  	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
  	National de Recherche en Informatique et en Automatique</a>, <a
  	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
  	Reserved. http://www.w3.org/Consortium/Legal/"
        </li>
        <li>
  	Notice of any changes or modifications to the W3C files, including the
  	date changes were made. (We recommend you provide URIs to the location
  	from which the code is derived.)
        </li>
      </ol>
      <p>
        THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
        HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
        INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
        FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
        DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
        TRADEMARKS OR OTHER RIGHTS.
      </p>
      <p>
        COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
        CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
        DOCUMENTATION.
      </p>
      <p>
        The name and trademarks of copyright holders may NOT be used in
        advertising or publicity pertaining to the software without specific,
        written prior permission. Title to copyright in this software and any
        associated documentation will at all times remain with copyright
        holders.
      </p>
    </body>
  </html>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/Overview.html
  
  Index: Overview.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:49 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model (DOM) Level 2 Style
  Specification</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='expanded-toc.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='n'
  href='expanded-toc.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='head'>
  <p><a href='http://www.w3.org/'><img height='48' width='72'
  alt='W3C' src='./images/w3c_home.gif' /></a></p>
  
  <h1 id='title'>Document Object Model (DOM) Level 2 Style
  Specification</h1>
  
  <h2 id='version'>Version 1.0</h2>
  
  <!-- REC-DOM-Level-2-Style-20001113
   -->
  <h2 id='W3C-doctype'>W3C Recommendation <i>13 November,
  2000</i></h2>
  
  <dl>
  <dt>This version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113</a><br />
   (<a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/DOM2-Style.ps'>
  PostScript file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/DOM2-Style.pdf'>
  PDF file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/DOM2-Style.txt'>
  plain text</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/DOM2-Style.zip'>
  ZIP file</a>)</dd>
  
  <dt>Latest version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/DOM-Level-2-Style'>http://www.w3.org/TR/DOM-Level-2-Style</a></dd>
  
  <dt>Previous version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927'>http://www.w3.org/TR/2000/PR-DOM-Level-2-Style-20000927</a></dd>
  </dl>
  
  <dl>
  <dt>Editors:</dt>
  
  <dd>Chris Wilson, <i>Microsoft Corp.</i></dd>
  
  <dd>Philippe Le H&eacute;garet, <i>W3C, team contact (from November
  1999)</i></dd>
  
  <dd>Vidur Apparao, <i>Netscape Communications Corp.</i></dd>
  </dl>
  
  <p class='copyright'>Copyright &copy; 2000 <a
  href='http://www.w3.org/'><abbr
  title='World Wide Web Consortium'>W3C</abbr></a><sup>&reg;</sup>
  (<a href='http://www.lcs.mit.edu/'><abbr
  title='Massachusetts Institute of Technology'>MIT</abbr></a>, <a
  href='http://www.inria.fr/'><abbr lang='fr'
  title='Institut National de Recherche en Informatique et Automatique'>
  INRIA</abbr></a>, <a href='http://www.keio.ac.jp/'>Keio</a>), All
  Rights Reserved. W3C <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer'>
  liability</a>, <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks'>
  trademark</a>, <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  document use</a> and <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  software licensing</a> rules apply.</p>
  </div>
  
  <hr title='separator from header' />
  <h2 id='abstract'>Abstract</h2>
  
  <div class='abstract'>
  <p>This specification defines the Document Object Model Level 2
  Style Sheets and Cascading Style Sheets (CSS), a platform- and
  language-neutral interface that allows programs and scripts to
  dynamically access and update the content and of style sheets
  documents. The Document Object Model Level 2 Style builds on the
  Document Object Model Level 2 Core [<a class='noxref'
  href='references.html#DOMCore'>DOM Level 2 Core</a>] and on the
  Document Object Model Level 2 Views [<a class='noxref'
  href='references.html#DOMViews'>DOM Level 2 Views</a>].</p>
  </div>
  
  <h2 id='status'>Status of this document</h2>
  
  <div class='status'>
  <p><em>This section describes the status of this document at the
  time of its publication. Other documents may supersede this
  document. The latest status of this document series is maintained
  at the W3C.</em></p>
  
  <p>This document has been reviewed by W3C Members and other
  interested parties and has been endorsed by the Director as a <a
  href='http://www.w3.org/Consortium/Process/Process-19991111/tr.html#RecsW3C'>
  W3C Recommendation</a>. It is a stable document and may be used as
  reference material or cited as a normative reference from another
  document. W3C's role in making the Recommendation is to draw
  attention to the specification and to promote its widespread
  deployment. This enhances the functionality and interoperability of
  the Web.</p>
  
  <p>This document has been produced as part of the <a
  href='http://www.w3.org/DOM/Activity.html'>W3C DOM Activity</a>.
  The authors of this document are the DOM Working Group members.
  Different modules of the Document Object Model have different
  editors.</p>
  
  <p>Please send general comments about this document to the public
  mailing list <a href='mailto:www-dom@w3.org'>www-dom@w3.org</a>. An
  <a href='http://lists.w3.org/Archives/Public/www-dom/'>archive</a>
  is available at http://lists.w3.org/Archives/Public/www-dom/.</p>
  
  <p>The English version of this specification is the only normative
  version. Information about <a
  href='http://www.w3.org/2000/11/DOM-Level-2-translations'>translations</a>
  of this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-translations.</p>
  
  <p>The <a href='http://www.w3.org/2000/11/DOM-Level-2-errata'>list
  of known errors</a> in this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-errata</p>
  
  <p>A list of <a href='http://www.w3.org/TR/'>current W3C
  Recommendations and other technical documents</a> can be found at
  http://www.w3.org/TR.</p>
  </div>
  
  <h2 id='table-of-contents'><a id="contents" name='contents'>Table
  of contents</a></h2>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='stylesheets.html'>Chapter 1: Document Object Model Style
  Sheets</a></li>
  
  <li class='tocline2'><a class='tocxref' href='css.html'>Chapter 2:
  Document Object Model CSS</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix A: IDL Definitions</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix B: Java Language Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix C: ECMAScript Language
  Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix D: Acknowledgements</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='n' href='expanded-toc.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/W3C-REC.css
  
  Index: W3C-REC.css
  ===================================================================
  /* This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  */
  /* Style for a "Recommendation" */
  
  /*
     This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  
     Acknowledgments:
  
     - 'background-color' doesn't work on Mac IE 3, but 'background'
       does (Susan Lesch <le...@macvirus.com>)
  
     - 'smaller' leads to illegible text in both Mac IE and Mac NS,
       'small' is better: works in Mac NS, but is always 12pt in Mac IE
       3 (Susan Lesch <le...@macvirus.com>)
  
     $Id: W3C-REC.css,v 1.1 2001/06/01 11:13:57 dims Exp $
  */
  
  body {
    margin: 2em 1em 2em 70px;
    font-family: sans-serif;
    color: black;
    background: white;
    background-position: top left;
    background-attachment: fixed;
    background-repeat: no-repeat;
  }
  
  th, td { /* ns 4 */
    font-family: sans-serif;
  }
  
  h1, h2, h3, h4, h5, h6 { text-align: left }
  h1, h2, h3 { color: #005A9C }
  h1 { font: 170% sans-serif }
  h2 { font: 140% sans-serif }
  h3 { font: 120% sans-serif }
  h4 { font: bold 100% sans-serif }
  h5 { font: italic 100% sans-serif }
  h6 { font: small-caps 100% sans-serif }
  
  .hide { display: none }
  
  div.head { margin-bottom: 1em }
  div.head h1 { margin-top: 2em; clear: both }
  div.head table { margin-left: 2em; margin-top: 2em }
  div.head img { color: white; border: none } /* remove border from top image */
  
  p.copyright { font-size: small }
  p.copyright small { font-size: small }
  
  @media screen {  /* hide from IE3 */
  a:hover { background: #ffa } 
  }
  
  pre { margin-left: 2em }
  /*
  p {
    margin-top: 0.6em;
    margin-bottom: 0.6em;
  }
  */
  dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
  dt { font-weight: bold }
  
  pre, code { font-family: monospace } /* navigator 4 requires this */
  
  ul.toc {
    list-style: disc;		/* Mac NS has problem with 'none' */
    list-style: none;
  }
  
  @media aural {  
    h1, h2, h3 { stress: 20; richness: 90 }
    .hide { speak: none }
    p.copyright { volume: x-soft; speech-rate: x-fast }
    dt { pause-before: 20% }
    pre { speak-punctuation: code } 
  }
  
  /* Things (icons) that should only show up in projection mode */
  .projection { display: none }
  @media projection { .projection { display: inline } }
  
  
  body {
    background-image: url(http://www.w3.org/StyleSheets/TR/logo-REC);
  }
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/acknowledgements.html
  
  Index: acknowledgements.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:33 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Acknowledgements</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='references.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='ecma-script-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='ecma-script-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='references.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="contributors" name='contributors'></a> 
  
  <h1 id='contributors-h1' class='adiv1'>Appendix D:
  Acknowledgements</h1>
  
  <p>Many people contributed to this specification, including members
  of the DOM Working Group and the DOM Interest Group. We especially
  thank the following:</p>
  
  <p>Lauren Wood (SoftQuad Software Inc., <em>chair</em>), Andrew
  Watson (Object Management Group), Andy Heninger (IBM), Arnaud Le
  Hors (W3C and IBM), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea
  (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris
  Wilson (Microsoft), David Brownell (Sun), David Singer (IBM), Don
  Park (invited), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian
  Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared
  Sorensen (Novell), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe
  Marini (Macromedia), Johnny Stenback (Netscape), Jonathan Marsh
  (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim
  Adamson-Sharpe (SoftQuad Software Inc.), Laurence Cable (Sun), Mark
  Davis (IBM), Mark Scardina (Oracle), Martin D&uuml;rst (W3C), Mick
  Goulish (Software AG), Mike Champion (Arbortext and Software AG),
  Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso
  (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton
  (Netscape), Philippe Le H&eacute;garet (W3C, <em>W3C team
  contact</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer
  (iMall, Excite@Home and Netscape), Rich Rollman (Microsoft), Rick
  Gessner (Netscape), Scott Isaacs (Microsoft), Sharon Adler (INSO),
  Steve Byrne (JavaSoft), Tim Bray (invited), Tom Pixley (Netscape),
  Vidur Apparao (Netscape), Vinod Anupam (Lucent).</p>
  
  <p>Thanks to all those who have helped to improve this
  specification by sending suggestions and corrections.</p>
  
  <div class='div2'><a id="Productions" name='Productions'></a> 
  
  <h2 id='Productions-h2' class='adiv2'>D.1: Production Systems</h2>
  
  <p>This specification was written in XML. The HTML, OMG IDL, Java
  and ECMA Script bindings were all produced automatically.</p>
  
  <p>Thanks to Joe English, author of <a
  href='http://www.flightlab.com/cost'>cost</a>, which was used as
  the basis for producing DOM Level 1. Thanks also to Gavin Nicol,
  who wrote the scripts which run on top of cost. Arnaud Le Hors and
  Philippe Le H&eacute;garet maintained the scripts.</p>
  
  <p>For DOM Level 2, we used <a
  href='http://xml.apache.org/xerces-j'>Xerces</a> as the basis DOM
  implementation and wish to thank the authors. Philippe Le
  H&eacute;garet and Arnaud Le Hors wrote the <a
  href='http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/'>
  Java programs</a> which are the DOM application.</p>
  
  <p>Thanks also to Jan K&auml;rrman, author of <a
  href='http://www.tdb.uu.se/~jan/html2ps.html'>html2ps</a>, which we
  use in creating the PostScript version of the specification.</p>
  </div>
  
  <!-- div2 Productions --></div>
  
  <!-- div1 contributors -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='ecma-script-binding.html'>previous</a>
  &nbsp; <a accesskey='n' href='references.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/copyright-notice.html
  
  Index: copyright-notice.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:50 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Copyright Notice</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='stylesheets.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='expanded-toc.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='expanded-toc.html'>previous</a> &nbsp; <a accesskey='n'
  href='stylesheets.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Copyright-Notice"
  name='Copyright-Notice'></a> 
  
  <h1 id='Copyright-Notice-h1' class='div1'>Copyright Notice</h1>
  
  <p><b>Copyright &copy; 2000 <a href='http://www.w3.org/'>World Wide
  Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p>This document is published under the <a
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a>. The bindings within this document
  are published under the <a
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a>. The software license requires
  "Notice of any changes or modifications to the W3C files, including
  the date changes were made." Consequently, modified versions of the
  DOM bindings must document that they do not conform to the W3C
  standard; in the case of the IDL definitions, the pragma prefix can
  no longer be 'w3c.org'; in the case of the Java Language binding,
  the package names can no longer be in the 'org.w3c' package.</p>
  
  <div class='div2'><a id="Copyright-notice-document"
  name='Copyright-notice-document'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-document-h2' class='div2'>W3C Document
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Document Notice
  and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  http://www.w3.org/Consortium/Legal/copyright-documents-19990405</a>.</p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>Public documents on the W3C site are provided by the copyright
  holders under the following license. The software or Document Type
  Definitions (DTDs) associated with W3C specifications are governed
  by the <a
  href='http://www.w3.org/Consortium/Legal/copyright-software.html'>Software
  Notice</a>. By using and/or copying this document, or the W3C
  document from which this statement is linked, you (the licensee)
  agree that you have read, understood, and will comply with the
  following terms and conditions:</p>
  
  <p>Permission to use, copy, and distribute the contents of this
  document, or the W3C document from which this statement is linked,
  in any medium for any purpose and without fee or royalty is hereby
  granted, provided that you include the following on <em>ALL</em>
  copies of the document, or portions thereof, that you use:</p>
  
  <ol>
  <li>A link or URL to the original W3C document.</li>
  
  <li>The pre-existing copyright notice of the original author, or if
  it doesn't exist, a notice of the form: "Copyright &copy;
  [$date-of-document] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/" (Hypertext is
  preferred, but a textual representation is permitted.)</li>
  
  <li><em>If it exists</em>, the STATUS of the W3C document.</li>
  </ol>
  
  <p>When space permits, inclusion of the full text of this
  <b>NOTICE</b> should be provided. We request that authorship
  attribution be provided in any software, documents, or other items
  or products that you create pursuant to the implementation of the
  contents of this document, or any portion thereof.</p>
  
  <p>No right to create modifications or derivatives of W3C documents
  is granted pursuant to this license. However, if additional
  requirements (documented in the <a
  href='http://www.w3.org/Consortium/Legal/IPR-FAQ.html'>Copyright
  FAQ</a>) are satisfied, the right to create modifications or
  derivatives is sometimes granted by the W3C to individuals
  complying with those requirements.</p>
  
  <p>THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
  REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT
  NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS
  OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
  IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
  PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS
  THEREOF.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to this document or its
  contents without specific, written prior permission. Title to
  copyright in this document will at all times remain with copyright
  holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-document -->
  <div class='div2'><a id="Copyright-notice-software"
  name='Copyright-notice-software'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-software-h2' class='div2'>W3C Software
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Software
  Copyright Notice and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  http://www.w3.org/Consortium/Legal/copyright-software-19980720</a></p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>This W3C work (including software, documents, or other related
  items) is being provided by the copyright holders under the
  following license. By obtaining, using and/or copying this work,
  you (the licensee) agree that you have read, understood, and will
  comply with the following terms and conditions:</p>
  
  <p>Permission to use, copy, and modify this software and its
  documentation, with or without modification, for any purpose and
  without fee or royalty is hereby granted, provided that you include
  the following on ALL copies of the software and documentation or
  portions thereof, including modifications, that you make:</p>
  
  <ol>
  <li>The full text of this NOTICE in a location viewable to users of
  the redistributed or derivative work.</li>
  
  <li>Any pre-existing intellectual property disclaimers. If none
  exist, then a notice of the following form: "Copyright &copy;
  [$date-of-software] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/."</li>
  
  <li>Notice of any changes or modifications to the W3C files,
  including the date changes were made. (We recommend you provide
  URIs to the location from which the code is derived.)</li>
  </ol>
  
  <p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
  COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
  MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
  USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
  PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  SOFTWARE OR DOCUMENTATION.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to the software without
  specific, written prior permission. Title to copyright in this
  software and any associated documentation will at all times remain
  with copyright holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-software --></div>
  
  <!-- div1 Copyright-Notice -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='expanded-toc.html'>previous</a> &nbsp; <a
  accesskey='n' href='stylesheets.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/css.html
  
  Index: css.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:51 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model CSS</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='idl-definitions.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='stylesheets.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='stylesheets.html'>previous</a> &nbsp; <a accesskey='n'
  href='idl-definitions.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="CSS" name='CSS'></a> 
  
  <h1 id='CSS-h1' class='div1'>2. Document Object Model CSS</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Chris Wilson, Microsoft Corp.</dd>
  
  <dd>Philippe Le H&eacute;garet, W3C</dd>
  
  <dd>Vidur Apparao, Netscape Communications Corp.</dd>
  </dl>
  
  <div class='noprint'>
  <h2 id='table-of-contents'>Table of contents</h2>
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref' href='#CSS-overview'>2.1.
  Overview of the DOM Level 2 CSS Interfaces</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#CSS-fundamental'>2.2. CSS Fundamental Interfaces</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a
  href='#CSS-CSSStyleSheet'>CSSStyleSheet</a>, <a
  href='#CSS-CSSRuleList'>CSSRuleList</a>, <a
  href='#CSS-CSSRule'>CSSRule</a>, <a
  href='#CSS-CSSStyleRule'>CSSStyleRule</a>, <a
  href='#CSS-CSSMediaRule'>CSSMediaRule</a>, <a
  href='#CSS-CSSFontFaceRule'>CSSFontFaceRule</a>, <a
  href='#CSS-CSSPageRule'>CSSPageRule</a>, <a
  href='#CSS-CSSImportRule'>CSSImportRule</a>, <a
  href='#CSS-CSSCharsetRule'>CSSCharsetRule</a>, <a
  href='#CSS-CSSUnknownRule'>CSSUnknownRule</a>, <a
  href='#CSS-CSSStyleDeclaration'>CSSStyleDeclaration</a>, <a
  href='#CSS-CSSValue'>CSSValue</a>, <a
  href='#CSS-CSSPrimitiveValue'>CSSPrimitiveValue</a>, <a
  href='#CSS-CSSValueList'>CSSValueList</a>, <a
  href='#CSS-RGBColor'>RGBColor</a>, <a href='#CSS-Rect'>Rect</a>, <a
  href='#CSS-Counter'>Counter</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#CSS-OverrideAndComputed'>2.2.1. Override and computed style
  sheet</a> 
  
  <ul>
  <li class='tocline5'><a href='#CSS-ViewCSS'>ViewCSS</a>, <a
  href='#CSS-DocumentCSS'>DocumentCSS</a></li>
  </ul>
  </li>
  
  <li class='tocline4'><a class='tocxref'
  href='#CSS-StyleSheetCreation'>2.2.2. Style sheet creation</a> 
  
  <ul>
  <li class='tocline5'><a
  href='#CSS-DOMImplementationCSS'>DOMImplementationCSS</a></li>
  </ul>
  </li>
  
  <li class='tocline4'><a class='tocxref'
  href='#CSS-htmlelementcss'>2.2.3. Element with CSS inline style</a>
  
  
  <ul>
  <li class='tocline5'><a
  href='#CSS-ElementCSSInlineStyle'>ElementCSSInlineStyle</a></li>
  </ul>
  </li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref' href='#CSS-extended'>2.3.
  CSS2 Extended Interface</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a
  href='#CSS-CSS2Properties'>CSS2Properties</a></li>
  </ul>
  </li>
  </ul>
  </div>
  
  <div class='div2'><a id="CSS-overview" name='CSS-overview'></a> 
  
  <h2 id='CSS-overview-h2' class='div2'>2.1. Overview of the DOM
  Level 2 CSS Interfaces</h2>
  
  <p>The DOM Level 2 Cascading Style Sheets (<a
  href='http://www.w3.org/Style/CSS'>CSS</a>) interfaces are designed
  with the goal of exposing CSS constructs to object model consumers.
  Cascading Style Sheets is a declarative syntax for defining
  presentation rules, properties and ancillary constructs used to
  format and render Web documents. This document specifies a
  mechanism to programmatically access and modify the rich style and
  presentation control provided by CSS (specifically CSS level 2 [<a
  class='noxref' href='references.html#CSS2'>CSS2</a>]). This
  augments CSS by providing a mechanism to dynamically control the
  inclusion and exclusion of individual style sheets, as well as
  manipulate CSS rules and properties.</p>
  
  <p>The CSS interfaces are organized in a logical, rather than
  physical structure. A collection of all style sheets referenced by
  or embedded in the document is accessible on the document
  interface. Each item in this collection exposes the properties
  common to all style sheets referenced or embedded in HTML and XML
  documents; this interface is described in the <a
  href='stylesheets.html#StyleSheets'>Document Object Model Style
  Sheets</a>. User style sheets are not accessible through this
  collection, in part due to potential privacy concerns (and
  certainly read-write issues).</p>
  
  <p>For each CSS style sheet, an additional interface is exposed -
  the <a
  href='css.html#CSS-CSSStyleSheet'><code>CSSStyleSheet</code></a>
  interface. This interface allows access to the collection of rules
  within a CSS style sheet and methods to modify that collection.
  Interfaces are provided for each specific type of rule in CSS2
  (e.g. style declarations, <code>@import</code> rules, or
  <code>@font-face</code> rules), as well as a shared generic <a
  href='css.html#CSS-CSSRule'><code>CSSRule</code></a> interface.</p>
  
  <p>The most common type of rule is a style declaration. The <a
  href='css.html#CSS-CSSStyleRule'><code>CSSStyleRule</code></a>
  interface that represents this type of rule provides string access
  to the CSS selector of the rule, and access to the property
  declarations through the <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>
  interface.</p>
  
  <p>Finally, an optional <a
  href='css.html#CSS-CSS2Properties'><code>CSS2Properties</code></a>
  interface is described; this interface (if implemented) provides
  shortcuts to the string values of all the properties in CSS level
  2.</p>
  
  <p>All CSS objects in the DOM are "live", that is, a change in the
  style sheet is reflected in the computed and actual style.</p>
  </div>
  
  <!-- div2 CSS-overview -->
  <div class='div2'><a id="CSS-fundamental"
  name='CSS-fundamental'></a> 
  
  <h2 id='CSS-fundamental-h2' class='div2'>2.2. CSS Fundamental
  Interfaces</h2>
  
  <p>The interfaces within this section are considered fundamental
  CSS interfaces, and must be supported by all conforming
  implementations of the CSS module. These interfaces represent CSS
  style sheets specifically.</p>
  
  <p>A DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "CSS" and "2.0" (respectively) to
  determine whether or not this module is supported by the
  implementation. In order to fully support this module, an
  implementation must also support the "Core" feature defined defined
  in the DOM Level 2 Core specification [<a class='noxref'
  href='references.html#DOMCore'>DOM Level 2 Core</a>] and the
  "Views" feature defined in the DOM Level 2 Views specification [<a
  class='noxref' href='references.html#DOMViews'>DOM Level 2
  Views</a>]. Please refer to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <dl>
  <dt><b>Interface <i><a id="CSS-CSSStyleSheet"
  name='CSS-CSSStyleSheet'>CSSStyleSheet</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSStyleSheet</code> interface is a concrete interface
  used to represent a CSS style sheet i.e., a style sheet whose
  content type is "text/css".</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSStyleSheet : stylesheets::StyleSheet {
    readonly attribute CSSRule          ownerRule;
    readonly attribute CSSRuleList      cssRules;
    unsigned long      insertRule(in DOMString rule, 
                                  in unsigned long index)
                                          raises(DOMException);
    void               deleteRule(in unsigned long index)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSStyleSheet-cssRules"
  name='CSS-CSSStyleSheet-cssRules'>cssRules</a></code> of type <a
  href='css.html#CSS-CSSRuleList'><code>CSSRuleList</code></a>,
  readonly</dt>
  
  <dd>The list of all CSS rules contained within the style sheet.
  This includes both <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q8'><em>
  rule sets</em></a> and <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#at-rules'>
  <em>at-rules</em></a>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSSStyleSheet-ownerRule"
  name='CSS-CSSStyleSheet-ownerRule'>ownerRule</a></code> of type <a
  href='css.html#CSS-CSSRule'><code>CSSRule</code></a>, readonly</dt>
  
  <dd>If this style sheet comes from an <code>@import</code> rule,
  the <code>ownerRule</code> attribute will contain the <a
  href='css.html#CSS-CSSImportRule'><code>CSSImportRule</code></a>.
  In that case, the <code>ownerNode</code> attribute in the <a
  href='stylesheets.html#StyleSheets-StyleSheet'><code>StyleSheet</code></a>
  interface will be <code>null</code>. If the style sheet comes from
  an element or a processing instruction, the <code>ownerRule</code>
  attribute will be <code>null</code> and the <code>ownerNode</code>
  attribute will contain the <code>Node</code>.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="CSS-CSSStyleSheet-deleteRule"
  name='CSS-CSSStyleSheet-deleteRule'>deleteRule</a></code></dt>
  
  <dd>
  <div class='method'>Used to delete a rule from the style sheet. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The index within the style sheet's rule list of the rule to
  remove.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INDEX_SIZE_ERR: Raised if the specified index does not
  correspond to a rule in the style sheet's rule list.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="CSS-CSSStyleSheet-insertRule"
  name='CSS-CSSStyleSheet-insertRule'>insertRule</a></code></dt>
  
  <dd>
  <div class='method'>Used to insert a new rule into the style sheet.
  The new rule now becomes part of the cascade. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>rule</code> of type
  <code>DOMString</code></dt>
  
  <dd>The parsable text representing the rule. For rule sets this
  contains both the selector and the style declaration. For at-rules,
  this specifies both the at-identifier and the rule content.<br />
  </dd>
  
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The index within the style sheet's rule list of the rule before
  which to insert the specified rule. If the specified index is equal
  to the length of the style sheet's rule collection, the rule will
  be added to the end of the style sheet.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>unsigned long</code></p>
  </td>
  <td>
  <p>The index within the style sheet's rule collection of the newly
  inserted rule.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
  the specified index e.g. if an <code>@import</code> rule is
  inserted after a standard rule set or other at-rule.</p>
  
  <p>INDEX_SIZE_ERR: Raised if the specified index is not a valid
  insertion point.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
  readonly.</p>
  
  <p>SYNTAX_ERR: Raised if the specified rule has a syntax error and
  is unparsable.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSRuleList"
  name='CSS-CSSRuleList'>CSSRuleList</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSRuleList</code> interface provides the abstraction
  of an ordered collection of CSS rules.</p>
  
  <p>The items in the <code>CSSRuleList</code> are accessible via an
  integral index, starting from 0.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSRuleList {
    readonly attribute unsigned long    length;
    CSSRule            item(in unsigned long index);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSRuleList-length"
  name='CSS-CSSRuleList-length'>length</a></code> of type
  <code>unsigned long</code>, readonly</dt>
  
  <dd>The number of <a
  href='css.html#CSS-CSSRule'><code>CSSRules</code></a> in the list.
  The range of valid child rule indices is <code>0</code> to
  <code>length-1</code> inclusive.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="CSS-CSSRuleList-item"
  name='CSS-CSSRuleList-item'>item</a></code></dt>
  
  <dd>
  <div class='method'>Used to retrieve a CSS rule by ordinal index.
  The order in this collection represents the order of the rules in
  the CSS style sheet. If index is greater than or equal to the
  number of rules in the list, this returns <code>null</code>. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>Index into the collection<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='css.html#CSS-CSSRule'><code>CSSRule</code></a></p>
  </td>
  <td>
  <p>The style rule at the <code>index</code> position in the
  <code>CSSRuleList</code>, or <code>null</code> if that is not a
  valid index.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSRule"
  name='CSS-CSSRule'>CSSRule</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSRule</code> interface is the abstract base
  interface for any type of CSS <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q5'><em>
  statement</em></a>. This includes both <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q8'><em>
  rule sets</em></a> and <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#at-rules'>
  <em>at-rules</em></a>. An implementation is expected to preserve
  all rules specified in a CSS style sheet, even if the rule is not
  recognized by the parser. Unrecognized rules are represented using
  the <a
  href='css.html#CSS-CSSUnknownRule'><code>CSSUnknownRule</code></a>
  interface.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSRule {
  
    // RuleType
    const unsigned short      UNKNOWN_RULE                   = 0;
    const unsigned short      STYLE_RULE                     = 1;
    const unsigned short      CHARSET_RULE                   = 2;
    const unsigned short      IMPORT_RULE                    = 3;
    const unsigned short      MEDIA_RULE                     = 4;
    const unsigned short      FONT_FACE_RULE                 = 5;
    const unsigned short      PAGE_RULE                      = 6;
  
    readonly attribute unsigned short   type;
             attribute DOMString        cssText;
                                          // raises(DOMException) on setting
  
    readonly attribute CSSStyleSheet    parentStyleSheet;
    readonly attribute CSSRule          parentRule;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a id="CSS-CSSRule-ruleType"
  name='CSS-CSSRule-ruleType'>RuleType</a></i></b></dt>
  
  <dd>
  <p>An integer indicating which type of rule this is.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>CHARSET_RULE</code></dt>
  
  <dd>The rule is a <a
  href='css.html#CSS-CSSCharsetRule'><code>CSSCharsetRule</code></a>.</dd>
  
  <dt><code class='constant-name'>FONT_FACE_RULE</code></dt>
  
  <dd>The rule is a <a
  href='css.html#CSS-CSSFontFaceRule'><code>CSSFontFaceRule</code></a>.</dd>
  
  <dt><code class='constant-name'>IMPORT_RULE</code></dt>
  
  <dd>The rule is a <a
  href='css.html#CSS-CSSImportRule'><code>CSSImportRule</code></a>.</dd>
  
  <dt><code class='constant-name'>MEDIA_RULE</code></dt>
  
  <dd>The rule is a <a
  href='css.html#CSS-CSSMediaRule'><code>CSSMediaRule</code></a>.</dd>
  
  <dt><code class='constant-name'>PAGE_RULE</code></dt>
  
  <dd>The rule is a <a
  href='css.html#CSS-CSSPageRule'><code>CSSPageRule</code></a>.</dd>
  
  <dt><code class='constant-name'>STYLE_RULE</code></dt>
  
  <dd>The rule is a <a
  href='css.html#CSS-CSSStyleRule'><code>CSSStyleRule</code></a>.</dd>
  
  <dt><code class='constant-name'>UNKNOWN_RULE</code></dt>
  
  <dd>The rule is a <a
  href='css.html#CSS-CSSUnknownRule'><code>CSSUnknownRule</code></a>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSRule-cssText"
  name='CSS-CSSRule-cssText'>cssText</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>The parsable textual representation of the rule. This reflects
  the current state of the rule and not its initial value.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified CSS string value has a
  syntax error and is unparsable.</p>
  
  <p>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
  value represents a different type of rule than the current one.</p>
  
  <p>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
  this point in the style sheet.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSSRule-parentRule"
  name='CSS-CSSRule-parentRule'>parentRule</a></code> of type <a
  href='css.html#CSS-CSSRule'><code>CSSRule</code></a>, readonly</dt>
  
  <dd>If this rule is contained inside another rule (e.g. a style
  rule inside an @media block), this is the containing rule. If this
  rule is not nested inside any other rules, this returns
  <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSSRule-sheet"
  name='CSS-CSSRule-sheet'>parentStyleSheet</a></code> of type <a
  href='css.html#CSS-CSSStyleSheet'><code>CSSStyleSheet</code></a>,
  readonly</dt>
  
  <dd>The style sheet that contains this rule.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSSRule-type"
  name='CSS-CSSRule-type'>type</a></code> of type <code>unsigned
  short</code>, readonly</dt>
  
  <dd>The type of the rule, as defined above. The expectation is that
  binding-specific casting methods can be used to cast down from an
  instance of the <code>CSSRule</code> interface to the specific
  derived interface implied by the <code>type</code>.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSStyleRule"
  name='CSS-CSSStyleRule'>CSSStyleRule</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSStyleRule</code> interface represents a single <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q8'><em>
  rule set</em></a> in a CSS style sheet.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSStyleRule : CSSRule {
             attribute DOMString        selectorText;
                                          // raises(DOMException) on setting
  
    readonly attribute CSSStyleDeclaration  style;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="CSS-CSSStyleRule-selectorText"
  name='CSS-CSSStyleRule-selectorText'>selectorText</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>The textual representation of the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/selector.html'><em>
  selector</em></a> for the rule set. The implementation may have
  stripped out insignificant whitespace while parsing the
  selector.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified CSS string value has a
  syntax error and is unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSSStyleRule-style"
  name='CSS-CSSStyleRule-style'>style</a></code> of type <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>,
  readonly</dt>
  
  <dd>The <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q8'><em>
  declaration-block</em></a> of this rule set.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSMediaRule"
  name='CSS-CSSMediaRule'>CSSMediaRule</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSMediaRule</code> interface represents a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/media.html#at-media-rule'>
  <em>@media rule</em></a> in a CSS style sheet. A
  <code>@media</code> rule can be used to delimit style rules for
  specific media types.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSMediaRule : CSSRule {
    readonly attribute stylesheets::MediaList  media;
    readonly attribute CSSRuleList      cssRules;
    unsigned long      insertRule(in DOMString rule, 
                                  in unsigned long index)
                                          raises(DOMException);
    void               deleteRule(in unsigned long index)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSMediaRule-cssRules"
  name='CSS-CSSMediaRule-cssRules'>cssRules</a></code> of type <a
  href='css.html#CSS-CSSRuleList'><code>CSSRuleList</code></a>,
  readonly</dt>
  
  <dd>A list of all CSS rules contained within the media block.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSSMediaRule-mediaTypes"
  name='CSS-CSSMediaRule-mediaTypes'>media</a></code> of type
  <code>stylesheets::MediaList</code>, readonly</dt>
  
  <dd>A list of <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/media.html#media-types'>
  <em>media types</em></a> for this rule.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="CSS-CSSMediaRule-deleteRule"
  name='CSS-CSSMediaRule-deleteRule'>deleteRule</a></code></dt>
  
  <dd>
  <div class='method'>Used to delete a rule from the media block. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The index within the media block's rule collection of the rule
  to remove.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INDEX_SIZE_ERR: Raised if the specified index does not
  correspond to a rule in the media rule list.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="CSS-CSSMediaRule-insertRule"
  name='CSS-CSSMediaRule-insertRule'>insertRule</a></code></dt>
  
  <dd>
  <div class='method'>Used to insert a new rule into the media block.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>rule</code> of type
  <code>DOMString</code></dt>
  
  <dd>The parsable text representing the rule. For rule sets this
  contains both the selector and the style declaration. For at-rules,
  this specifies both the at-identifier and the rule content.<br />
  </dd>
  
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>The index within the media block's rule collection of the rule
  before which to insert the specified rule. If the specified index
  is equal to the length of the media blocks's rule collection, the
  rule will be added to the end of the media block.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>unsigned long</code></p>
  </td>
  <td>
  <p>The index within the media block's rule collection of the newly
  inserted rule.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
  the specified index, e.g., if an <code>@import</code> rule is
  inserted after a standard rule set or other at-rule.</p>
  
  <p>INDEX_SIZE_ERR: Raised if the specified index is not a valid
  insertion point.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
  readonly.</p>
  
  <p>SYNTAX_ERR: Raised if the specified rule has a syntax error and
  is unparsable.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSFontFaceRule"
  name='CSS-CSSFontFaceRule'>CSSFontFaceRule</a></i></b> (introduced
  in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSFontFaceRule</code> interface represents a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#font-descriptions'>
  <em>@font-face rule</em></a> in a CSS style sheet. The
  <code>@font-face</code> rule is used to hold a set of font
  descriptions.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSFontFaceRule : CSSRule {
    readonly attribute CSSStyleDeclaration  style;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSFontFaceRule-style"
  name='CSS-CSSFontFaceRule-style'>style</a></code> of type <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>,
  readonly</dt>
  
  <dd>The <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q8'><em>
  declaration-block</em></a> of this rule.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSPageRule"
  name='CSS-CSSPageRule'>CSSPageRule</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSPageRule</code> interface represents a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#page-box'>
  <em>@page rule</em></a> within a CSS style sheet. The
  <code>@page</code> rule is used to specify the dimensions,
  orientation, margins, etc. of a page box for paged media.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSPageRule : CSSRule {
             attribute DOMString        selectorText;
                                          // raises(DOMException) on setting
  
    readonly attribute CSSStyleDeclaration  style;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSPageRule-name"
  name='CSS-CSSPageRule-name'>selectorText</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>The parsable textual representation of the page selector for
  the rule.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified CSS string value has a
  syntax error and is unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSSPageRule-style"
  name='CSS-CSSPageRule-style'>style</a></code> of type <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>,
  readonly</dt>
  
  <dd>The <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q8'><em>
  declaration-block</em></a> of this rule.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSImportRule"
  name='CSS-CSSImportRule'>CSSImportRule</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSImportRule</code> interface represents a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#at-import'>
  <em>@import rule</em></a> within a CSS style sheet. The
  <code>@import</code> rule is used to import style rules from other
  style sheets.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSImportRule : CSSRule {
    readonly attribute DOMString        href;
    readonly attribute stylesheets::MediaList  media;
    readonly attribute CSSStyleSheet    styleSheet;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSImportRule-href"
  name='CSS-CSSImportRule-href'>href</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd>The location of the style sheet to be imported. The attribute
  will not contain the <code>"url(...)"</code> specifier around the
  URI.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSSImportRule-media"
  name='CSS-CSSImportRule-media'>media</a></code> of type
  <code>stylesheets::MediaList</code>, readonly</dt>
  
  <dd>A list of media types for which this style sheet may be
  used.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSSImportRule-styleSheet"
  name='CSS-CSSImportRule-styleSheet'>styleSheet</a></code> of type
  <a
  href='css.html#CSS-CSSStyleSheet'><code>CSSStyleSheet</code></a>,
  readonly</dt>
  
  <dd>The style sheet referred to by this rule, if it has been
  loaded. The value of this attribute is <code>null</code> if the
  style sheet has not yet been loaded or if it will not be loaded
  (e.g. if the style sheet is for a media type not supported by the
  user agent).<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSCharsetRule"
  name='CSS-CSSCharsetRule'>CSSCharsetRule</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSCharsetRule</code> interface represents a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#x66'>
  <em>@charset rule</em></a> in a CSS style sheet. The value of the
  <code>encoding</code> attribute does not affect the encoding of
  text data in the DOM objects; this encoding is always UTF-16. After
  a stylesheet is loaded, the value of the <code>encoding</code>
  attribute is the value found in the <code>@charset</code> rule. If
  there was no <code>@charset</code> in the original document, then
  no <code>CSSCharsetRule</code> is created. The value of the
  <code>encoding</code> attribute may also be used as a hint for the
  encoding used on serialization of the style sheet.</p>
  
  <p>The value of the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#x66'>
  <em>@charset rule</em></a> (and therefore of the
  <code>CSSCharsetRule</code>) may not correspond to the encoding the
  document actually came in; character encoding information e.g. in
  an HTTP header, has priority (see <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#x66'>
  <em>CSS document representation</em></a>) but this is not reflected
  in the <code>CSSCharsetRule</code>.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSCharsetRule : CSSRule {
             attribute DOMString        encoding;
                                          // raises(DOMException) on setting
  
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="CSS-CSSCharsetRule-encoding"
  name='CSS-CSSCharsetRule-encoding'>encoding</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>The encoding information used in this <code>@charset</code>
  rule.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified encoding value has a syntax
  error and is unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSUnknownRule"
  name='CSS-CSSUnknownRule'>CSSUnknownRule</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSUnknownRule</code> interface represents an at-rule
  not supported by this user agent.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSUnknownRule : CSSRule {
  };
  </pre>
  </div>
  
  <br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSStyleDeclaration"
  name='CSS-CSSStyleDeclaration'>CSSStyleDeclaration</a></i></b>
  (introduced in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSStyleDeclaration</code> interface represents a
  single <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#block'>
  <em>CSS declaration block</em></a>. This interface may be used to
  determine the style properties currently set in a block or to set
  style properties explicitly within the block.</p>
  
  <p>While an implementation may not recognize all CSS properties
  within a CSS declaration block, it is expected to provide access to
  all specified properties in the style sheet through the
  <code>CSSStyleDeclaration</code> interface. Furthermore,
  implementations that support a specific level of CSS should
  correctly handle <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/about.html#shorthand'>
  <em>CSS shorthand</em></a> properties for that level. For a further
  discussion of shorthand properties, see the <a
  href='css.html#CSS-CSS2Properties'><code>CSS2Properties</code></a>
  interface.</p>
  
  <p>This interface is also used to provide a <b>read-only</b> access
  to the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#computed-value'>
  <em>computed values</em></a> of an element. See also the <a
  href='css.html#CSS-ViewCSS'><code>ViewCSS</code></a> interface.</p>
  
  <p><b>Note:</b> The CSS Object Model doesn't provide an access to
  the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#specified-value'>
  <em>specified</em></a> or <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#specified-value'>
  <em>actual</em></a> values of the CSS cascade.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSStyleDeclaration {
             attribute DOMString        cssText;
                                          // raises(DOMException) on setting
  
    DOMString          getPropertyValue(in DOMString propertyName);
    CSSValue           getPropertyCSSValue(in DOMString propertyName);
    DOMString          removeProperty(in DOMString propertyName)
                                          raises(DOMException);
    DOMString          getPropertyPriority(in DOMString propertyName);
    void               setProperty(in DOMString propertyName, 
                                   in DOMString value, 
                                   in DOMString priority)
                                          raises(DOMException);
    readonly attribute unsigned long    length;
    DOMString          item(in unsigned long index);
    readonly attribute CSSRule          parentRule;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="CSS-CSSStyleDeclaration-cssText"
  name='CSS-CSSStyleDeclaration-cssText'>cssText</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>The parsable textual representation of the declaration block
  (excluding the surrounding curly braces). Setting this attribute
  will result in the parsing of the new value and resetting of all
  the properties in the declaration block including the removal or
  addition of properties.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified CSS string value has a
  syntax error and is unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
  readonly or a property is readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSSStyleDeclaration-length"
  name='CSS-CSSStyleDeclaration-length'>length</a></code> of type
  <code>unsigned long</code>, readonly</dt>
  
  <dd>The number of properties that have been explicitly set in this
  declaration block. The range of valid indices is 0 to length-1
  inclusive.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSSStyleDeclaration-parentRule"
  name='CSS-CSSStyleDeclaration-parentRule'>parentRule</a></code> of
  type <a href='css.html#CSS-CSSRule'><code>CSSRule</code></a>,
  readonly</dt>
  
  <dd>The CSS rule that contains this declaration block or
  <code>null</code> if this <code>CSSStyleDeclaration</code> is not
  attached to a <a
  href='css.html#CSS-CSSRule'><code>CSSRule</code></a>.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="CSS-CSSStyleDeclaration-getPropertyCSSValue"
  name='CSS-CSSStyleDeclaration-getPropertyCSSValue'>getPropertyCSSValue</a></code></dt>
  
  <dd>
  <div class='method'>Used to retrieve the object representation of
  the value of a CSS property if it has been explicitly set within
  this declaration block. This method returns <code>null</code> if
  the property is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/about.html#shorthand'>
  <em>shorthand</em></a> property. Shorthand property values can only
  be accessed and modified as strings, using the
  <code>getPropertyValue</code> and <code>setProperty</code> methods.
  
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>propertyName</code> of type
  <code>DOMString</code></dt>
  
  <dd>The name of the CSS property. See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/propidx.html'><em>
  CSS property index</em></a>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='css.html#CSS-CSSValue'><code>CSSValue</code></a></p>
  </td>
  <td>
  <p>Returns the value of the property if it has been explicitly set
  for this declaration block. Returns <code>null</code> if the
  property has not been set.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSStyleDeclaration-getPropertyPriority"
  name='CSS-CSSStyleDeclaration-getPropertyPriority'>getPropertyPriority</a></code></dt>
  
  <dd>
  <div class='method'>Used to retrieve the priority of a CSS property
  (e.g. the <code>"important"</code> qualifier) if the property has
  been explicitly set in this declaration block. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>propertyName</code> of type
  <code>DOMString</code></dt>
  
  <dd>The name of the CSS property. See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/propidx.html'><em>
  CSS property index</em></a>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMString</code></p>
  </td>
  <td>
  <p>A string representing the priority (e.g.
  <code>"important"</code>) if one exists. The empty string if none
  exists.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSStyleDeclaration-getPropertyValue"
  name='CSS-CSSStyleDeclaration-getPropertyValue'>getPropertyValue</a></code></dt>
  
  <dd>
  <div class='method'>Used to retrieve the value of a CSS property if
  it has been explicitly set within this declaration block. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>propertyName</code> of type
  <code>DOMString</code></dt>
  
  <dd>The name of the CSS property. See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/propidx.html'><em>
  CSS property index</em></a>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMString</code></p>
  </td>
  <td>
  <p>Returns the value of the property if it has been explicitly set
  for this declaration block. Returns the empty string if the
  property has not been set.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="CSS-CSSStyleDeclaration-item"
  name='CSS-CSSStyleDeclaration-item'>item</a></code></dt>
  
  <dd>
  <div class='method'>Used to retrieve the properties that have been
  explicitly set in this declaration block. The order of the
  properties retrieved using this method does not have to be the
  order in which they were set. This method can be used to iterate
  over all properties in this declaration block. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>Index of the property name to retrieve.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMString</code></p>
  </td>
  <td>
  <p>The name of the property at this ordinal position. The empty
  string if no property exists at this position.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSStyleDeclaration-removeProperty"
  name='CSS-CSSStyleDeclaration-removeProperty'>removeProperty</a></code></dt>
  
  <dd>
  <div class='method'>Used to remove a CSS property if it has been
  explicitly set within this declaration block. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>propertyName</code> of type
  <code>DOMString</code></dt>
  
  <dd>The name of the CSS property. See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/propidx.html'><em>
  CSS property index</em></a>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMString</code></p>
  </td>
  <td>
  <p>Returns the value of the property if it has been explicitly set
  for this declaration block. Returns the empty string if the
  property has not been set or the property name does not correspond
  to a known CSS property.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
  readonly or the property is readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSStyleDeclaration-setProperty"
  name='CSS-CSSStyleDeclaration-setProperty'>setProperty</a></code></dt>
  
  <dd>
  <div class='method'>Used to set a property value and priority
  within this declaration block. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>propertyName</code> of type
  <code>DOMString</code></dt>
  
  <dd>The name of the CSS property. See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/propidx.html'><em>
  CSS property index</em></a>.<br />
  </dd>
  
  <dt><code class='parameter-name'>value</code> of type
  <code>DOMString</code></dt>
  
  <dd>The new value of the property.<br />
  </dd>
  
  <dt><code class='parameter-name'>priority</code> of type
  <code>DOMString</code></dt>
  
  <dd>The new priority of the property (e.g.
  <code>"important"</code>).<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified value has a syntax error and
  is unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
  readonly or the property is readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSValue"
  name='CSS-CSSValue'>CSSValue</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSValue</code> interface represents a simple or a
  complex value. A <code>CSSValue</code> object only occurs in a
  context of a CSS property.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSValue {
  
    // UnitTypes
    const unsigned short      CSS_INHERIT                    = 0;
    const unsigned short      CSS_PRIMITIVE_VALUE            = 1;
    const unsigned short      CSS_VALUE_LIST                 = 2;
    const unsigned short      CSS_CUSTOM                     = 3;
  
             attribute DOMString        cssText;
                                          // raises(DOMException) on setting
  
    readonly attribute unsigned short   cssValueType;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a id="CSS-CSSValue-types"
  name='CSS-CSSValue-types'>UnitTypes</a></i></b></dt>
  
  <dd>
  <p>An integer indicating which type of unit applies to the
  value.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>CSS_CUSTOM</code></dt>
  
  <dd>The value is a custom value.</dd>
  
  <dt><code class='constant-name'>CSS_INHERIT</code></dt>
  
  <dd>The value is inherited and the <code>cssText</code> contains
  "inherit".</dd>
  
  <dt><code class='constant-name'>CSS_PRIMITIVE_VALUE</code></dt>
  
  <dd>The value is a primitive value and an instance of the <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>
  interface can be obtained by using binding-specific casting methods
  on this instance of the <code>CSSValue</code> interface.</dd>
  
  <dt><code class='constant-name'>CSS_VALUE_LIST</code></dt>
  
  <dd>The value is a <code>CSSValue</code> list and an instance of
  the <a
  href='css.html#CSS-CSSValueList'><code>CSSValueList</code></a>
  interface can be obtained by using binding-specific casting methods
  on this instance of the <code>CSSValue</code> interface.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSValue-cssText"
  name='CSS-CSSValue-cssText'>cssText</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>A string representation of the current value.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified CSS string value has a
  syntax error (according to the attached property) or is
  unparsable.</p>
  
  <p>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
  value represents a different type of values than the values allowed
  by the CSS property.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this value is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSSValue-cssValueType"
  name='CSS-CSSValue-cssValueType'>cssValueType</a></code> of type
  <code>unsigned short</code>, readonly</dt>
  
  <dd>A code defining the type of the value as defined above.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSPrimitiveValue"
  name='CSS-CSSPrimitiveValue'>CSSPrimitiveValue</a></i></b>
  (introduced in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSPrimitiveValue</code> interface represents a single
  <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#values'>
  <em>CSS value</em></a>. This interface may be used to determine the
  value of a specific style property currently set in a block or to
  set a specific style property explicitly within the block. An
  instance of this interface might be obtained from the
  <code>getPropertyCSSValue</code> method of the <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>
  interface. A <code>CSSPrimitiveValue</code> object only occurs in a
  context of a CSS property.</p>
  
  <p>Conversions are allowed between absolute values (from
  millimeters to centimeters, from degrees to radians, and so on) but
  not between relative values. (For example, a pixel value cannot be
  converted to a centimeter value.) Percentage values can't be
  converted since they are relative to the parent value (or another
  property value). There is one exception for color percentage
  values: since a color percentage value is relative to the range
  0-255, a color percentage value can be converted to a number; (see
  also the <a href='css.html#CSS-RGBColor'><code>RGBColor</code></a>
  interface).</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSPrimitiveValue : CSSValue {
  
    // UnitTypes
    const unsigned short      CSS_UNKNOWN                    = 0;
    const unsigned short      CSS_NUMBER                     = 1;
    const unsigned short      CSS_PERCENTAGE                 = 2;
    const unsigned short      CSS_EMS                        = 3;
    const unsigned short      CSS_EXS                        = 4;
    const unsigned short      CSS_PX                         = 5;
    const unsigned short      CSS_CM                         = 6;
    const unsigned short      CSS_MM                         = 7;
    const unsigned short      CSS_IN                         = 8;
    const unsigned short      CSS_PT                         = 9;
    const unsigned short      CSS_PC                         = 10;
    const unsigned short      CSS_DEG                        = 11;
    const unsigned short      CSS_RAD                        = 12;
    const unsigned short      CSS_GRAD                       = 13;
    const unsigned short      CSS_MS                         = 14;
    const unsigned short      CSS_S                          = 15;
    const unsigned short      CSS_HZ                         = 16;
    const unsigned short      CSS_KHZ                        = 17;
    const unsigned short      CSS_DIMENSION                  = 18;
    const unsigned short      CSS_STRING                     = 19;
    const unsigned short      CSS_URI                        = 20;
    const unsigned short      CSS_IDENT                      = 21;
    const unsigned short      CSS_ATTR                       = 22;
    const unsigned short      CSS_COUNTER                    = 23;
    const unsigned short      CSS_RECT                       = 24;
    const unsigned short      CSS_RGBCOLOR                   = 25;
  
    readonly attribute unsigned short   primitiveType;
    void               setFloatValue(in unsigned short unitType, 
                                     in float floatValue)
                                          raises(DOMException);
    float              getFloatValue(in unsigned short unitType)
                                          raises(DOMException);
    void               setStringValue(in unsigned short stringType, 
                                      in DOMString stringValue)
                                          raises(DOMException);
    DOMString          getStringValue()
                                          raises(DOMException);
    Counter            getCounterValue()
                                          raises(DOMException);
    Rect               getRectValue()
                                          raises(DOMException);
    RGBColor           getRGBColorValue()
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a id="CSS-CSSPrimitiveValue-types"
  name='CSS-CSSPrimitiveValue-types'>UnitTypes</a></i></b></dt>
  
  <dd>
  <p>An integer indicating which type of unit applies to the
  value.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>CSS_ATTR</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#x16'>
  <em>attribute function</em></a>. The value can be obtained by using
  the <code>getStringValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_CM</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#length-units'>
  <em>length (cm)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_COUNTER</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#counter'>
  <em>counter or counters function</em></a>. The value can be
  obtained by using the <code>getCounterValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_DEG</code></dt>
  
  <dd>The value is an <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q19'>
  <em>angle (deg)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_DIMENSION</code></dt>
  
  <dd>The value is a number with an unknown dimension. The value can
  be obtained by using the <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_EMS</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#length-units'>
  <em>length (ems)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_EXS</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#length-units'>
  <em>length (exs)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_GRAD</code></dt>
  
  <dd>The value is an <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q19'>
  <em>angle (grad)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_HZ</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q21'>
  <em>frequency (Hz)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_IDENT</code></dt>
  
  <dd>The value is an <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#value-def-identifier'>
  <em>identifier</em></a>. The value can be obtained by using the
  <code>getStringValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_IN</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#length-units'>
  <em>length (in)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_KHZ</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q21'>
  <em>frequency (kHz)</em></a>. The value can be obtained by using
  the <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_MM</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#length-units'>
  <em>length (mm)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_MS</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q20'>
  <em>time (ms)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_NUMBER</code></dt>
  
  <dd>The value is a simple <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q13'>
  <em>number</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_PC</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#length-units'>
  <em>length (pc)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_PERCENTAGE</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#percentage-units'>
  <em>percentage</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_PT</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#length-units'>
  <em>length (pt)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_PX</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#length-units'>
  <em>length (px)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_RAD</code></dt>
  
  <dd>The value is an <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q19'>
  <em>angle (rad)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_RECT</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visufx.html#value-def-shape'>
  <em>rect function</em></a>. The value can be obtained by using the
  <code>getRectValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_RGBCOLOR</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#color-units'>
  <em>RGB color</em></a>. The value can be obtained by using the
  <code>getRGBColorValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_S</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#q20'>
  <em>time (s)</em></a>. The value can be obtained by using the
  <code>getFloatValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_STRING</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#strings'>
  <em>STRING</em></a>. The value can be obtained by using the
  <code>getStringValue</code> method.</dd>
  
  <dt><code class='constant-name'>CSS_UNKNOWN</code></dt>
  
  <dd>The value is not a recognized CSS2 value. The value can only be
  obtained by using the <code>cssText</code> attribute.</dd>
  
  <dt><code class='constant-name'>CSS_URI</code></dt>
  
  <dd>The value is a <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#uri'>
  <em>URI</em></a>. The value can be obtained by using the
  <code>getStringValue</code> method.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="CSS-CSSPrimitiveValue-primitiveType"
  name='CSS-CSSPrimitiveValue-primitiveType'>primitiveType</a></code>
  of type <code>unsigned short</code>, readonly</dt>
  
  <dd>The type of the value as defined by the constants specified
  above.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="CSS-CSSPrimitiveValue-getCounterValue"
  name='CSS-CSSPrimitiveValue-getCounterValue'>getCounterValue</a></code></dt>
  
  <dd>
  <div class='method'>This method is used to get the Counter value.
  If this CSS value doesn't contain a counter value, a
  <code>DOMException</code> is raised. Modification to the
  corresponding style property can be achieved using the <a
  href='css.html#CSS-Counter'><code>Counter</code></a> interface. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='css.html#CSS-Counter'><code>Counter</code></a></p>
  </td>
  <td>
  <p>The Counter value.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
  Counter value (e.g. this is not <code>CSS_COUNTER</code>).</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSPrimitiveValue-getFloatValue"
  name='CSS-CSSPrimitiveValue-getFloatValue'>getFloatValue</a></code></dt>
  
  <dd>
  <div class='method'>This method is used to get a float value in a
  specified unit. If this CSS value doesn't contain a float value or
  can't be converted into the specified unit, a
  <code>DOMException</code> is raised. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>unitType</code> of type
  <code>unsigned short</code></dt>
  
  <dd>A unit code to get the float value. The unit code can only be a
  float unit type (i.e. <code>CSS_NUMBER</code>,
  <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
  <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
  <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
  <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
  <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
  <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
  <code>CSS_DIMENSION</code>).<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>float</code></p>
  </td>
  <td>
  <p>The float value in the specified unit.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
  float value or if the float value can't be converted into the
  specified unit.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSPrimitiveValue-getRGBColorValue"
  name='CSS-CSSPrimitiveValue-getRGBColorValue'>getRGBColorValue</a></code></dt>
  
  <dd>
  <div class='method'>This method is used to get the RGB color. If
  this CSS value doesn't contain a RGB color value, a
  <code>DOMException</code> is raised. Modification to the
  corresponding style property can be achieved using the <a
  href='css.html#CSS-RGBColor'><code>RGBColor</code></a> interface. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='css.html#CSS-RGBColor'><code>RGBColor</code></a></p>
  </td>
  <td>
  <p>the RGB color value.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_ACCESS_ERR: Raised if the attached property can't return
  a RGB color value (e.g. this is not <code>CSS_RGBCOLOR</code>).</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSPrimitiveValue-getRectValue"
  name='CSS-CSSPrimitiveValue-getRectValue'>getRectValue</a></code></dt>
  
  <dd>
  <div class='method'>This method is used to get the Rect value. If
  this CSS value doesn't contain a rect value, a
  <code>DOMException</code> is raised. Modification to the
  corresponding style property can be achieved using the <a
  href='css.html#CSS-Rect'><code>Rect</code></a> interface. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='css.html#CSS-Rect'><code>Rect</code></a></p>
  </td>
  <td>
  <p>The Rect value.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
  Rect value. (e.g. this is not <code>CSS_RECT</code>).</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSPrimitiveValue-getStringValue"
  name='CSS-CSSPrimitiveValue-getStringValue'>getStringValue</a></code></dt>
  
  <dd>
  <div class='method'>This method is used to get the string value. If
  the CSS value doesn't contain a string value, a
  <code>DOMException</code> is raised. 
  
  <p><b>Note:</b> Some properties (like <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font-family'>
  'font-family'</a> or <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-voice-family'>
  'voice-family'</a>) convert a whitespace separated list of idents
  to a string.</p>
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMString</code></p>
  </td>
  <td>
  <p>The string value in the current unit. The current
  <code>primitiveType</code> can only be a string unit type (i.e.
  <code>CSS_STRING</code>, <code>CSS_URI</code>,
  <code>CSS_IDENT</code> and <code>CSS_ATTR</code>).</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
  string value.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSPrimitiveValue-setFloatValue"
  name='CSS-CSSPrimitiveValue-setFloatValue'>setFloatValue</a></code></dt>
  
  <dd>
  <div class='method'>A method to set the float value with a
  specified unit. If the property attached with this value can not
  accept the specified unit or the float value, the value will be
  unchanged and a <code>DOMException</code> will be raised. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>unitType</code> of type
  <code>unsigned short</code></dt>
  
  <dd>A unit code as defined above. The unit code can only be a float
  unit type (i.e. <code>CSS_NUMBER</code>,
  <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
  <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
  <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
  <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
  <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
  <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
  <code>CSS_DIMENSION</code>).<br />
  </dd>
  
  <dt><code class='parameter-name'>floatValue</code> of type
  <code>float</code></dt>
  
  <dd>The new float value.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_ACCESS_ERR: Raised if the attached property doesn't
  support the float value or the unit type.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="CSS-CSSPrimitiveValue-setStringValue"
  name='CSS-CSSPrimitiveValue-setStringValue'>setStringValue</a></code></dt>
  
  <dd>
  <div class='method'>A method to set the string value with the
  specified unit. If the property attached to this value can't accept
  the specified unit or the string value, the value will be unchanged
  and a <code>DOMException</code> will be raised. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>stringType</code> of type
  <code>unsigned short</code></dt>
  
  <dd>A string code as defined above. The string code can only be a
  string unit type (i.e. <code>CSS_STRING</code>,
  <code>CSS_URI</code>, <code>CSS_IDENT</code>, and
  <code>CSS_ATTR</code>).<br />
  </dd>
  
  <dt><code class='parameter-name'>stringValue</code> of type
  <code>DOMString</code></dt>
  
  <dd>The new string value.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
  string value or if the string value can't be converted into the
  specified unit.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-CSSValueList"
  name='CSS-CSSValueList'>CSSValueList</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSSValueList</code> interface provides the abstraction
  of an ordered collection of CSS values.</p>
  
  <p>Some properties allow an empty list into their syntax. In that
  case, these properties take the <code>none</code> identifier. So,
  an empty list means that the property has the value
  <code>none</code>.</p>
  
  <p>The items in the <code>CSSValueList</code> are accessible via an
  integral index, starting from 0.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSSValueList : CSSValue {
    readonly attribute unsigned long    length;
    CSSValue           item(in unsigned long index);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSSValueList-length"
  name='CSS-CSSValueList-length'>length</a></code> of type
  <code>unsigned long</code>, readonly</dt>
  
  <dd>The number of <a
  href='css.html#CSS-CSSValue'><code>CSSValues</code></a> in the
  list. The range of valid values of the indices is <code>0</code> to
  <code>length-1</code> inclusive.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="CSS-CSSValueList-item"
  name='CSS-CSSValueList-item'>item</a></code></dt>
  
  <dd>
  <div class='method'>Used to retrieve a <a
  href='css.html#CSS-CSSValue'><code>CSSValue</code></a> by ordinal
  index. The order in this collection represents the order of the
  values in the CSS style property. If index is greater than or equal
  to the number of values in the list, this returns
  <code>null</code>. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>Index into the collection.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a href='css.html#CSS-CSSValue'><code>CSSValue</code></a></p>
  </td>
  <td>
  <p>The <a class='noxref'
  href='css.html#CSS-CSSValue'><code>CSSValue</code></a> at the
  <code>index</code> position in the <code>CSSValueList</code>, or
  <code>null</code> if that is not a valid index.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-RGBColor"
  name='CSS-RGBColor'>RGBColor</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>RGBColor</code> interface is used to represent any <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#value-def-color'>
  <em>RGB color</em></a> value. This interface reflects the values in
  the underlying style property. Hence, modifications made to the <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>
  objects modify the style property.</p>
  
  <p>A specified RGB color is not clipped (even if the number is
  outside the range 0-255 or 0%-100%). A computed RGB color is
  clipped depending on the device.</p>
  
  <p>Even if a style sheet can only contain an integer for a color
  value, the internal storage of this integer is a float, and this
  can be used as a float in the specified or the computed style.</p>
  
  <p>A color percentage value can always be converted to a number and
  vice versa.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface RGBColor {
    readonly attribute CSSPrimitiveValue  red;
    readonly attribute CSSPrimitiveValue  green;
    readonly attribute CSSPrimitiveValue  blue;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-RGBColor-blue"
  name='CSS-RGBColor-blue'>blue</a></code> of type <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>,
  readonly</dt>
  
  <dd>This attribute is used for the blue value of the RGB
  color.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-RGBColor-green"
  name='CSS-RGBColor-green'>green</a></code> of type <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>,
  readonly</dt>
  
  <dd>This attribute is used for the green value of the RGB
  color.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-RGBColor-red"
  name='CSS-RGBColor-red'>red</a></code> of type <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>,
  readonly</dt>
  
  <dd>This attribute is used for the red value of the RGB
  color.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-Rect"
  name='CSS-Rect'>Rect</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>Rect</code> interface is used to represent any <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visufx.html#value-def-shape'>
  <em>rect</em></a> value. This interface reflects the values in the
  underlying style property. Hence, modifications made to the <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>
  objects modify the style property.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface Rect {
    readonly attribute CSSPrimitiveValue  top;
    readonly attribute CSSPrimitiveValue  right;
    readonly attribute CSSPrimitiveValue  bottom;
    readonly attribute CSSPrimitiveValue  left;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-Rect-bottom"
  name='CSS-Rect-bottom'>bottom</a></code> of type <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>,
  readonly</dt>
  
  <dd>This attribute is used for the bottom of the rect.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-Rect-left"
  name='CSS-Rect-left'>left</a></code> of type <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>,
  readonly</dt>
  
  <dd>This attribute is used for the left of the rect.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-Rect-right"
  name='CSS-Rect-right'>right</a></code> of type <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>,
  readonly</dt>
  
  <dd>This attribute is used for the right of the rect.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-Rect-top"
  name='CSS-Rect-top'>top</a></code> of type <a
  href='css.html#CSS-CSSPrimitiveValue'><code>CSSPrimitiveValue</code></a>,
  readonly</dt>
  
  <dd>This attribute is used for the top of the rect.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-Counter"
  name='CSS-Counter'>Counter</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>Counter</code> interface is used to represent any <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#value-def-counter'>
  <em>counter or counters function</em></a> value. This interface
  reflects the values in the underlying style property.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface Counter {
    readonly attribute DOMString        identifier;
    readonly attribute DOMString        listStyle;
    readonly attribute DOMString        separator;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-Counter-identifier"
  name='CSS-Counter-identifier'>identifier</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd>This attribute is used for the identifier of the counter.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-Counter-listStyle"
  name='CSS-Counter-listStyle'>listStyle</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd>This attribute is used for the style of the list.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-Counter-separator"
  name='CSS-Counter-separator'>separator</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd>This attribute is used for the separator of the nested
  counters.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  
  <div class='div3'><a id="CSS-OverrideAndComputed"
  name='CSS-OverrideAndComputed'></a> 
  
  <h3 id='CSS-OverrideAndComputed-h3' class='div3'>2.2.1. Override
  and computed style sheet</h3>
  
  <dl>
  <dt><b>Interface <i><a id="CSS-ViewCSS"
  name='CSS-ViewCSS'>ViewCSS</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>This interface represents a CSS view. The
  <code>getComputedStyle</code> method provides a <b>read only
  access</b> to the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#computed-value'>
  <em>computed values</em></a> of an element.</p>
  
  <p>The expectation is that an instance of the <code>ViewCSS</code>
  interface can be obtained by using binding-specific casting methods
  on an instance of the <code>AbstractView</code> interface.</p>
  
  <p>Since a computed style is related to an <code>Element</code>
  node, if this element is removed from the document, the associated
  <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>
  and <a href='css.html#CSS-CSSValue'><code>CSSValue</code></a>
  related to this declaration are no longer valid.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface ViewCSS : views::AbstractView {
    CSSStyleDeclaration getComputedStyle(in Element elt, 
                                         in DOMString pseudoElt);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="CSS-CSSview-getComputedStyle"
  name='CSS-CSSview-getComputedStyle'>getComputedStyle</a></code></dt>
  
  <dd>
  <div class='method'>This method is used to get the computed style
  as it is defined in [<a class='noxref'
  href='references.html#CSS2'>CSS2</a>]. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>elt</code> of type
  <code>Element</code></dt>
  
  <dd>The element whose style is to be computed. This parameter
  cannot be null.<br />
  </dd>
  
  <dt><code class='parameter-name'>pseudoElt</code> of type
  <code>DOMString</code></dt>
  
  <dd>The pseudo-element or <code>null</code> if none.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a></p>
  </td>
  <td>
  <p>The computed style. The <a class='noxref'
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>
  is read-only and contains only absolute values.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="CSS-DocumentCSS"
  name='CSS-DocumentCSS'>DocumentCSS</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>This interface represents a document with a CSS view.</p>
  
  <p>The <code>getOverrideStyle</code> method provides a mechanism
  through which a DOM author could effect immediate change to the
  style of an element without modifying the explicitly linked style
  sheets of a document or the inline style of elements in the style
  sheets. This style sheet comes after the author style sheet in the
  cascade algorithm and is called <em>override style sheet</em>. The
  override style sheet takes precedence over author style sheets. An
  "!important" declaration still takes precedence over a normal
  declaration. Override, author, and user style sheets all may
  contain "!important" declarations. User "!important" rules take
  precedence over both override and author "!important" rules, and
  override "!important" rules take precedence over author
  "!important" rules.</p>
  
  <p>The expectation is that an instance of the
  <code>DocumentCSS</code> interface can be obtained by using
  binding-specific casting methods on an instance of the
  <code>Document</code> interface.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface DocumentCSS : stylesheets::DocumentStyle {
    CSSStyleDeclaration getOverrideStyle(in Element elt, 
                                         in DOMString pseudoElt);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="CSS-DocumentCSS-getOverrideStyle"
  name='CSS-DocumentCSS-getOverrideStyle'>getOverrideStyle</a></code></dt>
  
  <dd>
  <div class='method'>This method is used to retrieve the override
  style declaration for a specified element and a specified
  pseudo-element. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>elt</code> of type
  <code>Element</code></dt>
  
  <dd>The element whose style is to be modified. This parameter
  cannot be null.<br />
  </dd>
  
  <dt><code class='parameter-name'>pseudoElt</code> of type
  <code>DOMString</code></dt>
  
  <dd>The pseudo-element or <code>null</code> if none.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a></p>
  </td>
  <td>
  <p>The override style declaration.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div3 CSS-OverrideAndComputed -->
  <div class='div3'><a id="CSS-StyleSheetCreation"
  name='CSS-StyleSheetCreation'></a> 
  
  <h3 id='CSS-StyleSheetCreation-h3' class='div3'>2.2.2. Style sheet
  creation</h3>
  
  <dl>
  <dt><b>Interface <i><a id="CSS-DOMImplementationCSS"
  name='CSS-DOMImplementationCSS'>DOMImplementationCSS</a></i></b>
  (introduced in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>This interface allows the DOM user to create a <a
  href='css.html#CSS-CSSStyleSheet'><code>CSSStyleSheet</code></a>
  outside the context of a document. There is no way to associate the
  new <a class='noxref'
  href='css.html#CSS-CSSStyleSheet'><code>CSSStyleSheet</code></a>
  with a document in DOM Level 2.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM   Level 2:
  interface DOMImplementationCSS : DOMImplementation {
    CSSStyleSheet      createCSSStyleSheet(in DOMString title, 
                                           in DOMString media)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="CSS-DOMImplementationCSS-createCSSStyleSheet"
  name='CSS-DOMImplementationCSS-createCSSStyleSheet'>createCSSStyleSheet</a></code></dt>
  
  <dd>
  <div class='method'>Creates a new <a
  href='css.html#CSS-CSSStyleSheet'><code>CSSStyleSheet</code></a>. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>title</code> of type
  <code>DOMString</code></dt>
  
  <dd>The advisory title. See also the <a
  href='stylesheets.html#StyleSheets-StyleSheet-title'>Style Sheet
  Interfaces</a> section.<br />
  </dd>
  
  <dt><code class='parameter-name'>media</code> of type
  <code>DOMString</code></dt>
  
  <dd>The comma-separated list of media associated with the new style
  sheet. See also the <a
  href='stylesheets.html#StyleSheets-StyleSheet-media'>Style Sheet
  Interfaces</a> section.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='css.html#CSS-CSSStyleSheet'><code>CSSStyleSheet</code></a></p>
  </td>
  <td>
  <p>A new CSS style sheet.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified media string value has a
  syntax error and is unparsable.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div3 CSS-StyleSheetCreation -->
  <div class='div3'><a id="CSS-htmlelementcss"
  name='CSS-htmlelementcss'></a> 
  
  <h3 id='CSS-htmlelementcss-h3' class='div3'>2.2.3. Element with CSS
  inline style</h3>
  
  <dl>
  <dt><b>Interface <i><a id="CSS-ElementCSSInlineStyle"
  name='CSS-ElementCSSInlineStyle'>ElementCSSInlineStyle</a></i></b>
  (introduced in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>Inline style information attached to elements is exposed through
  the <code>style</code> attribute. This represents the contents of
  the <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/present/styles.html#h-14.2.2'>
  <em>STYLE</em></a> attribute for HTML elements (or elements in
  other schemas or DTDs which use the STYLE attribute in the same
  way). The expectation is that an instance of the
  ElementCSSInlineStyle interface can be obtained by using
  binding-specific casting methods on an instance of the Element
  interface when the element supports inline CSS style
  informations.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface ElementCSSInlineStyle {
    readonly attribute CSSStyleDeclaration  style;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="CSS-ElementCSSInlineStyle-style"
  name='CSS-ElementCSSInlineStyle-style'>style</a></code> of type <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>,
  readonly</dt>
  
  <dd>The style attribute.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div3 CSS-htmlelementcss --></div>
  
  <!-- div2 CSS-fundamental -->
  <div class='div2'><a id="CSS-extended" name='CSS-extended'></a> 
  
  <h2 id='CSS-extended-h2' class='div2'>2.3. CSS2 Extended
  Interface</h2>
  
  <p>The interface found within this section are not mandatory. A DOM
  application may use the <code>hasFeature(feature, version)</code>
  method of the <code>DOMImplementation</code> interface with
  parameter values "CSS2" and "2.0" (respectively) to determine
  whether or not this module is supported by the implementation. In
  order to fully support this module, an implementation must also
  support the "CSS" feature defined defined in <a
  href='css.html#CSS-fundamental'>CSS Fundamental Interfaces</a>.
  Please refer to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <dl>
  <dt><b>Interface <i><a id="CSS-CSS2Properties"
  name='CSS-CSS2Properties'>CSS2Properties</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>CSS2Properties</code> interface represents a
  convenience mechanism for retrieving and setting properties within
  a <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>.
  The attributes of this interface correspond to all the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/propidx.html'><em>
  properties specified in CSS2</em></a>. Getting an attribute of this
  interface is equivalent to calling the
  <code>getPropertyValue</code> method of the <a class='noxref'
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>
  interface. Setting an attribute of this interface is equivalent to
  calling the <code>setProperty</code> method of the <a
  class='noxref'
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>
  interface.</p>
  
  <p>A conformant implementation of the CSS module is not required to
  implement the <code>CSS2Properties</code> interface. If an
  implementation does implement this interface, the expectation is
  that language-specific methods can be used to cast from an instance
  of the <a
  href='css.html#CSS-CSSStyleDeclaration'><code>CSSStyleDeclaration</code></a>
  interface to the <code>CSS2Properties</code> interface.</p>
  
  <p>If an implementation does implement this interface, it is
  expected to understand the specific syntax of the shorthand
  properties, and apply their semantics; when the <code>margin</code>
  property is set, for example, the <code>marginTop</code>,
  <code>marginRight</code>, <code>marginBottom</code> and
  <code>marginLeft</code> properties are actually being set by the
  underlying implementation.</p>
  
  <p>When dealing with CSS "shorthand" properties, the shorthand
  properties should be decomposed into their component longhand
  properties as appropriate, and when querying for their value, the
  form returned should be the shortest form exactly equivalent to the
  declarations made in the ruleset. However, if there is no shorthand
  declaration that could be added to the ruleset without changing in
  any way the rules already declared in the ruleset (i.e., by adding
  longhand rules that were previously not declared in the ruleset),
  then the empty string should be returned for the shorthand
  property.</p>
  
  <p>For example, querying for the <code>font</code> property should
  not return "normal normal normal 14pt/normal Arial, sans-serif",
  when "14pt Arial, sans-serif" suffices. (The normals are initial
  values, and are implied by use of the longhand property.)</p>
  
  <p>If the values for all the longhand properties that compose a
  particular string are the initial values, then a string consisting
  of all the initial values should be returned (e.g. a
  <code>border-width</code> value of "medium" should be returned as
  such, not as "").</p>
  
  <p>For some shorthand properties that take missing values from
  other sides, such as the <code>margin</code>, <code>padding</code>,
  and <code>border-[width|style|color]</code> properties, the minimum
  number of sides possible should be used; i.e., "0px 10px" will be
  returned instead of "0px 10px 0px 10px".</p>
  
  <p>If the value of a shorthand property can not be decomposed into
  its component longhand properties, as is the case for the
  <code>font</code> property with a value of "menu", querying for the
  values of the component longhand properties should return the empty
  string.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface CSS2Properties {
             attribute DOMString        azimuth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        background;
                                          // raises(DOMException) on setting
  
             attribute DOMString        backgroundAttachment;
                                          // raises(DOMException) on setting
  
             attribute DOMString        backgroundColor;
                                          // raises(DOMException) on setting
  
             attribute DOMString        backgroundImage;
                                          // raises(DOMException) on setting
  
             attribute DOMString        backgroundPosition;
                                          // raises(DOMException) on setting
  
             attribute DOMString        backgroundRepeat;
                                          // raises(DOMException) on setting
  
             attribute DOMString        border;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderCollapse;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderColor;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderSpacing;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderStyle;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderTop;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderRight;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderBottom;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderLeft;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderTopColor;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderRightColor;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderBottomColor;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderLeftColor;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderTopStyle;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderRightStyle;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderBottomStyle;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderLeftStyle;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderTopWidth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderRightWidth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderBottomWidth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderLeftWidth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        borderWidth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        bottom;
                                          // raises(DOMException) on setting
  
             attribute DOMString        captionSide;
                                          // raises(DOMException) on setting
  
             attribute DOMString        clear;
                                          // raises(DOMException) on setting
  
             attribute DOMString        clip;
                                          // raises(DOMException) on setting
  
             attribute DOMString        color;
                                          // raises(DOMException) on setting
  
             attribute DOMString        content;
                                          // raises(DOMException) on setting
  
             attribute DOMString        counterIncrement;
                                          // raises(DOMException) on setting
  
             attribute DOMString        counterReset;
                                          // raises(DOMException) on setting
  
             attribute DOMString        cue;
                                          // raises(DOMException) on setting
  
             attribute DOMString        cueAfter;
                                          // raises(DOMException) on setting
  
             attribute DOMString        cueBefore;
                                          // raises(DOMException) on setting
  
             attribute DOMString        cursor;
                                          // raises(DOMException) on setting
  
             attribute DOMString        direction;
                                          // raises(DOMException) on setting
  
             attribute DOMString        display;
                                          // raises(DOMException) on setting
  
             attribute DOMString        elevation;
                                          // raises(DOMException) on setting
  
             attribute DOMString        emptyCells;
                                          // raises(DOMException) on setting
  
             attribute DOMString        cssFloat;
                                          // raises(DOMException) on setting
  
             attribute DOMString        font;
                                          // raises(DOMException) on setting
  
             attribute DOMString        fontFamily;
                                          // raises(DOMException) on setting
  
             attribute DOMString        fontSize;
                                          // raises(DOMException) on setting
  
             attribute DOMString        fontSizeAdjust;
                                          // raises(DOMException) on setting
  
             attribute DOMString        fontStretch;
                                          // raises(DOMException) on setting
  
             attribute DOMString        fontStyle;
                                          // raises(DOMException) on setting
  
             attribute DOMString        fontVariant;
                                          // raises(DOMException) on setting
  
             attribute DOMString        fontWeight;
                                          // raises(DOMException) on setting
  
             attribute DOMString        height;
                                          // raises(DOMException) on setting
  
             attribute DOMString        left;
                                          // raises(DOMException) on setting
  
             attribute DOMString        letterSpacing;
                                          // raises(DOMException) on setting
  
             attribute DOMString        lineHeight;
                                          // raises(DOMException) on setting
  
             attribute DOMString        listStyle;
                                          // raises(DOMException) on setting
  
             attribute DOMString        listStyleImage;
                                          // raises(DOMException) on setting
  
             attribute DOMString        listStylePosition;
                                          // raises(DOMException) on setting
  
             attribute DOMString        listStyleType;
                                          // raises(DOMException) on setting
  
             attribute DOMString        margin;
                                          // raises(DOMException) on setting
  
             attribute DOMString        marginTop;
                                          // raises(DOMException) on setting
  
             attribute DOMString        marginRight;
                                          // raises(DOMException) on setting
  
             attribute DOMString        marginBottom;
                                          // raises(DOMException) on setting
  
             attribute DOMString        marginLeft;
                                          // raises(DOMException) on setting
  
             attribute DOMString        markerOffset;
                                          // raises(DOMException) on setting
  
             attribute DOMString        marks;
                                          // raises(DOMException) on setting
  
             attribute DOMString        maxHeight;
                                          // raises(DOMException) on setting
  
             attribute DOMString        maxWidth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        minHeight;
                                          // raises(DOMException) on setting
  
             attribute DOMString        minWidth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        orphans;
                                          // raises(DOMException) on setting
  
             attribute DOMString        outline;
                                          // raises(DOMException) on setting
  
             attribute DOMString        outlineColor;
                                          // raises(DOMException) on setting
  
             attribute DOMString        outlineStyle;
                                          // raises(DOMException) on setting
  
             attribute DOMString        outlineWidth;
                                          // raises(DOMException) on setting
  
             attribute DOMString        overflow;
                                          // raises(DOMException) on setting
  
             attribute DOMString        padding;
                                          // raises(DOMException) on setting
  
             attribute DOMString        paddingTop;
                                          // raises(DOMException) on setting
  
             attribute DOMString        paddingRight;
                                          // raises(DOMException) on setting
  
             attribute DOMString        paddingBottom;
                                          // raises(DOMException) on setting
  
             attribute DOMString        paddingLeft;
                                          // raises(DOMException) on setting
  
             attribute DOMString        page;
                                          // raises(DOMException) on setting
  
             attribute DOMString        pageBreakAfter;
                                          // raises(DOMException) on setting
  
             attribute DOMString        pageBreakBefore;
                                          // raises(DOMException) on setting
  
             attribute DOMString        pageBreakInside;
                                          // raises(DOMException) on setting
  
             attribute DOMString        pause;
                                          // raises(DOMException) on setting
  
             attribute DOMString        pauseAfter;
                                          // raises(DOMException) on setting
  
             attribute DOMString        pauseBefore;
                                          // raises(DOMException) on setting
  
             attribute DOMString        pitch;
                                          // raises(DOMException) on setting
  
             attribute DOMString        pitchRange;
                                          // raises(DOMException) on setting
  
             attribute DOMString        playDuring;
                                          // raises(DOMException) on setting
  
             attribute DOMString        position;
                                          // raises(DOMException) on setting
  
             attribute DOMString        quotes;
                                          // raises(DOMException) on setting
  
             attribute DOMString        richness;
                                          // raises(DOMException) on setting
  
             attribute DOMString        right;
                                          // raises(DOMException) on setting
  
             attribute DOMString        size;
                                          // raises(DOMException) on setting
  
             attribute DOMString        speak;
                                          // raises(DOMException) on setting
  
             attribute DOMString        speakHeader;
                                          // raises(DOMException) on setting
  
             attribute DOMString        speakNumeral;
                                          // raises(DOMException) on setting
  
             attribute DOMString        speakPunctuation;
                                          // raises(DOMException) on setting
  
             attribute DOMString        speechRate;
                                          // raises(DOMException) on setting
  
             attribute DOMString        stress;
                                          // raises(DOMException) on setting
  
             attribute DOMString        tableLayout;
                                          // raises(DOMException) on setting
  
             attribute DOMString        textAlign;
                                          // raises(DOMException) on setting
  
             attribute DOMString        textDecoration;
                                          // raises(DOMException) on setting
  
             attribute DOMString        textIndent;
                                          // raises(DOMException) on setting
  
             attribute DOMString        textShadow;
                                          // raises(DOMException) on setting
  
             attribute DOMString        textTransform;
                                          // raises(DOMException) on setting
  
             attribute DOMString        top;
                                          // raises(DOMException) on setting
  
             attribute DOMString        unicodeBidi;
                                          // raises(DOMException) on setting
  
             attribute DOMString        verticalAlign;
                                          // raises(DOMException) on setting
  
             attribute DOMString        visibility;
                                          // raises(DOMException) on setting
  
             attribute DOMString        voiceFamily;
                                          // raises(DOMException) on setting
  
             attribute DOMString        volume;
                                          // raises(DOMException) on setting
  
             attribute DOMString        whiteSpace;
                                          // raises(DOMException) on setting
  
             attribute DOMString        widows;
                                          // raises(DOMException) on setting
  
             attribute DOMString        width;
                                          // raises(DOMException) on setting
  
             attribute DOMString        wordSpacing;
                                          // raises(DOMException) on setting
  
             attribute DOMString        zIndex;
                                          // raises(DOMException) on setting
  
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-azimuth"
  name='CSS-CSS2Properties-azimuth'>azimuth</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-azimuth'>
  <em>azimuth property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-background"
  name='CSS-CSS2Properties-background'>background</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/colors.html#propdef-background'>
  <em>background property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-backgroundAttachment"
  name='CSS-CSS2Properties-backgroundAttachment'>backgroundAttachment</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/colors.html#propdef-background-attachment'>
  <em>background-attachment property definition</em></a> in
  CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-backgroundColor"
  name='CSS-CSS2Properties-backgroundColor'>backgroundColor</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/colors.html#propdef-background-color'>
  <em>background-color property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-backgroundImage"
  name='CSS-CSS2Properties-backgroundImage'>backgroundImage</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/colors.html#propdef-background-image'>
  <em>background-image property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-backgroundPosition"
  name='CSS-CSS2Properties-backgroundPosition'>backgroundPosition</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/colors.html#propdef-background-position'>
  <em>background-position property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-backgroundRepeat"
  name='CSS-CSS2Properties-backgroundRepeat'>backgroundRepeat</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/colors.html#propdef-background-repeat'>
  <em>background-repeat property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-border"
  name='CSS-CSS2Properties-border'>border</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border'>
  <em>border property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderBottom"
  name='CSS-CSS2Properties-borderBottom'>borderBottom</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-bottom'>
  <em>border-bottom property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderBottomColor"
  name='CSS-CSS2Properties-borderBottomColor'>borderBottomColor</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-bottom-color'>
  <em>border-bottom-color property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderBottomStyle"
  name='CSS-CSS2Properties-borderBottomStyle'>borderBottomStyle</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-bottom-style'>
  <em>border-bottom-style property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderBottomWidth"
  name='CSS-CSS2Properties-borderBottomWidth'>borderBottomWidth</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-bottom-width'>
  <em>border-bottom-width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderCollapse"
  name='CSS-CSS2Properties-borderCollapse'>borderCollapse</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/tables.html#propdef-border-collapse'>
  <em>border-collapse property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderColor"
  name='CSS-CSS2Properties-borderColor'>borderColor</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-color'>
  <em>border-color property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderLeft"
  name='CSS-CSS2Properties-borderLeft'>borderLeft</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-left'>
  <em>border-left property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderLeftColor"
  name='CSS-CSS2Properties-borderLeftColor'>borderLeftColor</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-left-color'>
  <em>border-left-color property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderLeftStyle"
  name='CSS-CSS2Properties-borderLeftStyle'>borderLeftStyle</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-left-style'>
  <em>border-left-style property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderLeftWidth"
  name='CSS-CSS2Properties-borderLeftWidth'>borderLeftWidth</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-left-width'>
  <em>border-left-width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderRight"
  name='CSS-CSS2Properties-borderRight'>borderRight</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-right'>
  <em>border-right property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderRightColor"
  name='CSS-CSS2Properties-borderRightColor'>borderRightColor</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-right-color'>
  <em>border-right-color property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderRightStyle"
  name='CSS-CSS2Properties-borderRightStyle'>borderRightStyle</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-right-style'>
  <em>border-right-style property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderRightWidth"
  name='CSS-CSS2Properties-borderRightWidth'>borderRightWidth</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-right-width'>
  <em>border-right-width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderSpacing"
  name='CSS-CSS2Properties-borderSpacing'>borderSpacing</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/tables.html#propdef-border-spacing'>
  <em>border-spacing property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderStyle"
  name='CSS-CSS2Properties-borderStyle'>borderStyle</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-style'>
  <em>border-style property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderTop"
  name='CSS-CSS2Properties-borderTop'>borderTop</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-top'>
  <em>border-top property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderTopColor"
  name='CSS-CSS2Properties-borderTopColor'>borderTopColor</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-top-color'>
  <em>border-top-color property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderTopStyle"
  name='CSS-CSS2Properties-borderTopStyle'>borderTopStyle</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-top-style'>
  <em>border-top-style property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderTopWidth"
  name='CSS-CSS2Properties-borderTopWidth'>borderTopWidth</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-top-width'>
  <em>border-top-width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-borderWidth"
  name='CSS-CSS2Properties-borderWidth'>borderWidth</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-border-width'>
  <em>border-width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-bottom"
  name='CSS-CSS2Properties-bottom'>bottom</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-bottom'>
  <em>bottom property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-captionSide"
  name='CSS-CSS2Properties-captionSide'>captionSide</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/tables.html#propdef-caption-side'>
  <em>caption-side property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-clear"
  name='CSS-CSS2Properties-clear'>clear</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-clear'>
  <em>clear property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-clip"
  name='CSS-CSS2Properties-clip'>clip</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visufx#propdef-clip'>
  <em>clip property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-color"
  name='CSS-CSS2Properties-color'>color</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/colors.html#propdef-color'>
  <em>color property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-content"
  name='CSS-CSS2Properties-content'>content</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-content'>
  <em>content property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-counterIncrement"
  name='CSS-CSS2Properties-counterIncrement'>counterIncrement</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-counter-increment'>
  <em>counter-increment property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-counterReset"
  name='CSS-CSS2Properties-counterReset'>counterReset</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-counter-reset'>
  <em>counter-reset property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-cssFloat"
  name='CSS-CSS2Properties-cssFloat'>cssFloat</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-float'>
  <em>float property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-cue"
  name='CSS-CSS2Properties-cue'>cue</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-cue'>
  <em>cue property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-cueAfter"
  name='CSS-CSS2Properties-cueAfter'>cueAfter</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-cue-after'>
  <em>cue-after property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-cueBefore"
  name='CSS-CSS2Properties-cueBefore'>cueBefore</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-cue-before'>
  <em>cue-before property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-cursor"
  name='CSS-CSS2Properties-cursor'>cursor</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/ui.html#propdef-cursor'>
  <em>cursor property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-direction"
  name='CSS-CSS2Properties-direction'>direction</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-direction'>
  <em>direction property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-display"
  name='CSS-CSS2Properties-display'>display</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-display'>
  <em>display property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-elevation"
  name='CSS-CSS2Properties-elevation'>elevation</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-elevation'>
  <em>elevation property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-emptyCells"
  name='CSS-CSS2Properties-emptyCells'>emptyCells</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/tables.html#propdef-empty-cells'>
  <em>empty-cells property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-font"
  name='CSS-CSS2Properties-font'>font</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font'>
  <em>font property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-fontFamily"
  name='CSS-CSS2Properties-fontFamily'>fontFamily</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font-family'>
  <em>font-family property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-fontSize"
  name='CSS-CSS2Properties-fontSize'>fontSize</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font-size'>
  <em>font-size property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-fontSizeAdjust"
  name='CSS-CSS2Properties-fontSizeAdjust'>fontSizeAdjust</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font-size-adjust'>
  <em>font-size-adjust property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-fontStretch"
  name='CSS-CSS2Properties-fontStretch'>fontStretch</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font-stretch'>
  <em>font-stretch property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-fontStyle"
  name='CSS-CSS2Properties-fontStyle'>fontStyle</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font-style'>
  <em>font-style property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-fontVariant"
  name='CSS-CSS2Properties-fontVariant'>fontVariant</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font-variant'>
  <em>font-variant property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-fontWeight"
  name='CSS-CSS2Properties-fontWeight'>fontWeight</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/fonts.html#propdef-font-weight'>
  <em>font-weight property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-height"
  name='CSS-CSS2Properties-height'>height</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visudet.html#propdef-height'>
  <em>height property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-left"
  name='CSS-CSS2Properties-left'>left</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-left'>
  <em>left property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-letterSpacing"
  name='CSS-CSS2Properties-letterSpacing'>letterSpacing</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/text.html#propdef-letter-spacing'>
  <em>letter-spacing property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-lineHeight"
  name='CSS-CSS2Properties-lineHeight'>lineHeight</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visudet.html#propdef-line-height'>
  <em>line-height property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-listStyle"
  name='CSS-CSS2Properties-listStyle'>listStyle</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-list-style'>
  <em>list-style property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-listStyleImage"
  name='CSS-CSS2Properties-listStyleImage'>listStyleImage</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-list-style-image'>
  <em>list-style-image property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-listStylePosition"
  name='CSS-CSS2Properties-listStylePosition'>listStylePosition</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-list-style-position'>
  <em>list-style-position property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-listStyleType"
  name='CSS-CSS2Properties-listStyleType'>listStyleType</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-list-style-type'>
  <em>list-style-type property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-margin"
  name='CSS-CSS2Properties-margin'>margin</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-margin'>
  <em>margin property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-marginBottom"
  name='CSS-CSS2Properties-marginBottom'>marginBottom</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-margin-bottom'>
  <em>margin-bottom property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-marginLeft"
  name='CSS-CSS2Properties-marginLeft'>marginLeft</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-margin-left'>
  <em>margin-left property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-marginRight"
  name='CSS-CSS2Properties-marginRight'>marginRight</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-margin-right'>
  <em>margin-right property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-marginTop"
  name='CSS-CSS2Properties-marginTop'>marginTop</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-margin-top'>
  <em>margin-top property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-markerOffset"
  name='CSS-CSS2Properties-markerOffset'>markerOffset</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-marker-offset'>
  <em>marker-offset property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-marks"
  name='CSS-CSS2Properties-marks'>marks</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#propdef-marks'>
  <em>marks property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-maxHeight"
  name='CSS-CSS2Properties-maxHeight'>maxHeight</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visudet.html#propdef-max-height'>
  <em>max-height property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-maxWidth"
  name='CSS-CSS2Properties-maxWidth'>maxWidth</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visudet.html#propdef-max-width'>
  <em>max-width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-minHeight"
  name='CSS-CSS2Properties-minHeight'>minHeight</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visudet.html#propdef-min-height'>
  <em>min-height property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-minWidth"
  name='CSS-CSS2Properties-minWidth'>minWidth</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visudet.html#propdef-min-width'>
  <em>min-width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-orphans"
  name='CSS-CSS2Properties-orphans'>orphans</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#propdef-orphans'>
  <em>orphans property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-outline"
  name='CSS-CSS2Properties-outline'>outline</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/ui.html#propdef-outline'>
  <em>outline property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-outlineColor"
  name='CSS-CSS2Properties-outlineColor'>outlineColor</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/ui.html#propdef-outline-color'>
  <em>outline-color property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-outlineStyle"
  name='CSS-CSS2Properties-outlineStyle'>outlineStyle</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/ui.html#propdef-outline-style'>
  <em>outline-style property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-outlineWidth"
  name='CSS-CSS2Properties-outlineWidth'>outlineWidth</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/ui.html#propdef-outline-width'>
  <em>outline-width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-overflow"
  name='CSS-CSS2Properties-overflow'>overflow</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visufx.html#propdef-overflow'>
  <em>overflow property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-padding"
  name='CSS-CSS2Properties-padding'>padding</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-padding'>
  <em>padding property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-paddingBottom"
  name='CSS-CSS2Properties-paddingBottom'>paddingBottom</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-padding-bottom'>
  <em>padding-bottom property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-paddingLeft"
  name='CSS-CSS2Properties-paddingLeft'>paddingLeft</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-padding-left'>
  <em>padding-left property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-paddingRight"
  name='CSS-CSS2Properties-paddingRight'>paddingRight</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-padding-right'>
  <em>padding-right property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-paddingTop"
  name='CSS-CSS2Properties-paddingTop'>paddingTop</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/box.html#propdef-padding-top'>
  <em>padding-top property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-page"
  name='CSS-CSS2Properties-page'>page</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#propdef-page'>
  <em>page property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-pageBreakAfter"
  name='CSS-CSS2Properties-pageBreakAfter'>pageBreakAfter</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#propdef-page-break-after'>
  <em>page-break-after property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-pageBreakBefore"
  name='CSS-CSS2Properties-pageBreakBefore'>pageBreakBefore</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#propdef-page-break-before'>
  <em>page-break-before property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-pageBreakInside"
  name='CSS-CSS2Properties-pageBreakInside'>pageBreakInside</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#propdef-page-break-inside'>
  <em>page-break-inside property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-pause"
  name='CSS-CSS2Properties-pause'>pause</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-pause'>
  <em>pause property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-pauseAfter"
  name='CSS-CSS2Properties-pauseAfter'>pauseAfter</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-pause-after'>
  <em>pause-after property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-pauseBefore"
  name='CSS-CSS2Properties-pauseBefore'>pauseBefore</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-pause-before'>
  <em>pause-before property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-pitch"
  name='CSS-CSS2Properties-pitch'>pitch</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-pitch'>
  <em>pitch property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-pitchRange"
  name='CSS-CSS2Properties-pitchRange'>pitchRange</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-pitch-range'>
  <em>pitch-range property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-playDuring"
  name='CSS-CSS2Properties-playDuring'>playDuring</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-play-during'>
  <em>play-during property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-position"
  name='CSS-CSS2Properties-position'>position</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-position'>
  <em>position property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-quotes"
  name='CSS-CSS2Properties-quotes'>quotes</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/generate.html#propdef-quotes'>
  <em>quotes property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-richness"
  name='CSS-CSS2Properties-richness'>richness</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-richness'>
  <em>richness property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-right"
  name='CSS-CSS2Properties-right'>right</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-right'>
  <em>right property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-size"
  name='CSS-CSS2Properties-size'>size</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#propdef-size'>
  <em>size property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-speak"
  name='CSS-CSS2Properties-speak'>speak</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-speak'>
  <em>speak property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-speakHeader"
  name='CSS-CSS2Properties-speakHeader'>speakHeader</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/tables.html#propdef-speak-header'>
  <em>speak-header property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-speakNumeral"
  name='CSS-CSS2Properties-speakNumeral'>speakNumeral</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-speak-numeral'>
  <em>speak-numeral property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-speakPunctuation"
  name='CSS-CSS2Properties-speakPunctuation'>speakPunctuation</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-speak-punctuation'>
  <em>speak-punctuation property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-speechRate"
  name='CSS-CSS2Properties-speechRate'>speechRate</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-speech-rate'>
  <em>speech-rate property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-stress"
  name='CSS-CSS2Properties-stress'>stress</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-stress'>
  <em>stress property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-tableLayout"
  name='CSS-CSS2Properties-tableLayout'>tableLayout</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/tables.html#propdef-table-layout'>
  <em>table-layout property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-textAlign"
  name='CSS-CSS2Properties-textAlign'>textAlign</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/text.html#propdef-text-align'>
  <em>text-align property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-textDecoration"
  name='CSS-CSS2Properties-textDecoration'>textDecoration</a></code>
  of type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/text.html#propdef-text-decoration'>
  <em>text-decoration property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-textIndent"
  name='CSS-CSS2Properties-textIndent'>textIndent</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/text.html#propdef-text-indent'>
  <em>text-indent property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-textShadow"
  name='CSS-CSS2Properties-textShadow'>textShadow</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/text.html#propdef-text-shadow'>
  <em>text-shadow property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-textTransform"
  name='CSS-CSS2Properties-textTransform'>textTransform</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/text.html#propdef-text-transform'>
  <em>text-transform property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-top"
  name='CSS-CSS2Properties-top'>top</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-top'>
  <em>top property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-unicodeBidi"
  name='CSS-CSS2Properties-unicodeBidi'>unicodeBidi</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-unicode-bidi'>
  <em>unicode-bidi property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-verticalAlign"
  name='CSS-CSS2Properties-verticalAlign'>verticalAlign</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visudet.html#propdef-vertical-align'>
  <em>vertical-align property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-visibility"
  name='CSS-CSS2Properties-visibility'>visibility</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visufx.html#propdef-visibility'>
  <em>visibility property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-voiceFamily"
  name='CSS-CSS2Properties-voiceFamily'>voiceFamily</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-voice-family'>
  <em>voice-family property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-volume"
  name='CSS-CSS2Properties-volume'>volume</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/aural.html#propdef-volume'>
  <em>volume property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-whiteSpace"
  name='CSS-CSS2Properties-whiteSpace'>whiteSpace</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/text.html#propdef-white-space'>
  <em>white-space property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-widows"
  name='CSS-CSS2Properties-widows'>widows</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#propdef-widows'>
  <em>widows property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-width"
  name='CSS-CSS2Properties-width'>width</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visudet.html#propdef-width'>
  <em>width property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="CSS-CSS2Properties-wordSpacing"
  name='CSS-CSS2Properties-wordSpacing'>wordSpacing</a></code> of
  type <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/text.html#propdef-word-spacing'>
  <em>word-spacing property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a id="CSS-CSS2Properties-zIndex"
  name='CSS-CSS2Properties-zIndex'>zIndex</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>See the <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512/visuren.html#propdef-z-index'>
  <em>z-index property definition</em></a> in CSS2.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the new value has a syntax error and is
  unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 CSS-extended --></div>
  
  <!-- div1 CSS -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='stylesheets.html'>previous</a> &nbsp; <a
  accesskey='n' href='idl-definitions.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/def-index.html
  
  Index: def-index.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:34 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Index</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='previous' href='references.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='references.html'>previous</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Index" name='Index'></a> 
  
  <h1 id='role-index' class='index'>Index</h1>
  
  <table
  summary='the table contains all keywords used in this document'>
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-MediaList-appendMedium'>appendMedium</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-azimuth'>azimuth</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-background'>background</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-backgroundAttachment'>backgroundAttachment</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-backgroundColor'>backgroundColor</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-backgroundImage'>backgroundImage</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-backgroundPosition'>backgroundPosition</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-backgroundRepeat'>backgroundRepeat</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-RGBColor-blue'>blue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-border'>border</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderBottom'>borderBottom</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderBottomColor'>borderBottomColor</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderBottomStyle'>borderBottomStyle</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderBottomWidth'>borderBottomWidth</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderCollapse'>borderCollapse</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderColor'>borderColor</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderLeft'>borderLeft</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderLeftColor'>borderLeftColor</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderLeftStyle'>borderLeftStyle</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderLeftWidth'>borderLeftWidth</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderRight'>borderRight</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderRightColor'>borderRightColor</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderRightStyle'>borderRightStyle</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderRightWidth'>borderRightWidth</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderSpacing'>borderSpacing</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderStyle'>borderStyle</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderTop'>borderTop</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderTopColor'>borderTopColor</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderTopStyle'>borderTopStyle</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderTopWidth'>borderTopWidth</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-borderWidth'>borderWidth</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Rect-bottom'>bottom</a> <a class='index-inst'
  href='css.html#CSS-Rect-bottom'>1</a>, <a class='index-inst'
  href='css.html#CSS-CSS2Properties-bottom'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-captionSide'>captionSide</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-ruleType'>CHARSET_RULE</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-clear'>clear</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-clip'>clip</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-color'>color</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-content'>content</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Counter'>Counter</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-counterIncrement'>counterIncrement</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-counterReset'>counterReset</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-DOMImplementationCSS-createCSSStyleSheet'>createCSSStyleSheet</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-overview'>CSS2</a> <a class='index-inst'
  href='css.html#CSS-overview'>1</a>, <a class='index-inst'
  href='css.html#CSS-CSSview-getComputedStyle'>2</a>, <a
  class='index-inst' href='references.html#CSS2'>3</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties'>CSS2Properties</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_ATTR</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_CM</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_COUNTER</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSValue-types'>CSS_CUSTOM</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_DEG</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_DIMENSION</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_EMS</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_EXS</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_GRAD</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_HZ</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_IDENT</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_IN</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSValue-types'>CSS_INHERIT</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_KHZ</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_MM</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_MS</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_NUMBER</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_PC</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_PERCENTAGE</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSValue-types'>CSS_PRIMITIVE_VALUE</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_PT</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_PX</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_RAD</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_RECT</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_RGBCOLOR</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_S</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_STRING</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_UNKNOWN</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-types'>CSS_URI</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSValue-types'>CSS_VALUE_LIST</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSCharsetRule'>CSSCharsetRule</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-cssFloat'>cssFloat</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSFontFaceRule'>CSSFontFaceRule</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSImportRule'>CSSImportRule</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSMediaRule'>CSSMediaRule</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPageRule'>CSSPageRule</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue'>CSSPrimitiveValue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule'>CSSRule</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRuleList'>CSSRuleList</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleSheet-cssRules'>cssRules</a> <a
  class='index-inst'
  href='css.html#CSS-CSSStyleSheet-cssRules'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSMediaRule-cssRules'>2</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleDeclaration'>CSSStyleDeclaration</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleRule'>CSSStyleRule</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleSheet'>CSSStyleSheet</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-cssText'>cssText</a> <a
  class='index-inst' href='css.html#CSS-CSSRule-cssText'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSStyleDeclaration-cssText'>2</a>, <a
  class='index-inst' href='css.html#CSS-CSSValue-cssText'>3</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSUnknownRule'>CSSUnknownRule</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSValue'>CSSValue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSValueList'>CSSValueList</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSValue-cssValueType'>cssValueType</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-cue'>cue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-cueAfter'>cueAfter</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-cueBefore'>cueBefore</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-cursor'>cursor</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-MediaList-deleteMedium'>deleteMedium</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleSheet-deleteRule'>deleteRule</a> <a
  class='index-inst'
  href='css.html#CSS-CSSStyleSheet-deleteRule'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSMediaRule-deleteRule'>2</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-direction'>direction</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet-disabled'>disabled</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-display'>display</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-DocumentCSS'>DocumentCSS</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet-DocumentStyle'>DocumentStyle</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-overview'>DOM Level 2 Core</a>
  <a class='index-inst'
  href='stylesheets.html#StyleSheets-overview'>1</a>, <a
  class='index-inst' href='css.html#CSS-fundamental'>2</a>, <a
  class='index-inst' href='css.html#CSS-extended'>3</a>, <a
  class='index-inst' href='references.html#DOMCore'>4</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-Association'>DOM Level 2
  HTML</a> <a class='index-inst'
  href='stylesheets.html#StyleSheets-Association'>1</a>, <a
  class='index-inst' href='references.html#DOMHTML-inf'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-fundamental'>DOM Level 2 Views</a> <a
  class='index-inst' href='css.html#CSS-fundamental'>1</a>, <a
  class='index-inst' href='references.html#DOMViews'>2</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-DOMImplementationCSS'>DOMImplementationCSS</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-ElementCSSInlineStyle'>ElementCSSInlineStyle</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-elevation'>elevation</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-emptyCells'>emptyCells</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSCharsetRule-encoding'>encoding</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-font'>font</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-ruleType'>FONT_FACE_RULE</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-fontFamily'>fontFamily</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-fontSize'>fontSize</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-fontSizeAdjust'>fontSizeAdjust</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-fontStretch'>fontStretch</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-fontStyle'>fontStyle</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-fontVariant'>fontVariant</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-fontWeight'>fontWeight</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSview-getComputedStyle'>getComputedStyle</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-getCounterValue'>getCounterValue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-getFloatValue'>getFloatValue</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-DocumentCSS-getOverrideStyle'>getOverrideStyle</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleDeclaration-getPropertyCSSValue'>getPropertyCSSValue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleDeclaration-getPropertyPriority'>getPropertyPriority</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleDeclaration-getPropertyValue'>getPropertyValue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-getRectValue'>getRectValue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-getRGBColorValue'>getRGBColorValue</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-getStringValue'>getStringValue</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-RGBColor-green'>green</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-height'>height</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet-href'>href</a> <a
  class='index-inst'
  href='stylesheets.html#StyleSheets-StyleSheet-href'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSImportRule-href'>2</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-Association'>HTML4.0</a> <a
  class='index-inst'
  href='stylesheets.html#StyleSheets-Association'>1</a>, <a
  class='index-inst' href='references.html#HTML40'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Counter-identifier'>identifier</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-ruleType'>IMPORT_RULE</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleSheet-insertRule'>insertRule</a> <a
  class='index-inst'
  href='css.html#CSS-CSSStyleSheet-insertRule'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSMediaRule-insertRule'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheetList-item'>item</a> <a
  class='index-inst'
  href='stylesheets.html#StyleSheets-StyleSheetList-item'>1</a>, <a
  class='index-inst'
  href='stylesheets.html#StyleSheets-MediaList-item'>2</a>, <a
  class='index-inst' href='css.html#CSS-CSSRuleList-item'>3</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSStyleDeclaration-item'>4</a>, <a
  class='index-inst' href='css.html#CSS-CSSValueList-item'>5</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#Java'>Java</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Rect-left'>left</a> <a class='index-inst'
  href='css.html#CSS-Rect-left'>1</a>, <a class='index-inst'
  href='css.html#CSS-CSS2Properties-left'>2</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheetList-length'>length</a>
  <a class='index-inst'
  href='stylesheets.html#StyleSheets-StyleSheetList-length'>1</a>, <a
  class='index-inst'
  href='stylesheets.html#StyleSheets-MediaList-length'>2</a>, <a
  class='index-inst' href='css.html#CSS-CSSRuleList-length'>3</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSStyleDeclaration-length'>4</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSValueList-length'>5</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-letterSpacing'>letterSpacing</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-lineHeight'>lineHeight</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-LinkStyle'>LinkStyle</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Counter-listStyle'>listStyle</a> <a
  class='index-inst' href='css.html#CSS-Counter-listStyle'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSS2Properties-listStyle'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-listStyleImage'>listStyleImage</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-listStylePosition'>listStylePosition</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-listStyleType'>listStyleType</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-margin'>margin</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-marginBottom'>marginBottom</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-marginLeft'>marginLeft</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-marginRight'>marginRight</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-marginTop'>marginTop</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-markerOffset'>markerOffset</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-marks'>marks</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-maxHeight'>maxHeight</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-maxWidth'>maxWidth</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet-media'>media</a> <a
  class='index-inst'
  href='stylesheets.html#StyleSheets-StyleSheet-media'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSMediaRule-mediaTypes'>2</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSImportRule-media'>3</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-ruleType'>MEDIA_RULE</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-MediaList'>MediaList</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-MediaList-mediaText'>mediaText</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-minHeight'>minHeight</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-minWidth'>minWidth</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-orphans'>orphans</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-outline'>outline</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-outlineColor'>outlineColor</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-outlineStyle'>outlineStyle</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-outlineWidth'>outlineWidth</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-overflow'>overflow</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet-ownerNode'>ownerNode</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleSheet-ownerRule'>ownerRule</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-padding'>padding</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-paddingBottom'>paddingBottom</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-paddingLeft'>paddingLeft</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-paddingRight'>paddingRight</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-paddingTop'>paddingTop</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-page'>page</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-ruleType'>PAGE_RULE</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-pageBreakAfter'>pageBreakAfter</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-pageBreakBefore'>pageBreakBefore</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-pageBreakInside'>pageBreakInside</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-parentRule'>parentRule</a> <a
  class='index-inst' href='css.html#CSS-CSSRule-parentRule'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSStyleDeclaration-parentRule'>2</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet-parentStyleSheet'>parentStyleSheet</a>
  <a class='index-inst'
  href='stylesheets.html#StyleSheets-StyleSheet-parentStyleSheet'>1</a>,
  <a class='index-inst' href='css.html#CSS-CSSRule-sheet'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-pause'>pause</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-pauseAfter'>pauseAfter</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-pauseBefore'>pauseBefore</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-pitch'>pitch</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-pitchRange'>pitchRange</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-playDuring'>playDuring</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-position'>position</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-primitiveType'>primitiveType</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-quotes'>quotes</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Rect'>Rect</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-RGBColor-red'>red</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleDeclaration-removeProperty'>removeProperty</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-RGBColor'>RGBColor</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-richness'>richness</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Rect-right'>right</a> <a class='index-inst'
  href='css.html#CSS-Rect-right'>1</a>, <a class='index-inst'
  href='css.html#CSS-CSS2Properties-right'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleRule-selectorText'>selectorText</a> <a
  class='index-inst'
  href='css.html#CSS-CSSStyleRule-selectorText'>1</a>, <a
  class='index-inst' href='css.html#CSS-CSSPageRule-name'>2</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Counter-separator'>separator</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-setFloatValue'>setFloatValue</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleDeclaration-setProperty'>setProperty</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSPrimitiveValue-setStringValue'>setStringValue</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-LinkStyle-sheet'>sheet</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-size'>size</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-speak'>speak</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-speakHeader'>speakHeader</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-speakNumeral'>speakNumeral</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-speakPunctuation'>speakPunctuation</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-speechRate'>speechRate</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-stress'>stress</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSStyleRule-style'>style</a> <a
  class='index-inst' href='css.html#CSS-CSSStyleRule-style'>1</a>, <a
  class='index-inst' href='css.html#CSS-CSSFontFaceRule-style'>2</a>,
  <a class='index-inst' href='css.html#CSS-CSSPageRule-style'>3</a>,
  <a class='index-inst'
  href='css.html#CSS-ElementCSSInlineStyle-style'>4</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-ruleType'>STYLE_RULE</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet'>StyleSheet</a> <a
  class='index-inst'
  href='stylesheets.html#StyleSheets-StyleSheet'>1</a>, <a
  class='index-inst'
  href='css.html#CSS-CSSImportRule-styleSheet'>2</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheetList'>StyleSheetList</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-DocumentStyle-styleSheets'>styleSheets</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-tableLayout'>tableLayout</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-textAlign'>textAlign</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-textDecoration'>textDecoration</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-textIndent'>textIndent</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-textShadow'>textShadow</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-textTransform'>textTransform</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet-title'>title</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-Rect-top'>top</a> <a class='index-inst'
  href='css.html#CSS-Rect-top'>1</a>, <a class='index-inst'
  href='css.html#CSS-CSS2Properties-top'>2</a></td>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-StyleSheet-type'>type</a> <a
  class='index-inst'
  href='stylesheets.html#StyleSheets-StyleSheet-type'>1</a>, <a
  class='index-inst' href='css.html#CSS-CSSRule-type'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-unicodeBidi'>unicodeBidi</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSSRule-ruleType'>UNKNOWN_RULE</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-verticalAlign'>verticalAlign</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-ViewCSS'>ViewCSS</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-visibility'>visibility</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-voiceFamily'>voiceFamily</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-volume'>volume</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-whiteSpace'>whiteSpace</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-widows'>widows</a></td>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-width'>width</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-wordSpacing'>wordSpacing</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='stylesheets.html#StyleSheets-DocumentStyle-styleSheets'>XML-StyleSheet</a>
  <a class='index-inst'
  href='stylesheets.html#StyleSheets-DocumentStyle-styleSheets'>1</a>,
  <a class='index-inst'
  href='stylesheets.html#StyleSheets-Association'>2</a>, <a
  class='index-inst' href='references.html#XML-StyleSheet'>3</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='css.html#CSS-CSS2Properties-zIndex'>zIndex</a></td>
  </tr>
  </table>
  </div>
  
  <!-- div1 Index -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='references.html'>previous</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/ecma-script-binding.html
  
  Index: ecma-script-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:32 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>ECMAScript Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='acknowledgements.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='java-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='java-binding.html'>previous</a> &nbsp; <a accesskey='n'
  href='acknowledgements.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="ecma-binding" name='ecma-binding'></a> 
  
  <h1 id='ecma-binding-h1' class='adiv1'>Appendix C: ECMAScript
  Language Binding</h1>
  
  <p>This appendix contains the complete ECMAScript [<a
  class='noxref' href='references.html#ECMAScript'>ECMAScript</a>]
  binding for the Level 2 Document Object Model Style definitions.
  The definitions are divided into <a
  href='#StyleSheets-ECMA'>StyleSheets</a> and <a
  href='#CSS-ECMA'>CSS</a>.</p>
  
  <p><b>Note:</b> Exceptions handling is only supported by ECMAScript
  implementation conformant with the Standard ECMA-262 3rd. Edition
  ([<a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a>]).</p>
  
  <div class='div2'><a id="StyleSheets-ECMA"
  name='StyleSheets-ECMA'></a> 
  
  <h2 id='StyleSheets-ECMA-h2' class='adiv2'>C.1: Document Object
  Model StyleSheets</h2>
  
  <div class='ecma-block'>
  <dl>
  <dt>Object <b>StyleSheet</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>StyleSheet</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>type</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>disabled</b></dt>
  
  <dd>This property is of type <b>Boolean</b>.</dd>
  
  <dt><b>ownerNode</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>parentStyleSheet</b></dt>
  
  <dd>This read-only property is a <b>StyleSheet</b> object.</dd>
  
  <dt><b>href</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>title</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>media</b></dt>
  
  <dd>This read-only property is a <b>MediaList</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>StyleSheetList</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>StyleSheetList</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>length</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>StyleSheetList</b> object has the following
  methods:</dt>
  
  <dd>
  <dl>
  <dt><b>item(index)</b></dt>
  
  <dd>This method returns a <b>StyleSheet</b> object.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  <b>Note:</b> This object can also be dereferenced using square
  bracket notation (e.g. obj[1]). Dereferencing with an integer
  <b>index</b> is equivalent to invoking the <b>item</b> method with
  that index.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>MediaList</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>MediaList</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>mediaText</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>length</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>MediaList</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>item(index)</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  <b>Note:</b> This object can also be dereferenced using square
  bracket notation (e.g. obj[1]). Dereferencing with an integer
  <b>index</b> is equivalent to invoking the <b>item</b> method with
  that index.</dd>
  
  <dt><b>deleteMedium(oldMedium)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>oldMedium</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>appendMedium(newMedium)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>newMedium</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>LinkStyle</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>LinkStyle</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>sheet</b></dt>
  
  <dd>This read-only property is a <b>StyleSheet</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DocumentStyle</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>DocumentStyle</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>styleSheets</b></dt>
  
  <dd>This read-only property is a <b>StyleSheetList</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- ecma-block -->
  </div>
  
  <!-- div2 StyleSheets-ECMA -->
  <div class='div2'><a id="CSS-ECMA" name='CSS-ECMA'></a> 
  
  <h2 id='CSS-ECMA-h2' class='adiv2'>C.2: Document Object Model
  CSS</h2>
  
  <div class='ecma-block'>
  <dl>
  <dt>Object <b>CSSStyleSheet</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSStyleSheet</b> has the all the properties and methods of
  the <b>StyleSheet</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSStyleSheet</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>ownerRule</b></dt>
  
  <dd>This read-only property is a <b>CSSRule</b> object.</dd>
  
  <dt><b>cssRules</b></dt>
  
  <dd>This read-only property is a <b>CSSRuleList</b> object.</dd>
  </dl>
  </dd>
  
  <dt>The <b>CSSStyleSheet</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>insertRule(rule, index)</b></dt>
  
  <dd>This method returns a <b>Number</b>.<br />
  The <b>rule</b> parameter is of type <b>String</b>.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>deleteRule(index)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSRuleList</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>CSSRuleList</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>length</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>CSSRuleList</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>item(index)</b></dt>
  
  <dd>This method returns a <b>CSSRule</b> object.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  <b>Note:</b> This object can also be dereferenced using square
  bracket notation (e.g. obj[1]). Dereferencing with an integer
  <b>index</b> is equivalent to invoking the <b>item</b> method with
  that index.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Prototype Object <b>CSSRule</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>CSSRule</b> class has the following constants:</dt>
  
  <dd>
  <dl>
  <dt><b>CSSRule.UNKNOWN_RULE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0</b>.</dd>
  
  <dt><b>CSSRule.STYLE_RULE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>CSSRule.CHARSET_RULE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>CSSRule.IMPORT_RULE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>3</b>.</dd>
  
  <dt><b>CSSRule.MEDIA_RULE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>4</b>.</dd>
  
  <dt><b>CSSRule.FONT_FACE_RULE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>5</b>.</dd>
  
  <dt><b>CSSRule.PAGE_RULE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>6</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSRule</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>CSSRule</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>type</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  
  <dt><b>cssText</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>parentStyleSheet</b></dt>
  
  <dd>This read-only property is a <b>CSSStyleSheet</b> object.</dd>
  
  <dt><b>parentRule</b></dt>
  
  <dd>This read-only property is a <b>CSSRule</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSStyleRule</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSStyleRule</b> has the all the properties and methods of
  the <b>CSSRule</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSStyleRule</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>selectorText</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>style</b></dt>
  
  <dd>This read-only property is a <b>CSSStyleDeclaration</b>
  object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSMediaRule</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSMediaRule</b> has the all the properties and methods of
  the <b>CSSRule</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSMediaRule</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>media</b></dt>
  
  <dd>This read-only property is a <b>MediaList</b> object.</dd>
  
  <dt><b>cssRules</b></dt>
  
  <dd>This read-only property is a <b>CSSRuleList</b> object.</dd>
  </dl>
  </dd>
  
  <dt>The <b>CSSMediaRule</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>insertRule(rule, index)</b></dt>
  
  <dd>This method returns a <b>Number</b>.<br />
  The <b>rule</b> parameter is of type <b>String</b>.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>deleteRule(index)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSFontFaceRule</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSFontFaceRule</b> has the all the properties and methods
  of the <b>CSSRule</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSFontFaceRule</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>style</b></dt>
  
  <dd>This read-only property is a <b>CSSStyleDeclaration</b>
  object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSPageRule</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSPageRule</b> has the all the properties and methods of
  the <b>CSSRule</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSPageRule</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>selectorText</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>style</b></dt>
  
  <dd>This read-only property is a <b>CSSStyleDeclaration</b>
  object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSImportRule</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSImportRule</b> has the all the properties and methods of
  the <b>CSSRule</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSImportRule</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>href</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>media</b></dt>
  
  <dd>This read-only property is a <b>MediaList</b> object.</dd>
  
  <dt><b>styleSheet</b></dt>
  
  <dd>This read-only property is a <b>CSSStyleSheet</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSCharsetRule</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSCharsetRule</b> has the all the properties and methods of
  the <b>CSSRule</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSCharsetRule</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>encoding</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSUnknownRule</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSUnknownRule</b> has the all the properties and methods of
  the <b>CSSRule</b> object as well as the properties and methods
  defined below.</dt>
  </dl>
  </dd>
  
  <dt>Object <b>CSSStyleDeclaration</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>CSSStyleDeclaration</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>cssText</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>length</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  
  <dt><b>parentRule</b></dt>
  
  <dd>This read-only property is a <b>CSSRule</b> object.</dd>
  </dl>
  </dd>
  
  <dt>The <b>CSSStyleDeclaration</b> object has the following
  methods:</dt>
  
  <dd>
  <dl>
  <dt><b>getPropertyValue(propertyName)</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  The <b>propertyName</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>getPropertyCSSValue(propertyName)</b></dt>
  
  <dd>This method returns a <b>CSSValue</b> object.<br />
  The <b>propertyName</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>removeProperty(propertyName)</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  The <b>propertyName</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getPropertyPriority(propertyName)</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  The <b>propertyName</b> parameter is of type <b>String</b>.</dd>
  
  <dt><b>setProperty(propertyName, value, priority)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>propertyName</b> parameter is of type <b>String</b>.<br />
  The <b>value</b> parameter is of type <b>String</b>.<br />
  The <b>priority</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>item(index)</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  <b>Note:</b> This object can also be dereferenced using square
  bracket notation (e.g. obj[1]). Dereferencing with an integer
  <b>index</b> is equivalent to invoking the <b>item</b> method with
  that index.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Prototype Object <b>CSSValue</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>CSSValue</b> class has the following constants:</dt>
  
  <dd>
  <dl>
  <dt><b>CSSValue.CSS_INHERIT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0</b>.</dd>
  
  <dt><b>CSSValue.CSS_PRIMITIVE_VALUE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>CSSValue.CSS_VALUE_LIST</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>CSSValue.CSS_CUSTOM</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>3</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSValue</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>CSSValue</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>cssText</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>cssValueType</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Prototype Object <b>CSSPrimitiveValue</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>CSSPrimitiveValue</b> class has the following
  constants:</dt>
  
  <dd>
  <dl>
  <dt><b>CSSPrimitiveValue.CSS_UNKNOWN</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_NUMBER</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_PERCENTAGE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_EMS</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>3</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_EXS</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>4</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_PX</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>5</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_CM</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>6</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_MM</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>7</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_IN</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>8</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_PT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>9</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_PC</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>10</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_DEG</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>11</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_RAD</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>12</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_GRAD</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>13</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_MS</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>14</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_S</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>15</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_HZ</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>16</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_KHZ</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>17</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_DIMENSION</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>18</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_STRING</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>19</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_URI</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>20</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_IDENT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>21</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_ATTR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>22</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_COUNTER</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>23</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_RECT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>24</b>.</dd>
  
  <dt><b>CSSPrimitiveValue.CSS_RGBCOLOR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>25</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSPrimitiveValue</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSPrimitiveValue</b> has the all the properties and methods
  of the <b>CSSValue</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSPrimitiveValue</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>primitiveType</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>CSSPrimitiveValue</b> object has the following
  methods:</dt>
  
  <dd>
  <dl>
  <dt><b>setFloatValue(unitType, floatValue)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>unitType</b> parameter is of type <b>Number</b>.<br />
  The <b>floatValue</b> parameter is a <b>float</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getFloatValue(unitType)</b></dt>
  
  <dd>This method returns a <b>float</b> object.<br />
  The <b>unitType</b> parameter is of type <b>Number</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>setStringValue(stringType, stringValue)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>stringType</b> parameter is of type <b>Number</b>.<br />
  The <b>stringValue</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getStringValue()</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getCounterValue()</b></dt>
  
  <dd>This method returns a <b>Counter</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getRectValue()</b></dt>
  
  <dd>This method returns a <b>Rect</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>getRGBColorValue()</b></dt>
  
  <dd>This method returns a <b>RGBColor</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSSValueList</b></dt>
  
  <dd>
  <dl>
  <dt><b>CSSValueList</b> has the all the properties and methods of
  the <b>CSSValue</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>CSSValueList</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>length</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>CSSValueList</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>item(index)</b></dt>
  
  <dd>This method returns a <b>CSSValue</b> object.<br />
  The <b>index</b> parameter is of type <b>Number</b>.<br />
  <b>Note:</b> This object can also be dereferenced using square
  bracket notation (e.g. obj[1]). Dereferencing with an integer
  <b>index</b> is equivalent to invoking the <b>item</b> method with
  that index.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>RGBColor</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>RGBColor</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>red</b></dt>
  
  <dd>This read-only property is a <b>CSSPrimitiveValue</b>
  object.</dd>
  
  <dt><b>green</b></dt>
  
  <dd>This read-only property is a <b>CSSPrimitiveValue</b>
  object.</dd>
  
  <dt><b>blue</b></dt>
  
  <dd>This read-only property is a <b>CSSPrimitiveValue</b>
  object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Rect</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>Rect</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>top</b></dt>
  
  <dd>This read-only property is a <b>CSSPrimitiveValue</b>
  object.</dd>
  
  <dt><b>right</b></dt>
  
  <dd>This read-only property is a <b>CSSPrimitiveValue</b>
  object.</dd>
  
  <dt><b>bottom</b></dt>
  
  <dd>This read-only property is a <b>CSSPrimitiveValue</b>
  object.</dd>
  
  <dt><b>left</b></dt>
  
  <dd>This read-only property is a <b>CSSPrimitiveValue</b>
  object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Counter</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>Counter</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>identifier</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>listStyle</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  
  <dt><b>separator</b></dt>
  
  <dd>This read-only property is of type <b>String</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>ViewCSS</b></dt>
  
  <dd>
  <dl>
  <dt><b>ViewCSS</b> has the all the properties and methods of the
  <b>AbstractView</b> object as well as the properties and methods
  defined below.</dt>
  
  <dt>The <b>ViewCSS</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>getComputedStyle(elt, pseudoElt)</b></dt>
  
  <dd>This method returns a <b>CSSStyleDeclaration</b> object.<br />
  The <b>elt</b> parameter is a <b>Element</b> object.<br />
  The <b>pseudoElt</b> parameter is of type <b>String</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DocumentCSS</b></dt>
  
  <dd>
  <dl>
  <dt><b>DocumentCSS</b> has the all the properties and methods of
  the <b>DocumentStyle</b> object as well as the properties and
  methods defined below.</dt>
  
  <dt>The <b>DocumentCSS</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>getOverrideStyle(elt, pseudoElt)</b></dt>
  
  <dd>This method returns a <b>CSSStyleDeclaration</b> object.<br />
  The <b>elt</b> parameter is a <b>Element</b> object.<br />
  The <b>pseudoElt</b> parameter is of type <b>String</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DOMImplementationCSS</b></dt>
  
  <dd>
  <dl>
  <dt><b>DOMImplementationCSS</b> has the all the properties and
  methods of the <b>DOMImplementation</b> object as well as the
  properties and methods defined below.</dt>
  
  <dt>The <b>DOMImplementationCSS</b> object has the following
  methods:</dt>
  
  <dd>
  <dl>
  <dt><b>createCSSStyleSheet(title, media)</b></dt>
  
  <dd>This method returns a <b>CSSStyleSheet</b> object.<br />
  The <b>title</b> parameter is of type <b>String</b>.<br />
  The <b>media</b> parameter is of type <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>ElementCSSInlineStyle</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>ElementCSSInlineStyle</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>style</b></dt>
  
  <dd>This read-only property is a <b>CSSStyleDeclaration</b>
  object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>CSS2Properties</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>CSS2Properties</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>azimuth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>background</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>backgroundAttachment</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>backgroundColor</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>backgroundImage</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>backgroundPosition</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>backgroundRepeat</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>border</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderCollapse</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderColor</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderSpacing</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderStyle</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderTop</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderRight</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderBottom</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderLeft</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderTopColor</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderRightColor</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderBottomColor</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderLeftColor</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderTopStyle</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderRightStyle</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderBottomStyle</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderLeftStyle</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderTopWidth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderRightWidth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderBottomWidth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderLeftWidth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>borderWidth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>bottom</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>captionSide</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>clear</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>clip</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>color</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>content</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>counterIncrement</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>counterReset</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>cue</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>cueAfter</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>cueBefore</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>cursor</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>direction</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>display</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>elevation</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>emptyCells</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>cssFloat</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>font</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>fontFamily</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>fontSize</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>fontSizeAdjust</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>fontStretch</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>fontStyle</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>fontVariant</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>fontWeight</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>height</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>left</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>letterSpacing</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>lineHeight</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>listStyle</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>listStyleImage</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>listStylePosition</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>listStyleType</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>margin</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>marginTop</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>marginRight</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>marginBottom</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>marginLeft</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>markerOffset</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>marks</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>maxHeight</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>maxWidth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>minHeight</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>minWidth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>orphans</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>outline</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>outlineColor</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>outlineStyle</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>outlineWidth</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>overflow</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>padding</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>paddingTop</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>paddingRight</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>paddingBottom</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>paddingLeft</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>page</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>pageBreakAfter</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>pageBreakBefore</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>pageBreakInside</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>pause</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>pauseAfter</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>pauseBefore</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>pitch</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>pitchRange</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>playDuring</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>position</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>quotes</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>richness</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>right</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>size</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>speak</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>speakHeader</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>speakNumeral</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>speakPunctuation</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>speechRate</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>stress</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>tableLayout</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>textAlign</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>textDecoration</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>textIndent</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>textShadow</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>textTransform</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>top</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>unicodeBidi</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>verticalAlign</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>visibility</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>voiceFamily</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>volume</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>whiteSpace</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>widows</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>width</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>wordSpacing</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  
  <dt><b>zIndex</b></dt>
  
  <dd>This property is of type <b>String</b> and can raise a
  <b>DOMException</b> object on setting.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- ecma-block -->
  </div>
  
  <!-- div2 CSS-ECMA --></div>
  
  <!-- div1 ecma-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='java-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='acknowledgements.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/expanded-toc.html
  
  Index: expanded-toc.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:49 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Expanded Table of Contents</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='copyright-notice.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='Overview.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='Overview.html'>previous</a> &nbsp; <a accesskey='n'
  href='copyright-notice.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="TOC" name='TOC'></a> 
  
  <h1 id='TOC-h1' class='div1'>Expanded Table of Contents</h1>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='stylesheets.html'>Chapter 1: Document Object Model Style
  Sheets</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='stylesheets.html#StyleSheets-overview'>1.1.
  Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='stylesheets.html#StyleSheets-fundamental'>1.2. Style Sheet
  Interfaces</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='stylesheets.html#StyleSheets-extensions'>1.3. Document
  Extensions</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='stylesheets.html#StyleSheets-Association'>1.4. Association
  between a style sheet and a document.</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref' href='css.html'>Chapter 2:
  Document Object Model CSS</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='css.html#CSS-overview'>2.1. Overview of the DOM Level 2 CSS
  Interfaces</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='css.html#CSS-fundamental'>2.2. CSS Fundamental Interfaces</a>
  
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='css.html#CSS-OverrideAndComputed'>2.2.1. Override and
  computed style sheet</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='css.html#CSS-StyleSheetCreation'>2.2.2. Style sheet
  creation</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='css.html#CSS-htmlelementcss'>2.2.3. Element with CSS inline
  style</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='css.html#CSS-extended'>2.3. CSS2 Extended Interface</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix A: IDL Definitions</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='idl-definitions.html#StyleSheets-IDL'>A.1. Document Object
  Model Style Sheets</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='idl-definitions.html#CSS-IDL'>A.2. Document Object Model
  CSS</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix B: Java Language Binding</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='java-binding.html#StyleSheets-Java'>B.1. Document Object
  Model Style Sheets</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='java-binding.html#CSS-Java'>B.2. Document Object Model
  CSS</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix C: ECMAScript Language
  Binding</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='ecma-script-binding.html#StyleSheets-ECMA'>C.1. Document
  Object Model StyleSheets</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ecma-script-binding.html#CSS-ECMA'>C.2. Document Object Model
  CSS</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix D: Acknowledgements</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='acknowledgements.html#Productions'>D.1. Production
  Systems</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='references.html#References-Normative'>1. Normative
  references</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='references.html#References-Informative'>2. Informative
  references</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  </div>
  
  <!-- div1 TOC -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='Overview.html'>previous</a> &nbsp; <a
  accesskey='n' href='copyright-notice.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/idl-definitions.html
  
  Index: idl-definitions.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:04 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>IDL Definitions</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='java-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='css.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='css.html'>previous</a> &nbsp; <a accesskey='n'
  href='java-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="idl" name='idl'></a> 
  
  <h1 id='idl-h1' class='adiv1'>Appendix A: IDL Definitions</h1>
  
  <p>This appendix contains the complete OMG IDL [<a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a>] for the Level 2 Document
  Object Model Style definitions. The definitions are divided into <a
  href='#StyleSheets-IDL'>Stylesheets</a> and <a
  href='#CSS-IDL'>CSS</a>.</p>
  
  <p>The IDL files are also available as: <a
  href='idl.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/idl.zip</a></p>
  
  <div class='div2'><a id="StyleSheets-IDL"
  name='StyleSheets-IDL'></a> 
  
  <h2 id='StyleSheets-IDL-h2' class='adiv2'>A.1: Document Object
  Model Style Sheets</h2>
  
  <h3 id='idl-stylesheets.idl'><a
  href='idl/stylesheets.idl'>stylesheets.idl</a>:</h3>
  
  <div class='idl-code'>
  <pre>
  // File: stylesheets.idl
  
  #ifndef _STYLESHEETS_IDL_
  #define _STYLESHEETS_IDL_
  
  #include "dom.idl"
  
  #pragma prefix "dom.w3c.org"
  module stylesheets
  {
  
    typedef dom::DOMString DOMString;
    typedef dom::Node Node;
  
    interface MediaList;
  
    // Introduced in DOM Level 2:
    interface StyleSheet {
      readonly attribute DOMString        type;
               attribute boolean          disabled;
      readonly attribute Node             ownerNode;
      readonly attribute StyleSheet       parentStyleSheet;
      readonly attribute DOMString        href;
      readonly attribute DOMString        title;
      readonly attribute MediaList        media;
    };
  
    // Introduced in DOM Level 2:
    interface StyleSheetList {
      readonly attribute unsigned long    length;
      StyleSheet         item(in unsigned long index);
    };
  
    // Introduced in DOM Level 2:
    interface MediaList {
               attribute DOMString        mediaText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute unsigned long    length;
      DOMString          item(in unsigned long index);
      void               deleteMedium(in DOMString oldMedium)
                                          raises(dom::DOMException);
      void               appendMedium(in DOMString newMedium)
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface LinkStyle {
      readonly attribute StyleSheet       sheet;
    };
  
    // Introduced in DOM Level 2:
    interface DocumentStyle {
      readonly attribute StyleSheetList   styleSheets;
    };
  };
  
  #endif // _STYLESHEETS_IDL_
  
  </pre>
  </div>
  </div>
  
  <!-- div2 StyleSheets-IDL -->
  <div class='div2'><a id="CSS-IDL" name='CSS-IDL'></a> 
  
  <h2 id='CSS-IDL-h2' class='adiv2'>A.2: Document Object Model
  CSS</h2>
  
  <h3 id='idl-css.idl'><a href='idl/css.idl'>css.idl</a>:</h3>
  
  <div class='idl-code'>
  <pre>
  // File: css.idl
  
  #ifndef _CSS_IDL_
  #define _CSS_IDL_
  
  #include "dom.idl"
  #include "stylesheets.idl"
  #include "views.idl"
  
  #pragma prefix "dom.w3c.org"
  module css
  {
  
    typedef dom::DOMString DOMString;
    typedef dom::Element Element;
    typedef dom::DOMImplementation DOMImplementation;
  
    interface CSSRule;
    interface CSSStyleSheet;
    interface CSSStyleDeclaration;
    interface CSSValue;
    interface Counter;
    interface Rect;
    interface RGBColor;
  
    // Introduced in DOM Level 2:
    interface CSSRuleList {
      readonly attribute unsigned long    length;
      CSSRule            item(in unsigned long index);
    };
  
    // Introduced in DOM Level 2:
    interface CSSRule {
  
      // RuleType
      const unsigned short      UNKNOWN_RULE                   = 0;
      const unsigned short      STYLE_RULE                     = 1;
      const unsigned short      CHARSET_RULE                   = 2;
      const unsigned short      IMPORT_RULE                    = 3;
      const unsigned short      MEDIA_RULE                     = 4;
      const unsigned short      FONT_FACE_RULE                 = 5;
      const unsigned short      PAGE_RULE                      = 6;
  
      readonly attribute unsigned short   type;
               attribute DOMString        cssText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute CSSStyleSheet    parentStyleSheet;
      readonly attribute CSSRule          parentRule;
    };
  
    // Introduced in DOM Level 2:
    interface CSSStyleRule : CSSRule {
               attribute DOMString        selectorText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute CSSStyleDeclaration  style;
    };
  
    // Introduced in DOM Level 2:
    interface CSSMediaRule : CSSRule {
      readonly attribute stylesheets::MediaList  media;
      readonly attribute CSSRuleList      cssRules;
      unsigned long      insertRule(in DOMString rule, 
                                    in unsigned long index)
                                          raises(dom::DOMException);
      void               deleteRule(in unsigned long index)
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface CSSFontFaceRule : CSSRule {
      readonly attribute CSSStyleDeclaration  style;
    };
  
    // Introduced in DOM Level 2:
    interface CSSPageRule : CSSRule {
               attribute DOMString        selectorText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute CSSStyleDeclaration  style;
    };
  
    // Introduced in DOM Level 2:
    interface CSSImportRule : CSSRule {
      readonly attribute DOMString        href;
      readonly attribute stylesheets::MediaList  media;
      readonly attribute CSSStyleSheet    styleSheet;
    };
  
    // Introduced in DOM Level 2:
    interface CSSCharsetRule : CSSRule {
               attribute DOMString        encoding;
                                          // raises(dom::DOMException) on setting
  
    };
  
    // Introduced in DOM Level 2:
    interface CSSUnknownRule : CSSRule {
    };
  
    // Introduced in DOM Level 2:
    interface CSSStyleDeclaration {
               attribute DOMString        cssText;
                                          // raises(dom::DOMException) on setting
  
      DOMString          getPropertyValue(in DOMString propertyName);
      CSSValue           getPropertyCSSValue(in DOMString propertyName);
      DOMString          removeProperty(in DOMString propertyName)
                                          raises(dom::DOMException);
      DOMString          getPropertyPriority(in DOMString propertyName);
      void               setProperty(in DOMString propertyName, 
                                     in DOMString value, 
                                     in DOMString priority)
                                          raises(dom::DOMException);
      readonly attribute unsigned long    length;
      DOMString          item(in unsigned long index);
      readonly attribute CSSRule          parentRule;
    };
  
    // Introduced in DOM Level 2:
    interface CSSValue {
  
      // UnitTypes
      const unsigned short      CSS_INHERIT                    = 0;
      const unsigned short      CSS_PRIMITIVE_VALUE            = 1;
      const unsigned short      CSS_VALUE_LIST                 = 2;
      const unsigned short      CSS_CUSTOM                     = 3;
  
               attribute DOMString        cssText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute unsigned short   cssValueType;
    };
  
    // Introduced in DOM Level 2:
    interface CSSPrimitiveValue : CSSValue {
  
      // UnitTypes
      const unsigned short      CSS_UNKNOWN                    = 0;
      const unsigned short      CSS_NUMBER                     = 1;
      const unsigned short      CSS_PERCENTAGE                 = 2;
      const unsigned short      CSS_EMS                        = 3;
      const unsigned short      CSS_EXS                        = 4;
      const unsigned short      CSS_PX                         = 5;
      const unsigned short      CSS_CM                         = 6;
      const unsigned short      CSS_MM                         = 7;
      const unsigned short      CSS_IN                         = 8;
      const unsigned short      CSS_PT                         = 9;
      const unsigned short      CSS_PC                         = 10;
      const unsigned short      CSS_DEG                        = 11;
      const unsigned short      CSS_RAD                        = 12;
      const unsigned short      CSS_GRAD                       = 13;
      const unsigned short      CSS_MS                         = 14;
      const unsigned short      CSS_S                          = 15;
      const unsigned short      CSS_HZ                         = 16;
      const unsigned short      CSS_KHZ                        = 17;
      const unsigned short      CSS_DIMENSION                  = 18;
      const unsigned short      CSS_STRING                     = 19;
      const unsigned short      CSS_URI                        = 20;
      const unsigned short      CSS_IDENT                      = 21;
      const unsigned short      CSS_ATTR                       = 22;
      const unsigned short      CSS_COUNTER                    = 23;
      const unsigned short      CSS_RECT                       = 24;
      const unsigned short      CSS_RGBCOLOR                   = 25;
  
      readonly attribute unsigned short   primitiveType;
      void               setFloatValue(in unsigned short unitType, 
                                       in float floatValue)
                                          raises(dom::DOMException);
      float              getFloatValue(in unsigned short unitType)
                                          raises(dom::DOMException);
      void               setStringValue(in unsigned short stringType, 
                                        in DOMString stringValue)
                                          raises(dom::DOMException);
      DOMString          getStringValue()
                                          raises(dom::DOMException);
      Counter            getCounterValue()
                                          raises(dom::DOMException);
      Rect               getRectValue()
                                          raises(dom::DOMException);
      RGBColor           getRGBColorValue()
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface CSSValueList : CSSValue {
      readonly attribute unsigned long    length;
      CSSValue           item(in unsigned long index);
    };
  
    // Introduced in DOM Level 2:
    interface RGBColor {
      readonly attribute CSSPrimitiveValue  red;
      readonly attribute CSSPrimitiveValue  green;
      readonly attribute CSSPrimitiveValue  blue;
    };
  
    // Introduced in DOM Level 2:
    interface Rect {
      readonly attribute CSSPrimitiveValue  top;
      readonly attribute CSSPrimitiveValue  right;
      readonly attribute CSSPrimitiveValue  bottom;
      readonly attribute CSSPrimitiveValue  left;
    };
  
    // Introduced in DOM Level 2:
    interface Counter {
      readonly attribute DOMString        identifier;
      readonly attribute DOMString        listStyle;
      readonly attribute DOMString        separator;
    };
  
    // Introduced in DOM Level 2:
    interface ElementCSSInlineStyle {
      readonly attribute CSSStyleDeclaration  style;
    };
  
    // Introduced in DOM Level 2:
    interface CSS2Properties {
               attribute DOMString        azimuth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        background;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundAttachment;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundImage;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundPosition;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundRepeat;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        border;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderCollapse;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderSpacing;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderTop;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderRight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderBottom;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderLeft;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderTopColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderRightColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderBottomColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderLeftColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderTopStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderRightStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderBottomStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderLeftStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderTopWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderRightWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderBottomWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderLeftWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        bottom;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        captionSide;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        clear;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        clip;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        color;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        content;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        counterIncrement;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        counterReset;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cue;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cueAfter;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cueBefore;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cursor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        direction;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        display;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        elevation;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        emptyCells;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cssFloat;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        font;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontFamily;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontSize;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontSizeAdjust;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontStretch;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontVariant;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontWeight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        height;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        left;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        letterSpacing;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        lineHeight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        listStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        listStyleImage;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        listStylePosition;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        listStyleType;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        margin;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marginTop;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marginRight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marginBottom;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marginLeft;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        markerOffset;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marks;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        maxHeight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        maxWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        minHeight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        minWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        orphans;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        outline;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        outlineColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        outlineStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        outlineWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        overflow;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        padding;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        paddingTop;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        paddingRight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        paddingBottom;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        paddingLeft;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        page;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pageBreakAfter;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pageBreakBefore;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pageBreakInside;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pause;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pauseAfter;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pauseBefore;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pitch;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pitchRange;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        playDuring;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        position;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        quotes;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        richness;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        right;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        size;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speak;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speakHeader;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speakNumeral;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speakPunctuation;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speechRate;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        stress;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        tableLayout;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textAlign;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textDecoration;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textIndent;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textShadow;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textTransform;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        top;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        unicodeBidi;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        verticalAlign;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        visibility;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        voiceFamily;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        volume;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        whiteSpace;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        widows;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        width;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        wordSpacing;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        zIndex;
                                          // raises(dom::DOMException) on setting
  
    };
  
    // Introduced in DOM Level 2:
    interface CSSStyleSheet : stylesheets::StyleSheet {
      readonly attribute CSSRule          ownerRule;
      readonly attribute CSSRuleList      cssRules;
      unsigned long      insertRule(in DOMString rule, 
                                    in unsigned long index)
                                          raises(dom::DOMException);
      void               deleteRule(in unsigned long index)
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface ViewCSS : views::AbstractView {
      CSSStyleDeclaration getComputedStyle(in Element elt, 
                                           in DOMString pseudoElt);
    };
  
    // Introduced in DOM Level 2:
    interface DocumentCSS : stylesheets::DocumentStyle {
      CSSStyleDeclaration getOverrideStyle(in Element elt, 
                                           in DOMString pseudoElt);
    };
  
    // Introduced in DOM   Level 2:
    interface DOMImplementationCSS : DOMImplementation {
      CSSStyleSheet      createCSSStyleSheet(in DOMString title, 
                                             in DOMString media)
                                          raises(dom::DOMException);
    };
  };
  
  #endif // _CSS_IDL_
  
  </pre>
  </div>
  </div>
  
  <!-- div2 CSS-IDL --></div>
  
  <!-- div1 idl -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='css.html'>previous</a> &nbsp; <a
  accesskey='n' href='java-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/java-binding.html
  
  Index: java-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:11 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Java Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='ecma-script-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='idl-definitions.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='idl-definitions.html'>previous</a> &nbsp; <a accesskey='n'
  href='ecma-script-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="java-binding" name='java-binding'></a> 
  
  <h1 id='java-binding-h1' class='adiv1'>Appendix B: Java Language
  Binding</h1>
  
  <p>This appendix contains the complete Java Language [<a
  class='noxref' href='references.html#Java'>Java</a>] binding for
  the Level 2 Document Object Model Style. The definitions are
  divided into <a href='#StyleSheets-Java'>StyleSheets</a> and <a
  href='#CSS-Java'>CSS</a>.</p>
  
  <p>The Java files are also available as <a
  href='java-binding.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/java-binding.zip</a></p>
  
  <div class='div2'><a id="StyleSheets-Java"
  name='StyleSheets-Java'></a> 
  
  <h2 id='StyleSheets-Java-h2' class='adiv2'>B.1: Document Object
  Model Style Sheets</h2>
  
  <h3 id='org.w3c.dom.stylesheets.StyleSheet'>
  org/w3c/dom/stylesheets/StyleSheet.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.stylesheets;
  
  import org.w3c.dom.Node;
  
  public interface StyleSheet {
      public String getType();
  
      public boolean getDisabled();
      public void setDisabled(boolean disabled);
  
      public Node getOwnerNode();
  
      public StyleSheet getParentStyleSheet();
  
      public String getHref();
  
      public String getTitle();
  
      public MediaList getMedia();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.stylesheets.StyleSheetList'>
  org/w3c/dom/stylesheets/StyleSheetList.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.stylesheets;
  
  public interface StyleSheetList {
      public int getLength();
  
      public StyleSheet item(int index);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.stylesheets.MediaList'>
  org/w3c/dom/stylesheets/MediaList.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.stylesheets;
  
  import org.w3c.dom.DOMException;
  
  public interface MediaList {
      public String getMediaText();
      public void setMediaText(String mediaText)
                             throws DOMException;
  
      public int getLength();
  
      public String item(int index);
  
      public void deleteMedium(String oldMedium)
                               throws DOMException;
  
      public void appendMedium(String newMedium)
                               throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.stylesheets.LinkStyle'>
  org/w3c/dom/stylesheets/LinkStyle.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.stylesheets;
  
  public interface LinkStyle {
      public StyleSheet getSheet();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.stylesheets.DocumentStyle'>
  org/w3c/dom/stylesheets/DocumentStyle.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.stylesheets;
  
  public interface DocumentStyle {
      public StyleSheetList getStyleSheets();
  
  }
  </pre>
  </div>
  </div>
  
  <!-- div2 StyleSheets-Java -->
  <div class='div2'><a id="CSS-Java" name='CSS-Java'></a> 
  
  <h2 id='CSS-Java-h2' class='adiv2'>B.2: Document Object Model
  CSS</h2>
  
  <h3 id='org.w3c.dom.css.CSSStyleSheet'>
  org/w3c/dom/css/CSSStyleSheet.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  import org.w3c.dom.stylesheets.StyleSheet;
  
  public interface CSSStyleSheet extends StyleSheet {
      public CSSRule getOwnerRule();
  
      public CSSRuleList getCssRules();
  
      public int insertRule(String rule, 
                            int index)
                            throws DOMException;
  
      public void deleteRule(int index)
                             throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSRuleList'>
  org/w3c/dom/css/CSSRuleList.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  public interface CSSRuleList {
      public int getLength();
  
      public CSSRule item(int index);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSRule'>org/w3c/dom/css/CSSRule.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  public interface CSSRule {
      // RuleType
      public static final short UNKNOWN_RULE              = 0;
      public static final short STYLE_RULE                = 1;
      public static final short CHARSET_RULE              = 2;
      public static final short IMPORT_RULE               = 3;
      public static final short MEDIA_RULE                = 4;
      public static final short FONT_FACE_RULE            = 5;
      public static final short PAGE_RULE                 = 6;
  
      public short getType();
  
      public String getCssText();
      public void setCssText(String cssText)
                          throws DOMException;
  
      public CSSStyleSheet getParentStyleSheet();
  
      public CSSRule getParentRule();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSStyleRule'>
  org/w3c/dom/css/CSSStyleRule.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  public interface CSSStyleRule extends CSSRule {
      public String getSelectorText();
      public void setSelectorText(String selectorText)
                          throws DOMException;
  
      public CSSStyleDeclaration getStyle();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSMediaRule'>
  org/w3c/dom/css/CSSMediaRule.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  import org.w3c.dom.stylesheets.MediaList;
  
  public interface CSSMediaRule extends CSSRule {
      public MediaList getMedia();
  
      public CSSRuleList getCssRules();
  
      public int insertRule(String rule, 
                            int index)
                            throws DOMException;
  
      public void deleteRule(int index)
                             throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSFontFaceRule'>
  org/w3c/dom/css/CSSFontFaceRule.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  public interface CSSFontFaceRule extends CSSRule {
      public CSSStyleDeclaration getStyle();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSPageRule'>
  org/w3c/dom/css/CSSPageRule.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  public interface CSSPageRule extends CSSRule {
      public String getSelectorText();
      public void setSelectorText(String selectorText)
                             throws DOMException;
  
      public CSSStyleDeclaration getStyle();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSImportRule'>
  org/w3c/dom/css/CSSImportRule.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.stylesheets.MediaList;
  
  public interface CSSImportRule extends CSSRule {
      public String getHref();
  
      public MediaList getMedia();
  
      public CSSStyleSheet getStyleSheet();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSCharsetRule'>
  org/w3c/dom/css/CSSCharsetRule.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  public interface CSSCharsetRule extends CSSRule {
      public String getEncoding();
      public void setEncoding(String encoding)
                             throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSUnknownRule'>
  org/w3c/dom/css/CSSUnknownRule.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  public interface CSSUnknownRule extends CSSRule {
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSStyleDeclaration'>
  org/w3c/dom/css/CSSStyleDeclaration.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  public interface CSSStyleDeclaration {
      public String getCssText();
      public void setCssText(String cssText)
                             throws DOMException;
  
      public String getPropertyValue(String propertyName);
  
      public CSSValue getPropertyCSSValue(String propertyName);
  
      public String removeProperty(String propertyName)
                                   throws DOMException;
  
      public String getPropertyPriority(String propertyName);
  
      public void setProperty(String propertyName, 
                              String value, 
                              String priority)
                              throws DOMException;
  
      public int getLength();
  
      public String item(int index);
  
      public CSSRule getParentRule();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSValue'>
  org/w3c/dom/css/CSSValue.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  public interface CSSValue {
      // UnitTypes
      public static final short CSS_INHERIT               = 0;
      public static final short CSS_PRIMITIVE_VALUE       = 1;
      public static final short CSS_VALUE_LIST            = 2;
      public static final short CSS_CUSTOM                = 3;
  
      public String getCssText();
      public void setCssText(String cssText)
                         throws DOMException;
  
      public short getCssValueType();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSPrimitiveValue'>
  org/w3c/dom/css/CSSPrimitiveValue.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  public interface CSSPrimitiveValue extends CSSValue {
      // UnitTypes
      public static final short CSS_UNKNOWN               = 0;
      public static final short CSS_NUMBER                = 1;
      public static final short CSS_PERCENTAGE            = 2;
      public static final short CSS_EMS                   = 3;
      public static final short CSS_EXS                   = 4;
      public static final short CSS_PX                    = 5;
      public static final short CSS_CM                    = 6;
      public static final short CSS_MM                    = 7;
      public static final short CSS_IN                    = 8;
      public static final short CSS_PT                    = 9;
      public static final short CSS_PC                    = 10;
      public static final short CSS_DEG                   = 11;
      public static final short CSS_RAD                   = 12;
      public static final short CSS_GRAD                  = 13;
      public static final short CSS_MS                    = 14;
      public static final short CSS_S                     = 15;
      public static final short CSS_HZ                    = 16;
      public static final short CSS_KHZ                   = 17;
      public static final short CSS_DIMENSION             = 18;
      public static final short CSS_STRING                = 19;
      public static final short CSS_URI                   = 20;
      public static final short CSS_IDENT                 = 21;
      public static final short CSS_ATTR                  = 22;
      public static final short CSS_COUNTER               = 23;
      public static final short CSS_RECT                  = 24;
      public static final short CSS_RGBCOLOR              = 25;
  
      public short getPrimitiveType();
  
      public void setFloatValue(short unitType, 
                                float floatValue)
                                throws DOMException;
  
      public float getFloatValue(short unitType)
                                 throws DOMException;
  
      public void setStringValue(short stringType, 
                                 String stringValue)
                                 throws DOMException;
  
      public String getStringValue()
                                   throws DOMException;
  
      public Counter getCounterValue()
                                     throws DOMException;
  
      public Rect getRectValue()
                               throws DOMException;
  
      public RGBColor getRGBColorValue()
                                       throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSSValueList'>
  org/w3c/dom/css/CSSValueList.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  public interface CSSValueList extends CSSValue {
      public int getLength();
  
      public CSSValue item(int index);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.RGBColor'>
  org/w3c/dom/css/RGBColor.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  public interface RGBColor {
      public CSSPrimitiveValue getRed();
  
      public CSSPrimitiveValue getGreen();
  
      public CSSPrimitiveValue getBlue();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.Rect'>org/w3c/dom/css/Rect.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  public interface Rect {
      public CSSPrimitiveValue getTop();
  
      public CSSPrimitiveValue getRight();
  
      public CSSPrimitiveValue getBottom();
  
      public CSSPrimitiveValue getLeft();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.Counter'>org/w3c/dom/css/Counter.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  public interface Counter {
      public String getIdentifier();
  
      public String getListStyle();
  
      public String getSeparator();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.ViewCSS'>org/w3c/dom/css/ViewCSS.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.views.AbstractView;
  import org.w3c.dom.Element;
  
  public interface ViewCSS extends AbstractView {
      public CSSStyleDeclaration getComputedStyle(Element elt, 
                                                  String pseudoElt);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.DocumentCSS'>
  org/w3c/dom/css/DocumentCSS.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.stylesheets.DocumentStyle;
  import org.w3c.dom.Element;
  
  public interface DocumentCSS extends DocumentStyle {
      public CSSStyleDeclaration getOverrideStyle(Element elt, 
                                                  String pseudoElt);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.DOMImplementationCSS'>
  org/w3c/dom/css/DOMImplementationCSS.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMImplementation;
  import org.w3c.dom.DOMException;
  
  public interface DOMImplementationCSS extends DOMImplementation {
      public CSSStyleSheet createCSSStyleSheet(String title, 
                                               String media)
                                               throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.ElementCSSInlineStyle'>
  org/w3c/dom/css/ElementCSSInlineStyle.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  public interface ElementCSSInlineStyle {
      public CSSStyleDeclaration getStyle();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.css.CSS2Properties'>
  org/w3c/dom/css/CSS2Properties.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.css;
  
  import org.w3c.dom.DOMException;
  
  public interface CSS2Properties {
      public String getAzimuth();
      public void setAzimuth(String azimuth)
                                               throws DOMException;
  
      public String getBackground();
      public void setBackground(String background)
                                               throws DOMException;
  
      public String getBackgroundAttachment();
      public void setBackgroundAttachment(String backgroundAttachment)
                                               throws DOMException;
  
      public String getBackgroundColor();
      public void setBackgroundColor(String backgroundColor)
                                               throws DOMException;
  
      public String getBackgroundImage();
      public void setBackgroundImage(String backgroundImage)
                                               throws DOMException;
  
      public String getBackgroundPosition();
      public void setBackgroundPosition(String backgroundPosition)
                                               throws DOMException;
  
      public String getBackgroundRepeat();
      public void setBackgroundRepeat(String backgroundRepeat)
                                               throws DOMException;
  
      public String getBorder();
      public void setBorder(String border)
                                               throws DOMException;
  
      public String getBorderCollapse();
      public void setBorderCollapse(String borderCollapse)
                                               throws DOMException;
  
      public String getBorderColor();
      public void setBorderColor(String borderColor)
                                               throws DOMException;
  
      public String getBorderSpacing();
      public void setBorderSpacing(String borderSpacing)
                                               throws DOMException;
  
      public String getBorderStyle();
      public void setBorderStyle(String borderStyle)
                                               throws DOMException;
  
      public String getBorderTop();
      public void setBorderTop(String borderTop)
                                               throws DOMException;
  
      public String getBorderRight();
      public void setBorderRight(String borderRight)
                                               throws DOMException;
  
      public String getBorderBottom();
      public void setBorderBottom(String borderBottom)
                                               throws DOMException;
  
      public String getBorderLeft();
      public void setBorderLeft(String borderLeft)
                                               throws DOMException;
  
      public String getBorderTopColor();
      public void setBorderTopColor(String borderTopColor)
                                               throws DOMException;
  
      public String getBorderRightColor();
      public void setBorderRightColor(String borderRightColor)
                                               throws DOMException;
  
      public String getBorderBottomColor();
      public void setBorderBottomColor(String borderBottomColor)
                                               throws DOMException;
  
      public String getBorderLeftColor();
      public void setBorderLeftColor(String borderLeftColor)
                                               throws DOMException;
  
      public String getBorderTopStyle();
      public void setBorderTopStyle(String borderTopStyle)
                                               throws DOMException;
  
      public String getBorderRightStyle();
      public void setBorderRightStyle(String borderRightStyle)
                                               throws DOMException;
  
      public String getBorderBottomStyle();
      public void setBorderBottomStyle(String borderBottomStyle)
                                               throws DOMException;
  
      public String getBorderLeftStyle();
      public void setBorderLeftStyle(String borderLeftStyle)
                                               throws DOMException;
  
      public String getBorderTopWidth();
      public void setBorderTopWidth(String borderTopWidth)
                                               throws DOMException;
  
      public String getBorderRightWidth();
      public void setBorderRightWidth(String borderRightWidth)
                                               throws DOMException;
  
      public String getBorderBottomWidth();
      public void setBorderBottomWidth(String borderBottomWidth)
                                               throws DOMException;
  
      public String getBorderLeftWidth();
      public void setBorderLeftWidth(String borderLeftWidth)
                                               throws DOMException;
  
      public String getBorderWidth();
      public void setBorderWidth(String borderWidth)
                                               throws DOMException;
  
      public String getBottom();
      public void setBottom(String bottom)
                                               throws DOMException;
  
      public String getCaptionSide();
      public void setCaptionSide(String captionSide)
                                               throws DOMException;
  
      public String getClear();
      public void setClear(String clear)
                                               throws DOMException;
  
      public String getClip();
      public void setClip(String clip)
                                               throws DOMException;
  
      public String getColor();
      public void setColor(String color)
                                               throws DOMException;
  
      public String getContent();
      public void setContent(String content)
                                               throws DOMException;
  
      public String getCounterIncrement();
      public void setCounterIncrement(String counterIncrement)
                                               throws DOMException;
  
      public String getCounterReset();
      public void setCounterReset(String counterReset)
                                               throws DOMException;
  
      public String getCue();
      public void setCue(String cue)
                                               throws DOMException;
  
      public String getCueAfter();
      public void setCueAfter(String cueAfter)
                                               throws DOMException;
  
      public String getCueBefore();
      public void setCueBefore(String cueBefore)
                                               throws DOMException;
  
      public String getCursor();
      public void setCursor(String cursor)
                                               throws DOMException;
  
      public String getDirection();
      public void setDirection(String direction)
                                               throws DOMException;
  
      public String getDisplay();
      public void setDisplay(String display)
                                               throws DOMException;
  
      public String getElevation();
      public void setElevation(String elevation)
                                               throws DOMException;
  
      public String getEmptyCells();
      public void setEmptyCells(String emptyCells)
                                               throws DOMException;
  
      public String getCssFloat();
      public void setCssFloat(String cssFloat)
                                               throws DOMException;
  
      public String getFont();
      public void setFont(String font)
                                               throws DOMException;
  
      public String getFontFamily();
      public void setFontFamily(String fontFamily)
                                               throws DOMException;
  
      public String getFontSize();
      public void setFontSize(String fontSize)
                                               throws DOMException;
  
      public String getFontSizeAdjust();
      public void setFontSizeAdjust(String fontSizeAdjust)
                                               throws DOMException;
  
      public String getFontStretch();
      public void setFontStretch(String fontStretch)
                                               throws DOMException;
  
      public String getFontStyle();
      public void setFontStyle(String fontStyle)
                                               throws DOMException;
  
      public String getFontVariant();
      public void setFontVariant(String fontVariant)
                                               throws DOMException;
  
      public String getFontWeight();
      public void setFontWeight(String fontWeight)
                                               throws DOMException;
  
      public String getHeight();
      public void setHeight(String height)
                                               throws DOMException;
  
      public String getLeft();
      public void setLeft(String left)
                                               throws DOMException;
  
      public String getLetterSpacing();
      public void setLetterSpacing(String letterSpacing)
                                               throws DOMException;
  
      public String getLineHeight();
      public void setLineHeight(String lineHeight)
                                               throws DOMException;
  
      public String getListStyle();
      public void setListStyle(String listStyle)
                                               throws DOMException;
  
      public String getListStyleImage();
      public void setListStyleImage(String listStyleImage)
                                               throws DOMException;
  
      public String getListStylePosition();
      public void setListStylePosition(String listStylePosition)
                                               throws DOMException;
  
      public String getListStyleType();
      public void setListStyleType(String listStyleType)
                                               throws DOMException;
  
      public String getMargin();
      public void setMargin(String margin)
                                               throws DOMException;
  
      public String getMarginTop();
      public void setMarginTop(String marginTop)
                                               throws DOMException;
  
      public String getMarginRight();
      public void setMarginRight(String marginRight)
                                               throws DOMException;
  
      public String getMarginBottom();
      public void setMarginBottom(String marginBottom)
                                               throws DOMException;
  
      public String getMarginLeft();
      public void setMarginLeft(String marginLeft)
                                               throws DOMException;
  
      public String getMarkerOffset();
      public void setMarkerOffset(String markerOffset)
                                               throws DOMException;
  
      public String getMarks();
      public void setMarks(String marks)
                                               throws DOMException;
  
      public String getMaxHeight();
      public void setMaxHeight(String maxHeight)
                                               throws DOMException;
  
      public String getMaxWidth();
      public void setMaxWidth(String maxWidth)
                                               throws DOMException;
  
      public String getMinHeight();
      public void setMinHeight(String minHeight)
                                               throws DOMException;
  
      public String getMinWidth();
      public void setMinWidth(String minWidth)
                                               throws DOMException;
  
      public String getOrphans();
      public void setOrphans(String orphans)
                                               throws DOMException;
  
      public String getOutline();
      public void setOutline(String outline)
                                               throws DOMException;
  
      public String getOutlineColor();
      public void setOutlineColor(String outlineColor)
                                               throws DOMException;
  
      public String getOutlineStyle();
      public void setOutlineStyle(String outlineStyle)
                                               throws DOMException;
  
      public String getOutlineWidth();
      public void setOutlineWidth(String outlineWidth)
                                               throws DOMException;
  
      public String getOverflow();
      public void setOverflow(String overflow)
                                               throws DOMException;
  
      public String getPadding();
      public void setPadding(String padding)
                                               throws DOMException;
  
      public String getPaddingTop();
      public void setPaddingTop(String paddingTop)
                                               throws DOMException;
  
      public String getPaddingRight();
      public void setPaddingRight(String paddingRight)
                                               throws DOMException;
  
      public String getPaddingBottom();
      public void setPaddingBottom(String paddingBottom)
                                               throws DOMException;
  
      public String getPaddingLeft();
      public void setPaddingLeft(String paddingLeft)
                                               throws DOMException;
  
      public String getPage();
      public void setPage(String page)
                                               throws DOMException;
  
      public String getPageBreakAfter();
      public void setPageBreakAfter(String pageBreakAfter)
                                               throws DOMException;
  
      public String getPageBreakBefore();
      public void setPageBreakBefore(String pageBreakBefore)
                                               throws DOMException;
  
      public String getPageBreakInside();
      public void setPageBreakInside(String pageBreakInside)
                                               throws DOMException;
  
      public String getPause();
      public void setPause(String pause)
                                               throws DOMException;
  
      public String getPauseAfter();
      public void setPauseAfter(String pauseAfter)
                                               throws DOMException;
  
      public String getPauseBefore();
      public void setPauseBefore(String pauseBefore)
                                               throws DOMException;
  
      public String getPitch();
      public void setPitch(String pitch)
                                               throws DOMException;
  
      public String getPitchRange();
      public void setPitchRange(String pitchRange)
                                               throws DOMException;
  
      public String getPlayDuring();
      public void setPlayDuring(String playDuring)
                                               throws DOMException;
  
      public String getPosition();
      public void setPosition(String position)
                                               throws DOMException;
  
      public String getQuotes();
      public void setQuotes(String quotes)
                                               throws DOMException;
  
      public String getRichness();
      public void setRichness(String richness)
                                               throws DOMException;
  
      public String getRight();
      public void setRight(String right)
                                               throws DOMException;
  
      public String getSize();
      public void setSize(String size)
                                               throws DOMException;
  
      public String getSpeak();
      public void setSpeak(String speak)
                                               throws DOMException;
  
      public String getSpeakHeader();
      public void setSpeakHeader(String speakHeader)
                                               throws DOMException;
  
      public String getSpeakNumeral();
      public void setSpeakNumeral(String speakNumeral)
                                               throws DOMException;
  
      public String getSpeakPunctuation();
      public void setSpeakPunctuation(String speakPunctuation)
                                               throws DOMException;
  
      public String getSpeechRate();
      public void setSpeechRate(String speechRate)
                                               throws DOMException;
  
      public String getStress();
      public void setStress(String stress)
                                               throws DOMException;
  
      public String getTableLayout();
      public void setTableLayout(String tableLayout)
                                               throws DOMException;
  
      public String getTextAlign();
      public void setTextAlign(String textAlign)
                                               throws DOMException;
  
      public String getTextDecoration();
      public void setTextDecoration(String textDecoration)
                                               throws DOMException;
  
      public String getTextIndent();
      public void setTextIndent(String textIndent)
                                               throws DOMException;
  
      public String getTextShadow();
      public void setTextShadow(String textShadow)
                                               throws DOMException;
  
      public String getTextTransform();
      public void setTextTransform(String textTransform)
                                               throws DOMException;
  
      public String getTop();
      public void setTop(String top)
                                               throws DOMException;
  
      public String getUnicodeBidi();
      public void setUnicodeBidi(String unicodeBidi)
                                               throws DOMException;
  
      public String getVerticalAlign();
      public void setVerticalAlign(String verticalAlign)
                                               throws DOMException;
  
      public String getVisibility();
      public void setVisibility(String visibility)
                                               throws DOMException;
  
      public String getVoiceFamily();
      public void setVoiceFamily(String voiceFamily)
                                               throws DOMException;
  
      public String getVolume();
      public void setVolume(String volume)
                                               throws DOMException;
  
      public String getWhiteSpace();
      public void setWhiteSpace(String whiteSpace)
                                               throws DOMException;
  
      public String getWidows();
      public void setWidows(String widows)
                                               throws DOMException;
  
      public String getWidth();
      public void setWidth(String width)
                                               throws DOMException;
  
      public String getWordSpacing();
      public void setWordSpacing(String wordSpacing)
                                               throws DOMException;
  
      public String getZIndex();
      public void setZIndex(String zIndex)
                                               throws DOMException;
  
  }
  </pre>
  </div>
  </div>
  
  <!-- div2 CSS-Java --></div>
  
  <!-- div1 java-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='idl-definitions.html'>previous</a> &nbsp; <a
  accesskey='n' href='ecma-script-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/references.html
  
  Index: references.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:34 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>References</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='def-index.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='acknowledgements.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='acknowledgements.html'>previous</a> &nbsp; <a accesskey='n'
  href='def-index.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="References" name='References'></a> 
  
  <h1 id='role-references' class='references'>References</h1>
  
  <p>For the latest version of any W3C specification please consult
  the list of <a href='http://www.w3.org/TR'>W3C Technical
  Reports</a> available at http://www.w3.org/TR.</p>
  
  <div class='div2'><a id="References-Normative"
  name='References-Normative'></a> 
  
  <h2 id='References-Normative-h2' class='adiv2'>E.1: Normative
  references</h2>
  
  <dl>
  <dt><b><a id="DOMCore" name='DOMCore'>DOM Level 2 Core</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document
  Object Model Level 2 Core Specification</a>, November 2000.
  Available at
  http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113</dd>
  
  <dt><b><a id="CSS2" name='CSS2'>CSS2</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/1998/REC-CSS2-19980512'>Cascading Style
  Sheets, level 2 Specification</a>, May 1998. Available at
  http://www.w3.org/TR/1998/REC-CSS2-19980512</dd>
  
  <dt><b><a id="ECMAScript" name='ECMAScript'>ECMAScript</a></b></dt>
  
  <dd>ECMA (European Computer Manufacturers Association) <a
  href='http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM'>ECMAScript
  Language Specification</a>. Available at
  http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM</dd>
  
  <dt><b><a id="HTML40" name='HTML40'>HTML4.0</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424'>HTML 4.0
  Specification</a>, April 1998. Available at
  http://www.w3.org/TR/1998/REC-html40-19980424</dd>
  
  <dt><b><a id="Java" name='Java'>Java</a></b></dt>
  
  <dd>Sun Microsystems Inc. <a
  href='http://java.sun.com/docs/books/jls'>The Java Language
  Specification</a>, James Gosling, Bill Joy, and Guy Steele,
  September 1996. Available at
  http://java.sun.com/docs/books/jls</dd>
  
  <dt><b><a id="OMGIDL" name='OMGIDL'>OMGIDL</a></b></dt>
  
  <dd>OMG (<a href='http://www.omg.org/'>Object Management Group</a>)
  IDL (Interface Definition Language) defined in The Common Object
  Request Broker: Architecture and Specification, version 2.3.1,
  October 1999. Available from http://www.omg.org/</dd>
  
  <dt><b><a id="DOMViews" name='DOMViews'>DOM Level 2
  Views</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>Document
  Object Model Level 2 Views Specification</a>, November 2000.
  Available at
  http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113</dd>
  
  <dt><b><a id="XML-StyleSheet"
  name='XML-StyleSheet'>XML-StyleSheet</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/1999/06/REC-xml-stylesheet-19990629'>Associating
  Style Sheets with XML documents Version 1.0</a>, June 1999.
  Available at
  http://www.w3.org/1999/06/REC-xml-stylesheet-19990629.</dd>
  </dl>
  </div>
  
  <!-- div2 References-Normative -->
  <div class='div2'><a id="References-Informative"
  name='References-Informative'></a> 
  
  <h2 id='References-Informative-h2' class='adiv2'>E.2: Informative
  references</h2>
  
  <dl>
  <dt><b><a id="DOMHTML-inf" name='DOMHTML-inf'>DOM Level 2
  HTML</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/DOM-Level-2-HTML'>Document Object Model
  Level 2 HTML Specification</a>. Available at
  http://www.w3.org/TR/DOM-Level-2-HTML</dd>
  </dl>
  </div>
  
  <!-- div2 References-Informative --></div>
  
  <!-- div1 References -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='acknowledgements.html'>previous</a> &nbsp;
  <a accesskey='n' href='def-index.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/spec.css
  
  Index: spec.css
  ===================================================================
  H4 {
    text-align: left;
    font-family: sans-serif;
    font-weight: normal;
    color: #0050B2; 
  }
  .idl-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  .java-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .code-block { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .ecma-block { 
    border: 1px solid black;
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .interface-name {
    font-weight: bold
  }
  
  .attribute-name {  
    color: black;
    background-color: #FFFFD2;
  }
  
  .constant-name {
    color: black;
    background-color: #DDFFD2;
  }
  
  .method-name {  
    color: black;
    background-color: #D9E6F8;
  }
  
  .parameter-name {
    color: black;
    background-color: #FEE6F8; 
  }
  
  UL.toc, OL.toc {list-style: none}
  DIV.toc UL UL, DIV.toc OL OL {margin-left: 0}
  DIV.toc UL UL UL, DIV.toc OL OL OL {margin-left: 1em}
  DIV.toc UL UL UL UL, DIV.toc OL OL OL OL {margin-left: 0}
  LI.tocline1 {font-weight: bold}
  LI.tocline2 {font-weight: normal}
  LI.tocline4 {font-style: italic}
  
  code { font-family: monospace }
  
  div.paramtable { margin-left: 1em }
  div.returntable { margin-left: 1em }
  div.exceptiontable { margin-left: 1em }
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/stylesheets.html
  
  Index: stylesheets.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:44:50 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model Style Sheets</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='css.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='copyright-notice.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='copyright-notice.html'>previous</a> &nbsp; <a accesskey='n'
  href='css.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="StyleSheets" name='StyleSheets'></a> 
  
  <h1 id='StyleSheets-h1' class='div1'>1. Document Object Model Style
  Sheets</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Chris Wilson, Microsoft Corp.</dd>
  
  <dd>Philippe Le H&eacute;garet, W3C</dd>
  
  <dd>Vidur Apparao, Netscape Communications Corp.</dd>
  </dl>
  
  <div class='noprint'>
  <h2 id='table-of-contents'>Table of contents</h2>
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='#StyleSheets-overview'>1.1. Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#StyleSheets-fundamental'>1.2. Style Sheet Interfaces</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a
  href='#StyleSheets-StyleSheet'>StyleSheet</a>, <a
  href='#StyleSheets-StyleSheetList'>StyleSheetList</a>, <a
  href='#StyleSheets-MediaList'>MediaList</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#StyleSheets-extensions'>1.3. Document Extensions</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a
  href='#StyleSheets-LinkStyle'>LinkStyle</a>, <a
  href='#StyleSheets-StyleSheet-DocumentStyle'>DocumentStyle</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#StyleSheets-Association'>1.4. Association between a style
  sheet and a document.</a></li>
  </ul>
  </div>
  
  <div class='div2'><a id="StyleSheets-overview"
  name='StyleSheets-overview'></a> 
  
  <h2 id='StyleSheets-overview-h2' class='div2'>1.1.
  Introduction</h2>
  
  <p>The DOM Level 2 Style Sheet interfaces are base interfaces used
  to represent any type of style sheet. The expectation is that DOM
  modules that represent a specific style sheet language may contain
  interfaces that derive from these interfaces.</p>
  
  <p>The interfaces found within this section are not mandatory. A
  DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "StyleSheets" and "2.0"
  (respectively) to determine whether or not this module is supported
  by the implementation. In order to fully support this module, an
  implementation must also support the "Core" feature defined defined
  in the DOM 2 Core specification [<a class='noxref'
  href='references.html#DOMCore'>DOM Level 2 Core</a>]. Please refer
  to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  </div>
  
  <!-- div2 StyleSheets-overview -->
  <div class='div2'><a id="StyleSheets-fundamental"
  name='StyleSheets-fundamental'></a> 
  
  <h2 id='StyleSheets-fundamental-h2' class='div2'>1.2. Style Sheet
  Interfaces</h2>
  
  <p>This set of interfaces represents the generic notion of style
  sheets.</p>
  
  <dl>
  <dt><b>Interface <i><a id="StyleSheets-StyleSheet"
  name='StyleSheets-StyleSheet'>StyleSheet</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>StyleSheet</code> interface is the abstract base
  interface for any type of style sheet. It represents a single style
  sheet associated with a structured document. In HTML, the
  StyleSheet interface represents either an external style sheet,
  included via the HTML <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/struct/links.html#h-12.3'>
  <em>LINK</em></a> element, or an inline <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/present/styles.html#h-14.2.3'>
  <em>STYLE</em></a> element. In XML, this interface represents an
  external style sheet, included via a <a
  href='http://www.w3.org/1999/06/REC-xml-stylesheet-19990629'><em>style
  sheet processing instruction</em></a>.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface StyleSheet {
    readonly attribute DOMString        type;
             attribute boolean          disabled;
    readonly attribute Node             ownerNode;
    readonly attribute StyleSheet       parentStyleSheet;
    readonly attribute DOMString        href;
    readonly attribute DOMString        title;
    readonly attribute MediaList        media;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="StyleSheets-StyleSheet-disabled"
  name='StyleSheets-StyleSheet-disabled'>disabled</a></code> of type
  <code>boolean</code></dt>
  
  <dd><code>false</code> if the style sheet is applied to the
  document. <code>true</code> if it is not. Modifying this attribute
  may cause a new resolution of style for the document. A stylesheet
  only applies if both an appropriate medium definition is present
  and the disabled attribute is false. So, if the media doesn't apply
  to the current user agent, the <code>disabled</code> attribute is
  ignored.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="StyleSheets-StyleSheet-href"
  name='StyleSheets-StyleSheet-href'>href</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd>If the style sheet is a linked style sheet, the value of its
  attribute is its location. For inline style sheets, the value of
  this attribute is <code>null</code>. See the <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/struct/links.html#adef-href'>
  <em>href attribute definition</em></a> for the <code>LINK</code>
  element in HTML 4.0, and the href pseudo-attribute for the XML <a
  href='http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/#The xml-stylesheet processing instruction'>
  <em>style sheet processing instruction</em></a>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="StyleSheets-StyleSheet-media"
  name='StyleSheets-StyleSheet-media'>media</a></code> of type <a
  href='stylesheets.html#StyleSheets-MediaList'><code>MediaList</code></a>,
  readonly</dt>
  
  <dd>The intended destination media for style information. The media
  is often specified in the <code>ownerNode</code>. If no media has
  been specified, the <a
  href='stylesheets.html#StyleSheets-MediaList'><code>MediaList</code></a>
  will be empty. See the <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/present/styles.html#adef-media'>
  <em>media attribute definition</em></a> for the <code>LINK</code>
  element in HTML 4.0, and the media pseudo-attribute for the XML <a
  href='http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/#The xml-stylesheet processing instruction'>
  <em>style sheet processing instruction</em></a> . Modifying the
  media list may cause a change to the attribute
  <code>disabled</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="StyleSheets-StyleSheet-ownerNode"
  name='StyleSheets-StyleSheet-ownerNode'>ownerNode</a></code> of
  type <code>Node</code>, readonly</dt>
  
  <dd>The node that associates this style sheet with the document.
  For HTML, this may be the corresponding <code>LINK</code> or
  <code>STYLE</code> element. For XML, it may be the linking
  processing instruction. For style sheets that are included by other
  style sheets, the value of this attribute is
  <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="StyleSheets-StyleSheet-parentStyleSheet"
  name='StyleSheets-StyleSheet-parentStyleSheet'>parentStyleSheet</a></code>
  of type <a
  href='stylesheets.html#StyleSheets-StyleSheet'><code>StyleSheet</code></a>,
  readonly</dt>
  
  <dd>For style sheet languages that support the concept of style
  sheet inclusion, this attribute represents the including style
  sheet, if one exists. If the style sheet is a top-level style
  sheet, or the style sheet language does not support inclusion, the
  value of this attribute is <code>null</code>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="StyleSheets-StyleSheet-title"
  name='StyleSheets-StyleSheet-title'>title</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd>The advisory title. The title is often specified in the
  <code>ownerNode</code>. See the <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/struct/global.html#adef-title'>
  <em>title attribute definition</em></a> for the <code>LINK</code>
  element in HTML 4.0, and the title pseudo-attribute for the XML <a
  href='http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/#The xml-stylesheet processing instruction'>
  <em>style sheet processing instruction</em></a>.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="StyleSheets-StyleSheet-type"
  name='StyleSheets-StyleSheet-type'>type</a></code> of type
  <code>DOMString</code>, readonly</dt>
  
  <dd>This specifies the style sheet language for this style sheet.
  The style sheet language is specified as a content type (e.g.
  "text/css"). The <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/types.html#type-content-type'>
  <em>content type</em></a> is often specified in the
  <code>ownerNode</code>. Also see the <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/struct/links.html#adef-type-A'>
  <em>type attribute definition</em></a> for the <code>LINK</code>
  element in HTML 4.0, and the type pseudo-attribute for the XML <a
  href='http://www.w3.org/1999/06/REC-xml-stylesheet-19990629'><em>style
  sheet processing instruction</em></a>.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="StyleSheets-StyleSheetList"
  name='StyleSheets-StyleSheetList'>StyleSheetList</a></i></b>
  (introduced in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>StyleSheetList</code> interface provides the
  abstraction of an ordered collection of style sheets.</p>
  
  <p>The items in the <code>StyleSheetList</code> are accessible via
  an integral index, starting from 0.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface StyleSheetList {
    readonly attribute unsigned long    length;
    StyleSheet         item(in unsigned long index);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="StyleSheets-StyleSheetList-length"
  name='StyleSheets-StyleSheetList-length'>length</a></code> of type
  <code>unsigned long</code>, readonly</dt>
  
  <dd>The number of <a
  href='stylesheets.html#StyleSheets-StyleSheet'><code>StyleSheets</code></a>
  in the list. The range of valid child stylesheet indices is
  <code>0</code> to <code>length-1</code> inclusive.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="StyleSheets-StyleSheetList-item"
  name='StyleSheets-StyleSheetList-item'>item</a></code></dt>
  
  <dd>
  <div class='method'>Used to retrieve a style sheet by ordinal
  index. If index is greater than or equal to the number of style
  sheets in the list, this returns <code>null</code>. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>Index into the collection<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='stylesheets.html#StyleSheets-StyleSheet'><code>StyleSheet</code></a></p>
  </td>
  <td>
  <p>The style sheet at the <code>index</code> position in the
  <code>StyleSheetList</code>, or <code>null</code> if that is not a
  valid index.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="StyleSheets-MediaList"
  name='StyleSheets-MediaList'>MediaList</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>MediaList</code> interface provides the abstraction of
  an ordered collection of <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/types.html#h-6.13'>
  <em>media</em></a>, without defining or constraining how this
  collection is implemented. An empty list is the same as a list that
  contains the medium <code>"all"</code>.</p>
  
  <p>The items in the <code>MediaList</code> are accessible via an
  integral index, starting from 0.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface MediaList {
             attribute DOMString        mediaText;
                                          // raises(DOMException) on setting
  
    readonly attribute unsigned long    length;
    DOMString          item(in unsigned long index);
    void               deleteMedium(in DOMString oldMedium)
                                          raises(DOMException);
    void               appendMedium(in DOMString newMedium)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="StyleSheets-MediaList-length"
  name='StyleSheets-MediaList-length'>length</a></code> of type
  <code>unsigned long</code>, readonly</dt>
  
  <dd>The number of media in the list. The range of valid media is
  <code>0</code> to <code>length-1</code> inclusive.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="StyleSheets-MediaList-mediaText"
  name='StyleSheets-MediaList-mediaText'>mediaText</a></code> of type
  <code>DOMString</code></dt>
  
  <dd>The parsable textual representation of the media list. This is
  a comma-separated list of media.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>SYNTAX_ERR: Raised if the specified string value has a syntax
  error and is unparsable.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="StyleSheets-MediaList-appendMedium"
  name='StyleSheets-MediaList-appendMedium'>appendMedium</a></code></dt>
  
  <dd>
  <div class='method'>Adds the medium <code>newMedium</code> to the
  end of the list. If the <code>newMedium</code> is already used, it
  is first removed. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>newMedium</code> of type
  <code>DOMString</code></dt>
  
  <dd>The new medium to add.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_CHARACTER_ERR: If the medium contains characters that
  are invalid in the underlying style language.</p>
  
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this list is
  readonly.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="StyleSheets-MediaList-deleteMedium"
  name='StyleSheets-MediaList-deleteMedium'>deleteMedium</a></code></dt>
  
  <dd>
  <div class='method'>Deletes the medium indicated by
  <code>oldMedium</code> from the list. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>oldMedium</code> of type
  <code>DOMString</code></dt>
  
  <dd>The medium to delete in the media list.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this list is
  readonly.</p>
  
  <p>NOT_FOUND_ERR: Raised if <code>oldMedium</code> is not in the
  list.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="StyleSheets-MediaList-item"
  name='StyleSheets-MediaList-item'>item</a></code></dt>
  
  <dd>
  <div class='method'>Returns the <code>index</code>th in the list.
  If <code>index</code> is greater than or equal to the number of
  media in the list, this returns <code>null</code>. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>index</code> of type
  <code>unsigned long</code></dt>
  
  <dd>Index into the collection.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMString</code></p>
  </td>
  <td>
  <p>The medium at the <code>index</code>th position in the
  <code>MediaList</code>, or <code>null</code> if that is not a valid
  index.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 StyleSheets-fundamental -->
  <div class='div2'><a id="StyleSheets-extensions"
  name='StyleSheets-extensions'></a> 
  
  <h2 id='StyleSheets-extensions-h2' class='div2'>1.3. Document
  Extensions</h2>
  
  <dl>
  <dt><b>Interface <i><a id="StyleSheets-LinkStyle"
  name='StyleSheets-LinkStyle'>LinkStyle</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>LinkStyle</code> interface provides a mechanism by
  which a style sheet can be retrieved from the node responsible for
  linking it into a document. An instance of the
  <code>LinkStyle</code> interface can be obtained using
  binding-specific casting methods on an instance of a linking node
  (<code>HTMLLinkElement</code>, <code>HTMLStyleElement</code> or
  <code>ProcessingInstruction</code> in DOM Level 2).</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface LinkStyle {
    readonly attribute StyleSheet       sheet;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="StyleSheets-LinkStyle-sheet"
  name='StyleSheets-LinkStyle-sheet'>sheet</a></code> of type <a
  href='stylesheets.html#StyleSheets-StyleSheet'><code>StyleSheet</code></a>,
  readonly</dt>
  
  <dd>The style sheet.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="StyleSheets-StyleSheet-DocumentStyle"
  name='StyleSheets-StyleSheet-DocumentStyle'>DocumentStyle</a></i></b>
  (introduced in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>DocumentStyle</code> interface provides a mechanism by
  which the style sheets embedded in a document can be retrieved. The
  expectation is that an instance of the <code>DocumentStyle</code>
  interface can be obtained by using binding-specific casting methods
  on an instance of the <code>Document</code> interface.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface DocumentStyle {
    readonly attribute StyleSheetList   styleSheets;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="StyleSheets-DocumentStyle-styleSheets"
  name='StyleSheets-DocumentStyle-styleSheets'>styleSheets</a></code>
  of type <a
  href='stylesheets.html#StyleSheets-StyleSheetList'><code>StyleSheetList</code></a>,
  readonly</dt>
  
  <dd>A list containing all the style sheets explicitly linked into
  or embedded in a document. For HTML documents, this includes
  external style sheets, included via the HTML <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/struct/links.html#h-12.3'>
  <em>LINK</em></a> element, and inline <a
  href='http://www.w3.org/TR/1998/REC-html40-19980424/present/styles.html#h-14.2.3'>
  <em>STYLE</em></a> elements. In XML, this includes external style
  sheets, included via style sheet processing instructions (see [<a
  class='noxref'
  href='references.html#XML-StyleSheet'>XML-StyleSheet</a>]).<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 StyleSheets-extensions -->
  <div class='div2'><a id="StyleSheets-Association"
  name='StyleSheets-Association'></a> 
  
  <h2 id='StyleSheets-Association-h2' class='div2'>1.4. Association
  between a style sheet and a document.</h2>
  
  <dl>
  <dt><b>HTML and Style Sheet Creation</b></dt>
  
  <dd>A style sheet can be associated with an HTMLDocument in one of
  two ways: 
  
  <ul>
  <li>By creating a new LINK HTML element (see the
  <code>HTMLLinkElement</code> interface in the [<a class='noxref'
  href='references.html#DOMHTML-inf'>DOM Level 2 HTML</a>] and [<a
  class='noxref' href='references.html#HTML40'>HTML4.0</a>]). The
  underlying style sheet will be created after the element is
  inserted into the document and both the href and the type attribute
  have been set in a way indicating that the linked object is a style
  sheet.</li>
  
  <li>By creating a new STYLE HTML element (see the
  <code>HTMLStyleElement</code> interface in the [<a class='noxref'
  href='references.html#DOMHTML-inf'>DOM Level 2 HTML</a>] and [<a
  class='noxref' href='references.html#HTML40'>HTML4.0</a>]). The
  underlying style sheet will be created after the element is
  inserted into the document and the type attribute is set in a way
  indicating that the element corresponds to a style sheet language
  interpreted by the user agent.</li>
  </ul>
  </dd>
  
  <dt><b>HTML and Style Sheet Removal</b></dt>
  
  <dd>Removing a LINK HTML element or a STYLE HTML element removes
  the underlying style sheet from the style sheet collection
  associated with a document. Specifically, the removed style sheet
  is no longer applied to the presentation of the document.</dd>
  
  <dt><b>XML and Style Sheet Creation</b></dt>
  
  <dd>A new style sheet can be created and associated with an XML
  document by creating a processing instruction with the target
  'xml-stylesheet' [<a class='noxref'
  href='references.html#XML-StyleSheet'>XML-StyleSheet</a>] and
  inserting it into the document.</dd>
  
  <dt><b>XML and Style Sheet Removal</b></dt>
  
  <dd>Removing a processing instruction with a target of
  'xml-stylesheet' [<a class='noxref'
  href='references.html#XML-StyleSheet'>XML-StyleSheet</a>] removes
  the underlying style sheet from the style sheet collection
  associated with a document. Specifically, the removed style sheet
  is no longer applied to the presentation of the document.</dd>
  </dl>
  </div>
  
  <!-- div2 StyleSheets-Association --></div>
  
  <!-- div1 StyleSheets -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='copyright-notice.html'>previous</a> &nbsp;
  <a accesskey='n' href='css.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/idl/css.idl
  
  Index: css.idl
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  // File: http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/css.idl
  
  #ifndef _CSS_IDL_
  #define _CSS_IDL_
  
  #include "dom.idl"
  #include "stylesheets.idl"
  #include "views.idl"
  
  #pragma prefix "dom.w3c.org"
  module css
  {
  
    typedef dom::DOMString DOMString;
    typedef dom::Element Element;
    typedef dom::DOMImplementation DOMImplementation;
  
    interface CSSRule;
    interface CSSStyleSheet;
    interface CSSStyleDeclaration;
    interface CSSValue;
    interface Counter;
    interface Rect;
    interface RGBColor;
  
    // Introduced in DOM Level 2:
    interface CSSRuleList {
      readonly attribute unsigned long    length;
      CSSRule            item(in unsigned long index);
    };
  
    // Introduced in DOM Level 2:
    interface CSSRule {
  
      // RuleType
      const unsigned short      UNKNOWN_RULE                   = 0;
      const unsigned short      STYLE_RULE                     = 1;
      const unsigned short      CHARSET_RULE                   = 2;
      const unsigned short      IMPORT_RULE                    = 3;
      const unsigned short      MEDIA_RULE                     = 4;
      const unsigned short      FONT_FACE_RULE                 = 5;
      const unsigned short      PAGE_RULE                      = 6;
  
      readonly attribute unsigned short   type;
               attribute DOMString        cssText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute CSSStyleSheet    parentStyleSheet;
      readonly attribute CSSRule          parentRule;
    };
  
    // Introduced in DOM Level 2:
    interface CSSStyleRule : CSSRule {
               attribute DOMString        selectorText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute CSSStyleDeclaration  style;
    };
  
    // Introduced in DOM Level 2:
    interface CSSMediaRule : CSSRule {
      readonly attribute stylesheets::MediaList  media;
      readonly attribute CSSRuleList      cssRules;
      unsigned long      insertRule(in DOMString rule, 
                                    in unsigned long index)
                                          raises(dom::DOMException);
      void               deleteRule(in unsigned long index)
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface CSSFontFaceRule : CSSRule {
      readonly attribute CSSStyleDeclaration  style;
    };
  
    // Introduced in DOM Level 2:
    interface CSSPageRule : CSSRule {
               attribute DOMString        selectorText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute CSSStyleDeclaration  style;
    };
  
    // Introduced in DOM Level 2:
    interface CSSImportRule : CSSRule {
      readonly attribute DOMString        href;
      readonly attribute stylesheets::MediaList  media;
      readonly attribute CSSStyleSheet    styleSheet;
    };
  
    // Introduced in DOM Level 2:
    interface CSSCharsetRule : CSSRule {
               attribute DOMString        encoding;
                                          // raises(dom::DOMException) on setting
  
    };
  
    // Introduced in DOM Level 2:
    interface CSSUnknownRule : CSSRule {
    };
  
    // Introduced in DOM Level 2:
    interface CSSStyleDeclaration {
               attribute DOMString        cssText;
                                          // raises(dom::DOMException) on setting
  
      DOMString          getPropertyValue(in DOMString propertyName);
      CSSValue           getPropertyCSSValue(in DOMString propertyName);
      DOMString          removeProperty(in DOMString propertyName)
                                          raises(dom::DOMException);
      DOMString          getPropertyPriority(in DOMString propertyName);
      void               setProperty(in DOMString propertyName, 
                                     in DOMString value, 
                                     in DOMString priority)
                                          raises(dom::DOMException);
      readonly attribute unsigned long    length;
      DOMString          item(in unsigned long index);
      readonly attribute CSSRule          parentRule;
    };
  
    // Introduced in DOM Level 2:
    interface CSSValue {
  
      // UnitTypes
      const unsigned short      CSS_INHERIT                    = 0;
      const unsigned short      CSS_PRIMITIVE_VALUE            = 1;
      const unsigned short      CSS_VALUE_LIST                 = 2;
      const unsigned short      CSS_CUSTOM                     = 3;
  
               attribute DOMString        cssText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute unsigned short   cssValueType;
    };
  
    // Introduced in DOM Level 2:
    interface CSSPrimitiveValue : CSSValue {
  
      // UnitTypes
      const unsigned short      CSS_UNKNOWN                    = 0;
      const unsigned short      CSS_NUMBER                     = 1;
      const unsigned short      CSS_PERCENTAGE                 = 2;
      const unsigned short      CSS_EMS                        = 3;
      const unsigned short      CSS_EXS                        = 4;
      const unsigned short      CSS_PX                         = 5;
      const unsigned short      CSS_CM                         = 6;
      const unsigned short      CSS_MM                         = 7;
      const unsigned short      CSS_IN                         = 8;
      const unsigned short      CSS_PT                         = 9;
      const unsigned short      CSS_PC                         = 10;
      const unsigned short      CSS_DEG                        = 11;
      const unsigned short      CSS_RAD                        = 12;
      const unsigned short      CSS_GRAD                       = 13;
      const unsigned short      CSS_MS                         = 14;
      const unsigned short      CSS_S                          = 15;
      const unsigned short      CSS_HZ                         = 16;
      const unsigned short      CSS_KHZ                        = 17;
      const unsigned short      CSS_DIMENSION                  = 18;
      const unsigned short      CSS_STRING                     = 19;
      const unsigned short      CSS_URI                        = 20;
      const unsigned short      CSS_IDENT                      = 21;
      const unsigned short      CSS_ATTR                       = 22;
      const unsigned short      CSS_COUNTER                    = 23;
      const unsigned short      CSS_RECT                       = 24;
      const unsigned short      CSS_RGBCOLOR                   = 25;
  
      readonly attribute unsigned short   primitiveType;
      void               setFloatValue(in unsigned short unitType, 
                                       in float floatValue)
                                          raises(dom::DOMException);
      float              getFloatValue(in unsigned short unitType)
                                          raises(dom::DOMException);
      void               setStringValue(in unsigned short stringType, 
                                        in DOMString stringValue)
                                          raises(dom::DOMException);
      DOMString          getStringValue()
                                          raises(dom::DOMException);
      Counter            getCounterValue()
                                          raises(dom::DOMException);
      Rect               getRectValue()
                                          raises(dom::DOMException);
      RGBColor           getRGBColorValue()
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface CSSValueList : CSSValue {
      readonly attribute unsigned long    length;
      CSSValue           item(in unsigned long index);
    };
  
    // Introduced in DOM Level 2:
    interface RGBColor {
      readonly attribute CSSPrimitiveValue  red;
      readonly attribute CSSPrimitiveValue  green;
      readonly attribute CSSPrimitiveValue  blue;
    };
  
    // Introduced in DOM Level 2:
    interface Rect {
      readonly attribute CSSPrimitiveValue  top;
      readonly attribute CSSPrimitiveValue  right;
      readonly attribute CSSPrimitiveValue  bottom;
      readonly attribute CSSPrimitiveValue  left;
    };
  
    // Introduced in DOM Level 2:
    interface Counter {
      readonly attribute DOMString        identifier;
      readonly attribute DOMString        listStyle;
      readonly attribute DOMString        separator;
    };
  
    // Introduced in DOM Level 2:
    interface ElementCSSInlineStyle {
      readonly attribute CSSStyleDeclaration  style;
    };
  
    // Introduced in DOM Level 2:
    interface CSS2Properties {
               attribute DOMString        azimuth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        background;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundAttachment;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundImage;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundPosition;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        backgroundRepeat;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        border;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderCollapse;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderSpacing;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderTop;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderRight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderBottom;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderLeft;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderTopColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderRightColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderBottomColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderLeftColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderTopStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderRightStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderBottomStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderLeftStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderTopWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderRightWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderBottomWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderLeftWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        borderWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        bottom;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        captionSide;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        clear;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        clip;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        color;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        content;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        counterIncrement;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        counterReset;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cue;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cueAfter;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cueBefore;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cursor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        direction;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        display;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        elevation;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        emptyCells;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        cssFloat;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        font;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontFamily;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontSize;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontSizeAdjust;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontStretch;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontVariant;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        fontWeight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        height;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        left;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        letterSpacing;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        lineHeight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        listStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        listStyleImage;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        listStylePosition;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        listStyleType;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        margin;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marginTop;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marginRight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marginBottom;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marginLeft;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        markerOffset;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        marks;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        maxHeight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        maxWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        minHeight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        minWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        orphans;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        outline;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        outlineColor;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        outlineStyle;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        outlineWidth;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        overflow;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        padding;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        paddingTop;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        paddingRight;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        paddingBottom;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        paddingLeft;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        page;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pageBreakAfter;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pageBreakBefore;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pageBreakInside;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pause;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pauseAfter;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pauseBefore;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pitch;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        pitchRange;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        playDuring;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        position;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        quotes;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        richness;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        right;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        size;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speak;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speakHeader;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speakNumeral;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speakPunctuation;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        speechRate;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        stress;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        tableLayout;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textAlign;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textDecoration;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textIndent;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textShadow;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        textTransform;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        top;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        unicodeBidi;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        verticalAlign;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        visibility;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        voiceFamily;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        volume;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        whiteSpace;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        widows;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        width;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        wordSpacing;
                                          // raises(dom::DOMException) on setting
  
               attribute DOMString        zIndex;
                                          // raises(dom::DOMException) on setting
  
    };
  
    // Introduced in DOM Level 2:
    interface CSSStyleSheet : stylesheets::StyleSheet {
      readonly attribute CSSRule          ownerRule;
      readonly attribute CSSRuleList      cssRules;
      unsigned long      insertRule(in DOMString rule, 
                                    in unsigned long index)
                                          raises(dom::DOMException);
      void               deleteRule(in unsigned long index)
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface ViewCSS : views::AbstractView {
      CSSStyleDeclaration getComputedStyle(in Element elt, 
                                           in DOMString pseudoElt);
    };
  
    // Introduced in DOM Level 2:
    interface DocumentCSS : stylesheets::DocumentStyle {
      CSSStyleDeclaration getOverrideStyle(in Element elt, 
                                           in DOMString pseudoElt);
    };
  
    // Introduced in DOM   Level 2:
    interface DOMImplementationCSS : DOMImplementation {
      CSSStyleSheet      createCSSStyleSheet(in DOMString title, 
                                             in DOMString media)
                                          raises(dom::DOMException);
    };
  };
  
  #endif // _CSS_IDL_
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/idl/stylesheets.idl
  
  Index: stylesheets.idl
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  // File: http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/stylesheets.idl
  
  #ifndef _STYLESHEETS_IDL_
  #define _STYLESHEETS_IDL_
  
  #include "dom.idl"
  
  #pragma prefix "dom.w3c.org"
  module stylesheets
  {
  
    typedef dom::DOMString DOMString;
    typedef dom::Node Node;
  
    interface MediaList;
  
    // Introduced in DOM Level 2:
    interface StyleSheet {
      readonly attribute DOMString        type;
               attribute boolean          disabled;
      readonly attribute Node             ownerNode;
      readonly attribute StyleSheet       parentStyleSheet;
      readonly attribute DOMString        href;
      readonly attribute DOMString        title;
      readonly attribute MediaList        media;
    };
  
    // Introduced in DOM Level 2:
    interface StyleSheetList {
      readonly attribute unsigned long    length;
      StyleSheet         item(in unsigned long index);
    };
  
    // Introduced in DOM Level 2:
    interface MediaList {
               attribute DOMString        mediaText;
                                          // raises(dom::DOMException) on setting
  
      readonly attribute unsigned long    length;
      DOMString          item(in unsigned long index);
      void               deleteMedium(in DOMString oldMedium)
                                          raises(dom::DOMException);
      void               appendMedium(in DOMString newMedium)
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface LinkStyle {
      readonly attribute StyleSheet       sheet;
    };
  
    // Introduced in DOM Level 2:
    interface DocumentStyle {
      readonly attribute StyleSheetList   styleSheets;
    };
  };
  
  #endif // _STYLESHEETS_IDL_
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/images/REC.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/style/images/w3c_home.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/COPYRIGHT.html
  
  Index: COPYRIGHT.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
                        "http://www.w3.org/TR/REC-html40/loose.dtd">
  <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>W3C IPR SOFTWARE NOTICE</title>
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
      <h1>
        W3C IPR SOFTWARE NOTICE
      </h1>
      <h3>
        Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
        Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</loc>, <loc
        href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
        Reserved.
      </h3>
      <p>
        The DOM bindings are published under the W3C Software Copyright Notice
        and License. The software license requires "Notice of any changes or
        modifications to the W3C files, including the date changes were made."
        Consequently, modified versions of the DOM bindings must document that
        they do not conform to the W3C standard; in the case of the IDL binding,
        the pragma prefix can no longer be 'w3c.org'; in the case of the Java
        binding, the package names can no longer be in the 'org.w3c' package.
      </p>
      <p>
        <b>Note:</b> The original version of the W3C Software Copyright Notice
        and License could be found at <a
        href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
      </p>
      <h3>
        Copyright &copy; 1994-2000 <a href="http://www.w3.org/">World Wide Web
        Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</a>, <a
        href="http://www.keio.ac.jp/">Keio University</a>). All Rights
        Reserved. http://www.w3.org/Consortium/Legal/
      </h3>
      <p>
        This W3C work (including software, documents, or other related items) is
        being provided by the copyright holders under the following license. By
        obtaining, using and/or copying this work, you (the licensee) agree that
        you have read, understood, and will comply with the following terms and
        conditions:
      </p>
      <p>
        Permission to use, copy, and modify this software and its documentation,
        with or without modification,&nbsp; for any purpose and without fee or
        royalty is hereby granted, provided that you include the following on ALL
        copies of the software and documentation or portions thereof, including
        modifications, that you make:
      </p>
      <ol>
        <li>
  	The full text of this NOTICE in a location viewable to users of the
  	redistributed or derivative work.
        </li>
        <li>
  	Any pre-existing intellectual property disclaimers, notices, or terms
  	and conditions. If none exist, a short notice of the following form
  	(hypertext is preferred, text is permitted) should be used within the
  	body of any redistributed or derivative code: "Copyright &copy;
  	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
  	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
  	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
  	National de Recherche en Informatique et en Automatique</a>, <a
  	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
  	Reserved. http://www.w3.org/Consortium/Legal/"
        </li>
        <li>
  	Notice of any changes or modifications to the W3C files, including the
  	date changes were made. (We recommend you provide URIs to the location
  	from which the code is derived.)
        </li>
      </ol>
      <p>
        THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
        HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
        INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
        FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
        DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
        TRADEMARKS OR OTHER RIGHTS.
      </p>
      <p>
        COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
        CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
        DOCUMENTATION.
      </p>
      <p>
        The name and trademarks of copyright holders may NOT be used in
        advertising or publicity pertaining to the software without specific,
        written prior permission. Title to copyright in this software and any
        associated documentation will at all times remain with copyright
        holders.
      </p>
    </body>
  </html>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/Overview.html
  
  Index: Overview.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:52 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model (DOM) Level 2 Traversal and Range
  Specification</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='expanded-toc.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='n'
  href='expanded-toc.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='head'>
  <p><a href='http://www.w3.org/'><img height='48' width='72'
  alt='W3C' src='./images/w3c_home.gif' /></a></p>
  
  <h1 id='title'>Document Object Model (DOM) Level 2 Traversal and
  Range Specification</h1>
  
  <h2 id='version'>Version 1.0</h2>
  
  <!-- REC-DOM-Level-2-Traversal-Range-20001113
   -->
  <h2 id='W3C-doctype'>W3C Recommendation <i>13 November,
  2000</i></h2>
  
  <dl>
  <dt>This version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>
  http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113</a><br />
   (<a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/DOM2-Traversal-Range.ps'>
  PostScript file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/DOM2-Traversal-Range.pdf'>
  PDF file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/DOM2-Traversal-Range.txt'>
  plain text</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/DOM2-Traversal-Range.zip'>
  ZIP file</a>)</dd>
  
  <dt>Latest version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/DOM-Level-2-Traversal-Range'>http://www.w3.org/TR/DOM-Level-2-Traversal-Range</a></dd>
  
  <dt>Previous version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Traversal-Range-20000927'>
  http://www.w3.org/TR/2000/PR-DOM-Level-2-Traversal-Range-20000927</a></dd>
  </dl>
  
  <dl>
  <dt>Editors:</dt>
  
  <dd>Joe Kesselman, <i>IBM</i></dd>
  
  <dd>Jonathan Robie, <i>Texcel Research and Software AG</i></dd>
  
  <dd>Mike Champion, <i>Arbortext and Software AG</i></dd>
  
  <dd>Peter Sharpe, <i>SoftQuad Software Inc.</i></dd>
  
  <dd>Vidur Apparao, <i>Netscape Communications Corp.</i></dd>
  
  <dd>Lauren Wood, <i>SoftQuad Software Inc., WG Chair</i></dd>
  </dl>
  
  <p class='copyright'>Copyright &copy; 2000 <a
  href='http://www.w3.org/'><abbr
  title='World Wide Web Consortium'>W3C</abbr></a><sup>&reg;</sup>
  (<a href='http://www.lcs.mit.edu/'><abbr
  title='Massachusetts Institute of Technology'>MIT</abbr></a>, <a
  href='http://www.inria.fr/'><abbr lang='fr'
  title='Institut National de Recherche en Informatique et Automatique'>
  INRIA</abbr></a>, <a href='http://www.keio.ac.jp/'>Keio</a>), All
  Rights Reserved. W3C <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer'>
  liability</a>, <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks'>
  trademark</a>, <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  document use</a> and <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  software licensing</a> rules apply.</p>
  </div>
  
  <hr title='separator from header' />
  <h2 id='abstract'>Abstract</h2>
  
  <div class='abstract'>
  <p>This specification defines the Document Object Model Level 2
  Traversal and Range, platform- and language-neutral interfaces that
  allow programs and scripts to dynamically traverse and identify a
  range of content in a document. The Document Object Model Level 2
  Traversal and Range build on the Document Object Model Level 2 Core
  [<a class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <p>The DOM Level 2 Traversal and Range specification is composed of
  two modules. The two modules contain specialized interfaces
  dedicated to traversing the document structure and identifying and
  manipulating a range in a document.</p>
  </div>
  
  <h2 id='status'>Status of this document</h2>
  
  <div class='status'>
  <p><em>This section describes the status of this document at the
  time of its publication. Other documents may supersede this
  document. The latest status of this document series is maintained
  at the W3C.</em></p>
  
  <p>This document has been reviewed by W3C Members and other
  interested parties and has been endorsed by the Director as a <a
  href='http://www.w3.org/Consortium/Process/Process-19991111/tr.html#RecsW3C'>
  W3C Recommendation</a>. It is a stable document and may be used as
  reference material or cited as a normative reference from another
  document. W3C's role in making the Recommendation is to draw
  attention to the specification and to promote its widespread
  deployment. This enhances the functionality and interoperability of
  the Web.</p>
  
  <p>This document has been produced as part of the <a
  href='http://www.w3.org/DOM/Activity.html'>W3C DOM Activity</a>.
  The authors of this document are the DOM Working Group members.
  Different modules of the Document Object Model have different
  editors.</p>
  
  <p>Please send general comments about this document to the public
  mailing list <a href='mailto:www-dom@w3.org'>www-dom@w3.org</a>. An
  <a href='http://lists.w3.org/Archives/Public/www-dom/'>archive</a>
  is available at http://lists.w3.org/Archives/Public/www-dom/.</p>
  
  <p>The English version of this specification is the only normative
  version. Information about <a
  href='http://www.w3.org/2000/11/DOM-Level-2-translations'>translations</a>
  of this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-translations.</p>
  
  <p>The <a href='http://www.w3.org/2000/11/DOM-Level-2-errata'>list
  of known errors</a> in this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-errata</p>
  
  <p>A list of <a href='http://www.w3.org/TR/'>current W3C
  Recommendations and other technical documents</a> can be found at
  http://www.w3.org/TR.</p>
  </div>
  
  <h2 id='table-of-contents'><a id="contents" name='contents'>Table
  of contents</a></h2>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='traversal.html'>Chapter 1: Document Object Model
  Traversal</a></li>
  
  <li class='tocline2'><a class='tocxref' href='ranges.html'>Chapter
  2: Document Object Model Range</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix A: IDL Definitions</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix B: Java Language Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix C: ECMAScript Language
  Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix D: Acknowledgements</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='glossary.html'>Glossary</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='n' href='expanded-toc.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/W3C-REC.css
  
  Index: W3C-REC.css
  ===================================================================
  /* This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  */
  /* Style for a "Recommendation" */
  
  /*
     This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  
     Acknowledgments:
  
     - 'background-color' doesn't work on Mac IE 3, but 'background'
       does (Susan Lesch <le...@macvirus.com>)
  
     - 'smaller' leads to illegible text in both Mac IE and Mac NS,
       'small' is better: works in Mac NS, but is always 12pt in Mac IE
       3 (Susan Lesch <le...@macvirus.com>)
  
     $Id: W3C-REC.css,v 1.1 2001/06/01 11:14:09 dims Exp $
  */
  
  body {
    margin: 2em 1em 2em 70px;
    font-family: sans-serif;
    color: black;
    background: white;
    background-position: top left;
    background-attachment: fixed;
    background-repeat: no-repeat;
  }
  
  th, td { /* ns 4 */
    font-family: sans-serif;
  }
  
  h1, h2, h3, h4, h5, h6 { text-align: left }
  h1, h2, h3 { color: #005A9C }
  h1 { font: 170% sans-serif }
  h2 { font: 140% sans-serif }
  h3 { font: 120% sans-serif }
  h4 { font: bold 100% sans-serif }
  h5 { font: italic 100% sans-serif }
  h6 { font: small-caps 100% sans-serif }
  
  .hide { display: none }
  
  div.head { margin-bottom: 1em }
  div.head h1 { margin-top: 2em; clear: both }
  div.head table { margin-left: 2em; margin-top: 2em }
  div.head img { color: white; border: none } /* remove border from top image */
  
  p.copyright { font-size: small }
  p.copyright small { font-size: small }
  
  @media screen {  /* hide from IE3 */
  a:hover { background: #ffa } 
  }
  
  pre { margin-left: 2em }
  /*
  p {
    margin-top: 0.6em;
    margin-bottom: 0.6em;
  }
  */
  dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
  dt { font-weight: bold }
  
  pre, code { font-family: monospace } /* navigator 4 requires this */
  
  ul.toc {
    list-style: disc;		/* Mac NS has problem with 'none' */
    list-style: none;
  }
  
  @media aural {  
    h1, h2, h3 { stress: 20; richness: 90 }
    .hide { speak: none }
    p.copyright { volume: x-soft; speech-rate: x-fast }
    dt { pause-before: 20% }
    pre { speak-punctuation: code } 
  }
  
  /* Things (icons) that should only show up in projection mode */
  .projection { display: none }
  @media projection { .projection { display: inline } }
  
  
  body {
    background-image: url(http://www.w3.org/StyleSheets/TR/logo-REC);
  }
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/acknowledgements.html
  
  Index: acknowledgements.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:46:17 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Acknowledgements</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='glossary.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='ecma-script-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='ecma-script-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='glossary.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="contributors" name='contributors'></a> 
  
  <h1 id='contributors-h1' class='adiv1'>Appendix D:
  Acknowledgements</h1>
  
  <p>Many people contributed to this specification, including members
  of the DOM Working Group and the DOM Interest Group. We especially
  thank the following:</p>
  
  <p>Lauren Wood (SoftQuad Software Inc., <em>chair</em>), Andrew
  Watson (Object Management Group), Andy Heninger (IBM), Arnaud Le
  Hors (W3C and IBM), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea
  (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris
  Wilson (Microsoft), David Brownell (Sun), David Singer (IBM), Don
  Park (invited), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian
  Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared
  Sorensen (Novell), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe
  Marini (Macromedia), Johnny Stenback (Netscape), Jonathan Marsh
  (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim
  Adamson-Sharpe (SoftQuad Software Inc.), Laurence Cable (Sun), Mark
  Davis (IBM), Mark Scardina (Oracle), Martin D&uuml;rst (W3C), Mick
  Goulish (Software AG), Mike Champion (Arbortext and Software AG),
  Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso
  (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton
  (Netscape), Philippe Le H&eacute;garet (W3C, <em>W3C team
  contact</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer
  (iMall, Excite@Home and Netscape), Rich Rollman (Microsoft), Rick
  Gessner (Netscape), Scott Isaacs (Microsoft), Sharon Adler (INSO),
  Steve Byrne (JavaSoft), Tim Bray (invited), Tom Pixley (Netscape),
  Vidur Apparao (Netscape), Vinod Anupam (Lucent).</p>
  
  <p>Thanks to all those who have helped to improve this
  specification by sending suggestions and corrections.</p>
  
  <div class='div2'><a id="Productions" name='Productions'></a> 
  
  <h2 id='Productions-h2' class='adiv2'>D.1: Production Systems</h2>
  
  <p>This specification was written in XML. The HTML, OMG IDL, Java
  and ECMA Script bindings were all produced automatically.</p>
  
  <p>Thanks to Joe English, author of <a
  href='http://www.flightlab.com/cost'>cost</a>, which was used as
  the basis for producing DOM Level 1. Thanks also to Gavin Nicol,
  who wrote the scripts which run on top of cost. Arnaud Le Hors and
  Philippe Le H&eacute;garet maintained the scripts.</p>
  
  <p>For DOM Level 2, we used <a
  href='http://xml.apache.org/xerces-j'>Xerces</a> as the basis DOM
  implementation and wish to thank the authors. Philippe Le
  H&eacute;garet and Arnaud Le Hors wrote the <a
  href='http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/'>
  Java programs</a> which are the DOM application.</p>
  
  <p>Thanks also to Jan K&auml;rrman, author of <a
  href='http://www.tdb.uu.se/~jan/html2ps.html'>html2ps</a>, which we
  use in creating the PostScript version of the specification.</p>
  </div>
  
  <!-- div2 Productions --></div>
  
  <!-- div1 contributors -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='ecma-script-binding.html'>previous</a>
  &nbsp; <a accesskey='n' href='glossary.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/copyright-notice.html
  
  Index: copyright-notice.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:53 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Copyright Notice</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='traversal.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='expanded-toc.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='expanded-toc.html'>previous</a> &nbsp; <a accesskey='n'
  href='traversal.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Copyright-Notice"
  name='Copyright-Notice'></a> 
  
  <h1 id='Copyright-Notice-h1' class='div1'>Copyright Notice</h1>
  
  <p><b>Copyright &copy; 2000 <a href='http://www.w3.org/'>World Wide
  Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p>This document is published under the <a
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a>. The bindings within this document
  are published under the <a
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a>. The software license requires
  "Notice of any changes or modifications to the W3C files, including
  the date changes were made." Consequently, modified versions of the
  DOM bindings must document that they do not conform to the W3C
  standard; in the case of the IDL definitions, the pragma prefix can
  no longer be 'w3c.org'; in the case of the Java Language binding,
  the package names can no longer be in the 'org.w3c' package.</p>
  
  <div class='div2'><a id="Copyright-notice-document"
  name='Copyright-notice-document'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-document-h2' class='div2'>W3C Document
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Document Notice
  and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  http://www.w3.org/Consortium/Legal/copyright-documents-19990405</a>.</p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>Public documents on the W3C site are provided by the copyright
  holders under the following license. The software or Document Type
  Definitions (DTDs) associated with W3C specifications are governed
  by the <a
  href='http://www.w3.org/Consortium/Legal/copyright-software.html'>Software
  Notice</a>. By using and/or copying this document, or the W3C
  document from which this statement is linked, you (the licensee)
  agree that you have read, understood, and will comply with the
  following terms and conditions:</p>
  
  <p>Permission to use, copy, and distribute the contents of this
  document, or the W3C document from which this statement is linked,
  in any medium for any purpose and without fee or royalty is hereby
  granted, provided that you include the following on <em>ALL</em>
  copies of the document, or portions thereof, that you use:</p>
  
  <ol>
  <li>A link or URL to the original W3C document.</li>
  
  <li>The pre-existing copyright notice of the original author, or if
  it doesn't exist, a notice of the form: "Copyright &copy;
  [$date-of-document] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/" (Hypertext is
  preferred, but a textual representation is permitted.)</li>
  
  <li><em>If it exists</em>, the STATUS of the W3C document.</li>
  </ol>
  
  <p>When space permits, inclusion of the full text of this
  <b>NOTICE</b> should be provided. We request that authorship
  attribution be provided in any software, documents, or other items
  or products that you create pursuant to the implementation of the
  contents of this document, or any portion thereof.</p>
  
  <p>No right to create modifications or derivatives of W3C documents
  is granted pursuant to this license. However, if additional
  requirements (documented in the <a
  href='http://www.w3.org/Consortium/Legal/IPR-FAQ.html'>Copyright
  FAQ</a>) are satisfied, the right to create modifications or
  derivatives is sometimes granted by the W3C to individuals
  complying with those requirements.</p>
  
  <p>THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
  REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT
  NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS
  OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
  IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
  PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS
  THEREOF.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to this document or its
  contents without specific, written prior permission. Title to
  copyright in this document will at all times remain with copyright
  holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-document -->
  <div class='div2'><a id="Copyright-notice-software"
  name='Copyright-notice-software'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-software-h2' class='div2'>W3C Software
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Software
  Copyright Notice and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  http://www.w3.org/Consortium/Legal/copyright-software-19980720</a></p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>This W3C work (including software, documents, or other related
  items) is being provided by the copyright holders under the
  following license. By obtaining, using and/or copying this work,
  you (the licensee) agree that you have read, understood, and will
  comply with the following terms and conditions:</p>
  
  <p>Permission to use, copy, and modify this software and its
  documentation, with or without modification, for any purpose and
  without fee or royalty is hereby granted, provided that you include
  the following on ALL copies of the software and documentation or
  portions thereof, including modifications, that you make:</p>
  
  <ol>
  <li>The full text of this NOTICE in a location viewable to users of
  the redistributed or derivative work.</li>
  
  <li>Any pre-existing intellectual property disclaimers. If none
  exist, then a notice of the following form: "Copyright &copy;
  [$date-of-software] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/."</li>
  
  <li>Notice of any changes or modifications to the W3C files,
  including the date changes were made. (We recommend you provide
  URIs to the location from which the code is derived.)</li>
  </ol>
  
  <p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
  COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
  MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
  USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
  PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  SOFTWARE OR DOCUMENTATION.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to the software without
  specific, written prior permission. Title to copyright in this
  software and any associated documentation will at all times remain
  with copyright holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-software --></div>
  
  <!-- div1 Copyright-Notice -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='expanded-toc.html'>previous</a> &nbsp; <a
  accesskey='n' href='traversal.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/def-index.html
  
  Index: def-index.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:46:18 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Index</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='previous' href='references.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='references.html'>previous</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Index" name='Index'></a> 
  
  <h1 id='role-index' class='index'>Index</h1>
  
  <table
  summary='the table contains all keywords used in this document'>
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-Position'>16-bit unit</a> <a
  class='index-inst' href='ranges.html#Level-2-Range-Position'>1</a>,
  <a class='index-inst' href='ranges.html#td-selected'>2</a>, <a
  class='index-inst'
  href='ranges.html#Level2-Range-method-setStart'>3</a>, <a
  class='index-inst'
  href='ranges.html#Level2-Range-method-setEnd'>4</a>, <a
  class='index-inst' href='glossary.html#dt-16-bit-unit'>5</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-acceptNode'>acceptNode</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#TreeWalker-Robustness'>ancestor</a> <a
  class='index-inst'
  href='traversal.html#TreeWalker-Robustness'>1</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-parentNode'>2</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Deleting-Content'>3</a>, <a
  class='index-inst' href='glossary.html#dt-ancestor'>4</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-ancestor-container'>ancestor container</a> <a
  class='index-inst' href='ranges.html#td-ancestor-container'>1</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Position'>2</a>, <a
  class='index-inst' href='ranges.html#td-root-container'>3</a>, <a
  class='index-inst' href='ranges.html#td-partially-selected'>4</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Comparing'>5</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Deleting-Content'>6</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Misc'>7</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-attr-commonParent'>8</a>, <a
  class='index-inst'
  href='ranges.html#Level2-Range-method-insertNode'>9</a>, <a
  class='index-inst'
  href='ranges.html#Level2-Range-method-surroundContents'>10</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#RangeExceptionCode'>BAD_BOUNDARYPOINTS_ERR</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-comparison'>before/after/equal to</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-boundarypoint'>boundary-point</a> <a
  class='index-inst' href='ranges.html#td-boundarypoint'>1</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Position'>2</a>,
  <a class='index-inst' href='ranges.html#td-collapsed'>3</a>, <a
  class='index-inst' href='ranges.html#td-selected'>4</a>, <a
  class='index-inst' href='ranges.html#td-partially-selected'>5</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Notation'>6</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Creating'>7</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Changing'>8</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Inserting'>9</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-TreeWalker-firstChild'>child</a> <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-firstChild'>1</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-lastChild'>2</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Position'>3</a>,
  <a class='index-inst' href='glossary.html#dt-child'>4</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-cloneContents'>cloneContents</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-clone'>cloneRange</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-collapse'>collapse</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-attr-collapsed'>collapsed</a> <a
  class='index-inst'
  href='ranges.html#Level-2-Range-attr-collapsed'>1</a>, <a
  class='index-inst' href='ranges.html#td-collapsed'>2</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Changing'>3</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Deleting-Content'>4</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Deletions'>5</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-attr-commonParent'>commonAncestorContainer</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-compareBoundaryPoints'>compareBoundaryPoints</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-container'>container</a> <a class='index-inst'
  href='ranges.html#td-container'>1</a>, <a class='index-inst'
  href='ranges.html#Level-2-Range-Position'>2</a>, <a
  class='index-inst' href='ranges.html#td-collapsed'>3</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Creating'>4</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Changing'>5</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Comparing'>6</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Misc'>7</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Insertions'>8</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Deletions'>9</a>, <a
  class='index-inst'
  href='ranges.html#Level2-Range-method-insertNode'>10</a>, <a
  class='index-inst'
  href='ranges.html#Level2-Range-method-surroundContents'>11</a>, <a
  class='index-inst'
  href='ranges.html#RangeExceptionCode'>12</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-context-tree'>context tree</a> <a
  class='index-inst' href='ranges.html#td-context-tree'>1</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Comparing'>2</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Deleting-Content'>3</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Extracting'>4</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Cloning'>5</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Inserting'>6</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Surrounding'>7</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIteratorFactory-createNodeIterator'>
  createNodeIterator</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-DocumentRange-method-createRange'>createRange</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#NodeIteratorFactory-createTreeWalker'>createTreeWalker</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-TreeWalker-currentNode'>currentNode</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-attr-commonParent'>deepest</a> <a
  class='index-inst'
  href='ranges.html#Level-2-Range-attr-commonParent'>1</a>, <a
  class='index-inst' href='glossary.html#dt-deepest'>2</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-deleteContents'>deleteContents</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-Filters-Usage'>descendant</a> <a
  class='index-inst'
  href='traversal.html#Traversal-Filters-Usage'>1</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-NodeIterator-expandEntityReferences'>
  2</a>, <a class='index-inst'
  href='traversal.html#Traversal-TreeWalker-expandEntityReferences'>3</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Comparing'>4</a>, <a
  class='index-inst' href='glossary.html#dt-descendant'>5</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIterator-detach'>detach</a> <a
  class='index-inst'
  href='traversal.html#Traversal-NodeIterator-detach'>1</a>, <a
  class='index-inst'
  href='ranges.html#Level2-Range-method-detach'>2</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Iterator-overview'>document order</a> <a
  class='index-inst' href='traversal.html#Iterator-overview'>1</a>,
  <a class='index-inst'
  href='glossary.html#dt-documentorder'>2</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-DocumentRange-idl'>DocumentRange</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-Document'>DocumentTraversal</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-overview'>DOM Level 2 Core</a> <a
  class='index-inst' href='traversal.html#Traversal-overview'>1</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-introduction'>2</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Position'>3</a>,
  <a class='index-inst' href='references.html#DOMCore'>4</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-compareHow'>END_TO_END</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-compareHow'>END_TO_START</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-attr-endParent'>endContainer</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-attr-endOffset'>endOffset</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIterator-expandEntityReferences'>
  expandEntityReferences</a> <a class='index-inst'
  href='traversal.html#Traversal-NodeIterator-expandEntityReferences'>
  1</a>, <a class='index-inst'
  href='traversal.html#Traversal-TreeWalker-expandEntityReferences'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-extractContents'>extractContents</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIterator-filter'>filter</a> <a
  class='index-inst'
  href='traversal.html#Traversal-NodeIterator-filter'>1</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-filter'>2</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-acceptNode-constants'>FILTER_ACCEPT</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-acceptNode-constants'>FILTER_REJECT</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-acceptNode-constants'>FILTER_SKIP</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-TreeWalker-firstChild'>firstChild</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-insertNode'>insertNode</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#RangeExceptionCode'>INVALID_NODE_TYPE_ERR</a></td>
  <td width='30%'><a class='noxref'
  href='glossary.html#dt-16-bit-unit'>ISO/IEC 10646</a> <a
  class='index-inst' href='glossary.html#dt-16-bit-unit'>1</a>, <a
  class='index-inst' href='references.html#ISO10646'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#Java'>Java</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-TreeWalker-lastChild'>lastChild</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIterator-nextNode'>nextNode</a>
  <a class='index-inst'
  href='traversal.html#Traversal-NodeIterator-nextNode'>1</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-nextNode'>2</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-TreeWalker-nextSibling'>nextSibling</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter'>NodeFilter</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIterator'>NodeIterator</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-offset'>offset</a> <a class='index-inst'
  href='ranges.html#td-offset'>1</a>, <a class='index-inst'
  href='ranges.html#Level-2-Range-Position'>2</a>, <a
  class='index-inst' href='ranges.html#td-collapsed'>3</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Changing'>4</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Comparing'>5</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Insertions'>6</a></td>
  <td width='30%'><a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Iterator-Robustness'>parent</a> <a
  class='index-inst' href='traversal.html#Iterator-Robustness'>1</a>,
  <a class='index-inst' href='traversal.html#TreeWalker'>2</a>, <a
  class='index-inst'
  href='traversal.html#TreeWalker-Robustness'>3</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-parentNode'>4</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Changing'>5</a>,
  <a class='index-inst' href='glossary.html#dt-parent'>6</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-TreeWalker-parentNode'>parentNode</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-partially-selected'>partially selected</a> <a
  class='index-inst' href='ranges.html#td-partially-selected'>1</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Containment'>2</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Deleting-Content'>3</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Extracting'>4</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Surrounding'>5</a>, <a
  class='index-inst'
  href='ranges.html#Level2-Range-method-surroundContents'>6</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIterator-previousNode'>previousNode</a>
  <a class='index-inst'
  href='traversal.html#Traversal-NodeIterator-previousNode'>1</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-previousNode'>2</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-TreeWalker-previousSibling'>previousSibling</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-idl'>Range</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#RangeException'>RangeException</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIterator-root'>root</a> <a
  class='index-inst'
  href='traversal.html#Traversal-NodeIterator-root'>1</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-root'>2</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-root-container'>root container</a> <a
  class='index-inst' href='ranges.html#td-root-container'>1</a>, <a
  class='index-inst' href='ranges.html#td-context-tree'>2</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Changing'>3</a>,
  <a class='index-inst'
  href='ranges.html#Level-2-Range-Comparing'>4</a>, <a
  class='index-inst' href='ranges.html#Level-2-Range-Misc'>5</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#td-selected'>selected</a> <a class='index-inst'
  href='ranges.html#td-selected'>1</a>, <a class='index-inst'
  href='ranges.html#Level-2-Range-Containment'>2</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Extracting'>3</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-selectNode'>selectNode</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-selectNodeContents'>selectNodeContents</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-setEnd'>setEnd</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-setEndAfter'>setEndAfter</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-setEndBefore'>setEndBefore</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-setStart'>setStart</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-setStartAfter'>setStartAfter</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-setStartBefore'>setStartBefore</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_ALL</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_ATTRIBUTE</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_CDATA_SECTION</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_COMMENT</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_DOCUMENT</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_DOCUMENT_FRAGMENT</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_DOCUMENT_TYPE</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_ELEMENT</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_ENTITY</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_ENTITY_REFERENCE</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_NOTATION</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_PROCESSING_INSTRUCTION</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeFilter-whatToShow-constants'>SHOW_TEXT</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#TreeWalker'>sibling</a> <a class='index-inst'
  href='traversal.html#TreeWalker'>1</a>, <a class='index-inst'
  href='traversal.html#Traversal-TreeWalker'>2</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-previousSibling'>3</a>,
  <a class='index-inst'
  href='traversal.html#Traversal-TreeWalker-nextSibling'>4</a>, <a
  class='index-inst'
  href='ranges.html#Level-2-Range-Comparing'>5</a>, <a
  class='index-inst' href='glossary.html#dt-sibling'>6</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-compareHow'>START_TO_END</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-compareHow'>START_TO_START</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-attr-startParent'>startContainer</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level-2-Range-attr-startOffset'>startOffset</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-surroundContents'>surroundContents</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='glossary.html#dt-tokenized'>tokenized</a></td>
  <td width='30%'><a class='noxref'
  href='ranges.html#Level2-Range-method-toString'>toString</a></td>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-TreeWalker'>TreeWalker</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='glossary.html#dt-16-bit-unit'>Unicode</a> <a
  class='index-inst' href='glossary.html#dt-16-bit-unit'>1</a>, <a
  class='index-inst' href='references.html#Unicode'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='traversal.html#Traversal-NodeIterator-whatToShow'>whatToShow</a>
  <a class='index-inst'
  href='traversal.html#Traversal-NodeIterator-whatToShow'>1</a>, <a
  class='index-inst'
  href='traversal.html#Traversal-TreeWalker-whatToShow'>2</a></td>
  </tr>
  </table>
  </div>
  
  <!-- div1 Index -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='references.html'>previous</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/ecma-script-binding.html
  
  Index: ecma-script-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:46:17 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>ECMAScript Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='acknowledgements.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='java-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='java-binding.html'>previous</a> &nbsp; <a accesskey='n'
  href='acknowledgements.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="ecma-binding" name='ecma-binding'></a> 
  
  <h1 id='ecma-binding-h1' class='adiv1'>Appendix C: ECMAScript
  Language Binding</h1>
  
  <p>This appendix contains the complete ECMAScript [<a
  class='noxref' href='references.html#ECMAScript'>ECMAScript</a>]
  binding for the Level 2 Document Object Model Traversal and Range
  definitions. The definitions are divided into <a
  href='#Traversal-ECMA'>Traversal</a>, and <a
  href='#Range-ECMA'>Range</a>.</p>
  
  <p><b>Note:</b> Exceptions handling is only supported by ECMAScript
  implementation conformant with the Standard ECMA-262 3rd. Edition
  ([<a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a>]).</p>
  
  <div class='div2'><a id="Traversal-ECMA" name='Traversal-ECMA'></a>
  
  
  <h2 id='Traversal-ECMA-h2' class='adiv2'>C.1: Document Object Model
  Traversal</h2>
  
  <div class='ecma-block'>
  <dl>
  <dt>Object <b>NodeIterator</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>NodeIterator</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>root</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>whatToShow</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  
  <dt><b>filter</b></dt>
  
  <dd>This read-only property is a <b>NodeFilter</b> object.</dd>
  
  <dt><b>expandEntityReferences</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  </dl>
  </dd>
  
  <dt>The <b>NodeIterator</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>nextNode()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>previousNode()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>detach()</b></dt>
  
  <dd>This method has no return value.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Prototype Object <b>NodeFilter</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>NodeFilter</b> class has the following constants:</dt>
  
  <dd>
  <dl>
  <dt><b>NodeFilter.FILTER_ACCEPT</b></dt>
  
  <dd>This constant is of type <b>short</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>NodeFilter.FILTER_REJECT</b></dt>
  
  <dd>This constant is of type <b>short</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>NodeFilter.FILTER_SKIP</b></dt>
  
  <dd>This constant is of type <b>short</b> and its value is
  <b>3</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_ALL</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0xFFFFFFFF</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_ELEMENT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000001</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_ATTRIBUTE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000002</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_TEXT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000004</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_CDATA_SECTION</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000008</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_ENTITY_REFERENCE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000010</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_ENTITY</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000020</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_PROCESSING_INSTRUCTION</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000040</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_COMMENT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000080</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_DOCUMENT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000100</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_DOCUMENT_TYPE</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000200</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_DOCUMENT_FRAGMENT</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000400</b>.</dd>
  
  <dt><b>NodeFilter.SHOW_NOTATION</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0x00000800</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>NodeFilter</b></dt>
  
  <dd>This is an ECMAScript function reference. This method returns a
  <b>Number</b>. The parameter is a <b>Node</b> object.</dd>
  
  <dt>Object <b>TreeWalker</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>TreeWalker</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>root</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object.</dd>
  
  <dt><b>whatToShow</b></dt>
  
  <dd>This read-only property is of type <b>Number</b>.</dd>
  
  <dt><b>filter</b></dt>
  
  <dd>This read-only property is a <b>NodeFilter</b> object.</dd>
  
  <dt><b>expandEntityReferences</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b>.</dd>
  
  <dt><b>currentNode</b></dt>
  
  <dd>This property is a <b>Node</b> object and can raise a
  <b>DOMException</b> object on setting.</dd>
  </dl>
  </dd>
  
  <dt>The <b>TreeWalker</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>parentNode()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.</dd>
  
  <dt><b>firstChild()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.</dd>
  
  <dt><b>lastChild()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.</dd>
  
  <dt><b>previousSibling()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.</dd>
  
  <dt><b>nextSibling()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.</dd>
  
  <dt><b>previousNode()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.</dd>
  
  <dt><b>nextNode()</b></dt>
  
  <dd>This method returns a <b>Node</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DocumentTraversal</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>DocumentTraversal</b> object has the following
  methods:</dt>
  
  <dd>
  <dl>
  <dt><b>createNodeIterator(root, whatToShow, filter,
  entityReferenceExpansion)</b></dt>
  
  <dd>This method returns a <b>NodeIterator</b> object.<br />
  The <b>root</b> parameter is a <b>Node</b> object.<br />
  The <b>whatToShow</b> parameter is of type <b>Number</b>.<br />
  The <b>filter</b> parameter is a <b>NodeFilter</b> object.<br />
  The <b>entityReferenceExpansion</b> parameter is of type
  <b>Boolean</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>createTreeWalker(root, whatToShow, filter,
  entityReferenceExpansion)</b></dt>
  
  <dd>This method returns a <b>TreeWalker</b> object.<br />
  The <b>root</b> parameter is a <b>Node</b> object.<br />
  The <b>whatToShow</b> parameter is of type <b>Number</b>.<br />
  The <b>filter</b> parameter is a <b>NodeFilter</b> object.<br />
  The <b>entityReferenceExpansion</b> parameter is of type
  <b>Boolean</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- ecma-block -->
  </div>
  
  <!-- div2 Traversal-ECMA -->
  <div class='div2'><a id="Range-ECMA" name='Range-ECMA'></a> 
  
  <h2 id='Range-ECMA-h2' class='adiv2'>C.2: Document Object Model
  Range</h2>
  
  <div class='ecma-block'>
  <dl>
  <dt>Prototype Object <b>Range</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>Range</b> class has the following constants:</dt>
  
  <dd>
  <dl>
  <dt><b>Range.START_TO_START</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>0</b>.</dd>
  
  <dt><b>Range.START_TO_END</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>Range.END_TO_END</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  
  <dt><b>Range.END_TO_START</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>3</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>Range</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>Range</b> object has the following properties:</dt>
  
  <dd>
  <dl>
  <dt><b>startContainer</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object and can raise a
  <b>DOMException</b> object on retrieval.</dd>
  
  <dt><b>startOffset</b></dt>
  
  <dd>This read-only property is a <b>long</b> object and can raise a
  <b>DOMException</b> object on retrieval.</dd>
  
  <dt><b>endContainer</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object and can raise a
  <b>DOMException</b> object on retrieval.</dd>
  
  <dt><b>endOffset</b></dt>
  
  <dd>This read-only property is a <b>long</b> object and can raise a
  <b>DOMException</b> object on retrieval.</dd>
  
  <dt><b>collapsed</b></dt>
  
  <dd>This read-only property is of type <b>Boolean</b> and can raise
  a <b>DOMException</b> object on retrieval.</dd>
  
  <dt><b>commonAncestorContainer</b></dt>
  
  <dd>This read-only property is a <b>Node</b> object and can raise a
  <b>DOMException</b> object on retrieval.</dd>
  </dl>
  </dd>
  
  <dt>The <b>Range</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>setStart(refNode, offset)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>refNode</b> parameter is a <b>Node</b> object.<br />
  The <b>offset</b> parameter is a <b>long</b> object.<br />
  This method can raise a <b>RangeException</b> object or a
  <b>DOMException</b> object.</dd>
  
  <dt><b>setEnd(refNode, offset)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>refNode</b> parameter is a <b>Node</b> object.<br />
  The <b>offset</b> parameter is a <b>long</b> object.<br />
  This method can raise a <b>RangeException</b> object or a
  <b>DOMException</b> object.</dd>
  
  <dt><b>setStartBefore(refNode)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>refNode</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>RangeException</b> object or a
  <b>DOMException</b> object.</dd>
  
  <dt><b>setStartAfter(refNode)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>refNode</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>RangeException</b> object or a
  <b>DOMException</b> object.</dd>
  
  <dt><b>setEndBefore(refNode)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>refNode</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>RangeException</b> object or a
  <b>DOMException</b> object.</dd>
  
  <dt><b>setEndAfter(refNode)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>refNode</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>RangeException</b> object or a
  <b>DOMException</b> object.</dd>
  
  <dt><b>collapse(toStart)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>toStart</b> parameter is of type <b>Boolean</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>selectNode(refNode)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>refNode</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>RangeException</b> object or a
  <b>DOMException</b> object.</dd>
  
  <dt><b>selectNodeContents(refNode)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>refNode</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>RangeException</b> object or a
  <b>DOMException</b> object.</dd>
  
  <dt><b>compareBoundaryPoints(how, sourceRange)</b></dt>
  
  <dd>This method returns a <b>short</b> object.<br />
  The <b>how</b> parameter is of type <b>Number</b>.<br />
  The <b>sourceRange</b> parameter is a <b>Range</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>deleteContents()</b></dt>
  
  <dd>This method has no return value.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>extractContents()</b></dt>
  
  <dd>This method returns a <b>DocumentFragment</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>cloneContents()</b></dt>
  
  <dd>This method returns a <b>DocumentFragment</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>insertNode(newNode)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>newNode</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object or a
  <b>RangeException</b> object.</dd>
  
  <dt><b>surroundContents(newParent)</b></dt>
  
  <dd>This method has no return value.<br />
  The <b>newParent</b> parameter is a <b>Node</b> object.<br />
  This method can raise a <b>DOMException</b> object or a
  <b>RangeException</b> object.</dd>
  
  <dt><b>cloneRange()</b></dt>
  
  <dd>This method returns a <b>Range</b> object.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>toString()</b></dt>
  
  <dd>This method returns a <b>String</b>.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  
  <dt><b>detach()</b></dt>
  
  <dd>This method has no return value.<br />
  This method can raise a <b>DOMException</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DocumentRange</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>DocumentRange</b> object has the following methods:</dt>
  
  <dd>
  <dl>
  <dt><b>createRange()</b></dt>
  
  <dd>This method returns a <b>Range</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Prototype Object <b>RangeException</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>RangeException</b> class has the following
  constants:</dt>
  
  <dd>
  <dl>
  <dt><b>RangeException.BAD_BOUNDARYPOINTS_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>1</b>.</dd>
  
  <dt><b>RangeException.INVALID_NODE_TYPE_ERR</b></dt>
  
  <dd>This constant is of type <b>Number</b> and its value is
  <b>2</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>RangeException</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>RangeException</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>code</b></dt>
  
  <dd>This property is of type <b>Number</b>.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- ecma-block -->
  </div>
  
  <!-- div2 Range-ECMA --></div>
  
  <!-- div1 ecma-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='java-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='acknowledgements.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/expanded-toc.html
  
  Index: expanded-toc.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:52 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Expanded Table of Contents</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='copyright-notice.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='Overview.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='Overview.html'>previous</a> &nbsp; <a accesskey='n'
  href='copyright-notice.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="TOC" name='TOC'></a> 
  
  <h1 id='TOC-h1' class='div1'>Expanded Table of Contents</h1>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='traversal.html'>Chapter 1: Document Object Model
  Traversal</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='traversal.html#Traversal-overview'>1.1. Overview</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='traversal.html#Iterator-overview'>1.1.1.
  NodeIterators</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='traversal.html#Traversal-Filters'>1.1.2. NodeFilters</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='traversal.html#TreeWalker'>1.1.3. TreeWalker</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='traversal.html#Traversal-IDLDefinition'>1.2. Formal Interface
  Definition</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref' href='ranges.html'>Chapter
  2: Document Object Model Range</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-introduction'>2.1.
  Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Definitions'>2.2. Definitions and
  Notation</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='ranges.html#Level-2-Range-Position'>2.2.1. Position</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='ranges.html#Level-2-Range-Containment'>2.2.2. Selection and
  Partial Selection</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='ranges.html#Level-2-Range-Notation'>2.2.3. Notation</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Creating'>2.3. Creating a
  Range</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Changing'>2.4. Changing a Range's
  Position</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Comparing'>2.5. Comparing Range
  Boundary-Points</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Deleting-Content'>2.6. Deleting
  Content with a Range</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Extracting'>2.7. Extracting
  Content</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Cloning'>2.8. Cloning
  Content</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Inserting'>2.9. Inserting
  Content</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Surrounding'>2.10. Surrounding
  Content</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Misc'>2.11. Miscellaneous
  Members</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Mutation'>2.12. Range modification
  under document mutation</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='ranges.html#Level-2-Range-Insertions'>2.12.1.
  Insertions</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='ranges.html#Level-2-Range-Deletions'>2.12.2.
  Deletions</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='ranges.html#Level-2-Range-Interface'>2.13. Formal Description
  of the Range Interface</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix A: IDL Definitions</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='idl-definitions.html#Traversal-IDL'>A.1. Document Object
  Model Traversal</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='idl-definitions.html#Range-IDL'>A.2. Document Object Model
  Range</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix B: Java Language Binding</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='java-binding.html#Traversal-Java'>B.1. Document Object Model
  Traversal</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='java-binding.html#Range-Java'>B.2. Document Object Model
  Range</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix C: ECMAScript Language
  Binding</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='ecma-script-binding.html#Traversal-ECMA'>C.1. Document Object
  Model Traversal</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='ecma-script-binding.html#Range-ECMA'>C.2. Document Object
  Model Range</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix D: Acknowledgements</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='acknowledgements.html#Productions'>D.1. Production
  Systems</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='glossary.html'>Glossary</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='references.html#References-Normative'>1. Normative
  references</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  </div>
  
  <!-- div1 TOC -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='Overview.html'>previous</a> &nbsp; <a
  accesskey='n' href='copyright-notice.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/glossary.html
  
  Index: glossary.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:46:17 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Glossary</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='references.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='acknowledgements.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='acknowledgements.html'>previous</a> &nbsp; <a accesskey='n'
  href='references.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="glossary" name='glossary'></a> 
  
  <h1 id='role-glossary' class='glossary'>Glossary</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Arnaud Le Hors, IBM</dd>
  
  <dd>Lauren Wood, SoftQuad Software Inc.</dd>
  
  <dd>Robert S. Sutor, IBM (for DOM Level 1)</dd>
  </dl>
  
  <p>Several of the following term definitions have been borrowed or
  modified from similar definitions in other W3C or standards
  documents. See the links within the definitions for more
  information.</p>
  
  <dl>
  <dt><b><a id="dt-16-bit-unit" name='dt-16-bit-unit'>16-bit
  unit</a></b></dt>
  
  <dd>The base unit of a <code>DOMString</code>. This indicates that
  indexing on a <code>DOMString</code> occurs in units of 16 bits.
  This must not be misunderstood to mean that a
  <code>DOMString</code> can store arbitrary 16-bit units. A
  <code>DOMString</code> is a character string encoded in UTF-16;
  this means that the restrictions of UTF-16 as well as the other
  relevant restrictions on character strings must be maintained. A
  single character, for example in the form of a numeric character
  reference, may correspond to one or two 16-bit units.<br />
  For more information, see [<a class='noxref'
  href='references.html#Unicode'>Unicode</a>] and [<a class='noxref'
  href='references.html#ISO10646'>ISO/IEC 10646</a>].</dd>
  
  <dt><b><a id="dt-ancestor" name='dt-ancestor'>ancestor</a></b></dt>
  
  <dd>An <i>ancestor</i> node of any node A is any node above A in a
  tree model of a document, where "above" means "toward the
  root."</dd>
  
  <dt><b><a id="dt-child" name='dt-child'>child</a></b></dt>
  
  <dd>A <i>child</i> is an immediate <i>descendant</i> node of a
  node.</dd>
  
  <dt><b><a id="dt-deepest" name='dt-deepest'>deepest</a></b></dt>
  
  <dd>The <i>deepest</i> element is that element which is furthest
  from the root or document element in a tree model of the
  document.</dd>
  
  <dt><b><a id="dt-documentorder" name='dt-documentorder'>document
  order</a></b></dt>
  
  <dd>The term <i>document order</i> has the same meaning as depth
  first, pre-order traversal, which is equivalent to the order in
  which the start tags occur in the text representation of the
  document.</dd>
  
  <dt><b><a id="dt-descendant"
  name='dt-descendant'>descendant</a></b></dt>
  
  <dd>A <i>descendant</i> node of any node A is any node below A in a
  tree model of a document, where "above" means "toward the
  root."</dd>
  
  <dt><b><a id="dt-parent" name='dt-parent'>parent</a></b></dt>
  
  <dd>A <i>parent</i> is an immediate <i>ancestor</i> node of a
  node.</dd>
  
  <dt><b><a id="dt-sibling" name='dt-sibling'>sibling</a></b></dt>
  
  <dd>Two nodes are <i>siblings</i> if and only if they have the same
  <i>parent</i> node.</dd>
  
  <dt><b><a id="dt-tokenized"
  name='dt-tokenized'>tokenized</a></b></dt>
  
  <dd>The description given to various information items (for
  example, attribute values of various types, but not including the
  StringType CDATA) after having been processed by the XML processor.
  The process includes stripping leading and trailing white space,
  and replacing multiple space characters by one. See the definition
  of tokenized type.</dd>
  </dl>
  </div>
  
  <!-- div1 glossary -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='acknowledgements.html'>previous</a> &nbsp;
  <a accesskey='n' href='references.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/idl-definitions.html
  
  Index: idl-definitions.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:46:04 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>IDL Definitions</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='java-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='ranges.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='ranges.html'>previous</a> &nbsp; <a accesskey='n'
  href='java-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="idl" name='idl'></a> 
  
  <h1 id='idl-h1' class='adiv1'>Appendix A: IDL Definitions</h1>
  
  <p>This appendix contains the complete OMG IDL [<a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a>] for the Level 2 Document
  Object Model Traversal and Range definitions. The definitions are
  divided into <a href='#Traversal-IDL'>Traversal</a>, and <a
  href='#Range-IDL'>Range</a>.</p>
  
  <p>The IDL files are also available as: <a
  href='idl.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/idl.zip</a></p>
  
  <div class='div2'><a id="Traversal-IDL" name='Traversal-IDL'></a> 
  
  <h2 id='Traversal-IDL-h2' class='adiv2'>A.1: Document Object Model
  Traversal</h2>
  
  <h3 id='idl-traversal.idl'><a
  href='idl/traversal.idl'>traversal.idl</a>:</h3>
  
  <div class='idl-code'>
  <pre>
  // File: traversal.idl
  
  #ifndef _TRAVERSAL_IDL_
  #define _TRAVERSAL_IDL_
  
  #include "dom.idl"
  
  #pragma prefix "dom.w3c.org"
  module traversal
  {
  
    typedef dom::Node Node;
  
    interface NodeFilter;
  
    // Introduced in DOM Level 2:
    interface NodeIterator {
      readonly attribute Node             root;
      readonly attribute unsigned long    whatToShow;
      readonly attribute NodeFilter       filter;
      readonly attribute boolean          expandEntityReferences;
      Node               nextNode()
                                          raises(dom::DOMException);
      Node               previousNode()
                                          raises(dom::DOMException);
      void               detach();
    };
  
    // Introduced in DOM Level 2:
    interface NodeFilter {
  
      // Constants returned by acceptNode
      const short               FILTER_ACCEPT                  = 1;
      const short               FILTER_REJECT                  = 2;
      const short               FILTER_SKIP                    = 3;
  
  
      // Constants for whatToShow
      const unsigned long       SHOW_ALL                       = 0xFFFFFFFF;
      const unsigned long       SHOW_ELEMENT                   = 0x00000001;
      const unsigned long       SHOW_ATTRIBUTE                 = 0x00000002;
      const unsigned long       SHOW_TEXT                      = 0x00000004;
      const unsigned long       SHOW_CDATA_SECTION             = 0x00000008;
      const unsigned long       SHOW_ENTITY_REFERENCE          = 0x00000010;
      const unsigned long       SHOW_ENTITY                    = 0x00000020;
      const unsigned long       SHOW_PROCESSING_INSTRUCTION    = 0x00000040;
      const unsigned long       SHOW_COMMENT                   = 0x00000080;
      const unsigned long       SHOW_DOCUMENT                  = 0x00000100;
      const unsigned long       SHOW_DOCUMENT_TYPE             = 0x00000200;
      const unsigned long       SHOW_DOCUMENT_FRAGMENT         = 0x00000400;
      const unsigned long       SHOW_NOTATION                  = 0x00000800;
  
      short              acceptNode(in Node n);
    };
  
    // Introduced in DOM Level 2:
    interface TreeWalker {
      readonly attribute Node             root;
      readonly attribute unsigned long    whatToShow;
      readonly attribute NodeFilter       filter;
      readonly attribute boolean          expandEntityReferences;
               attribute Node             currentNode;
                                          // raises(dom::DOMException) on setting
  
      Node               parentNode();
      Node               firstChild();
      Node               lastChild();
      Node               previousSibling();
      Node               nextSibling();
      Node               previousNode();
      Node               nextNode();
    };
  
    // Introduced in DOM Level 2:
    interface DocumentTraversal {
      NodeIterator       createNodeIterator(in Node root, 
                                            in unsigned long whatToShow, 
                                            in NodeFilter filter, 
                                            in boolean entityReferenceExpansion)
                                          raises(dom::DOMException);
      TreeWalker         createTreeWalker(in Node root, 
                                          in unsigned long whatToShow, 
                                          in NodeFilter filter, 
                                          in boolean entityReferenceExpansion)
                                          raises(dom::DOMException);
    };
  };
  
  #endif // _TRAVERSAL_IDL_
  
  </pre>
  </div>
  </div>
  
  <!-- div2 Traversal-IDL -->
  <div class='div2'><a id="Range-IDL" name='Range-IDL'></a> 
  
  <h2 id='Range-IDL-h2' class='adiv2'>A.2: Document Object Model
  Range</h2>
  
  <h3 id='idl-ranges.idl'><a
  href='idl/ranges.idl'>ranges.idl</a>:</h3>
  
  <div class='idl-code'>
  <pre>
  // File: ranges.idl
  
  #ifndef _RANGES_IDL_
  #define _RANGES_IDL_
  
  #include "dom.idl"
  
  #pragma prefix "dom.w3c.org"
  module ranges
  {
  
    typedef dom::Node Node;
    typedef dom::DocumentFragment DocumentFragment;
    typedef dom::DOMString DOMString;
  
    // Introduced in DOM Level 2:
    exception RangeException {
      unsigned short   code;
    };
    // RangeExceptionCode
    const unsigned short      BAD_BOUNDARYPOINTS_ERR         = 1;
    const unsigned short      INVALID_NODE_TYPE_ERR          = 2;
  
  
    // Introduced in DOM Level 2:
    interface Range {
      readonly attribute Node             startContainer;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute long             startOffset;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute Node             endContainer;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute long             endOffset;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute boolean          collapsed;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute Node             commonAncestorContainer;
                                          // raises(dom::DOMException) on retrieval
  
      void               setStart(in Node refNode, 
                                  in long offset)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setEnd(in Node refNode, 
                                in long offset)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setStartBefore(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setStartAfter(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setEndBefore(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setEndAfter(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               collapse(in boolean toStart)
                                          raises(dom::DOMException);
      void               selectNode(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               selectNodeContents(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
  
      // CompareHow
      const unsigned short      START_TO_START                 = 0;
      const unsigned short      START_TO_END                   = 1;
      const unsigned short      END_TO_END                     = 2;
      const unsigned short      END_TO_START                   = 3;
  
      short              compareBoundaryPoints(in unsigned short how, 
                                               in Range sourceRange)
                                          raises(dom::DOMException);
      void               deleteContents()
                                          raises(dom::DOMException);
      DocumentFragment   extractContents()
                                          raises(dom::DOMException);
      DocumentFragment   cloneContents()
                                          raises(dom::DOMException);
      void               insertNode(in Node newNode)
                                          raises(dom::DOMException, 
                                                 RangeException);
      void               surroundContents(in Node newParent)
                                          raises(dom::DOMException, 
                                                 RangeException);
      Range              cloneRange()
                                          raises(dom::DOMException);
      DOMString          toString()
                                          raises(dom::DOMException);
      void               detach()
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface DocumentRange {
      Range              createRange();
    };
  };
  
  #endif // _RANGES_IDL_
  
  </pre>
  </div>
  </div>
  
  <!-- div2 Range-IDL --></div>
  
  <!-- div1 idl -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='ranges.html'>previous</a> &nbsp; <a
  accesskey='n' href='java-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/java-binding.html
  
  Index: java-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:46:07 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Java Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='ecma-script-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='idl-definitions.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='idl-definitions.html'>previous</a> &nbsp; <a accesskey='n'
  href='ecma-script-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="java-binding" name='java-binding'></a> 
  
  <h1 id='java-binding-h1' class='adiv1'>Appendix B: Java Language
  Binding</h1>
  
  <p>This appendix contains the complete Java Language [<a
  class='noxref' href='references.html#Java'>Java</a>] binding for
  the Level 2 Document Object Model Traversal and Range. The
  definitions are divided into <a
  href='#Traversal-Java'>Traversal</a>, and <a
  href='#Range-Java'>Range</a>.</p>
  
  <p>The Java files are also available as <a
  href='java-binding.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/java-binding.zip</a></p>
  
  <div class='div2'><a id="Traversal-Java" name='Traversal-Java'></a>
  
  
  <h2 id='Traversal-Java-h2' class='adiv2'>B.1: Document Object Model
  Traversal</h2>
  
  <h3 id='org.w3c.dom.traversal.NodeIterator'>
  org/w3c/dom/traversal/NodeIterator.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.traversal;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.DOMException;
  
  public interface NodeIterator {
      public Node getRoot();
  
      public int getWhatToShow();
  
      public NodeFilter getFilter();
  
      public boolean getExpandEntityReferences();
  
      public Node nextNode()
                           throws DOMException;
  
      public Node previousNode()
                               throws DOMException;
  
      public void detach();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.traversal.NodeFilter'>
  org/w3c/dom/traversal/NodeFilter.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.traversal;
  
  import org.w3c.dom.Node;
  
  public interface NodeFilter {
      // Constants returned by acceptNode
      public static final short FILTER_ACCEPT             = 1;
      public static final short FILTER_REJECT             = 2;
      public static final short FILTER_SKIP               = 3;
  
      // Constants for whatToShow
      public static final int SHOW_ALL                  = 0xFFFFFFFF;
      public static final int SHOW_ELEMENT              = 0x00000001;
      public static final int SHOW_ATTRIBUTE            = 0x00000002;
      public static final int SHOW_TEXT                 = 0x00000004;
      public static final int SHOW_CDATA_SECTION        = 0x00000008;
      public static final int SHOW_ENTITY_REFERENCE     = 0x00000010;
      public static final int SHOW_ENTITY               = 0x00000020;
      public static final int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
      public static final int SHOW_COMMENT              = 0x00000080;
      public static final int SHOW_DOCUMENT             = 0x00000100;
      public static final int SHOW_DOCUMENT_TYPE        = 0x00000200;
      public static final int SHOW_DOCUMENT_FRAGMENT    = 0x00000400;
      public static final int SHOW_NOTATION             = 0x00000800;
  
      public short acceptNode(Node n);
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.traversal.TreeWalker'>
  org/w3c/dom/traversal/TreeWalker.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.traversal;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.DOMException;
  
  public interface TreeWalker {
      public Node getRoot();
  
      public int getWhatToShow();
  
      public NodeFilter getFilter();
  
      public boolean getExpandEntityReferences();
  
      public Node getCurrentNode();
      public void setCurrentNode(Node currentNode)
                              throws DOMException;
  
      public Node parentNode();
  
      public Node firstChild();
  
      public Node lastChild();
  
      public Node previousSibling();
  
      public Node nextSibling();
  
      public Node previousNode();
  
      public Node nextNode();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.traversal.DocumentTraversal'>
  org/w3c/dom/traversal/DocumentTraversal.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.traversal;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.DOMException;
  
  public interface DocumentTraversal {
      public NodeIterator createNodeIterator(Node root, 
                                             int whatToShow, 
                                             NodeFilter filter, 
                                             boolean entityReferenceExpansion)
                                             throws DOMException;
  
      public TreeWalker createTreeWalker(Node root, 
                                         int whatToShow, 
                                         NodeFilter filter, 
                                         boolean entityReferenceExpansion)
                                         throws DOMException;
  
  }
  </pre>
  </div>
  </div>
  
  <!-- div2 Traversal-Java -->
  <div class='div2'><a id="Range-Java" name='Range-Java'></a> 
  
  <h2 id='Range-Java-h2' class='adiv2'>B.2: Document Object Model
  Range</h2>
  
  <h3 id='org.w3c.dom.ranges.RangeException'>
  org/w3c/dom/ranges/RangeException.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.ranges;
  
  public class RangeException extends RuntimeException {
      public RangeException(short code, String message) {
         super(message);
         this.code = code;
      }
      public short   code;
      // RangeExceptionCode
      public static final short BAD_BOUNDARYPOINTS_ERR    = 1;
      public static final short INVALID_NODE_TYPE_ERR     = 2;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.ranges.Range'>
  org/w3c/dom/ranges/Range.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.ranges;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.DocumentFragment;
  import org.w3c.dom.DOMException;
  
  public interface Range {
      public Node getStartContainer()
                                         throws DOMException;
  
      public int getStartOffset()
                                         throws DOMException;
  
      public Node getEndContainer()
                                         throws DOMException;
  
      public int getEndOffset()
                                         throws DOMException;
  
      public boolean getCollapsed()
                                         throws DOMException;
  
      public Node getCommonAncestorContainer()
                                         throws DOMException;
  
      public void setStart(Node refNode, 
                           int offset)
                           throws RangeException, DOMException;
  
      public void setEnd(Node refNode, 
                         int offset)
                         throws RangeException, DOMException;
  
      public void setStartBefore(Node refNode)
                                 throws RangeException, DOMException;
  
      public void setStartAfter(Node refNode)
                                throws RangeException, DOMException;
  
      public void setEndBefore(Node refNode)
                               throws RangeException, DOMException;
  
      public void setEndAfter(Node refNode)
                              throws RangeException, DOMException;
  
      public void collapse(boolean toStart)
                           throws DOMException;
  
      public void selectNode(Node refNode)
                             throws RangeException, DOMException;
  
      public void selectNodeContents(Node refNode)
                                     throws RangeException, DOMException;
  
      // CompareHow
      public static final short START_TO_START            = 0;
      public static final short START_TO_END              = 1;
      public static final short END_TO_END                = 2;
      public static final short END_TO_START              = 3;
  
      public short compareBoundaryPoints(short how, 
                                         Range sourceRange)
                                         throws DOMException;
  
      public void deleteContents()
                                 throws DOMException;
  
      public DocumentFragment extractContents()
                                              throws DOMException;
  
      public DocumentFragment cloneContents()
                                            throws DOMException;
  
      public void insertNode(Node newNode)
                             throws DOMException, RangeException;
  
      public void surroundContents(Node newParent)
                                   throws DOMException, RangeException;
  
      public Range cloneRange()
                              throws DOMException;
  
      public String toString()
                             throws DOMException;
  
      public void detach()
                         throws DOMException;
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.ranges.DocumentRange'>
  org/w3c/dom/ranges/DocumentRange.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.ranges;
  
  public interface DocumentRange {
      public Range createRange();
  
  }
  </pre>
  </div>
  </div>
  
  <!-- div2 Range-Java --></div>
  
  <!-- div1 java-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='idl-definitions.html'>previous</a> &nbsp; <a
  accesskey='n' href='ecma-script-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/ranges.html
  
  Index: ranges.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:46:00 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model Range</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='idl-definitions.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='traversal.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='traversal.html'>previous</a> &nbsp; <a accesskey='n'
  href='idl-definitions.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Range" name='Range'></a> 
  
  <h1 id='Range-h1' class='div1'>2. Document Object Model Range</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Peter Sharpe, SoftQuad Software Inc.</dd>
  
  <dd>Vidur Apparao, Netscape Communications Corp.</dd>
  
  <dd>Lauren Wood, SoftQuad Software Inc.</dd>
  </dl>
  
  <div class='noprint'>
  <h2 id='table-of-contents'>Table of contents</h2>
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-introduction'>2.1. Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Definitions'>2.2. Definitions and Notation</a>
  
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='#Level-2-Range-Position'>2.2.1. Position</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Level-2-Range-Containment'>2.2.2. Selection and Partial
  Selection</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Level-2-Range-Notation'>2.2.3. Notation</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Creating'>2.3. Creating a Range</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Changing'>2.4. Changing a Range's
  Position</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Comparing'>2.5. Comparing Range
  Boundary-Points</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Deleting-Content'>2.6. Deleting Content with a
  Range</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Extracting'>2.7. Extracting Content</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Cloning'>2.8. Cloning Content</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Inserting'>2.9. Inserting Content</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Surrounding'>2.10. Surrounding
  Content</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Misc'>2.11. Miscellaneous Members</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Mutation'>2.12. Range modification under
  document mutation</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='#Level-2-Range-Insertions'>2.12.1. Insertions</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Level-2-Range-Deletions'>2.12.2. Deletions</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Level-2-Range-Interface'>2.13. Formal Description of the
  Range Interface</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a href='#Level-2-Range-idl'>Range</a>, <a
  href='#Level-2-DocumentRange-idl'>DocumentRange</a>, <a
  href='#RangeException'>RangeException</a>, <a
  href='#RangeExceptionCode'>RangeExceptionCode</a></li>
  </ul>
  </li>
  </ul>
  </div>
  
  <div class='div2'><a id="Level-2-Range-introduction"
  name='Level-2-Range-introduction'></a> 
  
  <h2 id='Level-2-Range-introduction-h2' class='div2'>2.1.
  Introduction</h2>
  
  <p>A Range identifies a range of content in a Document,
  DocumentFragment or Attr. It is contiguous in the sense that it can
  be characterized as selecting all of the content between a pair of
  boundary-points.</p>
  
  <p><b>Note:</b> In a text editor or a word processor, a user can
  make a selection by pressing down the mouse at one point in a
  document, moving the mouse to another point, and releasing the
  mouse. The resulting selection is contiguous and consists of the
  content between the two points.</p>
  
  <p>The term 'selecting' does not mean that every Range corresponds
  to a selection made by a GUI user; however, such a selection can be
  returned to a DOM user as a Range.</p>
  
  <p><b>Note:</b> In bidirectional writing (Arabic, Hebrew), a range
  may correspond to a logical selection that is not necessarily
  contiguous when displayed. A visually contiguous selection, also
  used in some cases, may not correspond to a single logical
  selection, and may therefore have to be represented by more than
  one range.</p>
  
  <p>The Range interface provides methods for accessing and
  manipulating the document tree at a higher level than similar
  methods in the Node interface. The expectation is that each of the
  methods provided by the Range interface for the insertion, deletion
  and copying of content can be directly mapped to a series of Node
  editing operations enabled by DOM Core. In this sense, the Range
  operations can be viewed as convenience methods that also enable
  the implementation to optimize common editing patterns.</p>
  
  <p>This chapter describes the Range interface, including methods
  for creating and moving a Range and methods for manipulating
  content with Ranges.</p>
  
  <p>The interfaces found within this section are not mandatory. A
  DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "Range" and "2.0" (respectively) to
  determine whether or not this module is supported by the
  implementation. In order to fully support this module, an
  implementation must also support the "Core" feature defined defined
  in the DOM Level 2 Core specification [<a class='noxref'
  href='references.html#DOMCore'>DOM Level 2 Core</a>]. Please refer
  to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  </div>
  
  <!-- div2 Level-2-Range-introduction -->
  <div class='div2'><a id="Level-2-Range-Definitions"
  name='Level-2-Range-Definitions'></a> 
  
  <h2 id='Level-2-Range-Definitions-h2' class='div2'>2.2. Definitions
  and Notation</h2>
  
  <div class='div3'><a id="Level-2-Range-Position"
  name='Level-2-Range-Position'></a> 
  
  <h3 id='Level-2-Range-Position-h3' class='div3'>2.2.1.
  Position</h3>
  
  <p>This chapter refers to two different representations of a
  document: the text or source form that includes the document markup
  and the tree representation similar to the one described in the
  introduction section of the DOM Level 2 Core [<a class='noxref'
  href='references.html#DOMCore'>DOM Level 2 Core</a>].</p>
  
  <p>A Range consists of two <i>boundary-points</i> corresponding to
  the start and the end of the Range. <a id="td-boundarypoint"
  name='td-boundarypoint'></a>A boundary-point's position in a
  Document or DocumentFragment tree can be characterized by a node
  and an offset. <a id="td-container" name='td-container'></a>The
  node is called the <i>container</i> of the boundary-point and of
  its position. <a id="td-ancestor-container"
  name='td-ancestor-container'></a>The container and its ancestors
  are the <i>ancestor container</i>s of the boundary-point and of its
  position. <a id="td-offset" name='td-offset'></a>The offset within
  the node is called the <i>offset</i> of the boundary-point and its
  position. If the container is an Attr, Document, DocumentFragment,
  Element or EntityReference node, the offset is between its <a
  href='glossary.html#dt-child'><em>child</em></a> nodes. If the
  container is a CharacterData, Comment or ProcessingInstruction
  node, the offset is between the <a
  href='glossary.html#dt-16-bit-unit'><em>16-bit units</em></a> of
  the UTF-16 encoded string contained by it.</p>
  
  <p>The <a
  href='ranges.html#td-boundarypoint'><em>boundary-points</em></a> of
  a Range must have a common <a
  href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> which is either a Document, DocumentFragment or
  Attr node. That is, the content of a Range must be entirely within
  the subtree rooted by a single Document, DocumentFragment or Attr
  Node. <a id="td-root-container" name='td-root-container'></a>This
  common <a href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> is known as the <i>root container</i> of the
  Range. <a id="td-context-tree" name='td-context-tree'></a>The tree
  rooted by the <a href='ranges.html#td-root-container'><em>root
  container</em></a> is known as the Range's <i>context tree</i>.</p>
  
  <p>The <a href='ranges.html#td-container'><em>container</em></a> of
  a <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> of
  a Range must be an Element, Comment, ProcessingInstruction,
  EntityReference, CDATASection, Document, DocumentFragment, Attr, or
  Text node. None of the <a
  href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a>s of the <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> of
  a Range can be a DocumentType, Entity or Notation node.</p>
  
  <p>In terms of the text representation of a document, the <a
  href='ranges.html#td-boundarypoint'><em>boundary-points</em></a> of
  a Range can only be on token boundaries. That is, the <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> of
  the text range cannot be in the middle of a start- or end-tag of an
  element or within the name of an entity or character reference. A
  Range locates a contiguous portion of the content of the structure
  model.</p>
  
  <p>The relationship between locations in a text representation of
  the document and in the Node tree interface of the DOM is
  illustrated in the following diagram:<br />
  </p>
  
  <div align='center'>
  <hr width='90%' size='2' />
  <img src='images/RangeExample.gif' alt='Range Example' /> 
  
  <hr width='90%' size='2' />
  <b>Range Example</b> 
  
  <hr width='90%' size='2' />
  </div>
  
  <p>In this diagram, four different Ranges are illustrated. The <a
  href='ranges.html#td-boundarypoint'><em>boundary-points</em></a> of
  each Range are labelled with <i>s#</i> (the start of the Range) and
  <i>e#</i> (the end of the Range), where # is the number of the
  Range. For Range 2, the start is in the BODY element and is
  immediately after the H1 element and immediately before the P
  element, so its position is between the H1 and P children of BODY.
  The <a href='ranges.html#td-offset'><em>offset</em></a> of a <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>
  whose <a href='ranges.html#td-container'><em>container</em></a> is
  not a CharacterData node is 0 if it is before the first child, 1 if
  between the first and second child, and so on. So, for the start of
  the Range 2, the <a
  href='ranges.html#td-container'><em>container</em></a> is BODY and
  the <a href='ranges.html#td-offset'><em>offset</em></a> is 1. The
  <a href='ranges.html#td-offset'><em>offset</em></a> of a <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>
  whose <a href='ranges.html#td-container'><em>container</em></a> is
  a CharacterData node is obtained similarly but using <a
  href='glossary.html#dt-16-bit-unit'><em>16-bit unit</em></a>
  positions instead. For example, the <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>
  labelled s1 of the Range 1 has a Text node (the one containing
  "Title") as its <a
  href='ranges.html#td-container'><em>container</em></a> and an <a
  href='ranges.html#td-offset'><em>offset</em></a> of 2 since it is
  between the second and third <a
  href='glossary.html#dt-16-bit-unit'><em>16-bit unit</em></a>.</p>
  
  <p>Notice that the <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>s of
  Ranges 3 and 4 correspond to the same location in the text
  representation. An important feature of the Range is that a <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> of
  a Range can unambiguously represent every position within the
  document tree.</p>
  
  <p>The <a href='ranges.html#td-container'><em>container</em></a>s
  and <a href='ranges.html#td-offset'><em>offset</em></a>s of the <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>s
  can be obtained through the following read-only Range
  attributes:</p>
  
  <div class='eg'>
  <pre>
    readonly attribute Node startContainer; 
    readonly attribute long startOffset;
    readonly attribute Node endContainer; 
    readonly attribute long endOffset;
  </pre>
  </div>
  
  <p><a id="td-collapsed" name='td-collapsed'></a>If the <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>s of
  a Range have the same <a
  href='ranges.html#td-container'><em>container</em></a>s and <a
  href='ranges.html#td-offset'><em>offset</em></a>s, the Range is
  said to be a <i>collapsed</i> Range. (This is often referred to as
  an insertion point in a user agent.)</p>
  </div>
  
  <!-- div3 Level-2-Range-Position -->
  <div class='div3'><a id="Level-2-Range-Containment"
  name='Level-2-Range-Containment'></a> 
  
  <h3 id='Level-2-Range-Containment-h3' class='div3'>2.2.2. Selection
  and Partial Selection</h3>
  
  <p><a id="td-selected" name='td-selected'></a>A node or <a
  href='glossary.html#dt-16-bit-unit'><em>16-bit unit</em></a> unit
  is said to be <i>selected</i> by a Range if it is between the two
  <a href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>s
  of the Range, that is, if the position immediately before the node
  or 16-bit unit is before the end of the Range and the position
  immediately after the node or 16-bit unit is after the start of the
  range. For example, in terms of a text representation of the
  document, an element would be <a
  href='ranges.html#td-selected'><em>selected</em></a> by a Range if
  its corresponding start-tag was located after the start of the
  Range and its end-tag was located before the end of the Range. In
  the examples in the above diagram, the Range 2 <a
  href='ranges.html#td-selected'><em>selects</em></a> the P node and
  the Range 3 <a href='ranges.html#td-selected'><em>selects</em></a>
  the text node containing the text "Blah xyz."</p>
  
  <p><a id="td-partially-selected" name='td-partially-selected'></a>A
  node is said to be <i>partially selected</i> by a Range if it is an
  <a href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of exactly one <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> of
  the Range. For example, consider Range 1 in the above diagram. The
  element H1 is <a
  href='ranges.html#td-partially-selected'><em>partially
  selected</em></a> by that Range since the start of the Range is
  within one of its children.</p>
  </div>
  
  <!-- div3 Level-2-Range-Containment -->
  <div class='div3'><a id="Level-2-Range-Notation"
  name='Level-2-Range-Notation'></a> 
  
  <h3 id='Level-2-Range-Notation-h3' class='div3'>2.2.3.
  Notation</h3>
  
  <p>Many of the examples in this chapter are illustrated using a
  text representation of a document. The <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>s of
  a Range are indicated by displaying the characters (be they markup
  or data characters) between the two <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>s in
  bold, as in</p>
  
  <div class='eg'>
  <pre>
      &lt;FOO&gt;A<b>BC&lt;BAR&gt;DE</b>F&lt;/BAR&gt;&lt;/FOO&gt;
                   
  </pre>
  </div>
  
  <p>When both <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>s
  are at the same position, they are indicated with a bold caret
  ('<b>^</b>'), as in</p>
  
  <div class='eg'>
  <pre>
      &lt;FOO&gt;A<b>^</b>BC&lt;BAR&gt;DEF&lt;/BAR&gt;&lt;/FOO&gt;
  </pre>
  </div>
  </div>
  
  <!-- div3 Level-2-Range-Notation --></div>
  
  <!-- div2 Level-2-Range-Definitions -->
  <div class='div2'><a id="Level-2-Range-Creating"
  name='Level-2-Range-Creating'></a> 
  
  <h2 id='Level-2-Range-Creating-h2' class='div2'>2.3. Creating a
  Range</h2>
  
  <p>A Range is created by calling the <code>createRange()</code>
  method on the <a
  href='ranges.html#Level-2-DocumentRange-idl'><code>DocumentRange</code></a>
  interface. This interface can be obtained from the object
  implementing the <code>Document</code> interface using
  binding-specific casting methods.</p>
  
  <div class='eg'>
  <pre>
    interface DocumentRange {
      Range createRange();
    }
  </pre>
  </div>
  
  <p>The initial state of the Range returned from this method is such
  that both of its <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a>s
  are positioned at the beginning of the corresponding Document,
  before any content. In other words, the <a
  href='ranges.html#td-container'><em>container</em></a> of each <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> is
  the Document node and the offset within that node is 0.</p>
  
  <p>Like some objects created using methods in the Document
  interface (such as Nodes and DocumentFragments), Ranges created via
  a particular document instance can select only content associated
  with that Document, or with DocumentFragments and Attrs for which
  that Document is the <code>ownerDocument</code>. Such Ranges, then,
  can not be used with other Document instances.</p>
  </div>
  
  <!-- div2 Level-2-Range-Creating -->
  <div class='div2'><a id="Level-2-Range-Changing"
  name='Level-2-Range-Changing'></a> 
  
  <h2 id='Level-2-Range-Changing-h2' class='div2'>2.4. Changing a
  Range's Position</h2>
  
  <p>A Range's position can be specified by setting the <a
  href='ranges.html#td-container'><em>container</em></a> and <a
  href='ranges.html#td-offset'><em>offset</em></a> of each
  boundary-point with the <code>setStart</code> and
  <code>setEnd</code> methods.</p>
  
  <div class='eg'>
  <pre>
    void setStart(in Node parent, in long offset)
                          raises(RangeException);
    void setEnd(in Node parent, in long offset)
                  raises(RangeException);
  </pre>
  </div>
  
  <p>If one boundary-point of a Range is set to have a <a
  href='ranges.html#td-root-container'><em>root container</em></a>
  other than the current one for the Range, the Range is <a
  href='ranges.html#td-collapsed'><em>collapsed</em></a> to the new
  position. This enforces the restriction that both boundary-points
  of a Range must have the same <a
  href='ranges.html#td-root-container'><em>root
  container</em></a>.</p>
  
  <p>The start position of a Range is guaranteed to never be after
  the end position. To enforce this restriction, if the start is set
  to be at a position after the end, the Range is <a
  href='ranges.html#td-collapsed'><em>collapsed</em></a> to that
  position. Similarly, if the end is set to be at a position before
  the start, the Range is <a
  href='ranges.html#td-collapsed'><em>collapsed</em></a> to that
  position.</p>
  
  <p>It is also possible to set a Range's position relative to nodes
  in the tree:</p>
  
  <div class='eg'>
  <pre>
    void setStartBefore(in Node node);
                                raises(RangeException);
    void setStartAfter(in Node node);
                         raises(RangeException);
    void setEndBefore(in Node node);
                        raises(RangeException);
    void setEndAfter(in Node node);
                       raises(RangeException);
  </pre>
  </div>
  
  <p>The <a href='glossary.html#dt-parent'><em>parent</em></a> of the
  node becomes the <a
  href='ranges.html#td-container'><em>container</em></a> of the <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> and
  the Range is subject to the same restrictions as given above in the
  description of <code>setStart()</code>and
  <code>setEnd()</code>.</p>
  
  <p>A Range can be <a
  href='ranges.html#td-collapsed'><em>collapsed</em></a> to either
  boundary-point:</p>
  
  <div class='eg'>
  <pre>
    void collapse(in boolean toStart);
  </pre>
  </div>
  
  <p>Passing <code>TRUE</code> as the parameter <code>toStart</code>
  will <a href='ranges.html#td-collapsed'><em>collapse</em></a> the
  Range to its start, <code>FALSE</code> to its end.</p>
  
  <p>Testing whether a Range is <a
  href='ranges.html#td-collapsed'><em>collapsed</em></a> can be done
  by examining the <code>collapsed</code> attribute:</p>
  
  <div class='eg'>
  <pre>
    readonly attribute boolean collapsed;
  </pre>
  </div>
  
  <p>The following methods can be used to make a Range select the
  contents of a node or the node itself.</p>
  
  <div class='eg'>
  <pre>
    void selectNode(in Node n);
    void selectNodeContents(in Node n);
  </pre>
  </div>
  
  <p>The following examples demonstrate the operation of the methods
  <code>selectNode</code> and <code>selectNodeContents</code>:</p>
  
  <div class='eg'>
  <pre>
  Before:
    <b>^</b>&lt;BAR&gt;&lt;FOO&gt;A&lt;MOO&gt;B&lt;/MOO&gt;C&lt;/FOO&gt;&lt;/BAR&gt;
  After Range.selectNodeContents(FOO):
    &lt;BAR&gt;&lt;FOO&gt;<b>A&lt;MOO&gt;B&lt;/MOO&gt;C</b>&lt;/FOO&gt;&lt;/BAR&gt;
  (In this case, FOO is the parent of both boundary-points)
  After Range.selectNode(FOO):
  
  &lt;BAR&gt;<b>&lt;FOO&gt;A&lt;MOO&gt;B&lt;/MOO&gt;C&lt;/FOO&gt;</b>&lt;/BAR&gt;
  </pre>
  </div>
  </div>
  
  <!-- div2 Level-2-Range-Changing -->
  <div class='div2'><a id="Level-2-Range-Comparing"
  name='Level-2-Range-Comparing'></a> 
  
  <h2 id='Level-2-Range-Comparing-h2' class='div2'>2.5. Comparing
  Range Boundary-Points</h2>
  
  <p>It is possible to compare two Ranges by comparing their
  boundary-points:</p>
  
  <div class='eg'>
  <pre>
    short compareBoundaryPoints(in CompareHow how, in Range sourceRange) raises(RangeException);
  </pre>
  </div>
  
  <p>where <code>CompareHow</code> is one of four values:
  <code>START_TO_START</code>, <code>START_TO_END</code>,
  <code>END_TO_END</code> and <code>END_TO_START</code>. The return
  value is -1, 0 or 1 depending on whether the corresponding
  boundary-point of the Range is before, equal to, or after the
  corresponding boundary-point of <code>sourceRange</code>. An
  exception is thrown if the two Ranges have different <a
  href='ranges.html#td-root-container'><em>root
  container</em></a>s.</p>
  
  <p>The result of comparing two boundary-points (or positions) is
  specified below. An informal but not always correct specification
  is that an boundary-point is before, equal to, or after another if
  it corresponds to a location in a text representation before, equal
  to, or after the other's corresponding location.</p>
  
  <p><a id="td-comparison" name='td-comparison'></a>Let A and B be
  two boundary-points or positions. Then one of the following holds:
  A is <i>before</i> B, A is <i>equal to</i> B, or A is <i>after</i>
  B. Which one holds is specified in the following by examining four
  cases:</p>
  
  <p>In the first case the boundary-points have the same <a
  href='ranges.html#td-container'><em>container</em></a>. A is
  <i>before</i> B if its <a
  href='ranges.html#td-offset'><em>offset</em></a> is less than the
  <a href='ranges.html#td-offset'><em>offset</em></a> of B, A is
  <i>equal to</i> B if its <a
  href='ranges.html#td-offset'><em>offset</em></a> is equal to the <a
  href='ranges.html#td-offset'><em>offset</em></a> of B, and A is
  <i>after</i> B if its <a
  href='ranges.html#td-offset'><em>offset</em></a> is greater than
  the <a href='ranges.html#td-offset'><em>offset</em></a> of B.</p>
  
  <p>In the second case a child node C of the <a
  href='ranges.html#td-container'><em>container</em></a> of A is an
  <a href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of B. In this case, A is <i>before</i> B if the
  <a href='ranges.html#td-offset'><em>offset</em></a> of A is less
  than or equal to the index of the child node C and A is
  <i>after</i> B otherwise.</p>
  
  <p>In the third case a child node C of the <a
  href='ranges.html#td-container'><em>container</em></a> of B is an
  <a href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of A. In this case, A is <i>before</i> B if the
  index of the child node C is less than the <a
  href='ranges.html#td-offset'><em>offset</em></a> of B and A is
  <i>after</i> B otherwise.</p>
  
  <p>In the fourth case, none of three other cases hold: the
  containers of A and B are <a
  href='glossary.html#dt-sibling'><em>siblings</em></a> or <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> of
  sibling nodes. In this case, A is <i>before</i> B if the <a
  href='ranges.html#td-container'><em>container</em></a> of A is
  before the <a
  href='ranges.html#td-container'><em>container</em></a> of B in a
  pre-order traversal of the Ranges' <a
  href='ranges.html#td-context-tree'><em>context tree</em></a> and A
  is <i>after</i> B otherwise.</p>
  
  <p>Note that because the same location in a text representation of
  the document can correspond to two different positions in the DOM
  tree, it is possible for two boundary-points to not compare equal
  even though they would be equal in the text representation. For
  this reason, the informal definition above can sometimes be
  incorrect.</p>
  </div>
  
  <!-- div2 Level-2-Range-Comparing -->
  <div class='div2'><a id="Level-2-Range-Deleting-Content"
  name='Level-2-Range-Deleting-Content'></a> 
  
  <h2 id='Level-2-Range-Deleting-Content-h2' class='div2'>2.6.
  Deleting Content with a Range</h2>
  
  <p>One can delete the contents selected by a Range with:</p>
  
  <div class='eg'>
  <pre>
    void deleteContents();
  </pre>
  </div>
  
  <p><code>deleteContents()</code> deletes all nodes and characters
  selected by the Range. All other nodes and characters remain in the
  <a href='ranges.html#td-context-tree'><em>context tree</em></a> of
  the Range. Some examples of this deletion operation are:</p>
  
  <div class='eg'>
  <pre>
  (1) &lt;FOO&gt;A<b>B&lt;MOO&gt;CD&lt;/MOO&gt;</b>CD&lt;/FOO&gt;  --&gt;
  &lt;FOO&gt;A<b>^</b>CD&lt;/FOO&gt;
  </pre>
  </div>
  
  <div class='eg'>
  <pre>
  (2) &lt;FOO&gt;A&lt;MOO&gt;B<b>C&lt;/MOO&gt;D</b>E&lt;/FOO&gt;  --&gt;
  &lt;FOO&gt;A&lt;MOO&gt;B&lt;/MOO&gt;<b>^</b>E&lt;/FOO&gt;
  </pre>
  </div>
  
  <div class='eg'>
  <pre>
  (3) &lt;FOO&gt;X<b>Y&lt;BAR&gt;Z</b>W&lt;/BAR&gt;Q&lt;/FOO&gt;  --&gt;
  &lt;FOO&gt;X<b>^</b>&lt;BAR&gt;W&lt;/BAR&gt;Q&lt;/FOO&gt;
  </pre>
  </div>
  
  <div class='eg'>
  <pre>
  (4) &lt;FOO&gt;&lt;BAR1&gt;A<b>B&lt;/BAR1&gt;&lt;BAR2/&gt;&lt;BAR3&gt;C</b>D&lt;/BAR3&gt;&lt;/FOO&gt;
  --&gt;  &lt;FOO&gt;&lt;BAR1&gt;A&lt;/BAR1&gt;<b>^</b>&lt;BAR3&gt;D&lt;/BAR3&gt;
  </pre>
  </div>
  
  <p>After <code>deleteContents()</code> is invoked on a Range, the
  Range is <a href='ranges.html#td-collapsed'><em>collapsed</em></a>.
  If no node was <a
  href='ranges.html#td-partially-selected'><em>partially
  selected</em></a> by the Range, then it is <a
  href='ranges.html#td-collapsed'><em>collapsed</em></a> to its
  original start point, as in example (1). If a node was <a
  href='ranges.html#td-partially-selected'><em>partially
  selected</em></a> by the Range and was an <a
  href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of the start of the Range and no <a
  href='glossary.html#dt-ancestor'><em>ancestor</em></a> of the node
  satisfies these two conditions, then the Range is collapsed to the
  position immediately after the node, as in examples (2) and (4). If
  a node was <a
  href='ranges.html#td-partially-selected'><em>partially
  selected</em></a> by the Range and was an <a
  href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of the end of the Range and no ancestor of the
  node satisfies these two conditions, then the Range is collapsed to
  the position immediately before the node, as in examples (3) and
  (4).</p>
  
  <p>Note that if deletion of a Range leaves adjacent Text nodes,
  they are not automatically merged, and empty Text nodes are not
  automatically removed. Two Text nodes should be joined only if each
  is the container of one of the boundary-points of a Range whose
  contents are deleted. To merge adjacent Text nodes, or remove empty
  text nodes, the <code>normalize()</code> method on the
  <code>Node</code> interface should be used.</p>
  </div>
  
  <!-- div2 Level-2-Range-Deleting-Content -->
  <div class='div2'><a id="Level-2-Range-Extracting"
  name='Level-2-Range-Extracting'></a> 
  
  <h2 id='Level-2-Range-Extracting-h2' class='div2'>2.7. Extracting
  Content</h2>
  
  <p>If the contents of a Range need to be extracted rather than
  deleted, the following method may be used:</p>
  
  <div class='eg'>
  <pre>
    DocumentFragment extractContents();
  </pre>
  </div>
  
  <p>The <code>extractContents()</code> method removes nodes from the
  Range's <a href='ranges.html#td-context-tree'><em>context
  tree</em></a> similarly to the <code>deleteContents()</code>
  method. In addition, it places the deleted contents in a new
  <code>DocumentFragment</code>. The following examples illustrate
  the contents of the returned DocumentFragment:</p>
  
  <div class='eg'>
  <pre>
  (1) &lt;FOO&gt;A<b>B&lt;MOO&gt;CD&lt;/MOO&gt;</b>CD&lt;/FOO&gt;  --&gt;
  B&lt;MOO&gt;CD&lt;/MOO&gt;
  </pre>
  </div>
  
  <div class='eg'>
  <pre>
  (2) &lt;FOO&gt;A&lt;MOO&gt;B<b>C&lt;/MOO&gt;D</b>E&lt;/FOO&gt;  --&gt;
  &lt;MOO&gt;C&lt;MOO&gt;D
  </pre>
  </div>
  
  <div class='eg'>
  <pre>
  (3) &lt;FOO&gt;X<b>Y&lt;BAR&gt;Z</b>W&lt;/BAR&gt;Q&lt;/FOO&gt;  --&gt;
  Y&lt;BAR&gt;Z&lt;/BAR&gt;
  </pre>
  </div>
  
  <div class='eg'>
  <pre>
  (4)
  &lt;FOO&gt;&lt;BAR1&gt;A<b>B&lt;/BAR1&gt;&lt;BAR2/&gt;&lt;BAR3&gt;C</b>D&lt;/BAR3&gt;&lt;/FOO&gt; --&gt;
  &lt;BAR1&gt;B&lt;/BAR1&gt;&lt;BAR2/&gt;&lt;BAR3&gt;C&lt;/BAR3&gt;
  </pre>
  </div>
  
  <p>It is important to note that nodes that are <a
  href='ranges.html#td-partially-selected'><em>partially
  selected</em></a> by the Range are cloned. Since part of such a
  node's contents must remain in the Range's <a
  href='ranges.html#td-context-tree'><em>context tree</em></a> and
  part of the contents must be moved to the new DocumentFragment, a
  clone of the <a
  href='ranges.html#td-partially-selected'><em>partially
  selected</em></a> node is included in the new DocumentFragment.
  Note that cloning does not take place for <a
  href='ranges.html#td-selected'><em>selected</em></a> elements;
  these nodes are moved to the new DocumentFragment.</p>
  </div>
  
  <!-- div2 Level-2-Range-Extracting -->
  <div class='div2'><a id="Level-2-Range-Cloning"
  name='Level-2-Range-Cloning'></a> 
  
  <h2 id='Level-2-Range-Cloning-h2' class='div2'>2.8. Cloning
  Content</h2>
  
  <p>The contents of a Range may be duplicated using the following
  method:</p>
  
  <div class='eg'>
  <pre>
    DocumentFragment cloneContents();
  </pre>
  </div>
  
  <p>This method returns a <code>DocumentFragment</code> that is
  similar to the one returned by the method
  <code>extractContents()</code>. However, in this case, the original
  nodes and character data in the Range are not removed from the
  Range's <a href='ranges.html#td-context-tree'><em>context
  tree</em></a>. Instead, all of the nodes and text content within
  the returned <code>DocumentFragment</code> are cloned.</p>
  </div>
  
  <!-- div2 Level-2-Range-Cloning -->
  <div class='div2'><a id="Level-2-Range-Inserting"
  name='Level-2-Range-Inserting'></a> 
  
  <h2 id='Level-2-Range-Inserting-h2' class='div2'>2.9. Inserting
  Content</h2>
  
  <p>A node may be inserted into a Range using the following
  method:</p>
  
  <div class='eg'>
  <pre>
    void insertNode(in Node n) raises(RangeException);
  </pre>
  </div>
  
  <p>The <code>insertNode()</code> method inserts the specified node
  into the Range's <a href='ranges.html#td-context-tree'><em>context
  tree</em></a>. The node is inserted at the start <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> of
  the Range, without modifying it.</p>
  
  <p>If the start boundary point of the Range is in a
  <code>Text</code> node, the <code>insertNode</code> operation
  splits the <code>Text</code> node at the boundary point. If the
  node to be inserted is also a <code>Text</code> node, the resulting
  adjacent <code>Text</code> nodes are not normalized automatically;
  this operation is left to the application.</p>
  
  <p>The Node passed into this method can be a
  <code>DocumentFragment</code>. In that case, the contents of the
  <code>DocumentFragment</code> are inserted at the start <a
  href='ranges.html#td-boundarypoint'><em>boundary-point</em></a> of
  the Range, but the <code>DocumentFragment</code> itself is not.
  Note that if the Node represents the root of a sub-tree, the entire
  sub-tree is inserted.</p>
  
  <p>The same rules that apply to the <code>insertBefore()</code>
  method on the Node interface apply here. Specifically, the Node
  passed in, if it already has a parent, will be removed from its
  existing position.</p>
  </div>
  
  <!-- div2 Level-2-Range-Inserting -->
  <div class='div2'><a id="Level-2-Range-Surrounding"
  name='Level-2-Range-Surrounding'></a> 
  
  <h2 id='Level-2-Range-Surrounding-h2' class='div2'>2.10.
  Surrounding Content</h2>
  
  <p>The insertion of a single node to subsume the content selected
  by a Range can be performed with:</p>
  
  <div class='eg'>
  <pre>
    void surroundContents(in Node newParent);
  </pre>
  </div>
  
  <p>The <code>surroundContents()</code> method causes all of the
  content selected by the Range to be rooted by the specified node.
  The nodes may not be Attr, Entity, DocumentType, Notation,
  Document, or DocumentFragment nodes. Calling
  <code>surroundContents()</code> with the Element node FOO in the
  following examples yields:</p>
  
  <div class='eg'>
  <pre>
       Before:
         &lt;BAR&gt;A<b>B&lt;MOO&gt;C&lt;/MOO&gt;D</b>E&lt;/BAR&gt;
  
       After surroundContents(FOO):
  
  &lt;BAR&gt;A<b>&lt;FOO&gt;B&lt;MOO&gt;C&lt;/MOO&gt;D&lt;/FOO&gt;</b>E&lt;/BAR&gt;
  </pre>
  </div>
  
  <p>Another way of describing the effect of this method on the
  Range's <a href='ranges.html#td-context-tree'><em>context
  tree</em></a> is to decompose it in terms of other operations:</p>
  
  <ol>
  <li>Remove the contents selected by the Range with a call to
  <code>extractContents()</code>.</li>
  
  <li>Insert the node <code>newParent</code> where the Range is
  collapsed (after the extraction) with
  <code>insertNode().</code></li>
  
  <li>Insert the entire contents of the extracted DocumentFragment
  into <code>newParent</code>. Specifically, invoke the
  <code>appendChild()</code> on <code>newParent</code> passing in the
  DocumentFragment returned as a result of the call to
  <code>extractContents()</code></li>
  
  <li>Select <code>newParent</code> and all of its contents with
  <code>selectNode()</code>.</li>
  </ol>
  
  <p>The <code>surroundContents()</code> method raises an exception
  if the Range <a
  href='ranges.html#td-partially-selected'><em>partially
  selects</em></a> a non-Text node. An example of a Range for which
  <code>surroundContents()</code>raises an exception is:</p>
  
  <div class='eg'>
  <pre>
       &lt;FOO&gt;A<b>B&lt;BAR&gt;C</b>D&lt;/BAR&gt;E&lt;/FOO&gt;
  </pre>
  </div>
  
  <p>If the node <code>newParent</code> has any children, those
  children are removed before its insertion. Also, if the node
  <code>newParent</code> already has a parent, it is removed from the
  original parent's <code>childNodes</code> list.</p>
  </div>
  
  <!-- div2 Level-2-Range-Surrounding -->
  <div class='div2'><a id="Level-2-Range-Misc"
  name='Level-2-Range-Misc'></a> 
  
  <h2 id='Level-2-Range-Misc-h2' class='div2'>2.11. Miscellaneous
  Members</h2>
  
  <p>One can clone a Range:</p>
  
  <div class='eg'>
  <pre>
    Range cloneRange();
  </pre>
  </div>
  
  <p>This creates a new Range which selects exactly the same content
  as that selected by the Range on which the method
  <code>cloneRange</code> was invoked. No content is affected by this
  operation.</p>
  
  <p>Because the boundary-points of a Range do not necessarily have
  the same <a
  href='ranges.html#td-container'><em>container</em></a>s, use:</p>
  
  <div class='eg'>
  <pre>
    readonly attribute Node commonAncestorContainer;
  </pre>
  </div>
  
  <p>to get the <a
  href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of both boundary-points that is furthest down
  from the Range's <a href='ranges.html#td-root-container'><em>root
  container</em></a></p>
  
  <p>One can get a copy of all the character data selected or
  partially selected by a Range with:</p>
  
  <div class='eg'>
  <pre>
    DOMString toString();
  </pre>
  </div>
  
  <p>This does nothing more than simply concatenate all the character
  data selected by the Range. This includes character data in both
  <code>Text</code> and <code>CDATASection</code> nodes.</p>
  </div>
  
  <!-- div2 Level-2-Range-Misc -->
  <div class='div2'><a id="Level-2-Range-Mutation"
  name='Level-2-Range-Mutation'></a> 
  
  <h2 id='Level-2-Range-Mutation-h2' class='div2'>2.12. Range
  modification under document mutation</h2>
  
  <p>As a document is modified, the Ranges within the document need
  to be updated. For example, if one boundary-point of a Range is
  within a node and that node is removed from the document, then the
  Range would be invalid unless it is fixed up in some way. This
  section describes how Ranges are modified under document mutations
  so that they remain valid.</p>
  
  <p>There are two general principles which apply to Ranges under
  document mutation: The first is that all Ranges in a document will
  remain valid after any mutation operation and the second is that,
  as much as possible, all Ranges will select the same portion of the
  document after any mutation operation.</p>
  
  <p>Any mutation of the document tree which affect Ranges can be
  considered to be a combination of basic deletion and insertion
  operations. In fact, it can be convenient to think of those
  operations as being accomplished using the
  <code>deleteContents()</code> and <code>insertNode()</code> Range
  methods and, in the case of Text mutations, the
  <code>splitText()</code> and <code>normalize()</code> methods.</p>
  
  <div class='div3'><a id="Level-2-Range-Insertions"
  name='Level-2-Range-Insertions'></a> 
  
  <h3 id='Level-2-Range-Insertions-h3' class='div3'>2.12.1.
  Insertions</h3>
  
  <p>An insertion occurs at a single point, the insertion point, in
  the document. For any Range in the document tree, consider each
  boundary-point. The only case in which the boundary-point will be
  changed after the insertion is when the boundary-point and the
  insertion point have the same <a
  href='ranges.html#td-container'><em>container</em></a> and the <a
  href='ranges.html#td-offset'><em>offset</em></a> of the insertion
  point is strictly less than the <a
  href='ranges.html#td-offset'><em>offset</em></a> of the Range's
  boundary-point. In that case the <a
  href='ranges.html#td-offset'><em>offset</em></a> of the Range's
  boundary-point will be increased so that it is between the same
  nodes or characters as it was before the insertion.</p>
  
  <p>Note that when content is inserted at a boundary-point, it is
  ambiguous as to where the boundary-point should be repositioned if
  its relative position is to be maintained. There are two
  possibilities: at the start or at the end of the newly inserted
  content. We have chosen that in this case neither the <a
  href='ranges.html#td-container'><em>container</em></a> nor <a
  href='ranges.html#td-offset'><em>offset</em></a> of the
  boundary-point is changed. As a result, the boundary-point will be
  positioned at the start of the newly inserted content.</p>
  
  <p><em>Examples:</em></p>
  
  <p>Suppose the Range selects the following:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;Abcd efgh X<b>Y blah i</b>jkl&lt;/P&gt;
  </pre>
  </div>
  
  <p>Consider the insertion of the text "<i>inserted text</i>" at the
  following positions:</p>
  
  <div class='eg'>
  <pre>
  1. Before the 'X':
  
  &lt;P&gt;Abcd efgh <i>inserted text</i>X<b>Y blah i</b>jkl&lt;/P&gt;
  
  2. After the 'X':
  
  &lt;P&gt;Abcd efgh X<b><i>inserted text</i>Y blah i</b>jkl&lt;/P&gt;
  
  3. After the 'Y':
  
  &lt;P&gt;Abcd efgh X<b>Y<i>inserted text</i> blah i</b>jkl&lt;/P&gt;
  
  4. After the 'h' in "Y blah":
  
  &lt;P&gt;Abcd efgh X<b>Y blah<i>inserted text</i> i</b>jkl&lt;/P&gt;
  
  </pre>
  </div>
  </div>
  
  <!-- div3 Level-2-Range-Insertions -->
  <div class='div3'><a id="Level-2-Range-Deletions"
  name='Level-2-Range-Deletions'></a> 
  
  <h3 id='Level-2-Range-Deletions-h3' class='div3'>2.12.2.
  Deletions</h3>
  
  <p>Any deletion from the document tree can be considered as a
  sequence of <code>deleteContents()</code> operations applied to a
  minimal set of disjoint Ranges. To specify how a Range is modified
  under deletions we need only consider what happens to a Range under
  a single <code>deleteContents()</code>operation of another Range.
  And, in fact, we need only consider what happens to a single
  boundary-point of the Range since both boundary-points are modified
  using the same algorithm.</p>
  
  <p>If a boundary-point of the original Range is within the content
  being deleted, then after the deletion it will be at the same
  position as the resulting boundary-point of the (now <a
  href='ranges.html#td-collapsed'><em>collapsed</em></a>) Range used
  to delete the contents.</p>
  
  <p>If a boundary-point is after the content being deleted then it
  is not affected by the deletion unless its <a
  href='ranges.html#td-container'><em>container</em></a> is also the
  <a href='ranges.html#td-container'><em>container</em></a> of one of
  the boundary-points of the Range being deleted. If there is such a
  common <a href='ranges.html#td-container'><em>container</em></a>,
  then the index of the boundary-point is modified so that the
  boundary-point maintains its position relative to the content of
  the <a href='ranges.html#td-container'><em>container</em></a>.</p>
  
  <p>If a boundary-point is before the content being deleted then it
  is not affected by the deletion at all.</p>
  
  <p><em>Examples:</em></p>
  
  <p>In these examples, the Range on which
  <code>deleteContents()</code>is invoked is indicated by the
  underline.</p>
  
  <p><em>Example 1.</em></p>
  
  <p>Before:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;Abcd <u>efgh T</u><b><u>he</u> Range i</b>jkl&lt;/P&gt;
  </pre>
  </div>
  
  <p>After:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;Abcd <b>Range i</b>jkl&lt;/P&gt;
  </pre>
  </div>
  
  <p><em>Example 2.</em></p>
  
  <p>Before:</p>
  
  <div class='eg'>
  <pre>
  &lt;p&gt;Abcd <u>efgh T<b>he Range i</b>j</u>kl&lt;/p&gt;
  </pre>
  </div>
  
  <p>After:</p>
  
  <div class='eg'>
  <pre>
  &lt;p&gt;Abcd <b>^</b>kl&lt;/p&gt;
  </pre>
  </div>
  
  <p><em>Example 3.</em></p>
  
  <p>Before:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;ABCD <u>efgh T</u><b><u>he &lt;EM&gt;R</u>ange</b>&lt;/EM&gt; ijkl&lt;/P&gt;
  </pre>
  </div>
  
  <p>After:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;ABCD &lt;EM&gt;<b>ange</b>&lt;/EM&gt; ijkl&lt;/P&gt;
  </pre>
  </div>
  
  <p>In this example, the container of the start boundary-point after
  the deletion is the Text node holding the string "ange".</p>
  
  <p><em>Example 4.</em></p>
  
  <p>Before:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;Abcd <u>efgh T</u><b>he Range i</b>jkl&lt;/P&gt;
  </pre>
  </div>
  
  <p>After:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;Abcd <b>he Range i</b>jkl&lt;/P&gt;
  </pre>
  </div>
  
  <p><em>Example 5.</em></p>
  
  <p>Before:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;Abcd <u>&lt;EM&gt;efgh T<b>he Range i</b>j&lt;/EM&gt;</u>kl&lt;/P&gt;
  </pre>
  </div>
  
  <p>After:</p>
  
  <div class='eg'>
  <pre>
  &lt;P&gt;Abcd <b>^</b>kl&lt;/P&gt;
  </pre>
  </div>
  </div>
  
  <!-- div3 Level-2-Range-Deletions --></div>
  
  <!-- div2 Level-2-Range-Mutation -->
  <div class='div2'><a id="Level-2-Range-Interface"
  name='Level-2-Range-Interface'></a> 
  
  <h2 id='Level-2-Range-Interface-h2' class='div2'>2.13. Formal
  Description of the Range Interface</h2>
  
  <p>To summarize, the complete, formal description of the <a
  href='ranges.html#Level-2-Range-idl'><code>Range</code></a>
  interface is given below:</p>
  
  <dl>
  <dt><b>Interface <i><a id="Level-2-Range-idl"
  name='Level-2-Range-idl'>Range</a></i></b> (introduced in <b
  class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface Range {
    readonly attribute Node             startContainer;
                                          // raises(DOMException) on retrieval
  
    readonly attribute long             startOffset;
                                          // raises(DOMException) on retrieval
  
    readonly attribute Node             endContainer;
                                          // raises(DOMException) on retrieval
  
    readonly attribute long             endOffset;
                                          // raises(DOMException) on retrieval
  
    readonly attribute boolean          collapsed;
                                          // raises(DOMException) on retrieval
  
    readonly attribute Node             commonAncestorContainer;
                                          // raises(DOMException) on retrieval
  
    void               setStart(in Node refNode, 
                                in long offset)
                                          raises(RangeException, 
                                                 DOMException);
    void               setEnd(in Node refNode, 
                              in long offset)
                                          raises(RangeException, 
                                                 DOMException);
    void               setStartBefore(in Node refNode)
                                          raises(RangeException, 
                                                 DOMException);
    void               setStartAfter(in Node refNode)
                                          raises(RangeException, 
                                                 DOMException);
    void               setEndBefore(in Node refNode)
                                          raises(RangeException, 
                                                 DOMException);
    void               setEndAfter(in Node refNode)
                                          raises(RangeException, 
                                                 DOMException);
    void               collapse(in boolean toStart)
                                          raises(DOMException);
    void               selectNode(in Node refNode)
                                          raises(RangeException, 
                                                 DOMException);
    void               selectNodeContents(in Node refNode)
                                          raises(RangeException, 
                                                 DOMException);
  
    // CompareHow
    const unsigned short      START_TO_START                 = 0;
    const unsigned short      START_TO_END                   = 1;
    const unsigned short      END_TO_END                     = 2;
    const unsigned short      END_TO_START                   = 3;
  
    short              compareBoundaryPoints(in unsigned short how, 
                                             in Range sourceRange)
                                          raises(DOMException);
    void               deleteContents()
                                          raises(DOMException);
    DocumentFragment   extractContents()
                                          raises(DOMException);
    DocumentFragment   cloneContents()
                                          raises(DOMException);
    void               insertNode(in Node newNode)
                                          raises(DOMException, 
                                                 RangeException);
    void               surroundContents(in Node newParent)
                                          raises(DOMException, 
                                                 RangeException);
    Range              cloneRange()
                                          raises(DOMException);
    DOMString          toString()
                                          raises(DOMException);
    void               detach()
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a id="Level2-Range-compareHow"
  name='Level2-Range-compareHow'>CompareHow</a></i></b></dt>
  
  <dd>
  <p>Passed as a parameter to the <code>compareBoundaryPoints</code>
  method.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>END_TO_END</code></dt>
  
  <dd>Compare end boundary-point of <code>sourceRange</code> to end
  boundary-point of Range on which <code>compareBoundaryPoints</code>
  is invoked.</dd>
  
  <dt><code class='constant-name'>END_TO_START</code></dt>
  
  <dd>Compare end boundary-point of <code>sourceRange</code> to start
  boundary-point of Range on which <code>compareBoundaryPoints</code>
  is invoked.</dd>
  
  <dt><code class='constant-name'>START_TO_END</code></dt>
  
  <dd>Compare start boundary-point of <code>sourceRange</code> to end
  boundary-point of Range on which <code>compareBoundaryPoints</code>
  is invoked.</dd>
  
  <dt><code class='constant-name'>START_TO_START</code></dt>
  
  <dd>Compare start boundary-point of <code>sourceRange</code> to
  start boundary-point of Range on which
  <code>compareBoundaryPoints</code> is invoked.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="Level-2-Range-attr-collapsed"
  name='Level-2-Range-attr-collapsed'>collapsed</a></code> of type
  <code>boolean</code>, readonly</dt>
  
  <dd>TRUE if the Range is collapsed<br />
   
  
  <div class='exceptions'><b>Exceptions on retrieval</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Level-2-Range-attr-commonParent"
  name='Level-2-Range-attr-commonParent'>commonAncestorContainer</a></code>
  of type <code>Node</code>, readonly</dt>
  
  <dd>The <a href='glossary.html#dt-deepest'><em>deepest</em></a>
  common <a href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of the Range's two boundary-points.<br />
   
  
  <div class='exceptions'><b>Exceptions on retrieval</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Level-2-Range-attr-endParent"
  name='Level-2-Range-attr-endParent'>endContainer</a></code> of type
  <code>Node</code>, readonly</dt>
  
  <dd>Node within which the Range ends<br />
   
  
  <div class='exceptions'><b>Exceptions on retrieval</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Level-2-Range-attr-endOffset"
  name='Level-2-Range-attr-endOffset'>endOffset</a></code> of type
  <code>long</code>, readonly</dt>
  
  <dd>Offset within the ending node of the Range.<br />
   
  
  <div class='exceptions'><b>Exceptions on retrieval</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Level-2-Range-attr-startParent"
  name='Level-2-Range-attr-startParent'>startContainer</a></code> of
  type <code>Node</code>, readonly</dt>
  
  <dd>Node within which the Range begins<br />
   
  
  <div class='exceptions'><b>Exceptions on retrieval</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Level-2-Range-attr-startOffset"
  name='Level-2-Range-attr-startOffset'>startOffset</a></code> of
  type <code>long</code>, readonly</dt>
  
  <dd>Offset within the starting node of the Range.<br />
   
  
  <div class='exceptions'><b>Exceptions on retrieval</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Level2-Range-method-cloneContents"
  name='Level2-Range-method-cloneContents'>cloneContents</a></code></dt>
  
  <dd>
  <div class='method'>Duplicates the contents of a Range 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DocumentFragment</code></p>
  </td>
  <td>
  <p>A DocumentFragment that contains content equivalent to this
  Range.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be
  extracted into the new DocumentFragment.</p>
  
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Level2-Range-method-clone"
  name='Level2-Range-method-clone'>cloneRange</a></code></dt>
  
  <dd>
  <div class='method'>Produces a new Range whose boundary-points are
  equal to the boundary-points of the Range. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#Level-2-Range-idl'><code>Range</code></a></p>
  </td>
  <td>
  <p>The duplicated Range.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Level2-Range-method-collapse"
  name='Level2-Range-method-collapse'>collapse</a></code></dt>
  
  <dd>
  <div class='method'>Collapse a Range onto one of its
  boundary-points 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>toStart</code> of type
  <code>boolean</code></dt>
  
  <dd>If TRUE, collapses the Range onto its start; if FALSE,
  collapses it onto its end.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-compareBoundaryPoints"
  name='Level2-Range-method-compareBoundaryPoints'>compareBoundaryPoints</a></code></dt>
  
  <dd>
  <div class='method'>Compare the boundary-points of two Ranges in a
  document. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>how</code> of type <code>unsigned
  short</code></dt>
  
  <dd>A code representing the type of comparison, as defined
  above.<br />
  </dd>
  
  <dt><code class='parameter-name'>sourceRange</code> of type <a
  href='ranges.html#Level-2-Range-idl'><code>Range</code></a></dt>
  
  <dd>The <code>Range</code> on which this current <code>Range</code>
  is compared to.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>short</code></p>
  </td>
  <td>
  <p>-1, 0 or 1 depending on whether the corresponding boundary-point
  of the Range is respectively before, equal to, or after the
  corresponding boundary-point of <code>sourceRange</code>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same
  Document or DocumentFragment.</p>
  
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-deleteContents"
  name='Level2-Range-method-deleteContents'>deleteContents</a></code></dt>
  
  <dd>
  <div class='method'>Removes the contents of a Range from the
  containing document or document fragment without returning a
  reference to the removed content. 
  
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the
  content of the Range is read-only or any of the nodes that contain
  any of the content of the Range are read-only.</p>
  
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Level2-Range-method-detach"
  name='Level2-Range-method-detach'>detach</a></code></dt>
  
  <dd>
  <div class='method'>Called to indicate that the Range is no longer
  in use and that the implementation may relinquish any resources
  associated with this Range. Subsequent calls to any methods or
  attribute getters on this Range will result in a
  <code>DOMException</code> being thrown with an error code of
  <code>INVALID_STATE_ERR</code>. 
  
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-extractContents"
  name='Level2-Range-method-extractContents'>extractContents</a></code></dt>
  
  <dd>
  <div class='method'>Moves the contents of a Range from the
  containing document or document fragment to a new DocumentFragment.
  
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DocumentFragment</code></p>
  </td>
  <td>
  <p>A DocumentFragment containing the extracted contents.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the
  content of the Range is read-only or any of the nodes which contain
  any of the content of the Range are read-only.</p>
  
  <p>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be
  extracted into the new DocumentFragment.</p>
  
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-insertNode"
  name='Level2-Range-method-insertNode'>insertNode</a></code></dt>
  
  <dd>
  <div class='method'>Inserts a node into the Document or
  DocumentFragment at the start of the Range. If the container is a
  Text node, this will be split at the start of the Range (as if the
  Text node's splitText method was performed at the insertion point)
  and the insertion will occur between the two resulting Text nodes.
  Adjacent Text nodes will not be automatically merged. If the node
  to be inserted is a DocumentFragment node, the children will be
  inserted rather than the DocumentFragment node itself. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>newNode</code> of type
  <code>Node</code></dt>
  
  <dd>The node to insert at the start of the Range<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if an <a
  href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of the start of the Range is read-only.</p>
  
  <p>WRONG_DOCUMENT_ERR: Raised if <code>newNode</code> and the <a
  href='ranges.html#td-container'><em>container</em></a> of the start
  of the Range were not created from the same document.</p>
  
  <p>HIERARCHY_REQUEST_ERR: Raised if the <a
  href='ranges.html#td-container'><em>container</em></a> of the start
  of the Range is of a type that does not allow children of the type
  of <code>newNode</code> or if <code>newNode</code> is an ancestor
  of the <a
  href='ranges.html#td-container'><em>container</em></a>.</p>
  
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>newNode</code> is an
  Attr, Entity, Notation, or Document node.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-selectNode"
  name='Level2-Range-method-selectNode'>selectNode</a></code></dt>
  
  <dd>
  <div class='method'>Select a node and its contents 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>refNode</code> of type
  <code>Node</code></dt>
  
  <dd>The node to select.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if an ancestor of
  <code>refNode</code> is an Entity, Notation or DocumentType node or
  if <code>refNode</code> is a Document, DocumentFragment, Attr,
  Entity, or Notation node.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-selectNodeContents"
  name='Level2-Range-method-selectNodeContents'>selectNodeContents</a></code></dt>
  
  <dd>
  <div class='method'>Select the contents within a node 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>refNode</code> of type
  <code>Node</code></dt>
  
  <dd>Node to select from<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an
  ancestor of <code>refNode</code> is an Entity, Notation or
  DocumentType node.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Level2-Range-method-setEnd"
  name='Level2-Range-method-setEnd'>setEnd</a></code></dt>
  
  <dd>
  <div class='method'>Sets the attributes describing the end of a
  Range. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>refNode</code> of type
  <code>Node</code></dt>
  
  <dd>The <code>refNode</code> value. This parameter must be
  different from <code>null</code>.<br />
  </dd>
  
  <dt><code class='parameter-name'>offset</code> of type
  <code>long</code></dt>
  
  <dd>The <code>endOffset</code> value.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an
  ancestor of <code>refNode</code> is an Entity, Notation, or
  DocumentType node.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or
  greater than the number of child units in <code>refNode</code>.
  Child units are <a href='glossary.html#dt-16-bit-unit'><em>16-bit
  units</em></a> if <code>refNode</code> is a type of CharacterData
  node (e.g., a Text or Comment node) or a ProcessingInstruction
  node. Child units are Nodes in all other cases.</p>
  
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-setEndAfter"
  name='Level2-Range-method-setEndAfter'>setEndAfter</a></code></dt>
  
  <dd>
  <div class='method'>Sets the end of a Range to be after a node 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>refNode</code> of type
  <code>Node</code></dt>
  
  <dd>Range ends after <code>refNode</code>.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if the root container of
  <code>refNode</code> is not an Attr, Document or DocumentFragment
  node or if <code>refNode</code> is a Document, DocumentFragment,
  Attr, Entity, or Notation node.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-setEndBefore"
  name='Level2-Range-method-setEndBefore'>setEndBefore</a></code></dt>
  
  <dd>
  <div class='method'>Sets the end position to be before a node. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>refNode</code> of type
  <code>Node</code></dt>
  
  <dd>Range ends before <code>refNode</code><br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if the root container of
  <code>refNode</code> is not an Attr, Document, or DocumentFragment
  node or if <code>refNode</code> is a Document, DocumentFragment,
  Attr, Entity, or Notation node.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Level2-Range-method-setStart"
  name='Level2-Range-method-setStart'>setStart</a></code></dt>
  
  <dd>
  <div class='method'>Sets the attributes describing the start of the
  Range. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>refNode</code> of type
  <code>Node</code></dt>
  
  <dd>The <code>refNode</code> value. This parameter must be
  different from <code>null</code>.<br />
  </dd>
  
  <dt><code class='parameter-name'>offset</code> of type
  <code>long</code></dt>
  
  <dd>The <code>startOffset</code> value.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an
  ancestor of <code>refNode</code> is an Entity, Notation, or
  DocumentType node.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or
  greater than the number of child units in <code>refNode</code>.
  Child units are <a href='glossary.html#dt-16-bit-unit'><em>16-bit
  units</em></a> if <code>refNode</code> is a type of CharacterData
  node (e.g., a Text or Comment node) or a ProcessingInstruction
  node. Child units are Nodes in all other cases.</p>
  
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-setStartAfter"
  name='Level2-Range-method-setStartAfter'>setStartAfter</a></code></dt>
  
  <dd>
  <div class='method'>Sets the start position to be after a node 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>refNode</code> of type
  <code>Node</code></dt>
  
  <dd>Range starts after <code>refNode</code><br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if the root container of
  <code>refNode</code> is not an Attr, Document, or DocumentFragment
  node or if <code>refNode</code> is a Document, DocumentFragment,
  Attr, Entity, or Notation node.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Level2-Range-setStartBefore"
  name='Level2-Range-setStartBefore'>setStartBefore</a></code></dt>
  
  <dd>
  <div class='method'>Sets the start position to be before a node 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>refNode</code> of type
  <code>Node</code></dt>
  
  <dd>Range starts before <code>refNode</code><br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>INVALID_NODE_TYPE_ERR: Raised if the root container of
  <code>refNode</code> is not an Attr, Document, or DocumentFragment
  node or if <code>refNode</code> is a Document, DocumentFragment,
  Attr, Entity, or Notation node.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Level2-Range-method-surroundContents"
  name='Level2-Range-method-surroundContents'>surroundContents</a></code></dt>
  
  <dd>
  <div class='method'>Reparents the contents of the Range to the
  given node and inserts the node at the position of the start of the
  Range. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>newParent</code> of type
  <code>Node</code></dt>
  
  <dd>The node to surround the contents with.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if an <a
  href='ranges.html#td-ancestor-container'><em>ancestor
  container</em></a> of either boundary-point of the Range is
  read-only.</p>
  
  <p>WRONG_DOCUMENT_ERR: Raised if <code>newParent</code> and the <a
  href='ranges.html#td-container'><em>container</em></a> of the start
  of the Range were not created from the same document.</p>
  
  <p>HIERARCHY_REQUEST_ERR: Raised if the <a
  href='ranges.html#td-container'><em>container</em></a> of the start
  of the Range is of a type that does not allow children of the type
  of <code>newParent</code> or if <code>newParent</code> is an
  ancestor of the <a
  href='ranges.html#td-container'><em>container</em></a> or if
  <code>node</code> would end up with a child node of a type not
  allowed by the type of <code>node</code>.</p>
  
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#RangeException'><code>RangeException</code></a></p>
  </td>
  <td>
  <p>BAD_BOUNDARYPOINTS_ERR: Raised if the Range <a
  href='ranges.html#td-partially-selected'><em>partially
  selects</em></a> a non-text node.</p>
  
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>node</code> is an Attr,
  Entity, DocumentType, Notation, Document, or DocumentFragment
  node.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Return Value</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Level2-Range-method-toString"
  name='Level2-Range-method-toString'>toString</a></code></dt>
  
  <dd>
  <div class='method'>Returns the contents of a Range as a string.
  This string contains only the data characters, not any markup. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMString</code></p>
  </td>
  <td>
  <p>The contents of the Range.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
  been invoked on this object.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="Level-2-DocumentRange-idl"
  name='Level-2-DocumentRange-idl'>DocumentRange</a></i></b>
  (introduced in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface DocumentRange {
    Range              createRange();
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Level2-DocumentRange-method-createRange"
  name='Level2-DocumentRange-method-createRange'>createRange</a></code></dt>
  
  <dd>
  <div class='method'>This interface can be obtained from the object
  implementing the <code>Document</code> interface using
  binding-specific casting methods. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='ranges.html#Level-2-Range-idl'><code>Range</code></a></p>
  </td>
  <td>
  <p>The initial state of the Range returned from this method is such
  that both of its boundary-points are positioned at the beginning of
  the corresponding Document, before any content. The Range returned
  can only be used to select content associated with this Document,
  or with DocumentFragments and Attrs for which this Document is the
  <code>ownerDocument</code>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Exception <i><a id="RangeException"
  name='RangeException'>RangeException</a></i></b> introduced in <b
  class='version'>DOM Level 2</b></dt>
  
  <dd>
  <p>Range operations may throw a <a
  href='ranges.html#RangeException'><code>RangeException</code></a>
  as specified in their method descriptions.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  exception RangeException {
    unsigned short   code;
  };
  // RangeExceptionCode
  const unsigned short      BAD_BOUNDARYPOINTS_ERR         = 1;
  const unsigned short      INVALID_NODE_TYPE_ERR          = 2;
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a id="RangeExceptionCode"
  name='RangeExceptionCode'>RangeExceptionCode</a></i></b></dt>
  
  <dd>
  <p>An integer indicating the type of error generated.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>BAD_BOUNDARYPOINTS_ERR</code></dt>
  
  <dd>If the boundary-points of a Range do not meet specific
  requirements.</dd>
  
  <dt><code class='constant-name'>INVALID_NODE_TYPE_ERR</code></dt>
  
  <dd>If the <a
  href='ranges.html#td-container'><em>container</em></a> of an
  boundary-point of a Range is being set to either a node of an
  invalid type or a node with an ancestor of an invalid type.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 Level-2-Range-Interface --></div>
  
  <!-- div1 Range -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='traversal.html'>previous</a> &nbsp; <a
  accesskey='n' href='idl-definitions.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/references.html
  
  Index: references.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:46:18 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>References</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='def-index.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='glossary.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='glossary.html'>previous</a> &nbsp; <a accesskey='n'
  href='def-index.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="References" name='References'></a> 
  
  <h1 id='role-references' class='references'>References</h1>
  
  <p>For the latest version of any W3C specification please consult
  the list of <a href='http://www.w3.org/TR'>W3C Technical
  Reports</a> available at http://www.w3.org/TR.</p>
  
  <div class='div2'><a id="References-Normative"
  name='References-Normative'></a> 
  
  <h2 id='References-Normative-h2' class='adiv2'>F.1: Normative
  references</h2>
  
  <dl>
  <dt><b><a id="DOMCore" name='DOMCore'>DOM Level 2 Core</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document
  Object Model Level 2 Core Specification</a>, November 2000.
  Available at
  http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113</dd>
  
  <dt><b><a id="ECMAScript" name='ECMAScript'>ECMAScript</a></b></dt>
  
  <dd>ECMA (European Computer Manufacturers Association) <a
  href='http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM'>ECMAScript
  Language Specification</a>. Available at
  http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM</dd>
  
  <dt><b><a id="ISO10646" name='ISO10646'>ISO/IEC 10646</a></b></dt>
  
  <dd>ISO (International Organization for Standardization). ISO/IEC
  10646-1:2000 (E). Information technology - Universal Multiple-Octet
  Coded Character Set (UCS) - Part 1: Architecture and Basic
  Multilingual Plane. [Geneva]: International Organization for
  Standardization.</dd>
  
  <dt><b><a id="Java" name='Java'>Java</a></b></dt>
  
  <dd>Sun Microsystems Inc. <a
  href='http://java.sun.com/docs/books/jls'>The Java Language
  Specification</a>, James Gosling, Bill Joy, and Guy Steele,
  September 1996. Available at
  http://java.sun.com/docs/books/jls</dd>
  
  <dt><b><a id="OMGIDL" name='OMGIDL'>OMGIDL</a></b></dt>
  
  <dd>OMG (<a href='http://www.omg.org/'>Object Management Group</a>)
  IDL (Interface Definition Language) defined in The Common Object
  Request Broker: Architecture and Specification, version 2.3.1,
  October 1999. Available from http://www.omg.org/</dd>
  
  <dt><b><a id="Unicode" name='Unicode'>Unicode</a></b></dt>
  
  <dd>The Unicode Consortium. <a
  href='http://www.unicode.org/unicode/standard/versions/Unicode3.0.html'>
  The Unicode Standard, Version 3.0.</a>, February 2000. Available at
  http://www.unicode.org/unicode/standard/versions/Unicode3.0.html.</dd>
  </dl>
  </div>
  
  <!-- div2 References-Normative --></div>
  
  <!-- div1 References -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='glossary.html'>previous</a> &nbsp; <a
  accesskey='n' href='def-index.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/spec.css
  
  Index: spec.css
  ===================================================================
  H4 {
    text-align: left;
    font-family: sans-serif;
    font-weight: normal;
    color: #0050B2; 
  }
  .idl-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  .java-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .code-block { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .ecma-block { 
    border: 1px solid black;
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .interface-name {
    font-weight: bold
  }
  
  .attribute-name {  
    color: black;
    background-color: #FFFFD2;
  }
  
  .constant-name {
    color: black;
    background-color: #DDFFD2;
  }
  
  .method-name {  
    color: black;
    background-color: #D9E6F8;
  }
  
  .parameter-name {
    color: black;
    background-color: #FEE6F8; 
  }
  
  UL.toc, OL.toc {list-style: none}
  DIV.toc UL UL, DIV.toc OL OL {margin-left: 0}
  DIV.toc UL UL UL, DIV.toc OL OL OL {margin-left: 1em}
  DIV.toc UL UL UL UL, DIV.toc OL OL OL OL {margin-left: 0}
  LI.tocline1 {font-weight: bold}
  LI.tocline2 {font-weight: normal}
  LI.tocline4 {font-style: italic}
  
  code { font-family: monospace }
  
  div.paramtable { margin-left: 1em }
  div.returntable { margin-left: 1em }
  div.exceptiontable { margin-left: 1em }
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/traversal.html
  
  Index: traversal.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:45:54 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model Traversal</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='ranges.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='copyright-notice.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='copyright-notice.html'>previous</a> &nbsp; <a accesskey='n'
  href='ranges.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Traversal" name='Traversal'></a> 
  
  <h1 id='Traversal-h1' class='div1'>1. Document Object Model
  Traversal</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Joe Kesselman, IBM</dd>
  
  <dd>Jonathan Robie, Software AG</dd>
  
  <dd>Mike Champion, Software AG</dd>
  </dl>
  
  <div class='noprint'>
  <h2 id='table-of-contents'>Table of contents</h2>
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='#Traversal-overview'>1.1. Overview</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a class='tocxref'
  href='#Iterator-overview'>1.1.1. NodeIterators</a></li>
  
  <li class='tocline4'><a class='tocxref'
  href='#Traversal-Filters'>1.1.2. NodeFilters</a></li>
  
  <li class='tocline4'><a class='tocxref' href='#TreeWalker'>1.1.3.
  TreeWalker</a></li>
  </ul>
  </li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Traversal-IDLDefinition'>1.2. Formal Interface
  Definition</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a
  href='#Traversal-NodeIterator'>NodeIterator</a>, <a
  href='#Traversal-NodeFilter'>NodeFilter</a>, <a
  href='#Traversal-TreeWalker'>TreeWalker</a>, <a
  href='#Traversal-Document'>DocumentTraversal</a></li>
  </ul>
  </li>
  </ul>
  </div>
  
  <div class='div2'><a id="Traversal-overview"
  name='Traversal-overview'></a> 
  
  <h2 id='Traversal-overview-h2' class='div2'>1.1. Overview</h2>
  
  <p>This chapter describes the optional DOM Level 2
  <em>Traversal</em> feature. Its <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>,
  <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>,
  and <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  interfaces provide easy-to-use, robust, selective traversal of a
  document's contents.</p>
  
  <p>The interfaces found within this section are not mandatory. A
  DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "Traversal" and "2.0"
  (respectively) to determine whether or not this module is supported
  by the implementation. In order to fully support this module, an
  implementation must also support the "Core" feature defined defined
  in the DOM Level 2 Core specification [<a class='noxref'
  href='references.html#DOMCore'>DOM Level 2 Core</a>]. Please refer
  to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance</em></a> in the DOM Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  
  <p><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  and <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalkers</code></a>
  are two different ways of representing the nodes of a document
  subtree and a position within the nodes they present. A <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  presents a flattened view of the subtree as an ordered sequence of
  nodes, presented in document order. Because this view is presented
  without respect to hierarchy, iterators have methods to move
  forward and backward, but not to move up and down. Conversely, a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  maintains the hierarchical relationships of the subtree, allowing
  navigation of this hierarchy. In general, <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalkers</code></a>
  are better for tasks in which the structure of the document around
  selected nodes will be manipulated, while <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  are better for tasks that focus on the content of each selected
  node.</p>
  
  <p><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  and <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalkers</code></a>
  each present a view of a document subtree that may not contain all
  nodes found in the subtree. In this specification, we refer to this
  as the <i>logical view</i> to distinguish it from the <i>physical
  view</i>, which corresponds to the document subtree per se. When an
  iterator or <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  is created, it may be associated with a <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>,
  which examines each node and determines whether it should appear in
  the logical view. In addition, flags may be used to specify which
  node types should occur in the logical view.</p>
  
  <p><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  and <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalkers</code></a>
  are dynamic - the logical view changes to reflect changes made to
  the underlying document. However, they differ in how they respond
  to those changes. <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>,
  which present the nodes sequentially, attempt to maintain their
  location relative to a position in that sequence when the
  sequence's contents change. <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalkers</code></a>,
  which present the nodes as a filtered tree, maintain their location
  relative to their current node and remain attached to that node if
  it is moved to a new context. We will discuss these behaviors in
  greater detail below.</p>
  
  <div class='div3'><a id="Iterator-overview"
  name='Iterator-overview'></a> 
  
  <h3 id='Iterator-overview-h3' class='div3'>1.1.1. <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a></h3>
  
  <p>A <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  allows the members of a list of nodes to be returned sequentially.
  In the current DOM interfaces, this list will always consist of the
  nodes of a subtree, presented in <a
  href='glossary.html#dt-documentorder'><em>document order</em></a>.
  When an iterator is first created, calling its
  <code>nextNode()</code> method returns the first node in the
  logical view of the subtree; in most cases, this is the root of the
  subtree. Each successive call advances the <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  through the list, returning the next node available in the logical
  view. When no more nodes are visible, <code>nextNode()</code>
  returns <code>null</code>.</p>
  
  <p><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  are created using the <code>createNodeIterator</code> method found
  in the <a
  href='traversal.html#Traversal-Document'><code>DocumentTraversal</code></a>
  interface. When a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  is created, flags can be used to determine which node types will be
  "visible" and which nodes will be "invisible" while traversing the
  tree; these flags can be combined using the <code>OR</code>
  operator. Nodes that are "invisible" are skipped over by the
  iterator as though they did not exist.</p>
  
  <p>The following code creates an iterator, then calls a function to
  print the name of each element:</p>
  
  <div class='eg'>
  <pre>
      NodeIterator iter=
       ((DocumentTraversal)document).createNodeIterator(
            root, NodeFilter.SHOW_ELEMENT, null);
  
      while (Node n = iter.nextNode())
          printMe(n);
       
  </pre>
  </div>
  
  <div class='div4'><a id="Iterator-Moving"
  name='Iterator-Moving'></a> 
  
  <h4 id='Iterator-Moving-h4' class='div4'>1.1.1.1. Moving Forward
  and Backward</h4>
  
  <p><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  present nodes as an ordered list, and move forward and backward
  within this list. The iterator's position is always either between
  two nodes, before the first node, or after the last node. When an
  iterator is first created, the position is set before the first
  item. The following diagram shows the list view that an iterator
  might provide for a particular subtree, with the position indicated
  by an asterisk '*' :</p>
  
  <div class='eg'>
  <pre>
   * A B C D E F G H I
  </pre>
  </div>
  
  <p>Each call to <code>nextNode()</code> returns the next node and
  advances the position. For instance, if we start with the above
  position, the first call to <code>nextNode()</code> returns "A" and
  advances the iterator:</p>
  
  <div class='eg'>
  <pre>
   [A] * B C D E F G H I
  </pre>
  </div>
  
  <p>The position of a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  can best be described with respect to the last node returned, which
  we will call the <i>reference node</i>. When an iterator is
  created, the first node is the reference node, and the iterator is
  positioned before the reference node. In these diagrams, we use
  square brackets to indicate the reference node.</p>
  
  <p>A call to <code>previousNode()</code> returns the previous node
  and moves the position backward. For instance, if we start with the
  <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  between "A" and "B", it would return "A" and move to the position
  shown below:</p>
  
  <div class='eg'>
  <pre>
   * [A] B C D E F G H I
  </pre>
  </div>
  
  <p>If <code>nextNode()</code> is called at the end of a list, or
  <code>previousNode()</code> is called at the beginning of a list,
  it returns <code>null</code> and does not change the position of
  the iterator. When a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  is first created, the reference node is the first node:</p>
  
  <div class='eg'>
  <pre>
   * [A] B C D E F G H I
  </pre>
  </div>
  </div>
  
  <!-- div4 Iterator-Moving -->
  <div class='div4'><a id="Iterator-Robustness"
  name='Iterator-Robustness'></a> 
  
  <h4 id='Iterator-Robustness-h4' class='div4'>1.1.1.2.
  Robustness</h4>
  
  <p>A <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  may be active while the data structure it navigates is being
  edited, so an iterator must behave gracefully in the face of
  change. Additions and removals in the underlying data structure do
  not invalidate a <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>;
  in fact, a <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  is never invalidated unless its <code>detach()</code> method is
  invoked. To make this possible, the iterator uses the reference
  node to maintain its position. The state of an iterator also
  depends on whether the iterator is positioned before or after the
  reference node.</p>
  
  <p>If changes to the iterated list do not remove the reference
  node, they do not affect the state of the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>.
  For instance, the iterator's state is not affected by inserting new
  nodes in the vicinity of the iterator or removing nodes other than
  the reference node. Suppose we start from the following
  position:</p>
  
  <div class='eg'>
  <pre>
  A B C [D] * E F G H I
  </pre>
  </div>
  
  <p>Now let's remove "E". The resulting state is:</p>
  
  <div class='eg'>
  <pre>
  A B C [D] * F G H I
  </pre>
  </div>
  
  <p>If a new node is inserted, the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  stays close to the reference node, so if a node is inserted between
  "D" and "F", it will occur between the iterator and "F":</p>
  
  <div class='eg'>
  <pre>
  A B C [D] * X F G H I
  </pre>
  </div>
  
  <p>Moving a node is equivalent to a removal followed by an
  insertion. If we move "I" to the position before "X" the result
  is:</p>
  
  <div class='eg'>
  <pre>
  A B C [D] * I X F G H
  </pre>
  </div>
  
  <p>If the reference node is removed from the list being iterated
  over, a different node is selected as the reference node. If the
  reference node's position is before that of the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>,
  which is usually the case after <code>nextNode()</code> has been
  called, the nearest node before the iterator is chosen as the new
  reference node. Suppose we remove the "D" node, starting from the
  following state:</p>
  
  <div class='eg'>
  <pre>
  A B C [D] * F G H I
  </pre>
  </div>
  
  <p>The "C" node becomes the new reference node, since it is the
  nearest node to the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  that is before the iterator:</p>
  
  <div class='eg'>
  <pre>
  A B [C] * F G H I
  </pre>
  </div>
  
  <p>If the reference node is after the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>,
  which is usually the case after <code>previousNode()</code> has
  been called, the nearest node after the iterator is chosen as the
  new reference node. Suppose we remove "E", starting from the
  following state:</p>
  
  <div class='eg'>
  <pre>
  A B C D * [E] F G H I
  </pre>
  </div>
  
  <p>The "F" node becomes the new reference node, since it is the
  nearest node to the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  that is after the iterator:</p>
  
  <div class='eg'>
  <pre>
  A B C D * [F] G H I
  </pre>
  </div>
  
  <p>As noted above, moving a node is equivalent to a removal
  followed by an insertion. Suppose we wish to move the "D" node to
  the end of the list, starting from the following state:</p>
  
  <div class='eg'>
  <pre>
  A B C [D] * F G H I C
  </pre>
  </div>
  
  <p>The resulting state is as follows:</p>
  
  <div class='eg'>
  <pre>
  A B [C] * F G H I D
  </pre>
  </div>
  
  <p>One special case arises when the reference node is the last node
  in the list and the reference node is removed. Suppose we remove
  node "C", starting from the following state:</p>
  
  <div class='eg'>
  <pre>
  A B * [C]
  </pre>
  </div>
  
  <p>According to the rules we have given, the new reference node
  should be the nearest node after the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>,
  but there are no further nodes after "C". The same situation can
  arise when <code>previousNode()</code> has just returned the first
  node in the list, which is then removed. Hence: If there is no node
  in the original direction of the reference node, the nearest node
  in the opposite direction is selected as the reference node:</p>
  
  <div class='eg'>
  <pre>
  A [B] *
  </pre>
  </div>
  
  <p>If the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  is positioned within a block of nodes that is removed, the above
  rules clearly indicate what is to be done. For instance, suppose
  "C" is the <a href='glossary.html#dt-parent'><em>parent</em></a>
  node of "D", "E", and "F", and we remove "C", starting with the
  following state:</p>
  
  <div class='eg'>
  <pre>
  A B C [D] * E F G H I D
  </pre>
  </div>
  
  <p>The resulting state is as follows:</p>
  
  <div class='eg'>
  <pre>
  A [B] * G H I D
  </pre>
  </div>
  
  <p>Finally, note that removing a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>'s
  <code>root</code> node from its <a
  href='glossary.html#dt-parent'><em>parent</em></a> does not alter
  the list being iterated over, and thus does not change the
  iterator's state.</p>
  </div>
  
  <!-- div4 Iterator-Robustness -->
  <div class='div4'><a id="Iterator-Visibility"
  name='Iterator-Visibility'></a> 
  
  <h4 id='Iterator-Visibility-h4' class='div4'>1.1.1.3. Visibility of
  Nodes</h4>
  
  <p>The underlying data structure that is being iterated may contain
  nodes that are not part of the logical view, and therefore will not
  be returned by the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>.
  If nodes that are to be excluded because of the value of the
  <code>whatToShow</code> flag, <code>nextNode()</code> returns the
  next visible node, skipping over the excluded "invisible" nodes. If
  a <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  is present, it is applied before returning a node; if the filter
  does not accept the node, the process is repeated until a node is
  accepted by the filter and is returned. If no visible nodes are
  encountered, a <code>null</code> is returned and the iterator is
  positioned at the end of the list. In this case, the reference node
  is the last node in the list, whether or not it is visible. The
  same approach is taken, in the opposite direction, for
  <code>previousNode()</code>.</p>
  
  <p>In the following examples, we will use lowercase letters to
  represent nodes that are in the data structure, but which are not
  in the logical view. For instance, consider the following list:</p>
  
  <div class='eg'>
  <pre>
  A [B] * c d E F G
  </pre>
  </div>
  
  <p>A call to <code>nextNode()</code> returns E and advances to the
  following position:</p>
  
  <div class='eg'>
  <pre>
  A B c d [E] * F G
  </pre>
  </div>
  
  <p>Nodes that are not visible may nevertheless be used as reference
  nodes if a reference node is removed. Suppose node "E" is removed,
  started from the state given above. The resulting state is:</p>
  
  <div class='eg'>
  <pre>
  A B c [d] * F G
  </pre>
  </div>
  
  <p>Suppose a new node "X", which is visible, is inserted before
  "d". The resulting state is:</p>
  
  <div class='eg'>
  <pre>
  A B c X [d] * F G
  </pre>
  </div>
  
  <p>Note that a call to <code>previousNode()</code> now returns node
  X. It is important not to skip over invisible nodes when the
  reference node is removed, because there are cases, like the one
  just given above, where the wrong results will be returned. When
  "E" was removed, if the new reference node had been "B" rather than
  "d", calling <code>previousNode()</code> would not return "X".</p>
  </div>
  
  <!-- div4 Iterator-Visibility --></div>
  
  <!-- div3 Iterator-overview -->
  <div class='div3'><a id="Traversal-Filters"
  name='Traversal-Filters'></a> 
  
  <h3 id='Traversal-Filters-h3' class='div3'>1.1.2. <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a></h3>
  
  <p><a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  allow the user to create objects that "filter out" nodes. Each
  filter contains a user-written function that looks at a node and
  determines whether or not it should be presented as part of the
  traversal's logical view of the document. To use a <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>,
  you create a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  or a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  that uses the filter. The traversal engine applies the filter to
  each node, and if the filter does not accept the node, traversal
  skips over the node as though it were not present in the document.
  <a class='noxref'
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  need not know how to navigate the structure that contains the nodes
  on which they operate.</p>
  
  <p>Filters will be consulted when a traversal operation is
  performed, or when a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>'s
  reference node is removed from the subtree being iterated over and
  it must select a new one. However, the exact timing of these filter
  calls may vary from one DOM implementation to another. For that
  reason, <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  should not attempt to maintain state based on the history of past
  invocations; the resulting behavior may not be portable.</p>
  
  <p>Similarly, <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalkers</code></a>
  and <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  should behave as if they have no memory of past filter results, and
  no anticipation of future results. If the conditions a <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  is examining have changed (e.g., an attribute which it tests has
  been added or removed) since the last time the traversal logic
  examined this node, this change in visibility will be discovered
  only when the next traversal operation is performed. For example:
  if the filtering for the current node changes from
  <code>FILTER_SHOW</code> to <code>FILTER_SKIP</code>, a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  will be able to navigate off that node in any direction, but not
  back to it unless the filtering conditions change again. <a
  class='noxref'
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  which change during a traversal can be written, but their behavior
  may be confusing and they should be avoided when possible.</p>
  
  <div class='div4'><a id="Traversal-Filters-Usage"
  name='Traversal-Filters-Usage'></a> 
  
  <h4 id='Traversal-Filters-Usage-h4' class='div4'>1.1.2.1. Using <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a></h4>
  
  <p>A <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  contains one method named <code>acceptNode()</code>, which allows a
  <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  or <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  to pass a <code>Node</code> to a filter and ask whether it should
  be present in the logical view. The <code>acceptNode()</code>
  function returns one of three values to state how the
  <code>Node</code> should be treated. If <code>acceptNode()</code>
  returns <code>FILTER_ACCEPT</code>, the <code>Node</code> will be
  present in the logical view; if it returns
  <code>FILTER_SKIP</code>, the <code>Node</code> will not be present
  in the logical view, but the children of the <code>Node</code> may;
  if it returns <code>FILTER_REJECT</code>, neither the
  <code>Node</code> nor its <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> will be
  present in the logical view. Since iterators present nodes as an
  ordered list, without hierarchy, <code>FILTER_REJECT</code> and
  <code>FILTER_SKIP</code> are synonyms for <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>,
  skipping only the single current node.</p>
  
  <p>Consider a filter that accepts the named anchors in an HTML
  document. In HTML, an HREF can refer to any A element that has a
  NAME attribute. Here is a <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  in Java that looks at a node and determines whether it is a named
  anchor:</p>
  
  <div class='eg'>
  <pre>
      class NamedAnchorFilter implements NodeFilter
      {
       short acceptNode(Node n) {
        if (n.getNodeType()==Node.ELEMENT_NODE) {
         Element e = (Element)n;
         if (! e.getNodeName().equals("A"))
          return FILTER_SKIP;
        if (e.getAttributeNode("NAME") != null)
          return FILTER_ACCEPT;
         }
          return FILTER_SKIP;
        }
      }
  </pre>
  </div>
  
  <p>If the above <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  were to be used only with <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>,
  it could have used <code>FILTER_REJECT</code> wherever
  <code>FILTER_SKIP</code> is used, and the behavior would not
  change. For <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>,
  though, <code>FILTER_REJECT</code> would reject the children of any
  element that is not a named anchor, and since named anchors are
  always contained within other elements, this would have meant that
  no named anchors would be found. <code>FILTER_SKIP</code> rejects
  the given node, but continues to examine the children; therefore,
  the above filter will work with either a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  or a <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>.</p>
  
  <p>To use this filter, the user would create an instance of the <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  and create a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  using it:</p>
  
  <div class='eg'>
  <pre>
  NamedAnchorFilter myFilter = new NamedAnchorFilter(); 
  NodeIterator iter=
       ((DocumentTraversal)document).createNodeIterator(
            node, NodeFilter.SHOW_ELEMENT, myFilter);
     
  </pre>
  </div>
  
  <p>Note that the use of the <code>SHOW_ELEMENT</code> flag is not
  strictly necessary in this example, since our sample <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  tests the <code>nodeType</code>. However, some implementations of
  the Traversal interfaces may be able to improve
  <code>whatToShow</code> performance by taking advantage of
  knowledge of the document's structure, which makes the use of
  <code>SHOW_ELEMENT</code> worthwhile. Conversely, while we could
  remove the <code>nodeType</code> test from our filter, that would
  make it dependent upon <code>whatToShow</code> to distinguish
  between <code>Elements</code>, <code>Attr</code>'s, and
  <code>ProcessingInstructions</code>.</p>
  </div>
  
  <!-- div4 Traversal-Filters-Usage -->
  <div class='div4'><a id="Traversal-Filters-Exceptions"
  name='Traversal-Filters-Exceptions'></a> 
  
  <h4 id='Traversal-Filters-Exceptions-h4' class='div4'>1.1.2.2. <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  and Exceptions</h4>
  
  <p>When writing a <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>,
  users should avoid writing code that can throw an exception.
  However, because a DOM implementation can not prevent exceptions
  from being thrown, it is important that the behavior of filters
  that throw an exception be well-defined. A <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  or <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  does not catch or alter an exception thrown by a filter, but lets
  it propagate up to the user's code. The following functions may
  invoke a <a class='noxref'
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>,
  and may therefore propagate an exception if one is thrown by a
  filter:</p>
  
  <ol>
  <li><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a><code>
  .nextNode()</code></li>
  
  <li><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a><code>
  .previousNode()</code></li>
  
  <li><a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a><code>
  .firstChild()</code></li>
  
  <li><a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a><code>
  .lastChild()</code></li>
  
  <li><a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a><code>
  .nextSibling()</code></li>
  
  <li><a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a><code>
  .previousSibling()</code></li>
  
  <li><a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a><code>
  .nextNode()</code></li>
  
  <li><a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a><code>
  .previousNode()</code></li>
  
  <li><a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a><code>
  .parentNode()</code></li>
  </ol>
  </div>
  
  <!-- div4 Traversal-Filters-Exceptions -->
  <div class='div4'><a id="Traversal-Filters-Mutation"
  name='Traversal-Filters-Mutation'></a> 
  
  <h4 id='Traversal-Filters-Mutation-h4' class='div4'>1.1.2.3. <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  and Document Mutation</h4>
  
  <p>Well-designed <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  should not have to modify the underlying structure of the document.
  But a DOM implementation can not prevent a user from writing filter
  code that does alter the document structure. Traversal does not
  provide any special processing to handle this case. For instance,
  if a <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  removes a node from a document, it can still accept the node, which
  means that the node may be returned by the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  or <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  even though it is no longer in the subtree being traversed. In
  general, this may lead to inconsistent, confusing results, so we
  encourage users to write <a class='noxref'
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  that make no changes to document structures. Instead, do your
  editing in the loop controlled by the traversal object.</p>
  </div>
  
  <!-- div4 Traversal-Filters-Mutation -->
  <div class='div4'><a id="Traversal-Filters-Flags"
  name='Traversal-Filters-Flags'></a> 
  
  <h4 id='Traversal-Filters-Flags-h4' class='div4'>1.1.2.4. <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  and <code>whatToShow</code> flags</h4>
  
  <p><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  and <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  apply their <code>whatToShow</code> flags before applying filters.
  If a node is skipped by the active <code>whatToShow</code> flags, a
  <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  will not be called to evaluate that node. Please note that this
  behavior is similar to that of <code>FILTER_SKIP</code>; children
  of that node will be considered, and filters may be called to
  evaluate them. Also note that it will in fact be a "skip" even if
  the <a class='noxref'
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  would have preferred to reject the entire subtree; if this would
  cause a problem in your application, consider setting
  <code>whatToShow</code> to <code>SHOW_ALL</code> and performing the
  <code>nodeType</code> test inside your filter.</p>
  </div>
  
  <!-- div4 Traversal-Filters-Flags --></div>
  
  <!-- div3 Traversal-Filters -->
  <div class='div3'><a id="TreeWalker" name='TreeWalker'></a> 
  
  <h3 id='TreeWalker-h3' class='div3'>1.1.3. <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a></h3>
  
  <p>The <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  interface provides many of the same benefits as the <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  interface. The main difference between these two interfaces is that
  the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  presents a tree-oriented view of the nodes in a subtree, rather
  than the iterator's list-oriented view. In other words, an iterator
  allows you to move forward or back, but a <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  allows you to also move to the <a
  href='glossary.html#dt-parent'><em>parent</em></a> of a node, to
  one of its children, or to a <a
  href='glossary.html#dt-sibling'><em>sibling</em></a>.</p>
  
  <p>Using a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  is quite similar to navigation using the Node directly, and the
  navigation methods for the two interfaces are analogous. For
  instance, here is a function that recursively walks over a tree of
  nodes in document order, taking separate actions when first
  entering a node and after processing any children:</p>
  
  <div class='eg'>
  <pre>
  processMe(Node n) {
     nodeStartActions(n);
     for (Node child=n.firstChild(); 
          child != null;
          child=child.nextSibling()) {
        processMe(child);
     }
     nodeEndActions(n);
  }
  </pre>
  </div>
  
  <p>Doing the same thing using a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  is quite similar. There is one difference: since navigation on the
  <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  changes the current position, the position at the end of the
  function has changed. A read/write attribute named
  <code>currentNode</code> allows the current node for a <a
  class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  to be both queried and set. We will use this to ensure that the
  position of the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  is restored when this function is completed:</p>
  
  <div class='eg'>
  <pre>
  processMe(TreeWalker tw) {
     Node n = tw.getCurrentNode();
     nodeStartActions(tw);
     for (Node child=tw.firstChild(); 
          child!=null;
          child=tw.nextSibling()) {
        processMe(tw);
     }
  
     tw.setCurrentNode(n);
     nodeEndActions(tw);
  }
  </pre>
  </div>
  
  <p>The advantage of using a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  instead of direct <code>Node</code> navigation is that the <a
  class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  allows the user to choose an appropriate view of the tree. Flags
  may be used to show or hide <code>Comments</code> or
  <code>ProcessingInstructions</code>; entities may be expanded or
  shown as <code>EntityReference</code> nodes. In addition, <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilters</code></a>
  may be used to present a custom view of the tree. Suppose a program
  needs a view of a document that shows which tables occur in each
  chapter, listed by chapter. In this view, only the chapter elements
  and the tables that they contain are seen. The first step is to
  write an appropriate filter:</p>
  
  <div class='eg'>
  <pre>
  class TablesInChapters implements NodeFilter {
  
     short acceptNode(Node n) {
        if (n.getNodeType()==Node.ELEMENT_NODE) {
      
            if (n.getNodeName().equals("CHAPTER"))
               return FILTER_ACCEPT;
  
            if (n.getNodeName().equals("TABLE"))
               return FILTER_ACCEPT;
  
            if (n.getNodeName().equals("SECT1")
                || n.getNodeName().equals("SECT2")
                || n.getNodeName().equals("SECT3")
                || n.getNodeName().equals("SECT4")
                || n.getNodeName().equals("SECT5")
                || n.getNodeName().equals("SECT6")
                || n.getNodeName().equals("SECT7"))
               return FILTER_SKIP;
  
        }
  
        return FILTER_REJECT;
      }
  }
  </pre>
  </div>
  
  <p>This filter assumes that TABLE elements are contained directly
  in CHAPTER or SECTn elements. If another kind of element is
  encountered, it and its children are rejected. If a SECTn element
  is encountered, it is skipped, but its children are explored to see
  if they contain any TABLE elements.</p>
  
  <p>Now the program can create an instance of this <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>,
  create a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  that uses it, and pass this <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  to our ProcessMe() function:</p>
  
  <div class='eg'>
  <pre>
  TablesInChapters tablesInChapters  = new TablesInChapters();
  TreeWalker tw  = 
       ((DocumentTraversal)document).createTreeWalker(
            root, NodeFilter.SHOW_ELEMENT, tablesInChapters);
  processMe(tw);
  </pre>
  </div>
  
  <p>(Again, we've chosen to both test the <code>nodeType</code> in
  the filter's logic and use <code>SHOW_ELEMENT</code>, for the
  reasons discussed in the earlier <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  example.)</p>
  
  <p>Without making any changes to the above <code>ProcessMe()</code>
  function, it now processes only the CHAPTER and TABLE elements. The
  programmer can write other filters or set other flags to choose
  different sets of nodes; if functions use <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  to navigate, they will support any view of the document defined
  with a <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>.</p>
  
  <p>Note that the structure of a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>'s
  filtered view of a document may differ significantly from that of
  the document itself. For example, a <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  with only <code>SHOW_TEXT</code> specified in its
  <code>whatToShow</code> parameter would present all the
  <code>Text</code> nodes as if they were <a
  href='glossary.html#dt-sibling'><em>siblings</em></a> of each other
  yet had no <a
  href='glossary.html#dt-parent'><em>parent</em></a>.</p>
  
  <div class='div4'><a id="TreeWalker-Robustness"
  name='TreeWalker-Robustness'></a> 
  
  <h4 id='TreeWalker-Robustness-h4' class='div4'>1.1.3.1.
  Robustness</h4>
  
  <p>As with <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>,
  a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  may be active while the data structure it navigates is being
  edited, and must behave gracefully in the face of change. Additions
  and removals in the underlying data structure do not invalidate a
  <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>;
  in fact, a <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  is never invalidated.</p>
  
  <p>But a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>'s
  response to these changes is quite different from that of a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>.
  While <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  respond to editing by maintaining their position within the list
  that they are iterating over, <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalkers</code></a>
  will instead remain attached to their <code>currentNode</code>. All
  the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>'s
  navigation methods operate in terms of the context of the
  <code>currentNode</code> at the time they are invoked, no matter
  what has happened to, or around, that node since the last time the
  <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  was accessed. This remains true even if the
  <code>currentNode</code> is moved out of its original subtree.</p>
  
  <p>As an example, consider the following document fragment:</p>
  
  <div class='eg'>
  <pre>
      ...
      &lt;subtree&gt;
          &lt;twRoot&gt;
              &lt;currentNode/&gt;
              &lt;anotherNode/&gt;
          &lt;/twRoot&gt;
      &lt;/subtree&gt;
      ...
   
  </pre>
  </div>
  
  <p>Let's say we have created a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  whose <code>root</code> node is the &lt;twRoot/&gt; element and
  whose <code>currentNode</code> is the &lt;currentNode/&gt; element.
  For this illustration, we will assume that all the nodes shown
  above are accepted by the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>'s
  <code>whatToShow</code> and filter settings.</p>
  
  <p>If we use <code>removeChild()</code> to remove the
  &lt;currentNode/&gt; element from its <a
  href='glossary.html#dt-parent'><em>parent</em></a>, that element
  remains the <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>'s
  <code>currentNode</code>, even though it is no longer within the
  <code>root</code> node's subtree. We can still use the <a
  class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  to navigate through any children that the orphaned
  <code>currentNode</code> may have, but are no longer able to
  navigate outward from the <code>currentNode</code> since there is
  no <a href='glossary.html#dt-parent'><em>parent</em></a>
  available.</p>
  
  <p>If we use <code>insertBefore()</code> or
  <code>appendChild()</code> to give the &lt;currentNode/&gt; a new
  <a href='glossary.html#dt-parent'><em>parent</em></a>, then <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  navigation will operate from the <code>currentNode</code>'s new
  location. For example, if we inserted the &lt;currentNode/&gt;
  immediately after the &lt;anotherNode/&gt; element, the <a
  class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>'s
  <code>previousSibling()</code> operation would move it back to the
  &lt;anotherNode/&gt;, and calling <code>parentNode()</code> would
  move it up to the &lt;twRoot/&gt;.</p>
  
  <p>If we instead insert the <code>currentNode</code> into the
  &lt;subtree/&gt; element, like so:</p>
  
  <div class='eg'>
  <pre>
      ...
      &lt;subtree&gt;
          &lt;currentNode/&gt;
          &lt;twRoot&gt;
              &lt;anotherNode/&gt;
          &lt;/twRoot&gt;
      &lt;/subtree&gt;
      ...
  </pre>
  </div>
  
  <p>we have moved the <code>currentNode</code> out from under the <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>'s
  <code>root</code> node. This does not invalidate the <a
  class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>;
  it may still be used to navigate relative to the
  <code>currentNode</code>. Calling its <code>parentNode()</code>
  operation, for example, would move it to the &lt;subtree/&gt;
  element, even though that too is outside the original
  <code>root</code> node. However, if the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>'s
  navigation should take it back into the original <code>root</code>
  node's subtree -- for example, if rather than calling
  <code>parentNode()</code> we called <code>nextNode()</code>, moving
  the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  to the &lt;twRoot/&gt; element -- the <code>root</code> node will
  "recapture" the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>,
  and prevent it from traversing back out.</p>
  
  <p>This becomes a bit more complicated when filters are in use.
  Relocation of the <code>currentNode</code> -- or explicit selection
  of a new <code>currentNode</code>, or changes in the conditions
  that the <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  is basing its decisions on -- can result in a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  having a <code>currentNode</code> which would not otherwise be
  visible in the filtered (logical) view of the document. This node
  can be thought of as a "transient member" of that view. When you
  ask the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  to navigate off this node the result will be just as if it had been
  visible, but you may be unable to navigate back to it unless
  conditions change to make it visible again.</p>
  
  <p>In particular: If the <code>currentNode</code> becomes part of a
  subtree that would otherwise have been Rejected by the filter, that
  entire subtree may be added as transient members of the logical
  view. You will be able to navigate within that subtree (subject to
  all the usual filtering) until you move upward past the Rejected <a
  href='glossary.html#dt-ancestor'><em>ancestor</em></a>. The
  behavior is as if the Rejected node had only been Skipped (since we
  somehow wound up inside its subtree) until we leave it; thereafter,
  standard filtering applies.</p>
  </div>
  
  <!-- div4 TreeWalker-Robustness --></div>
  
  <!-- div3 TreeWalker --></div>
  
  <!-- div2 Traversal-overview -->
  <div class='div2'><a id="Traversal-IDLDefinition"
  name='Traversal-IDLDefinition'></a> 
  
  <h2 id='Traversal-IDLDefinition-h2' class='div2'>1.2. Formal
  Interface Definition</h2>
  
  <dl>
  <dt><b>Interface <i><a id="Traversal-NodeIterator"
  name='Traversal-NodeIterator'>NodeIterator</a></i></b> (introduced
  in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p><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 <a
  href='traversal.html#Traversal-Document'><code>DocumentTraversal</code></a><code>
  .createNodeIterator()</code>.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface NodeIterator {
    readonly attribute Node             root;
    readonly attribute unsigned long    whatToShow;
    readonly attribute NodeFilter       filter;
    readonly attribute boolean          expandEntityReferences;
    Node               nextNode()
                                          raises(DOMException);
    Node               previousNode()
                                          raises(DOMException);
    void               detach();
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="Traversal-NodeIterator-expandEntityReferences"
  name='Traversal-NodeIterator-expandEntityReferences'>expandEntityReferences</a></code>
  of type <code>boolean</code>, readonly</dt>
  
  <dd>The value of this flag determines whether the children of
  entity reference nodes are visible to the iterator. If false, they
  and their <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> 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 <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.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Traversal-NodeIterator-filter"
  name='Traversal-NodeIterator-filter'>filter</a></code> of type <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>,
  readonly</dt>
  
  <dd>The <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  used to screen nodes.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Traversal-NodeIterator-root"
  name='Traversal-NodeIterator-root'>root</a></code> of type
  <code>Node</code>, readonly</dt>
  
  <dd>The root node of the <code>NodeIterator</code>, as specified
  when it was created.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Traversal-NodeIterator-whatToShow"
  name='Traversal-NodeIterator-whatToShow'>whatToShow</a></code> of
  type <code>unsigned long</code>, readonly</dt>
  
  <dd>This attribute determines which node types are presented via
  the iterator. The available set of constants is defined in the <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  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.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a id="Traversal-NodeIterator-detach"
  name='Traversal-NodeIterator-detach'>detach</a></code></dt>
  
  <dd>
  <div class='method'>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. 
  
  <div><b>No Parameters</b></div>
  
  <div><b>No Return Value</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Traversal-NodeIterator-nextNode"
  name='Traversal-NodeIterator-nextNode'>nextNode</a></code></dt>
  
  <dd>
  <div class='method'>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. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The next <code>Node</code> in the set being iterated over, or
  <code>null</code> if there are no more members in that set.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if this method is called after the
  <code>detach</code> method was invoked.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Traversal-NodeIterator-previousNode"
  name='Traversal-NodeIterator-previousNode'>previousNode</a></code></dt>
  
  <dd>
  <div class='method'>Returns the previous node in the set and moves
  the position of the <code>NodeIterator</code> backwards in the set.
  
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The previous <code>Node</code> in the set being iterated over,
  or <code>null</code> if there are no more members in that set.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>INVALID_STATE_ERR: Raised if this method is called after the
  <code>detach</code> method was invoked.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  <div><b>No Parameters</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="Traversal-NodeFilter"
  name='Traversal-NodeFilter'>NodeFilter</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>Filters are objects that know how to "filter out" nodes. If a <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  or <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  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>
  
  <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>
  
  <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>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface NodeFilter {
  
    // Constants returned by acceptNode
    const short               FILTER_ACCEPT                  = 1;
    const short               FILTER_REJECT                  = 2;
    const short               FILTER_SKIP                    = 3;
  
  
    // Constants for whatToShow
    const unsigned long       SHOW_ALL                       = 0xFFFFFFFF;
    const unsigned long       SHOW_ELEMENT                   = 0x00000001;
    const unsigned long       SHOW_ATTRIBUTE                 = 0x00000002;
    const unsigned long       SHOW_TEXT                      = 0x00000004;
    const unsigned long       SHOW_CDATA_SECTION             = 0x00000008;
    const unsigned long       SHOW_ENTITY_REFERENCE          = 0x00000010;
    const unsigned long       SHOW_ENTITY                    = 0x00000020;
    const unsigned long       SHOW_PROCESSING_INSTRUCTION    = 0x00000040;
    const unsigned long       SHOW_COMMENT                   = 0x00000080;
    const unsigned long       SHOW_DOCUMENT                  = 0x00000100;
    const unsigned long       SHOW_DOCUMENT_TYPE             = 0x00000200;
    const unsigned long       SHOW_DOCUMENT_FRAGMENT         = 0x00000400;
    const unsigned long       SHOW_NOTATION                  = 0x00000800;
  
    short              acceptNode(in Node n);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Definition group <i><a
  id="Traversal-NodeFilter-acceptNode-constants"
  name='Traversal-NodeFilter-acceptNode-constants'>Constants returned
  by acceptNode</a></i></b></dt>
  
  <dd>
  <p>The following constants are returned by the acceptNode()
  method:</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>FILTER_ACCEPT</code></dt>
  
  <dd>Accept the node. Navigation methods defined for <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  or <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  will return this node.</dd>
  
  <dt><code class='constant-name'>FILTER_REJECT</code></dt>
  
  <dd>Reject the node. Navigation methods defined for <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  or <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  will not return this node. For <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>,
  the children of this node will also be rejected. <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>
  treat this as a synonym for <code>FILTER_SKIP</code>.</dd>
  
  <dt><code class='constant-name'>FILTER_SKIP</code></dt>
  
  <dd>Skip this single node. Navigation methods defined for <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  or <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  will not return this node. For both <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  and <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>,
  the children of this node will still be considered.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Definition group <i><a
  id="Traversal-NodeFilter-whatToShow-constants"
  name='Traversal-NodeFilter-whatToShow-constants'>Constants for
  whatToShow</a></i></b></dt>
  
  <dd>
  <p>These are the available values for the <code>whatToShow</code>
  parameter used in <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalkers</code></a>
  and <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterators</code></a>.
  They are the same as the set of possible types for
  <code>Node</code>, and their values are derived by using a bit
  position corresponding to the value of <code>nodeType</code> for
  the equivalent node type. If a bit in <code>whatToShow</code> is
  set false, that will be taken as a request to skip over this type
  of node; the behavior in that case is similar to that of
  <code>FILTER_SKIP</code>.</p>
  
  <p>Note that if node types greater than 32 are ever introduced,
  they may not be individually testable via <code>whatToShow</code>.
  If that need should arise, it can be handled by selecting
  <code>SHOW_ALL</code> together with an appropriate
  <code>NodeFilter</code>.</p>
  
  <dl>
  <dt><b>Defined Constants</b></dt>
  
  <dd>
  <dl>
  <dt><code class='constant-name'>SHOW_ALL</code></dt>
  
  <dd>Show all <code>Nodes</code>.</dd>
  
  <dt><code class='constant-name'>SHOW_ATTRIBUTE</code></dt>
  
  <dd>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.</dd>
  
  <dt><code class='constant-name'>SHOW_CDATA_SECTION</code></dt>
  
  <dd>Show <code>CDATASection</code> nodes.</dd>
  
  <dt><code class='constant-name'>SHOW_COMMENT</code></dt>
  
  <dd>Show <code>Comment</code> nodes.</dd>
  
  <dt><code class='constant-name'>SHOW_DOCUMENT</code></dt>
  
  <dd>Show <code>Document</code> nodes.</dd>
  
  <dt><code class='constant-name'>SHOW_DOCUMENT_FRAGMENT</code></dt>
  
  <dd>Show <code>DocumentFragment</code> nodes.</dd>
  
  <dt><code class='constant-name'>SHOW_DOCUMENT_TYPE</code></dt>
  
  <dd>Show <code>DocumentType</code> nodes.</dd>
  
  <dt><code class='constant-name'>SHOW_ELEMENT</code></dt>
  
  <dd>Show <code>Element</code> nodes.</dd>
  
  <dt><code class='constant-name'>SHOW_ENTITY</code></dt>
  
  <dd>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.</dd>
  
  <dt><code class='constant-name'>SHOW_ENTITY_REFERENCE</code></dt>
  
  <dd>Show <code>EntityReference</code> nodes.</dd>
  
  <dt><code class='constant-name'>SHOW_NOTATION</code></dt>
  
  <dd>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.</dd>
  
  <dt><code
  class='constant-name'>SHOW_PROCESSING_INSTRUCTION</code></dt>
  
  <dd>Show <code>ProcessingInstruction</code> nodes.</dd>
  
  <dt><code class='constant-name'>SHOW_TEXT</code></dt>
  
  <dd>Show <code>Text</code> nodes.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Traversal-NodeFilter-acceptNode"
  name='Traversal-NodeFilter-acceptNode'>acceptNode</a></code></dt>
  
  <dd>
  <div class='method'>Test whether a specified node is visible in the
  logical view of a <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  or <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>.
  This function will be called by the implementation of <a
  class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  and <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>;
  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.) 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>n</code> of type
  <code>Node</code></dt>
  
  <dd>The node to check to see if it passes the filter or not.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>short</code></p>
  </td>
  <td>
  <p>a constant to determine whether the node is accepted, rejected,
  or skipped, as defined <a
  href='#Traversal-NodeFilter-acceptNode-constants'>above</a>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="Traversal-TreeWalker"
  name='Traversal-TreeWalker'>TreeWalker</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p><code>TreeWalker</code> objects are used to navigate a document
  tree or 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>
  
  <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 <a
  href='glossary.html#dt-sibling'><em>siblings</em></a> in the
  <code>TreeWalker</code> view may be children of different, widely
  separated nodes in the original view. For instance, consider a <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  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
  <a href='glossary.html#dt-sibling'><em>siblings</em></a> and appear
  as direct children of the root node, no matter how deeply nested
  the structure of the original document.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface TreeWalker {
    readonly attribute Node             root;
    readonly attribute unsigned long    whatToShow;
    readonly attribute NodeFilter       filter;
    readonly attribute boolean          expandEntityReferences;
             attribute Node             currentNode;
                                          // raises(DOMException) on setting
  
    Node               parentNode();
    Node               firstChild();
    Node               lastChild();
    Node               previousSibling();
    Node               nextSibling();
    Node               previousNode();
    Node               nextNode();
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="Traversal-TreeWalker-currentNode"
  name='Traversal-TreeWalker-currentNode'>currentNode</a></code> of
  type <code>Node</code></dt>
  
  <dd>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.<br />
   
  
  <div class='exceptions'><b>Exceptions on setting</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NOT_SUPPORTED_ERR: Raised if an attempt is made to set
  <code>currentNode</code> to <code>null</code>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Traversal-TreeWalker-expandEntityReferences"
  name='Traversal-TreeWalker-expandEntityReferences'>expandEntityReferences</a></code>
  of type <code>boolean</code>, readonly</dt>
  
  <dd>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 <a
  href='glossary.html#dt-descendant'><em>descendants</em></a> 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 <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.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Traversal-TreeWalker-filter"
  name='Traversal-TreeWalker-filter'>filter</a></code> of type <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>,
  readonly</dt>
  
  <dd>The filter used to screen nodes.<br />
  </dd>
  
  <dt><code class='attribute-name'><a id="Traversal-TreeWalker-root"
  name='Traversal-TreeWalker-root'>root</a></code> of type
  <code>Node</code>, readonly</dt>
  
  <dd>The <code>root</code> node of the <code>TreeWalker</code>, as
  specified when it was created.<br />
  </dd>
  
  <dt><code class='attribute-name'><a
  id="Traversal-TreeWalker-whatToShow"
  name='Traversal-TreeWalker-whatToShow'>whatToShow</a></code> of
  type <code>unsigned long</code>, readonly</dt>
  
  <dd>This attribute determines which node types are presented via
  the <code>TreeWalker</code>. The available set of constants is
  defined in the <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  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.<br />
  </dd>
  </dl>
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Traversal-TreeWalker-firstChild"
  name='Traversal-TreeWalker-firstChild'>firstChild</a></code></dt>
  
  <dd>
  <div class='method'>Moves the <code>TreeWalker</code> to the first
  visible <a href='glossary.html#dt-child'><em>child</em></a> 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 node. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The new node, or <code>null</code> if the current node has no
  visible children in the <code>TreeWalker</code>'s logical view.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Traversal-TreeWalker-lastChild"
  name='Traversal-TreeWalker-lastChild'>lastChild</a></code></dt>
  
  <dd>
  <div class='method'>Moves the <code>TreeWalker</code> to the last
  visible <a href='glossary.html#dt-child'><em>child</em></a> 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 node. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The new node, or <code>null</code> if the current node has no
  children in the <code>TreeWalker</code>'s logical view.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a id="Traversal-TreeWalker-nextNode"
  name='Traversal-TreeWalker-nextNode'>nextNode</a></code></dt>
  
  <dd>
  <div class='method'>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
  <code>TreeWalker</code>'s <code>root</code> node, returns
  <code>null</code>, and retains the current node. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The new node, or <code>null</code> if the current node has no
  next node in the <code>TreeWalker</code>'s logical view.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Traversal-TreeWalker-nextSibling"
  name='Traversal-TreeWalker-nextSibling'>nextSibling</a></code></dt>
  
  <dd>
  <div class='method'>Moves the <code>TreeWalker</code> to the next
  <a href='glossary.html#dt-sibling'><em>sibling</em></a> of the
  current node, and returns the new node. If the current node has no
  visible next <a
  href='glossary.html#dt-sibling'><em>sibling</em></a>, returns
  <code>null</code>, and retains the current node. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The new node, or <code>null</code> if the current node has no
  next <a href='glossary.html#dt-sibling'><em>sibling</em></a>. in
  the <code>TreeWalker</code>'s logical view.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Traversal-TreeWalker-parentNode"
  name='Traversal-TreeWalker-parentNode'>parentNode</a></code></dt>
  
  <dd>
  <div class='method'>Moves to and returns the closest visible <a
  href='glossary.html#dt-ancestor'><em>ancestor</em></a> 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 <a
  href='glossary.html#dt-ancestor'><em>ancestor</em></a> node, this
  method retains the current position and returns <code>null</code>. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The new <a href='glossary.html#dt-parent'><em>parent</em></a>
  node, or <code>null</code> if the current node has no parent in the
  <code>TreeWalker</code>'s logical view.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Traversal-TreeWalker-previousNode"
  name='Traversal-TreeWalker-previousNode'>previousNode</a></code></dt>
  
  <dd>
  <div class='method'>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. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The new node, or <code>null</code> if the current node has no
  previous node in the <code>TreeWalker</code>'s logical view.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="Traversal-TreeWalker-previousSibling"
  name='Traversal-TreeWalker-previousSibling'>previousSibling</a></code></dt>
  
  <dd>
  <div class='method'>Moves the <code>TreeWalker</code> to the
  previous <a href='glossary.html#dt-sibling'><em>sibling</em></a> of
  the current node, and returns the new node. If the current node has
  no visible previous <a
  href='glossary.html#dt-sibling'><em>sibling</em></a>, returns
  <code>null</code>, and retains the current node. 
  
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>Node</code></p>
  </td>
  <td>
  <p>The new node, or <code>null</code> if the current node has no
  previous <a href='glossary.html#dt-sibling'><em>sibling</em></a>.
  in the <code>TreeWalker</code>'s logical view.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div><b>No Parameters</b></div>
  
  <div><b>No Exceptions</b></div>
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="Traversal-Document"
  name='Traversal-Document'>DocumentTraversal</a></i></b> (introduced
  in <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p><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). In DOMs which support the
  Traversal feature, <code>DocumentTraversal</code> will be
  implemented by the same objects that implement the Document
  interface.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface DocumentTraversal {
    NodeIterator       createNodeIterator(in Node root, 
                                          in unsigned long whatToShow, 
                                          in NodeFilter filter, 
                                          in boolean entityReferenceExpansion)
                                          raises(DOMException);
    TreeWalker         createTreeWalker(in Node root, 
                                        in unsigned long whatToShow, 
                                        in NodeFilter filter, 
                                        in boolean entityReferenceExpansion)
                                          raises(DOMException);
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Methods</b></dt>
  
  <dd>
  <dl>
  <dt><code class='method-name'><a
  id="Traversal-NodeIteratorFactory-createNodeIterator"
  name='Traversal-NodeIteratorFactory-createNodeIterator'>createNodeIterator</a></code></dt>
  
  <dd>
  <div class='method'>Create a new <a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>
  over the subtree rooted at the specified node. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>root</code> of type
  <code>Node</code></dt>
  
  <dd>The 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>.<br />
  </dd>
  
  <dt><code class='parameter-name'>whatToShow</code> of type
  <code>unsigned long</code></dt>
  
  <dd>This flag specifies which node types may appear in the logical
  view of the tree presented by the iterator. See the description of
  <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  for the set of possible <code>SHOW_</code> values.<br />
  These flags can be combined using <code>OR</code>.<br />
  </dd>
  
  <dt><code class='parameter-name'>filter</code> of type <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a></dt>
  
  <dd>The <a class='noxref'
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  to be used with this <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>,
  or <code>null</code> to indicate no filter.<br />
  </dd>
  
  <dt><code class='parameter-name'>entityReferenceExpansion</code> of
  type <code>boolean</code></dt>
  
  <dd>The value of this flag determines whether entity reference
  nodes are expanded.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a></p>
  </td>
  <td>
  <p>The newly created <a class='noxref'
  href='traversal.html#Traversal-NodeIterator'><code>NodeIterator</code></a>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is
  <code>null</code>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  
  <dt><code class='method-name'><a
  id="NodeIteratorFactory-createTreeWalker"
  name='NodeIteratorFactory-createTreeWalker'>createTreeWalker</a></code></dt>
  
  <dd>
  <div class='method'>Create a new <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  over the subtree rooted at the specified node. 
  
  <div class='parameters'><b>Parameters</b> 
  
  <div class='paramtable'>
  <dl>
  <dt><code class='parameter-name'>root</code> of type
  <code>Node</code></dt>
  
  <dd>The node which will serve as the <code>root</code> for the <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>.
  The <code>whatToShow</code> flags and the <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  are not considered when setting this value; any node type will be
  accepted as the <code>root</code>. The <code>currentNode</code> of
  the <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>
  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>.<br />
  </dd>
  
  <dt><code class='parameter-name'>whatToShow</code> of type
  <code>unsigned long</code></dt>
  
  <dd>This flag specifies which node types may appear in the logical
  view of the tree presented by the tree-walker. See the description
  of <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  for the set of possible SHOW_ values.<br />
  These flags can be combined using <code>OR</code>.<br />
  </dd>
  
  <dt><code class='parameter-name'>filter</code> of type <a
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a></dt>
  
  <dd>The <a class='noxref'
  href='traversal.html#Traversal-NodeFilter'><code>NodeFilter</code></a>
  to be used with this <a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>,
  or <code>null</code> to indicate no filter.<br />
  </dd>
  
  <dt><code class='parameter-name'>entityReferenceExpansion</code> of
  type <code>boolean</code></dt>
  
  <dd>If this flag is false, the contents of
  <code>EntityReference</code> nodes are not presented in the logical
  view.<br />
  </dd>
  </dl>
  </div>
  </div>
  
  <!-- parameters -->
  <div class='return'><b>Return Value</b> 
  
  <div class='returntable'>
  <table
  summary='Layout table: the first cell contains the type of the return value, the second contains a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><a
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a></p>
  </td>
  <td>
  <p>The newly created <a class='noxref'
  href='traversal.html#Traversal-TreeWalker'><code>TreeWalker</code></a>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- return -->
  <div class='exceptions'><b>Exceptions</b> 
  
  <div class='exceptiontable'>
  <table
  summary='Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description'
   border='0'>
  <tr>
  <td valign='top'>
  <p><code>DOMException</code></p>
  </td>
  <td>
  <p>NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is
  <code>null</code>.</p>
  </td>
  </tr>
  </table>
  </div>
  </div>
  
  <!-- exceptions -->
  </div>
  
  <!-- method -->
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 Traversal-IDLDefinition --></div>
  
  <!-- div1 Traversal -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='copyright-notice.html'>previous</a> &nbsp;
  <a accesskey='n' href='ranges.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/idl/ranges.idl
  
  Index: ranges.idl
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  // File: http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/ranges.idl
  
  #ifndef _RANGES_IDL_
  #define _RANGES_IDL_
  
  #include "dom.idl"
  
  #pragma prefix "dom.w3c.org"
  module ranges
  {
  
    typedef dom::Node Node;
    typedef dom::DocumentFragment DocumentFragment;
    typedef dom::DOMString DOMString;
  
    // Introduced in DOM Level 2:
    exception RangeException {
      unsigned short   code;
    };
    // RangeExceptionCode
    const unsigned short      BAD_BOUNDARYPOINTS_ERR         = 1;
    const unsigned short      INVALID_NODE_TYPE_ERR          = 2;
  
  
    // Introduced in DOM Level 2:
    interface Range {
      readonly attribute Node             startContainer;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute long             startOffset;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute Node             endContainer;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute long             endOffset;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute boolean          collapsed;
                                          // raises(dom::DOMException) on retrieval
  
      readonly attribute Node             commonAncestorContainer;
                                          // raises(dom::DOMException) on retrieval
  
      void               setStart(in Node refNode, 
                                  in long offset)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setEnd(in Node refNode, 
                                in long offset)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setStartBefore(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setStartAfter(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setEndBefore(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               setEndAfter(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               collapse(in boolean toStart)
                                          raises(dom::DOMException);
      void               selectNode(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
      void               selectNodeContents(in Node refNode)
                                          raises(RangeException, 
                                                 dom::DOMException);
  
      // CompareHow
      const unsigned short      START_TO_START                 = 0;
      const unsigned short      START_TO_END                   = 1;
      const unsigned short      END_TO_END                     = 2;
      const unsigned short      END_TO_START                   = 3;
  
      short              compareBoundaryPoints(in unsigned short how, 
                                               in Range sourceRange)
                                          raises(dom::DOMException);
      void               deleteContents()
                                          raises(dom::DOMException);
      DocumentFragment   extractContents()
                                          raises(dom::DOMException);
      DocumentFragment   cloneContents()
                                          raises(dom::DOMException);
      void               insertNode(in Node newNode)
                                          raises(dom::DOMException, 
                                                 RangeException);
      void               surroundContents(in Node newParent)
                                          raises(dom::DOMException, 
                                                 RangeException);
      Range              cloneRange()
                                          raises(dom::DOMException);
      DOMString          toString()
                                          raises(dom::DOMException);
      void               detach()
                                          raises(dom::DOMException);
    };
  
    // Introduced in DOM Level 2:
    interface DocumentRange {
      Range              createRange();
    };
  };
  
  #endif // _RANGES_IDL_
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/idl/traversal.idl
  
  Index: traversal.idl
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  // File: http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/traversal.idl
  
  #ifndef _TRAVERSAL_IDL_
  #define _TRAVERSAL_IDL_
  
  #include "dom.idl"
  
  #pragma prefix "dom.w3c.org"
  module traversal
  {
  
    typedef dom::Node Node;
  
    interface NodeFilter;
  
    // Introduced in DOM Level 2:
    interface NodeIterator {
      readonly attribute Node             root;
      readonly attribute unsigned long    whatToShow;
      readonly attribute NodeFilter       filter;
      readonly attribute boolean          expandEntityReferences;
      Node               nextNode()
                                          raises(dom::DOMException);
      Node               previousNode()
                                          raises(dom::DOMException);
      void               detach();
    };
  
    // Introduced in DOM Level 2:
    interface NodeFilter {
  
      // Constants returned by acceptNode
      const short               FILTER_ACCEPT                  = 1;
      const short               FILTER_REJECT                  = 2;
      const short               FILTER_SKIP                    = 3;
  
  
      // Constants for whatToShow
      const unsigned long       SHOW_ALL                       = 0xFFFFFFFF;
      const unsigned long       SHOW_ELEMENT                   = 0x00000001;
      const unsigned long       SHOW_ATTRIBUTE                 = 0x00000002;
      const unsigned long       SHOW_TEXT                      = 0x00000004;
      const unsigned long       SHOW_CDATA_SECTION             = 0x00000008;
      const unsigned long       SHOW_ENTITY_REFERENCE          = 0x00000010;
      const unsigned long       SHOW_ENTITY                    = 0x00000020;
      const unsigned long       SHOW_PROCESSING_INSTRUCTION    = 0x00000040;
      const unsigned long       SHOW_COMMENT                   = 0x00000080;
      const unsigned long       SHOW_DOCUMENT                  = 0x00000100;
      const unsigned long       SHOW_DOCUMENT_TYPE             = 0x00000200;
      const unsigned long       SHOW_DOCUMENT_FRAGMENT         = 0x00000400;
      const unsigned long       SHOW_NOTATION                  = 0x00000800;
  
      short              acceptNode(in Node n);
    };
  
    // Introduced in DOM Level 2:
    interface TreeWalker {
      readonly attribute Node             root;
      readonly attribute unsigned long    whatToShow;
      readonly attribute NodeFilter       filter;
      readonly attribute boolean          expandEntityReferences;
               attribute Node             currentNode;
                                          // raises(dom::DOMException) on setting
  
      Node               parentNode();
      Node               firstChild();
      Node               lastChild();
      Node               previousSibling();
      Node               nextSibling();
      Node               previousNode();
      Node               nextNode();
    };
  
    // Introduced in DOM Level 2:
    interface DocumentTraversal {
      NodeIterator       createNodeIterator(in Node root, 
                                            in unsigned long whatToShow, 
                                            in NodeFilter filter, 
                                            in boolean entityReferenceExpansion)
                                          raises(dom::DOMException);
      TreeWalker         createTreeWalker(in Node root, 
                                          in unsigned long whatToShow, 
                                          in NodeFilter filter, 
                                          in boolean entityReferenceExpansion)
                                          raises(dom::DOMException);
    };
  };
  
  #endif // _TRAVERSAL_IDL_
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/images/REC.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/images/RangeExample.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/traversal-range/images/w3c_home.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/COPYRIGHT.html
  
  Index: COPYRIGHT.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
                        "http://www.w3.org/TR/REC-html40/loose.dtd">
  <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>W3C IPR SOFTWARE NOTICE</title>
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
      <h1>
        W3C IPR SOFTWARE NOTICE
      </h1>
      <h3>
        Copyright &copy; 2000 <loc href="http://www.w3.org/">World Wide Web
        Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</loc>, <loc
        href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
        Reserved.
      </h3>
      <p>
        The DOM bindings are published under the W3C Software Copyright Notice
        and License. The software license requires "Notice of any changes or
        modifications to the W3C files, including the date changes were made."
        Consequently, modified versions of the DOM bindings must document that
        they do not conform to the W3C standard; in the case of the IDL binding,
        the pragma prefix can no longer be 'w3c.org'; in the case of the Java
        binding, the package names can no longer be in the 'org.w3c' package.
      </p>
      <p>
        <b>Note:</b> The original version of the W3C Software Copyright Notice
        and License could be found at <a
        href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a>
      </p>
      <h3>
        Copyright &copy; 1994-2000 <a href="http://www.w3.org/">World Wide Web
        Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
        Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
        National de Recherche en Informatique et en Automatique</a>, <a
        href="http://www.keio.ac.jp/">Keio University</a>). All Rights
        Reserved. http://www.w3.org/Consortium/Legal/
      </h3>
      <p>
        This W3C work (including software, documents, or other related items) is
        being provided by the copyright holders under the following license. By
        obtaining, using and/or copying this work, you (the licensee) agree that
        you have read, understood, and will comply with the following terms and
        conditions:
      </p>
      <p>
        Permission to use, copy, and modify this software and its documentation,
        with or without modification,&nbsp; for any purpose and without fee or
        royalty is hereby granted, provided that you include the following on ALL
        copies of the software and documentation or portions thereof, including
        modifications, that you make:
      </p>
      <ol>
        <li>
  	The full text of this NOTICE in a location viewable to users of the
  	redistributed or derivative work.
        </li>
        <li>
  	Any pre-existing intellectual property disclaimers, notices, or terms
  	and conditions. If none exist, a short notice of the following form
  	(hypertext is preferred, text is permitted) should be used within the
  	body of any redistributed or derivative code: "Copyright &copy;
  	[$date-of-software] <a href="http://www.w3.org/">World Wide Web
  	Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts
  	Institute of Technology</a>, <a href="http://www.inria.fr/">Institut
  	National de Recherche en Informatique et en Automatique</a>, <a
  	href="http://www.keio.ac.jp/">Keio University</a>).  All Rights
  	Reserved. http://www.w3.org/Consortium/Legal/"
        </li>
        <li>
  	Notice of any changes or modifications to the W3C files, including the
  	date changes were made. (We recommend you provide URIs to the location
  	from which the code is derived.)
        </li>
      </ol>
      <p>
        THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
        HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
        INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
        FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
        DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
        TRADEMARKS OR OTHER RIGHTS.
      </p>
      <p>
        COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
        CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
        DOCUMENTATION.
      </p>
      <p>
        The name and trademarks of copyright holders may NOT be used in
        advertising or publicity pertaining to the software without specific,
        written prior permission. Title to copyright in this software and any
        associated documentation will at all times remain with copyright
        holders.
      </p>
    </body>
  </html>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/Overview.html
  
  Index: Overview.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:39 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model (DOM) Level 2 Views
  Specification</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='expanded-toc.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='n'
  href='expanded-toc.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='head'>
  <p><a href='http://www.w3.org/'><img height='48' width='72'
  alt='W3C' src='./images/w3c_home.gif' /></a></p>
  
  <h1 id='title'>Document Object Model (DOM) Level 2 Views
  Specification</h1>
  
  <h2 id='version'>Version 1.0</h2>
  
  <!-- REC-DOM-Level-2-Views-20001113
   -->
  <h2 id='W3C-doctype'>W3C Recommendation <i>13 November,
  2000</i></h2>
  
  <dl>
  <dt>This version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113</a><br />
   (<a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/DOM2-Views.ps'>
  PostScript file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/DOM2-Views.pdf'>
  PDF file</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/DOM2-Views.txt'>
  plain text</a> , <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/DOM2-Views.zip'>
  ZIP file</a>)</dd>
  
  <dt>Latest version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/DOM-Level-2-Views'>http://www.w3.org/TR/DOM-Level-2-Views</a></dd>
  
  <dt>Previous version:</dt>
  
  <dd><a
  href='http://www.w3.org/TR/2000/PR-DOM-Level-2-Views-20000927'>http://www.w3.org/TR/2000/PR-DOM-Level-2-Views-20000927</a></dd>
  </dl>
  
  <dl>
  <dt>Editors:</dt>
  
  <dd>Arnaud Le Hors, <i>W3C team contact until October 1999, then
  IBM</i></dd>
  
  <dd>Laurence Cable, <i>Sun Microsystems</i></dd>
  </dl>
  
  <p class='copyright'>Copyright &copy; 2000 <a
  href='http://www.w3.org/'><abbr
  title='World Wide Web Consortium'>W3C</abbr></a><sup>&reg;</sup>
  (<a href='http://www.lcs.mit.edu/'><abbr
  title='Massachusetts Institute of Technology'>MIT</abbr></a>, <a
  href='http://www.inria.fr/'><abbr lang='fr'
  title='Institut National de Recherche en Informatique et Automatique'>
  INRIA</abbr></a>, <a href='http://www.keio.ac.jp/'>Keio</a>), All
  Rights Reserved. W3C <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer'>
  liability</a>, <a
  href='http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks'>
  trademark</a>, <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  document use</a> and <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  software licensing</a> rules apply.</p>
  </div>
  
  <hr title='separator from header' />
  <h2 id='abstract'>Abstract</h2>
  
  <div class='abstract'>
  <p>This specification defines the Document Object Model Level 2
  Views, a platform- and language-neutral interface that allows
  programs and scripts to dynamically access and update the content
  of a representation of a document. The Document Object Model Level
  2 Views builds on the Document Object Model Level 2 Core [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>].</p>
  </div>
  
  <h2 id='status'>Status of this document</h2>
  
  <div class='status'>
  <p><em>This section describes the status of this document at the
  time of its publication. Other documents may supersede this
  document. The latest status of this document series is maintained
  at the W3C.</em></p>
  
  <p>This document has been reviewed by W3C Members and other
  interested parties and has been endorsed by the Director as a <a
  href='http://www.w3.org/Consortium/Process/Process-19991111/tr.html#RecsW3C'>
  W3C Recommendation</a>. It is a stable document and may be used as
  reference material or cited as a normative reference from another
  document. W3C's role in making the Recommendation is to draw
  attention to the specification and to promote its widespread
  deployment. This enhances the functionality and interoperability of
  the Web.</p>
  
  <p>This document has been produced as part of the <a
  href='http://www.w3.org/DOM/Activity.html'>W3C DOM Activity</a>.
  The authors of this document are the DOM Working Group members.
  Different modules of the Document Object Model have different
  editors.</p>
  
  <p>Please send general comments about this document to the public
  mailing list <a href='mailto:www-dom@w3.org'>www-dom@w3.org</a>. An
  <a href='http://lists.w3.org/Archives/Public/www-dom/'>archive</a>
  is available at http://lists.w3.org/Archives/Public/www-dom/.</p>
  
  <p>The English version of this specification is the only normative
  version. Information about <a
  href='http://www.w3.org/2000/11/DOM-Level-2-translations'>translations</a>
  of this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-translations.</p>
  
  <p>The <a href='http://www.w3.org/2000/11/DOM-Level-2-errata'>list
  of known errors</a> in this document is available at
  http://www.w3.org/2000/11/DOM-Level-2-errata</p>
  
  <p>A list of <a href='http://www.w3.org/TR/'>current W3C
  Recommendations and other technical documents</a> can be found at
  http://www.w3.org/TR.</p>
  </div>
  
  <h2 id='table-of-contents'><a id="contents" name='contents'>Table
  of contents</a></h2>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref' href='views.html'>1.
  Document Object Model Views</a></li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix A: IDL Definitions</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix B: Java Language Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix C: ECMAScript Language
  Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix D: Acknowledgements</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='n' href='expanded-toc.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/W3C-REC.css
  
  Index: W3C-REC.css
  ===================================================================
  /* This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  */
  /* Style for a "Recommendation" */
  
  /*
     This is an SSI script. Policy:
     (1) Use CVS
     (2) send e-mail to w3t-comm@w3.org if you edit this
  
     Acknowledgments:
  
     - 'background-color' doesn't work on Mac IE 3, but 'background'
       does (Susan Lesch <le...@macvirus.com>)
  
     - 'smaller' leads to illegible text in both Mac IE and Mac NS,
       'small' is better: works in Mac NS, but is always 12pt in Mac IE
       3 (Susan Lesch <le...@macvirus.com>)
  
     $Id: W3C-REC.css,v 1.1 2001/06/01 11:14:20 dims Exp $
  */
  
  body {
    margin: 2em 1em 2em 70px;
    font-family: sans-serif;
    color: black;
    background: white;
    background-position: top left;
    background-attachment: fixed;
    background-repeat: no-repeat;
  }
  
  th, td { /* ns 4 */
    font-family: sans-serif;
  }
  
  h1, h2, h3, h4, h5, h6 { text-align: left }
  h1, h2, h3 { color: #005A9C }
  h1 { font: 170% sans-serif }
  h2 { font: 140% sans-serif }
  h3 { font: 120% sans-serif }
  h4 { font: bold 100% sans-serif }
  h5 { font: italic 100% sans-serif }
  h6 { font: small-caps 100% sans-serif }
  
  .hide { display: none }
  
  div.head { margin-bottom: 1em }
  div.head h1 { margin-top: 2em; clear: both }
  div.head table { margin-left: 2em; margin-top: 2em }
  div.head img { color: white; border: none } /* remove border from top image */
  
  p.copyright { font-size: small }
  p.copyright small { font-size: small }
  
  @media screen {  /* hide from IE3 */
  a:hover { background: #ffa } 
  }
  
  pre { margin-left: 2em }
  /*
  p {
    margin-top: 0.6em;
    margin-bottom: 0.6em;
  }
  */
  dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
  dt { font-weight: bold }
  
  pre, code { font-family: monospace } /* navigator 4 requires this */
  
  ul.toc {
    list-style: disc;		/* Mac NS has problem with 'none' */
    list-style: none;
  }
  
  @media aural {  
    h1, h2, h3 { stress: 20; richness: 90 }
    .hide { speak: none }
    p.copyright { volume: x-soft; speech-rate: x-fast }
    dt { pause-before: 20% }
    pre { speak-punctuation: code } 
  }
  
  /* Things (icons) that should only show up in projection mode */
  .projection { display: none }
  @media projection { .projection { display: inline } }
  
  
  body {
    background-image: url(http://www.w3.org/StyleSheets/TR/logo-REC);
  }
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/acknowledgements.html
  
  Index: acknowledgements.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:44 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Acknowledgements</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='references.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='ecma-script-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='ecma-script-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='references.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="contributors" name='contributors'></a> 
  
  <h1 id='contributors-h1' class='adiv1'>Appendix D:
  Acknowledgements</h1>
  
  <p>Many people contributed to this specification, including members
  of the DOM Working Group and the DOM Interest Group. We especially
  thank the following:</p>
  
  <p>Lauren Wood (SoftQuad Software Inc., <em>chair</em>), Andrew
  Watson (Object Management Group), Andy Heninger (IBM), Arnaud Le
  Hors (W3C and IBM), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea
  (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris
  Wilson (Microsoft), David Brownell (Sun), David Singer (IBM), Don
  Park (invited), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian
  Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared
  Sorensen (Novell), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe
  Marini (Macromedia), Johnny Stenback (Netscape), Jonathan Marsh
  (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim
  Adamson-Sharpe (SoftQuad Software Inc.), Laurence Cable (Sun), Mark
  Davis (IBM), Mark Scardina (Oracle), Martin D&uuml;rst (W3C), Mick
  Goulish (Software AG), Mike Champion (Arbortext and Software AG),
  Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso
  (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton
  (Netscape), Philippe Le H&eacute;garet (W3C, <em>W3C team
  contact</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer
  (iMall, Excite@Home and Netscape), Rich Rollman (Microsoft), Rick
  Gessner (Netscape), Scott Isaacs (Microsoft), Sharon Adler (INSO),
  Steve Byrne (JavaSoft), Tim Bray (invited), Tom Pixley (Netscape),
  Vidur Apparao (Netscape), Vinod Anupam (Lucent).</p>
  
  <p>Thanks to all those who have helped to improve this
  specification by sending suggestions and corrections.</p>
  
  <div class='div2'><a id="Productions" name='Productions'></a> 
  
  <h2 id='Productions-h2' class='adiv2'>D.1: Production Systems</h2>
  
  <p>This specification was written in XML. The HTML, OMG IDL, Java
  and ECMA Script bindings were all produced automatically.</p>
  
  <p>Thanks to Joe English, author of <a
  href='http://www.flightlab.com/cost'>cost</a>, which was used as
  the basis for producing DOM Level 1. Thanks also to Gavin Nicol,
  who wrote the scripts which run on top of cost. Arnaud Le Hors and
  Philippe Le H&eacute;garet maintained the scripts.</p>
  
  <p>For DOM Level 2, we used <a
  href='http://xml.apache.org/xerces-j'>Xerces</a> as the basis DOM
  implementation and wish to thank the authors. Philippe Le
  H&eacute;garet and Arnaud Le Hors wrote the <a
  href='http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/'>
  Java programs</a> which are the DOM application.</p>
  
  <p>Thanks also to Jan K&auml;rrman, author of <a
  href='http://www.tdb.uu.se/~jan/html2ps.html'>html2ps</a>, which we
  use in creating the PostScript version of the specification.</p>
  </div>
  
  <!-- div2 Productions --></div>
  
  <!-- div1 contributors -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='ecma-script-binding.html'>previous</a>
  &nbsp; <a accesskey='n' href='references.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/copyright-notice.html
  
  Index: copyright-notice.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:40 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Copyright Notice</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='views.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='expanded-toc.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='expanded-toc.html'>previous</a> &nbsp; <a accesskey='n'
  href='views.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Copyright-Notice"
  name='Copyright-Notice'></a> 
  
  <h1 id='Copyright-Notice-h1' class='div1'>Copyright Notice</h1>
  
  <p><b>Copyright &copy; 2000 <a href='http://www.w3.org/'>World Wide
  Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p>This document is published under the <a
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a>. The bindings within this document
  are published under the <a
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a>. The software license requires
  "Notice of any changes or modifications to the W3C files, including
  the date changes were made." Consequently, modified versions of the
  DOM bindings must document that they do not conform to the W3C
  standard; in the case of the IDL definitions, the pragma prefix can
  no longer be 'w3c.org'; in the case of the Java Language binding,
  the package names can no longer be in the 'org.w3c' package.</p>
  
  <div class='div2'><a id="Copyright-notice-document"
  name='Copyright-notice-document'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-document-h2' class='div2'>W3C Document
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Document Notice
  and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-documents-19990405'>
  http://www.w3.org/Consortium/Legal/copyright-documents-19990405</a>.</p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>Public documents on the W3C site are provided by the copyright
  holders under the following license. The software or Document Type
  Definitions (DTDs) associated with W3C specifications are governed
  by the <a
  href='http://www.w3.org/Consortium/Legal/copyright-software.html'>Software
  Notice</a>. By using and/or copying this document, or the W3C
  document from which this statement is linked, you (the licensee)
  agree that you have read, understood, and will comply with the
  following terms and conditions:</p>
  
  <p>Permission to use, copy, and distribute the contents of this
  document, or the W3C document from which this statement is linked,
  in any medium for any purpose and without fee or royalty is hereby
  granted, provided that you include the following on <em>ALL</em>
  copies of the document, or portions thereof, that you use:</p>
  
  <ol>
  <li>A link or URL to the original W3C document.</li>
  
  <li>The pre-existing copyright notice of the original author, or if
  it doesn't exist, a notice of the form: "Copyright &copy;
  [$date-of-document] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/" (Hypertext is
  preferred, but a textual representation is permitted.)</li>
  
  <li><em>If it exists</em>, the STATUS of the W3C document.</li>
  </ol>
  
  <p>When space permits, inclusion of the full text of this
  <b>NOTICE</b> should be provided. We request that authorship
  attribution be provided in any software, documents, or other items
  or products that you create pursuant to the implementation of the
  contents of this document, or any portion thereof.</p>
  
  <p>No right to create modifications or derivatives of W3C documents
  is granted pursuant to this license. However, if additional
  requirements (documented in the <a
  href='http://www.w3.org/Consortium/Legal/IPR-FAQ.html'>Copyright
  FAQ</a>) are satisfied, the right to create modifications or
  derivatives is sometimes granted by the W3C to individuals
  complying with those requirements.</p>
  
  <p>THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
  REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT
  NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS
  OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
  IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
  PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS
  THEREOF.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to this document or its
  contents without specific, written prior permission. Title to
  copyright in this document will at all times remain with copyright
  holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-document -->
  <div class='div2'><a id="Copyright-notice-software"
  name='Copyright-notice-software'></a> 
  
  <hr width='50' align='center' title='Area separator' />
  <h2 id='Copyright-notice-software-h2' class='div2'>W3C Software
  Copyright Notice and License</h2>
  
  <p><b>Note:</b> This section is a copy of the W3C Software
  Copyright Notice and License and could be found at <a
  href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>
  http://www.w3.org/Consortium/Legal/copyright-software-19980720</a></p>
  
  <p><b>Copyright &copy; 1994-2000 <a href='http://www.w3.org/'>World
  Wide Web Consortium</a>, (<a
  href='http://www.lcs.mit.edu/'>Massachusetts Institute of
  Technology</a>, <a href='http://www.inria.fr/'>Institut National de
  Recherche en Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved.</b></p>
  
  <p><b>http://www.w3.org/Consortium/Legal/</b></p>
  
  <p>This W3C work (including software, documents, or other related
  items) is being provided by the copyright holders under the
  following license. By obtaining, using and/or copying this work,
  you (the licensee) agree that you have read, understood, and will
  comply with the following terms and conditions:</p>
  
  <p>Permission to use, copy, and modify this software and its
  documentation, with or without modification, for any purpose and
  without fee or royalty is hereby granted, provided that you include
  the following on ALL copies of the software and documentation or
  portions thereof, including modifications, that you make:</p>
  
  <ol>
  <li>The full text of this NOTICE in a location viewable to users of
  the redistributed or derivative work.</li>
  
  <li>Any pre-existing intellectual property disclaimers. If none
  exist, then a notice of the following form: "Copyright &copy;
  [$date-of-software] <a href='http://www.w3.org/'>World Wide Web
  Consortium</a>, (<a href='http://www.lcs.mit.edu/'>Massachusetts
  Institute of Technology</a>, <a
  href='http://www.inria.fr/'>Institut National de Recherche en
  Informatique et en Automatique</a>, <a
  href='http://www.keio.ac.jp/'>Keio University</a>). All Rights
  Reserved. http://www.w3.org/Consortium/Legal/."</li>
  
  <li>Notice of any changes or modifications to the W3C files,
  including the date changes were made. (We recommend you provide
  URIs to the location from which the code is derived.)</li>
  </ol>
  
  <p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
  COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
  MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
  USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
  PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
  
  <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
  SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
  SOFTWARE OR DOCUMENTATION.</p>
  
  <p>The name and trademarks of copyright holders may NOT be used in
  advertising or publicity pertaining to the software without
  specific, written prior permission. Title to copyright in this
  software and any associated documentation will at all times remain
  with copyright holders.</p>
  </div>
  
  <!-- div2 Copyright-notice-software --></div>
  
  <!-- div1 Copyright-Notice -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='expanded-toc.html'>previous</a> &nbsp; <a
  accesskey='n' href='views.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/def-index.html
  
  Index: def-index.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:45 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Index</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='previous' href='references.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='references.html'>previous</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Index" name='Index'></a> 
  
  <h1 id='role-index' class='index'>Index</h1>
  
  <table
  summary='the table contains all keywords used in this document'>
  <tr>
  <td width='30%'><a class='noxref'
  href='views.html#Views-AbstractView'>AbstractView</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='views.html#Views-DocumentView-defaultView'>defaultView</a></td>
  <td width='30%'><a class='noxref'
  href='views.html#Views-AbstractView-document'>document</a></td>
  <td width='30%'><a class='noxref'
  href='views.html#Views-DocumentView'>DocumentView</a></td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref' href='views.html#Views-intro'>DOM
  Level 2 Core</a> <a class='index-inst'
  href='views.html#Views-intro'>1</a>, <a class='index-inst'
  href='references.html#DOMCore'>2</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#Java'>Java</a></td>
  </tr>
  
  <tr>
  <td>&nbsp;</td>
  </tr>
  
  <tr>
  <td width='30%'><a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a></td>
  </tr>
  </table>
  </div>
  
  <!-- div1 Index -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='references.html'>previous</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/ecma-script-binding.html
  
  Index: ecma-script-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:43 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>ECMAScript Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='acknowledgements.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='java-binding.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='java-binding.html'>previous</a> &nbsp; <a accesskey='n'
  href='acknowledgements.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="ecma-binding" name='ecma-binding'></a> 
  
  <h1 id='ecma-binding-h1' class='adiv1'>Appendix C: ECMAScript
  Language Binding</h1>
  
  <p>This appendix contains the complete ECMAScript [<a
  class='noxref' href='references.html#ECMAScript'>ECMAScript</a>]
  binding for the Level 2 Document Object Model Views
  definitions.</p>
  
  <p><b>Note:</b> Exceptions handling is only supported by ECMAScript
  implementation conformant with the Standard ECMA-262 3rd. Edition
  ([<a class='noxref'
  href='references.html#ECMAScript'>ECMAScript</a>]).</p>
  
  <div class='ecma-block'>
  <dl>
  <dt>Object <b>AbstractView</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>AbstractView</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>document</b></dt>
  
  <dd>This read-only property is a <b>DocumentView</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt>Object <b>DocumentView</b></dt>
  
  <dd>
  <dl>
  <dt>The <b>DocumentView</b> object has the following
  properties:</dt>
  
  <dd>
  <dl>
  <dt><b>defaultView</b></dt>
  
  <dd>This read-only property is a <b>AbstractView</b> object.</dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- ecma-block -->
  </div>
  
  <!-- div1 ecma-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='java-binding.html'>previous</a> &nbsp; <a
  accesskey='n' href='acknowledgements.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/expanded-toc.html
  
  Index: expanded-toc.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:39 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Expanded Table of Contents</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='copyright-notice.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='Overview.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='Overview.html'>previous</a> &nbsp; <a accesskey='n'
  href='copyright-notice.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="TOC" name='TOC'></a> 
  
  <h1 id='TOC-h1' class='div1'>Expanded Table of Contents</h1>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='expanded-toc.html'>Expanded Table of Contents</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='copyright-notice.html'>Copyright Notice</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-document'>W3C Document
  Copyright Notice and License</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='copyright-notice.html#Copyright-notice-software'>W3C Software
  Copyright Notice and License</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref' href='views.html'>1.
  Document Object Model Views</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='views.html#Views-intro'>1.1. Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='views.html#Views-Interfaces'>1.2. Interfaces</a></li>
  </ul>
  </li>
  </ul>
  
  <ul class='toc'>
  <li class='tocline2'><a class='tocxref'
  href='idl-definitions.html'>Appendix A: IDL Definitions</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='java-binding.html'>Appendix B: Java Language Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='ecma-script-binding.html'>Appendix C: ECMAScript Language
  Binding</a></li>
  
  <li class='tocline2'><a class='tocxref'
  href='acknowledgements.html'>Appendix D: Acknowledgements</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='acknowledgements.html#Productions'>D.1. Production
  Systems</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='references.html'>References</a> 
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref'
  href='references.html#References-Normative'>1. Normative
  references</a></li>
  </ul>
  </li>
  
  <li class='tocline2'><a class='tocxref'
  href='def-index.html'>Index</a></li>
  </ul>
  </div>
  
  <!-- div1 TOC -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='Overview.html'>previous</a> &nbsp; <a
  accesskey='n' href='copyright-notice.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/idl-definitions.html
  
  Index: idl-definitions.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:41 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>IDL Definitions</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='java-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='views.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='views.html'>previous</a> &nbsp; <a accesskey='n'
  href='java-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="idl" name='idl'></a> 
  
  <h1 id='idl-h1' class='adiv1'>Appendix A: IDL Definitions</h1>
  
  <p>This appendix contains the complete OMG IDL [<a class='noxref'
  href='references.html#OMGIDL'>OMGIDL</a>] for the Level 2 Document
  Object Model Views definitions.</p>
  
  <p>The IDL files are also available as: <a
  href='idl.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/idl.zip</a></p>
  
  <h3 id='idl-views.idl'><a href='idl/views.idl'>views.idl</a>:</h3>
  
  <div class='idl-code'>
  <pre>
  // File: views.idl
  
  #ifndef _VIEWS_IDL_
  #define _VIEWS_IDL_
  
  #include "dom.idl"
  
  #pragma prefix "dom.w3c.org"
  module views
  {
  
    interface DocumentView;
  
    // Introduced in DOM Level 2:
    interface AbstractView {
      readonly attribute DocumentView     document;
    };
  
    // Introduced in DOM Level 2:
    interface DocumentView {
      readonly attribute AbstractView     defaultView;
    };
  };
  
  #endif // _VIEWS_IDL_
  
  </pre>
  </div>
  </div>
  
  <!-- div1 idl -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='views.html'>previous</a> &nbsp; <a
  accesskey='n' href='java-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/java-binding.html
  
  Index: java-binding.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:42 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Java Language Binding</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='ecma-script-binding.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='idl-definitions.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='idl-definitions.html'>previous</a> &nbsp; <a accesskey='n'
  href='ecma-script-binding.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="java-binding" name='java-binding'></a> 
  
  <h1 id='java-binding-h1' class='adiv1'>Appendix B: Java Language
  Binding</h1>
  
  <p>This appendix contains the complete Java Language [<a
  class='noxref' href='references.html#Java'>Java</a>] binding for
  the Level 2 Document Object Model Views.</p>
  
  <p>The Java files are also available as <a
  href='java-binding.zip'>http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/java-binding.zip</a></p>
  
  <h3 id='org.w3c.dom.views.AbstractView'>
  org/w3c/dom/views/AbstractView.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.views;
  
  public interface AbstractView {
      public DocumentView getDocument();
  
  }
  </pre>
  </div>
  
  <h3 id='org.w3c.dom.views.DocumentView'>
  org/w3c/dom/views/DocumentView.java:</h3>
  
  <div class='java-code'>
  <pre>
  package org.w3c.dom.views;
  
  public interface DocumentView {
      public AbstractView getDefaultView();
  
  }
  </pre>
  </div>
  </div>
  
  <!-- div1 java-binding -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='idl-definitions.html'>previous</a> &nbsp; <a
  accesskey='n' href='ecma-script-binding.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/references.html
  
  Index: references.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:44 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>References</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='def-index.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='acknowledgements.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='acknowledgements.html'>previous</a> &nbsp; <a accesskey='n'
  href='def-index.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="References" name='References'></a> 
  
  <h1 id='role-references' class='references'>References</h1>
  
  <p>For the latest version of any W3C specification please consult
  the list of <a href='http://www.w3.org/TR'>W3C Technical
  Reports</a> available at http://www.w3.org/TR.</p>
  
  <div class='div2'><a id="References-Normative"
  name='References-Normative'></a> 
  
  <h2 id='References-Normative-h2' class='adiv2'>E.1: Normative
  references</h2>
  
  <dl>
  <dt><b><a id="DOMCore" name='DOMCore'>DOM Level 2 Core</a></b></dt>
  
  <dd>W3C (World Wide Web Consortium) <a
  href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document
  Object Model Level 2 Core Specification</a>, November 2000.
  Available at
  http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113</dd>
  
  <dt><b><a id="ECMAScript" name='ECMAScript'>ECMAScript</a></b></dt>
  
  <dd>ECMA (European Computer Manufacturers Association) <a
  href='http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM'>ECMAScript
  Language Specification</a>. Available at
  http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM</dd>
  
  <dt><b><a id="Java" name='Java'>Java</a></b></dt>
  
  <dd>Sun Microsystems Inc. <a
  href='http://java.sun.com/docs/books/jls'>The Java Language
  Specification</a>, James Gosling, Bill Joy, and Guy Steele,
  September 1996. Available at
  http://java.sun.com/docs/books/jls</dd>
  
  <dt><b><a id="OMGIDL" name='OMGIDL'>OMGIDL</a></b></dt>
  
  <dd>OMG (<a href='http://www.omg.org/'>Object Management Group</a>)
  IDL (Interface Definition Language) defined in The Common Object
  Request Broker: Architecture and Specification, version 2.3.1,
  October 1999. Available from http://www.omg.org/</dd>
  </dl>
  </div>
  
  <!-- div2 References-Normative --></div>
  
  <!-- div1 References -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='acknowledgements.html'>previous</a> &nbsp;
  <a accesskey='n' href='def-index.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/spec.css
  
  Index: spec.css
  ===================================================================
  H4 {
    text-align: left;
    font-family: sans-serif;
    font-weight: normal;
    color: #0050B2; 
  }
  .idl-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  .java-code { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .code-block { 
    font-family: monospace;
    border: 1px solid black;
    white-space: pre; 
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .ecma-block { 
    border: 1px solid black;
    color: black;
    background-color: #dfdfdf; 
  }
  
  
  .interface-name {
    font-weight: bold
  }
  
  .attribute-name {  
    color: black;
    background-color: #FFFFD2;
  }
  
  .constant-name {
    color: black;
    background-color: #DDFFD2;
  }
  
  .method-name {  
    color: black;
    background-color: #D9E6F8;
  }
  
  .parameter-name {
    color: black;
    background-color: #FEE6F8; 
  }
  
  UL.toc, OL.toc {list-style: none}
  DIV.toc UL UL, DIV.toc OL OL {margin-left: 0}
  DIV.toc UL UL UL, DIV.toc OL OL OL {margin-left: 1em}
  DIV.toc UL UL UL UL, DIV.toc OL OL OL OL {margin-left: 0}
  LI.tocline1 {font-weight: bold}
  LI.tocline2 {font-weight: normal}
  LI.tocline4 {font-style: italic}
  
  code { font-family: monospace }
  
  div.paramtable { margin-left: 1em }
  div.returntable { margin-left: 1em }
  div.exceptiontable { margin-left: 1em }
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/views.html
  
  Index: views.html
  ===================================================================
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <!--
   Generated: Thu Nov 09 17:43:41 EST 2000 jfouffa.w3.org
   -->
  <html lang='en' xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>Document Object Model Views</title>
  <link rel='stylesheet' type='text/css' href='./spec.css' />
  <link rel='stylesheet' type='text/css' href='W3C-REC.css' />
  <link rel='next' href='idl-definitions.html' />
  <link rel='contents' href='Overview.html#contents' />
  <link rel='index' href='def-index.html' />
  <link rel='previous' href='copyright-notice.html' />
  </head>
  <body>
  <div class='navbar' align='center'><a accesskey='p'
  href='copyright-notice.html'>previous</a> &nbsp; <a accesskey='n'
  href='idl-definitions.html'>next</a> &nbsp; <a accesskey='c'
  href='Overview.html#contents'>contents</a> &nbsp; <a accesskey='i'
  href='def-index.html'>index</a> 
  
  <hr title='Navigation area separator' />
  </div>
  
  <div class='noprint' style='text-align: right'>
  <p style='font-family: monospace;font-size:small'>13 November,
  2000</p>
  </div>
  
  <div class='div1'><a id="Views" name='Views'></a> 
  
  <h1 id='Views-h1' class='div1'>1. Document Object Model Views</h1>
  
  <dl>
  <dt><i>Editors</i></dt>
  
  <dd>Arnaud Le Hors, IBM</dd>
  
  <dd>Laurence Cable, Sun Microsystems</dd>
  </dl>
  
  <div class='noprint'>
  <h2 id='table-of-contents'>Table of contents</h2>
  
  <ul class='toc'>
  <li class='tocline3'><a class='tocxref' href='#Views-intro'>1.1.
  Introduction</a></li>
  
  <li class='tocline3'><a class='tocxref'
  href='#Views-Interfaces'>1.2. Interfaces</a> 
  
  <ul class='toc'>
  <li class='tocline4'><a
  href='#Views-AbstractView'>AbstractView</a>, <a
  href='#Views-DocumentView'>DocumentView</a></li>
  </ul>
  </li>
  </ul>
  </div>
  
  <div class='div2'><a id="Views-intro" name='Views-intro'></a> 
  
  <h2 id='Views-intro-h2' class='div2'>1.1. Introduction</h2>
  
  <p>A document may have one or more "views" associated with it,
  e.g., a computed view on a document after applying a CSS
  stylesheet, or multiple presentations (e.g., HTML Frame) of the
  same document in a client. That is, a view is some alternate
  representation of, or a presentation of, and associated with, a
  source document.</p>
  
  <p>A view may be static, reflecting the state of the document when
  the view was created, or dynamic, reflecting changes in the target
  document as they occur, subsequent to the view being created. This
  Level of the DOM specification makes no statement about these
  behaviors.</p>
  
  <p>This section defines an <a
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>
  interface which provides a base interface from which all such views
  shall derive. It defines an attribute which references the target
  document of the <a class='noxref'
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>.
  The only semantics of the <a class='noxref'
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>
  defined here create an association between a view and its target
  document.</p>
  
  <p>There are no subinterfaces of <a
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>
  defined in the DOM Level 2.</p>
  
  <p>However, <a
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>
  is defined in and used in this Level in two places:</p>
  
  <ul>
  <li>A Document may implement a <a
  href='views.html#Views-DocumentView'><code>DocumentView</code></a>
  that has a default view attribute associated with it. This default
  view is typically dependent on the implementation (e.g., the
  browser frame rendering the document). The default view can be used
  in order to identify and/or associate a view with its target
  document (by testing object equality on the <a
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>
  or obtaining the <a class='noxref'
  href='views.html#Views-DocumentView'><code>DocumentView</code></a>
  attribute).</li>
  
  <li>A <code>UIEvent</code> typically occurs upon a view of a
  Document (e.g., a mouse click on a browser frame rendering a
  particular Document instance). A <code>UIEvent</code> has an <a
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>
  associated with it which identifies both the particular
  (implementation-dependent) view in which the event occurs, and the
  target document the <code>UIEvent</code> is related to.</li>
  </ul>
  
  <p>The interfaces found within this section are not mandatory. A
  DOM application may use the <code>hasFeature(feature,
  version)</code> method of the <code>DOMImplementation</code>
  interface with parameter values "Views" and "2.0" (respectively) to
  determine whether or not this module is supported by the
  implementation. In order to fully support this module, an
  implementation must also support the "Core" feature defined defined
  in the Document Object Model Level 2 Core specification [<a
  class='noxref' href='references.html#DOMCore'>DOM Level 2
  Core</a>]. Please refer to additional information about <a
  href='http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance'>
  <em>conformance in the DOM Level 2 Core specification</em></a>.</p>
  </div>
  
  <!-- div2 Views-intro -->
  <div class='div2'><a id="Views-Interfaces"
  name='Views-Interfaces'></a> 
  
  <h2 id='Views-Interfaces-h2' class='div2'>1.2. Interfaces</h2>
  
  <dl>
  <dt><b>Interface <i><a id="Views-AbstractView"
  name='Views-AbstractView'>AbstractView</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>A base interface that all views shall derive from.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface AbstractView {
    readonly attribute DocumentView     document;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="Views-AbstractView-document"
  name='Views-AbstractView-document'>document</a></code> of type <a
  href='views.html#Views-DocumentView'><code>DocumentView</code></a>,
  readonly</dt>
  
  <dd>The source <a
  href='views.html#Views-DocumentView'><code>DocumentView</code></a>
  of which this is an <code>AbstractView</code>.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  
  <dt><b>Interface <i><a id="Views-DocumentView"
  name='Views-DocumentView'>DocumentView</a></i></b> (introduced in
  <b class='since'>DOM Level 2</b>)</dt>
  
  <dd>
  <p>The <code>DocumentView</code> interface is implemented by
  <code>Document</code> objects in DOM implementations supporting DOM
  Views. It provides an attribute to retrieve the default view of a
  document.</p>
  
  <dl>
  <dt><br />
  <b>IDL Definition</b></dt>
  
  <dd>
  <div class='idl-code'>
  <pre>
  // Introduced in DOM Level 2:
  interface DocumentView {
    readonly attribute AbstractView     defaultView;
  };
  </pre>
  </div>
  
  <br />
  </dd>
  
  <dt><b>Attributes</b></dt>
  
  <dd>
  <dl>
  <dt><code class='attribute-name'><a
  id="Views-DocumentView-defaultView"
  name='Views-DocumentView-defaultView'>defaultView</a></code> of
  type <a
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>,
  readonly</dt>
  
  <dd>The default <a
  href='views.html#Views-AbstractView'><code>AbstractView</code></a>
  for this <code>Document</code>, or <code>null</code> if none
  available.<br />
  </dd>
  </dl>
  </dd>
  </dl>
  </dd>
  </dl>
  </div>
  
  <!-- div2 Views-Interfaces --></div>
  
  <!-- div1 Views -->
  <div class='navbar' align='center'>
  <hr title='Navigation area separator' />
  <a accesskey='p' href='copyright-notice.html'>previous</a> &nbsp;
  <a accesskey='n' href='idl-definitions.html'>next</a> &nbsp; <a
  accesskey='c' href='Overview.html#contents'>contents</a> &nbsp; <a
  accesskey='i' href='def-index.html'>index</a></div>
  </body>
  </html>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/idl/views.idl
  
  Index: views.idl
  ===================================================================
  /*
   * Copyright (c) 2000 World Wide Web Consortium,
   * (Massachusetts Institute of Technology, Institut National de
   * Recherche en Informatique et en Automatique, Keio University). All
   * Rights Reserved. This program is distributed under the W3C's Software
   * 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.
   */
  
  // File: http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/views.idl
  
  #ifndef _VIEWS_IDL_
  #define _VIEWS_IDL_
  
  #include "dom.idl"
  
  #pragma prefix "dom.w3c.org"
  module views
  {
  
    interface DocumentView;
  
    // Introduced in DOM Level 2:
    interface AbstractView {
      readonly attribute DocumentView     document;
    };
  
    // Introduced in DOM Level 2:
    interface DocumentView {
      readonly attribute AbstractView     defaultView;
    };
  };
  
  #endif // _VIEWS_IDL_
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/images/REC.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/views/images/w3c_home.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/contributors.xml
  
  Index: contributors.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: contributors.xml,v 1.1 2001/06/01 11:14:33 dims Exp $ -->
  <div1 role="acknowledgements" id="contributors"> 
    <head>Acknowledgements</head> 
    <p>Many people contributed to this specification, including members of the
  	 DOM Working Group and the DOM Interest Group. We especially thank the
  	 following:</p> 
    <p> Lauren Wood (SoftQuad Software Inc., <emph>chair</emph>), Andrew Watson
  	 (Object Management Group), Andy Heninger (IBM), Arnaud Le Hors (W3C and IBM),
  	 Ben Chang (Oracle), Bill Smith (Sun), Bill Shea (Merrill Lynch), Bob Sutor
  	 (IBM), Chris Lovett (Microsoft), Chris Wilson (Microsoft), David Brownell
  	 (Sun), David Singer (IBM), Don Park (invited), Eric Vasilik (Microsoft), Gavin
  	 Nicol (INSO), Ian Jacobs (W3C), James Clark (invited), James Davidson (Sun),
  	 Jared Sorensen (Novell), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe Marini
  	 (Macromedia), Johnny Stenback (Netscape), Jonathan Marsh (Microsoft), Jonathan
  	 Robie (Texcel Research and Software AG), Kim Adamson-Sharpe (SoftQuad Software
  	 Inc.), Laurence Cable (Sun), Mark Davis (IBM), Mark Scardina (Oracle), Martin
  	 D&#252;rst (W3C), Mick Goulish (Software AG), Mike Champion (Arbortext and Software
  	 AG), Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso
  	 (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton (Netscape),
  	 Philippe Le H&eacute;garet (W3C, <emph>W3C team contact</emph>), Ramesh
  	 Lekshmynarayanan (Merrill Lynch), Ray Whitmer (iMall, Excite@Home and
  	 Netscape), Rich Rollman (Microsoft), Rick Gessner (Netscape), Scott Isaacs
  	 (Microsoft), Sharon Adler (INSO), Steve Byrne (JavaSoft), Tim Bray (invited),
  	 Tom Pixley (Netscape), Vidur Apparao (Netscape), Vinod Anupam (Lucent). </p> 
    <p>Thanks to all those who have helped to improve this specification by
  	 sending suggestions and corrections.</p> 
    <div2 id="Productions"><head>Production Systems</head> 
  	 <p>This specification was written in XML. The HTML, OMG IDL, Java and ECMA
  		Script bindings were all produced automatically.</p> 
  	 <p>Thanks to Joe English, author of 
  		<loc href="http://www.flightlab.com/cost">cost</loc>, which was used as
  		the basis for producing DOM Level 1. Thanks also to Gavin Nicol, who wrote the
  		scripts which run on top of cost. Arnaud Le Hors and Philippe Le H&eacute;garet
  		maintained the scripts.</p> 
  	 <p>For DOM Level 2, we used 
  		<loc href="http://xml.apache.org/xerces-j">Xerces</loc> as the basis DOM
  		implementation and wish to thank the authors. Philippe Le H&eacute;garet and Arnaud
  		Le Hors wrote the 
  		<loc
  		 href="http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/">Java
  		  programs</loc> which are the DOM application.</p> 
  	 <p>Thanks also to Jan K&#228;rrman, author of 
  		<loc href="http://www.tdb.uu.se/~jan/html2ps.html">html2ps</loc>, which
  		we use in creating the PostScript version of the specification.</p> 
    </div2></div1>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/copyright.xml
  
  Index: copyright.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: copyright.xml,v 1.1 2001/06/01 11:14:33 dims Exp $ -->
  <!--
   *************************************************************************
   * BEGINNING OF COPYRIGHT NOTICE                                         *
   *************************************************************************
  -->
  <div1 id="Copyright-Notice">
    <head>Copyright Notice</head>
  
    <p role='important'>
      Copyright &copy; &date.year; <loc href="http://www.w3.org/">World Wide Web
      Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
      Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut
      National de Recherche en Informatique et en Automatique</loc>, <loc
      href="http://www.keio.ac.jp/">Keio University</loc>). All Rights Reserved.
    </p>
    <p>
      This document is published under the <specref
      ref="Copyright-notice-document"/>. The bindings within this document are
      published under the <specref ref="Copyright-notice-software"/>.  The
      software license requires "Notice of any changes or modifications to the
      W3C files, including the date changes were made." Consequently, modified
      versions of the DOM bindings must document that they do not conform to the
      W3C standard; in the case of the IDL definitions, the pragma prefix can no
      longer be 'w3c.org'; in the case of the Java Language binding, the package
      names can no longer be in the 'org.w3c' package.
    </p>
    <div2 id="Copyright-notice-document">
      <head>W3C Document Copyright Notice and License</head>
      <note>
        <p>
  	This section is a copy of the W3C Document Notice and License and could
  	be found at <loc
  	href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">http://www.w3.org/Consortium/Legal/copyright-documents-19990405</loc>.
        </p>
      </note>
      <p role='important'>
        Copyright &copy; 1994-&date.year; <loc href="http://www.w3.org/">World
        Wide Web Consortium</loc>, (<loc
        href="http://www.lcs.mit.edu/">Massachusetts Institute of
        Technology</loc>, <loc href="http://www.inria.fr/">Institut National de
        Recherche en Informatique et en Automatique</loc>, <loc
        href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
        Reserved.
      </p>
      <p role='important'>      
        http://www.w3.org/Consortium/Legal/
      </p>
      <p>
        Public documents on the W3C site are provided by the copyright holders
        under the following license. The software or Document Type Definitions
        (DTDs) associated with W3C specifications are governed by the <loc
        href="http://www.w3.org/Consortium/Legal/copyright-software.html">Software
        Notice</loc>. By using and/or copying this document, or the W3C document
        from which this statement is linked, you (the licensee) agree that you
        have read, understood, and will comply with the following terms and
        conditions:
      </p>
      <p>
        Permission to use, copy, and distribute the contents of this document, or
        the W3C document from which this statement is linked, in any medium for
        any purpose and without fee or royalty is hereby granted, provided that
        you include the following on <emph>ALL</emph> copies of the document, or
        portions thereof, that you use:
      </p>
      <olist>
        <item>
  	<p>
  	  A link or URL to the original W3C document.
  	</p>
        </item>
        <item>
  	<p>
  	  The pre-existing copyright notice of the original author, or if it
  	  doesn't exist, a notice of the form: &quot;Copyright &copy;
  	  [$date-of-document] <loc href="http://www.w3.org/">World Wide Web
  	  Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
  	  Institute of Technology</loc>, <loc
  	  href="http://www.inria.fr/">Institut National de Recherche en
  	  Informatique et en Automatique</loc>, <loc
  	  href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
  	  Reserved.  http://www.w3.org/Consortium/Legal/&quot; (Hypertext is
  	  preferred, but a textual representation is permitted.)
  	</p>
        </item>
        <item>
  	<p>
  	  <emph>If it exists</emph>, the STATUS of the W3C document.
  	</p>
        </item>
      </olist>
      <p>
        When space permits, inclusion of the full text of this <emph
        role='important'>NOTICE</emph> should be provided. We request that
        authorship attribution be provided in any software, documents, or other
        items or products that you create pursuant to the implementation of the
        contents of this document, or any portion thereof.
      </p>
      <p>
        No right to create modifications or derivatives of W3C documents is
        granted pursuant to this license. However, if additional requirements
        (documented in the <loc
        href="http://www.w3.org/Consortium/Legal/IPR-FAQ.html">Copyright
        FAQ</loc>) are satisfied, the right to create modifications or
        derivatives is sometimes granted by the W3C to individuals complying with
        those requirements.
      </p>
      <p>
        THIS DOCUMENT IS PROVIDED &quot;AS IS,&quot; AND COPYRIGHT HOLDERS MAKE
        NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT
        LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
        PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT
        ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH
        CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
        TRADEMARKS OR OTHER RIGHTS.
      </p>
      <p>
        COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
        CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE
        PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
      </p>
      <p>
        The name and trademarks of copyright holders may NOT be used in
        advertising or publicity pertaining to this document or its contents
        without specific, written prior permission. Title to copyright in this
        document will at all times remain with copyright holders.
      </p>
    </div2>
    <div2 id="Copyright-notice-software">
      <head>W3C Software Copyright Notice and License</head>
      <note>
        <p>
  	This section is a copy of the W3C Software Copyright Notice and License
  	and could be found at <loc
  	href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">http://www.w3.org/Consortium/Legal/copyright-software-19980720</loc>
        </p>
      </note>
      <p role='important'>
        Copyright &copy; 1994-&date.year; <loc href="http://www.w3.org/">World
        Wide Web Consortium</loc>, (<loc
        href="http://www.lcs.mit.edu/">Massachusetts Institute of
        Technology</loc>, <loc href="http://www.inria.fr/">Institut National de
        Recherche en Informatique et en Automatique</loc>, <loc
        href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
        Reserved.
      </p>
      <p role='important'>      
        http://www.w3.org/Consortium/Legal/
      </p>
      <p>
        This W3C work (including software, documents, or other related items) is
        being provided by the copyright holders under the following license. By
        obtaining, using and/or copying this work, you (the licensee) agree that
        you have read, understood, and will comply with the following terms and
        conditions:
      </p>
      <p>
        Permission to use, copy, and modify this software and its documentation,
        with or without modification, for any purpose and without fee or royalty
        is hereby granted, provided that you include the following on ALL copies
        of the software and documentation or portions thereof, including
        modifications, that you make:
      </p>
      <olist>
        <item>
  	<p>The full text of this NOTICE in a location viewable to users of the
  	redistributed or derivative work.</p>
        </item>
        <item>
  	<p>
  	  Any pre-existing intellectual property disclaimers. If none exist,
  	  then a notice of the following form: "Copyright &copy;
  	  [$date-of-software] <loc href="http://www.w3.org/">World Wide Web
  	  Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts
  	  Institute of Technology</loc>, <loc
  	  href="http://www.inria.fr/">Institut National de Recherche en
  	  Informatique et en Automatique</loc>, <loc
  	  href="http://www.keio.ac.jp/">Keio University</loc>). All Rights
  	  Reserved.  http://www.w3.org/Consortium/Legal/."
  	</p>
        </item>
        <item>
  	<p>
  	  Notice of any changes or modifications to the W3C files, including
  	  the date changes were made. (We recommend you provide URIs to the
  	  location from which the code is derived.)
  	</p>
        </item>
      </olist>
      <p>
        THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
        HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
        INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
        FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
        DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
        TRADEMARKS OR OTHER RIGHTS.
      </p>
      <p>
        COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
        CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
        DOCUMENTATION.
      </p>
      <p>
        The name and trademarks of copyright holders may NOT be used in
        advertising or publicity pertaining to the software without specific,
        written prior permission. Title to copyright in this software and any
        associated documentation will at all times remain with copyright holders.
      </p>
    </div2>
  </div1>
  <!--
   *************************************************************************
   * END OF COPYRIGHT NOTICE                                               *
   *************************************************************************
  -->
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/glossary.xml
  
  Index: glossary.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: glossary.xml,v 1.1 2001/06/01 11:14:34 dims Exp $ -->
  <!--
   *************************************************************************
   * BEGINNING OF DOM GLOSSARY                                             *
   *************************************************************************
  -->
  <div1 role="glossary" id="glossary"> 
    <head>Glossary</head> 
    <orglist role="editors"> 
  	 <member> 
  		<name>Arnaud Le Hors</name> 
  		<affiliation>IBM</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Lauren Wood</name> 
  		<affiliation>SoftQuad Software Inc.</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Robert S. Sutor</name> 
  		<affiliation>IBM (for DOM Level 1)</affiliation> 
  	 </member> 
    </orglist> 
    <p>Several of the following term definitions have been borrowed or modified
  	 from similar definitions in other W3C or standards documents. See the links
  	 within the definitions for more information.</p> 
    <glist><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-16-bit-unit">16-bit unit</label> 
  		<def> 
  		  <p>The base unit of a <code>DOMString</code>. This indicates that indexing on a <code>DOMString</code> occurs in units of 16 bits. This must not be misunderstood to mean that
  			 a <code>DOMString</code> can store arbitrary 16-bit units. A <code>DOMString</code> is a character string encoded in UTF-16; this means that the
  			 restrictions of UTF-16 as well as the other relevant restrictions on character
  			 strings must be maintained. A single character, for example in the form of a
  			 numeric character reference, may correspond to one or two 16-bit units.</p> 
  		  <p>For more information, see <bibref ref="Unicode"/> and
  			 <bibref ref="ISO10646"/>.</p> 
  		</def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-ancestor">ancestor</label> 
  		<def> 
  		  <p>An <term>ancestor</term> node of any node A is any node above A in a
  			 tree model of a document, where "above" means "toward the root." </p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-API">API</label> 
  		<def> 
  		  <p>An <term>API</term> is an application programming interface, a set
  			 of functions or <term>methods</term> used to access some
  			 functionality.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-child">child</label> 
  		<def> 
  		  <p>A <term>child</term> is an immediate <term>descendant</term> node of
  			 a node.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-application">client application</label> 
  		<def> 
  		  <p>A [client] application is any software that uses the Document Object
  			 Model programming interfaces provided by the hosting implementation to
  			 accomplish useful work. Some examples of client applications are scripts within
  			 an HTML or XML document.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-COM">COM</label> 
  		<def> 
  		  <p><term>COM</term> is Microsoft's Component Object Model
  			 <bibref ref="COM"/>, a technology for building applications from binary
  			 software components.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-content-model">content model</label> 
  		<def> 
  		  <p>The <term>content model</term> is a simple grammar governing the
  			 allowed types of the <term>child</term> elements and the order in which they
  			 appear. See <xspecref href="&xml-spec;#sec-element-content">Element
  			 Content</xspecref> in XML <bibref ref="XML"/>.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-context">context</label> 
  		<def> 
  		  <p>A <term>context</term> specifies an access pattern (or path): a set
  			 of interfaces which give you a way to interact with a model. For example,
  			 imagine a model with different colored arcs connecting data nodes. A context
  			 might be a sheet of colored acetate that is placed over the model allowing you
  			 a partial view of the total information in the model.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-convenience">convenience</label> 
  		<def> 
  		  <p>A <term>convenience method</term> is an operation on an object that
  			 could be accomplished by a program consisting of more basic operations on the
  			 object. Convenience <term>methods</term> are usually provided to make the API
  			 easier and simpler to use or to allow specific programs to create more
  			 optimized implementations for common operations. A similar definition holds for
  			 a <term>convenience property</term>. </p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-cooked">cooked model</label> 
  		<def> 
  		  <p>A model for a document that represents the document after it has
  			 been manipulated in some way. For example, any combination of any of the
  			 following transformations would create a cooked model: 
  			 <olist> 
  				<item> 
  				  <p>Expansion of internal text entities.</p> 
  				</item> 
  				<item> 
  				  <p>Expansion of external entities.</p> 
  				</item> 
  				<item> 
  				  <p>Model augmentation with style-specified generated text.</p> 
  				</item> 
  				<item> 
  				  <p>Execution of style-specified reordering.</p> 
  				</item> 
  				<item> 
  				  <p>Execution of scripts.</p> 
  				</item> 
  			 </olist> A browser might only be able to provide access to a cooked
  			 model, while an editor might provide access to a cooked or the initial
  			 structure model (also known as the <term>uncooked model</term>) for a document.
  			 </p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-CORBA">CORBA</label> 
  		<def> 
  		  <p><term>CORBA</term> is the <term>Common Object Request Broker
  			 Architecture</term> from the 
  			 <loc href="&omg;">OMG</loc> <bibref ref="CORBA"/>. This architecture
  			 is a collection of objects and libraries that allow the creation of
  			 applications containing objects that make and receive requests and responses in
  			 a distributed environment.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-cursor">cursor</label> 
  		<def> 
  		  <p>A <term>cursor</term> is an object representation of a node. It may
  			 possess information about context and the path traversed to reach the
  			 node.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-datamodel">data model</label> 
  		<def> 
  		  <p>A <term>data model</term> is a collection of descriptions of data
  			 structures and their contained fields, together with the operations or
  			 functions that manipulate them.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-deepest">deepest</label> 
  		<def> 
  		  <p>The <term>deepest</term> element is that element which is furthest
  			 from the root or document element in a tree model of the document.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-documentorder">document order</label>
  		<def> 
                    <p>The term <term>document order</term> has the same meaning as depth 
                       first, pre-order traversal, which is equivalent to the order in 
                       which the start tags occur in the text representation of the document.</p></def> 
  	 </gitem><!-- ................................................................ -->
  
  	 <gitem> 
  		<label id="dt-deprecation">deprecation</label> 
  		<def> 
  		  <p>When new releases of specifications are released, some older
  			 features may be marked as being <term>deprecated</term>. This means that new
  			 work should not use the features and that although they are supported in the
  			 current release, they may not be supported or available in future
  			 releases.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-descendant">descendant</label> 
  		<def> 
  		  <p>A <term>descendant</term> node of any node A is any node below A in
  			 a tree model of a document, where "above" means "toward the root."</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-DOM-Level-0">DOM Level 0</label> 
  		<def> 
  		  <p>The term "<term>DOM Level 0</term>" refers to a mix (not formally
  			 specified) of HTML document functionalities offered by Netscape Navigator
  			 version 3.0 and Microsoft Internet Explorer version 3.0. In some cases,
  			 attributes or <term>methods</term> have been included for reasons of backward
  			 compatibility with "DOM Level 0".</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-ECMAScript">ECMAScript</label> 
  		<def> 
  		  <p>The programming language defined by the ECMA-262 standard
  			 <bibref ref="ECMAScript"/>. As stated in the standard, the originating
  			 technology for ECMAScript was JavaScript <bibref ref="JavaScript"/>. Note that
  			 in the ECMAScript Language binding, the word &quot;property&quot; is used in the same
  			 sense as the IDL term &quot;attribute.&quot;</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-element">element</label> 
  		<def> 
  		  <p>Each document contains one or more elements, the boundaries of which
  			 are either delimited by start-tags and end-tags, or, for empty elements by an
  			 empty-element tag. Each element has a type, identified by name, and may have a
  			 set of attributes. Each attribute has a name and a value. See
  			 <xspecref href="&xml-spec;#sec-logical-struct">Logical Structures</xspecref> in
  			 XML <bibref ref="XML"/>. </p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-event-propagation">event propagation, also known as event
  		  bubbling</label> 
  		<def> 
  		  <p>This is the idea that an event can affect one object and a set of
  			 related objects. Any of the potentially affected objects can block the event or
  			 substitute a different one (upward event propagation). The event is broadcast
  			 from the node at which it originates to every <term>parent</term>
  			 node.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-equivalence">equivalence</label> 
  		<def> 
  		  <p>Two nodes are <term>equivalent</term> if they have the same node
  			 type and same node name. Also, if the nodes contain data, that must be the
  			 same. Finally, if the nodes have attributes the collection of attribute names
  			 must be the same and the attributes corresponding by name must be equivalent as
  			 nodes.</p> 
  		  <p>Two nodes are <term>deeply equivalent</term> if they are
  			 <term>equivalent</term>, their <term>child</term> node lists are equivalent <code>NodeList</code> objects, and their attributes are deeply equivalent.</p> 
  		  <p>Two <code>NodeList</code> objects are <term>equivalent</term> if they have the same length, and
  			 the nodes corresponding by index are deeply equivalent. </p> 
  		  <p>Two <code>NamedNodeMap</code> objects are <term>equivalent</term> if they have the same length, they
  			 have same collection of names, and the nodes corresponding by name in the maps
  			 are deeply equivalent. </p> 
  		  <p>Two <code>DocumentType</code> nodes are <term>equivalent</term> if they are equivalent as nodes, have
  			 the same names, and have equivalent entities and attributes <code>NamedNodeMap</code> objects.</p> 
  		</def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-infoitem">information item</label> 
  		<def> 
  		  <p>An information item is an abstract representation of some component
  			 of an XML document. See the <bibref ref="InfoSet"/> for details. </p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-implementation">hosting implementation</label> 
  		<def> 
  		  <p>A [hosting] implementation is a software module that provides an
  			 implementation of the DOM interfaces so that a client application can use them.
  			 Some examples of hosting implementations are browsers, editors and document
  			 repositories.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-HTML">HTML</label> 
  		<def> 
  		  <p>The HyperText Markup Language (<term>HTML</term>) is a simple markup
  			 language used to create hypertext documents that are portable from one platform
  			 to another. HTML documents are SGML documents with generic semantics that are
  			 appropriate for representing information from a wide range of applications.
  			 <bibref ref="HTML40"/></p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-IDL">IDL</label> 
  		<def> 
  		  <p>An Interface Definition Language (<term>IDL</term>) is used to
  			 define the interfaces for accessing and operating upon objects. Examples of
  			 IDLs are the Object Management Group's IDL <bibref ref="CORBA"/>, Microsoft's
  			 IDL <bibref ref="MSIDL"/>, and Sun's Java IDL <bibref
  			 ref="JavaIDL"/>.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-implementor">implementor</label> 
  		<def> 
  		  <p>Companies, organizations, and individuals that claim to support the
  			 Document Object Model as an API for their products.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-inheritance">inheritance</label> 
  		<def> 
  		  <p>In object-oriented programming, the ability to create new classes
  			 (or interfaces) that contain all the methods and properties of another class
  			 (or interface), plus additional methods and properties. If class (or interface)
  			 D inherits from class (or interface) B, then D is said to be
  			 <term>derived</term> from B. B is said to be a <term>base</term> class (or
  			 interface) for D. Some programming languages allow for multiple inheritance,
  			 that is, inheritance from more than one class or interface.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-raw-struct">initial structure model</label> 
  		<def> 
  		  <p>Also known as the <term>raw structure model</term> or the
  			 <term>uncooked model</term>, this represents the document before it has been
  			 modified by entity expansions, generated text, style-specified reordering, or
  			 the execution of scripts. In some implementations, this might correspond to the
  			 &quot;initial parse tree&quot; for the document, if it ever exists. Note that a
  			 given implementation might not be able to provide access to the initial
  			 structure model for a document, though an editor probably would.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-interface">interface</label> 
  		<def> 
  		  <p>An <term>interface</term> is a declaration of a set of
  			 <term>methods</term> with no information given about their implementation. In
  			 object systems that support interfaces and inheritance, interfaces can usually
  			 inherit from one another. </p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-lang-binding">language binding</label> 
  		<def> 
  		  <p>A programming <term>language binding</term> for an IDL specification
  			 is an implementation of the interfaces in the specification for the given
  			 language. For example, a Java language binding for the Document Object Model
  			 IDL specification would implement the concrete Java classes that provide the
  			 functionality exposed by the interfaces.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-localname">local name</label> 
  		<def> 
  		  <p>A <term>local name</term> is the local part of a <term>qualified
  			 name</term>. This is called the <xtermref
  			 href="&xml-names;/#dt-localname">local part</xtermref> in Namespaces in XML
  			 <bibref ref="Namespaces"/>.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-method">method</label> 
  		<def> 
  		  <p>A <term>method</term> is an operation or function that is associated
  			 with an object and is allowed to manipulate the object's data. </p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-model">model</label> 
  		<def> 
  		  <p>A <term>model</term> is the actual data representation for the
  			 information at hand. Examples are the structural model and the style model
  			 representing the parse structure and the style information associated with a
  			 document. The model might be a tree, or a directed graph, or something
  			 else.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-namespaceprefix">namespace prefix</label> 
  		<def> 
  		  <p>A <term>namespace prefix</term> is a string that associates an
  			 element or attribute name with a <term>namespace URI</term> in XML. See
  			 <xtermref href="&xml-names;/#dt-prefix">namespace prefix</xtermref> in
  			 Namespaces in XML <bibref ref="Namespaces"/>.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-namespaceURI">namespace URI</label> 
  		<def> 
  		  <p>A <term>namespace URI</term> is a URI that identifies an <term>XML
  			 namespace</term>. Strictly speaking, this actually is a <term>namespace URI
  			 reference</term>. This is called the <xtermref
  			 href="&xml-names;/#dt-NSName">namespace name</xtermref> in Namespaces in XML
  			 <bibref ref="Namespaces"/>.</p>
  		</def>
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-object-model">object model</label>
  		<def>
  		  <p>An <term>object model</term> is a collection of descriptions of
  			 classes or interfaces, together with their member data, member functions, and
  			 class-static operations. </p></def>
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-parent">parent</label> 
  		<def> 
  		  <p>A <term>parent</term> is an immediate <term>ancestor</term> node of
  			 a node.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-qualifiedname">qualified name</label> 
  		<def> 
  		  <p>A <term>qualified name</term> is the name of an element or attribute
  			 defined as the concatenation of a <term>local name</term> (as defined in this
  			 specification), optionally preceded by a <term>namespace prefix</term> and
  			 colon character. See <xspecref href="&xml-names;/#ns-qualnames">Qualified
  			 Names</xspecref> in Namespaces in XML <bibref ref="Namespaces"/>.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-readonly-node">readonly node</label> 
  		<def> 
  		  <p>A <term>readonly node</term> is a node that is immutable. This means
  			 its list of children, its content, and its attributes, when it is an element,
  			 cannot be changed in any way. However, a readonly node can possibly be moved,
  			 when it is not itself contained in a readonly node.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-root-node">root node</label> 
  		<def> 
  		  <p>The <term>root node</term> is the unique node that is not a
  			 <term>child</term> of any other node. All other nodes are children or other
  			 descendants of the root node.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-sibling">sibling</label> 
  		<def> 
  		  <p>Two nodes are <term>siblings</term> if and only if they have the
  			 same <term>parent</term> node.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-string-compare">string comparison</label> 
  		<def> 
  		  <p>When string matching is required, it is to occur as though the
  			 comparison was between 2 sequences of code points from the Unicode 3.0 standard
  			 <bibref ref="Unicode"/>.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-tag-valid">tag valid document</label> 
  		<def> 
  		  <p>A document is <term>tag valid</term> if all begin and end tags are
  			 properly balanced and nested.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem><label id="dt-token">token</label><def>
  		  <p>An information item such as an
  			 <xtermref href="http://www.w3.org/TR/REC-xml.html#NT-Name">XML Name</xtermref>
  			 which has been <termref def="dt-tokenized">tokenized</termref>.</p></def>
  	 </gitem><!-- ................................................................ -->
  	 <gitem><label id="dt-tokenized">tokenized</label><def>
  		  <p>The description given to various information items (for example,
  			 attribute values of various types, but not including the StringType CDATA)
  			 after having been processed by the XML processor. The process includes
  			 stripping leading and trailing white space, and replacing multiple space
  			 characters by one. See the definition of
  			 <xtermref href="http://www.w3.org/TR/REC-xml.html#NT-TokenizedType">tokenized
  			 type</xtermref>.</p></def>
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-type-valid">type valid document</label> 
  		<def> 
  		  <p>A document is <term>type valid</term> if it conforms to an explicit
  			 DTD.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-uncooked">uncooked model</label> 
  		<def> 
  		  <p>See initial structure model.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-well-formed">well-formed document</label> 
  		<def> 
  		  <p>A document is <term>well-formed</term> if it is tag valid and
  			 entities are limited to single elements (i.e., single sub-trees). See
  			 <xspecref href="&xml-spec;#sec-well-formed"> Well-Formed XML
  			 Documents</xspecref> in XML <bibref ref="XML"/>.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-XML">XML</label> 
  		<def> 
  		  <p>Extensible Markup Language (<term>XML</term>) is an extremely simple
  			 dialect of SGML. The goal is to enable generic SGML to be served, received, and
  			 processed on the Web in the way that is now possible with HTML. XML
  			 <bibref ref="XML"/> has been designed for ease of implementation and for
  			 interoperability with both SGML and HTML.</p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-XML-name">XML name</label> 
  		<def> 
  		  <p>See <xspecref href="&xml-spec;#NT-Name">XML name</xspecref> in the
  			 XML specification <bibref ref="XML"/>. </p></def> 
  	 </gitem><!-- ................................................................ -->
  	 <gitem> 
  		<label id="dt-XML-namespace">XML namespace</label> 
  		<def> 
  		  <p>An <term>XML namespace</term> is a collection of names, identified
  			 by a URI reference <bibref ref="URIRef"/>, which are used in XML documents as
  			 element types and attribute names. <bibref ref="Namespaces"/></p></def> 
  	 </gitem><!-- ................................................................ -->
    </glist></div1><!--
   *************************************************************************
   * END OF DOM GLOSSARY                                                   *
   *************************************************************************
  -->
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: index.xml,v 1.1 2001/06/01 11:14:34 dims Exp $ -->
  <!--
   *************************************************************************
   * BEGINNING OF DOM INDEX                                                * 
   *************************************************************************
  -->
  <div1 role="index" id="Index">
    <head>Index</head>
    <?GENERATE-DEFINITION-INDEX?>
  </div1>
  <!--
   *************************************************************************
   * END OF DOM INDEX                                                      *
   *************************************************************************
  -->
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/link-entities.xml
  
  Index: link-entities.xml
  ===================================================================
  <!-- $Id: link-entities.xml,v 1.1 2001/06/01 11:14:35 dims Exp $ -->
  
  <!ENTITY charmod      "http://www.w3.org/TR/1999/WD-charmod-19991129">
  <!ENTITY CSS          "http://www.w3.org/Style/CSS">
  <!ENTITY css2         "http://www.w3.org/TR/1998/REC-CSS2-19980512">
  <!ENTITY com          "http://www.microsoft.com/com">
  <!ENTITY corba        "http://sisyphus.omg.org/technology/documents/formal/corba_2.htm">
  <!ENTITY domlevel1    "http://www.w3.org/TR/REC-DOM-Level-1">
  <!ENTITY ecma-262     "http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM">
  <!ENTITY html40       "http://www.w3.org/TR/1998/REC-html40-19980424">
  <!ENTITY infoset      "http://www.w3.org/TR/xml-infoset">
  <!ENTITY java         "http://java.sun.com/docs/books/jls">
  <!ENTITY javaidl      "http://java.sun.com/products/jdk/1.2/docs/guide/idl">
  <!ENTITY javascript
              "http://developer.netscape.com/tech/javascript/resources.html">
  <!ENTITY jscript
              "http://msdn.microsoft.com/scripting/default.htm">
  <!ENTITY msidl
              "http://msdn.microsoft.com/library/psdk/midl/mi-laref_1r1h.htm">
  <!ENTITY omg          "http://www.omg.org">
  <!ENTITY xhtml10      "http://www.w3.org/TR/2000/REC-xhtml1-20000126">
  <!ENTITY xml-names    "http://www.w3.org/TR/1999/REC-xml-names-19990114">
  <!ENTITY xpointer     "http://www.w3.org/TR/xptr">
  <!ENTITY xml-spec     "http://www.w3.org/TR/1998/REC-xml-19980210">
  <!ENTITY xml-stylesheet "http://www.w3.org/1999/06/REC-xml-stylesheet-19990629">
  
  <!-- Namespaces -->
  <!ENTITY xmlns-ns "http://www.w3.org/2000/xmlns/">
  <!ENTITY xml-ns "http://www.w3.org/XML/1998/namespace">
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/part-entities.xml
  
  Index: part-entities.xml
  ===================================================================
  <!-- $Id: part-entities.xml,v 1.1 2001/06/01 11:14:35 dims Exp $ -->
  <!-- 
    ****************************************************** 
    | Major                                              |
    ******************************************************
  -->
  <!ENTITY status               SYSTEM "status.xml">
  <!ENTITY toc                  SYSTEM "toc.xml">
  <!ENTITY index                SYSTEM "index.xml">
  <!ENTITY copyright            SYSTEM "copyright.xml">
  <!ENTITY object-index         SYSTEM "object-index.xml">
  <!ENTITY idl                  SYSTEM "idl.xml">
  <!ENTITY java-binding         SYSTEM "java-binding.xml">
  <!ENTITY ecma-binding         SYSTEM "ecma-binding.xml">
  <!ENTITY contributors         SYSTEM "contributors.xml">
  <!ENTITY glossary             SYSTEM "glossary.xml">
  <!ENTITY definition-index     SYSTEM "definition-index.xml">
  <!ENTITY references           SYSTEM "references.xml">
  
  <!ENTITY introduction         SYSTEM "core/introduction.xml">
  <!ENTITY core                 SYSTEM "core/core.xml">
  <!ENTITY i18nfunctions        SYSTEM "core/i18nfunctions.xml">
  <!ENTITY core-changes         SYSTEM "core/changes.xml">
  
  <!ENTITY html                 SYSTEM "html/html.xml">
  <!ENTITY html-changes         SYSTEM "html/changes.xml">
  
  <!ENTITY stylesheets          SYSTEM "style/stylesheets.xml">
  <!ENTITY css                  SYSTEM "style/css.xml">
  <!ENTITY events               SYSTEM "events/events.xml">
  <!ENTITY traversal            SYSTEM "traversal-range/traversal.xml">
  <!ENTITY range                SYSTEM "traversal-range/range.xml">
  <!ENTITY views                SYSTEM "views/views.xml">
  
  <!-- 
    ****************************************************** 
    | Object definitions for core                        |
    ******************************************************
  -->
  <!ENTITY core-dom 
  	SYSTEM "core/definitions/dom.xml">
  <!ENTITY exceptions
  	SYSTEM "core/definitions/exceptions.xml">
  <!ENTITY core-document 
  	SYSTEM "core/definitions/document.xml">
  <!ENTITY core-node 
  	SYSTEM "core/definitions/node.xml">
  <!ENTITY core-node-list
  	SYSTEM "core/definitions/node-list.xml">
  <!ENTITY core-named-node-map
  	SYSTEM "core/definitions/named-node-map.xml">
  <!ENTITY core-element
  	SYSTEM "core/definitions/element.xml">
  <!ENTITY core-attribute
  	SYSTEM "core/definitions/attribute.xml">
  <!ENTITY core-text
  	SYSTEM "core/definitions/text.xml">
  <!ENTITY core-comment
  	SYSTEM "core/definitions/comment.xml">
  <!ENTITY core-pi
  	SYSTEM "core/definitions/pi.xml">
  <!ENTITY core-cdata-section
  	SYSTEM "core/definitions/cdata-section.xml">
  <!ENTITY core-doctype
  	SYSTEM "core/definitions/doctype.xml">
  <!ENTITY core-entity-reference
  	SYSTEM "core/definitions/entity-reference.xml">
  <!ENTITY core-entity
  	SYSTEM "core/definitions/entity.xml">
  <!ENTITY core-data 
  	SYSTEM "core/definitions/data.xml">
  <!ENTITY core-notation 
  	SYSTEM "core/definitions/notation.xml">
  
  <!-- 
    ****************************************************** 
    | Object definitions for html	                       |
    ******************************************************
  -->
  
  <!ENTITY html-entities 
  	SYSTEM "html/definitions/entities.xml">
  <!ENTITY html-htmldom 
  	SYSTEM "html/definitions/htmldom.xml">
  <!ENTITY html-htmlanchorelement 
  	SYSTEM "html/definitions/htmlanchorelement.xml">
  <!ENTITY html-htmlappletelement 
  	SYSTEM "html/definitions/htmlappletelement.xml">
  <!ENTITY html-htmlareaelement 
  	SYSTEM "html/definitions/htmlareaelement.xml">
  <!ENTITY html-htmlbaseelement 
  	SYSTEM "html/definitions/htmlbaseelement.xml">
  <!ENTITY html-htmlbasefontelement 
  	SYSTEM "html/definitions/htmlbasefontelement.xml">
  <!ENTITY html-htmlblockquoteelement
  	SYSTEM "html/definitions/htmlblockquoteelement.xml">
  <!ENTITY html-htmlbodyelement 
  	SYSTEM "html/definitions/htmlbodyelement.xml">
  <!ENTITY html-htmlbrelement 
  	SYSTEM "html/definitions/htmlbrelement.xml">
  <!ENTITY html-htmlbuttonelement 
  	SYSTEM "html/definitions/htmlbuttonelement.xml">
  <!ENTITY html-htmlcollection 
  	SYSTEM "html/definitions/htmlcollection.xml">
  <!ENTITY html-htmldirectoryelement 
  	SYSTEM "html/definitions/htmldirectoryelement.xml">
  <!ENTITY html-htmldivelement 
  	SYSTEM "html/definitions/htmldivelement.xml">
  <!ENTITY html-htmldlistelement 
  	SYSTEM "html/definitions/htmldlistelement.xml">
  <!ENTITY html-htmldocument 
  	SYSTEM "html/definitions/htmldocument.xml">
  <!ENTITY html-htmlelement 
  	SYSTEM "html/definitions/htmlelement.xml">
  <!ENTITY html-htmlfieldsetelement 
  	SYSTEM "html/definitions/htmlfieldsetelement.xml">
  <!ENTITY html-htmlfontelement 
  	SYSTEM "html/definitions/htmlfontelement.xml">
  <!ENTITY html-htmlformelement 
  	SYSTEM "html/definitions/htmlformelement.xml">
  <!ENTITY html-htmlframeelement 
  	SYSTEM "html/definitions/htmlframeelement.xml">
  <!ENTITY html-htmlframesetelement 
  	SYSTEM "html/definitions/htmlframesetelement.xml">
  <!ENTITY html-htmlheadelement 
  	SYSTEM "html/definitions/htmlheadelement.xml">
  <!ENTITY html-htmlheadingelement 
  	SYSTEM "html/definitions/htmlheadingelement.xml">
  <!ENTITY html-htmlhrelement 
  	SYSTEM "html/definitions/htmlhrelement.xml">
  <!ENTITY html-htmlhtmlelement 
  	SYSTEM "html/definitions/htmlhtmlelement.xml">
  <!ENTITY html-htmliframeelement 
  	SYSTEM "html/definitions/htmliframeelement.xml">
  <!ENTITY html-htmlimageelement 
  	SYSTEM "html/definitions/htmlimageelement.xml">
  <!ENTITY html-htmlinputelement 
  	SYSTEM "html/definitions/htmlinputelement.xml">
  <!ENTITY html-htmlisindexelement 
  	SYSTEM "html/definitions/htmlisindexelement.xml">
  <!ENTITY html-htmllabelelement 
  	SYSTEM "html/definitions/htmllabelelement.xml">
  <!ENTITY html-htmllegendelement 
  	SYSTEM "html/definitions/htmllegendelement.xml">
  <!ENTITY html-htmllielement 
  	SYSTEM "html/definitions/htmllielement.xml">
  <!ENTITY html-htmllinkelement 
  	SYSTEM "html/definitions/htmllinkelement.xml">
  <!ENTITY html-htmlmapelement 
  	SYSTEM "html/definitions/htmlmapelement.xml">
  <!ENTITY html-htmlmenuelement 
  	SYSTEM "html/definitions/htmlmenuelement.xml">
  <!ENTITY html-htmlmetaelement 
  	SYSTEM "html/definitions/htmlmetaelement.xml">
  <!ENTITY html-htmlmodelement 
  	SYSTEM "html/definitions/htmlmodelement.xml">
  <!ENTITY html-htmlobjectelement 
  	SYSTEM "html/definitions/htmlobjectelement.xml">
  <!ENTITY html-htmlolistelement 
  	SYSTEM "html/definitions/htmlolistelement.xml">
  <!ENTITY html-htmloptgroupelement 
  	SYSTEM "html/definitions/htmloptgroupelement.xml">
  <!ENTITY html-htmloptionelement 
  	SYSTEM "html/definitions/htmloptionelement.xml">
  <!ENTITY html-htmlparagraphelement 
  	SYSTEM "html/definitions/htmlparagraphelement.xml">
  <!ENTITY html-htmlparamelement 
  	SYSTEM "html/definitions/htmlparamelement.xml">
  <!ENTITY html-htmlpreelement 
  	SYSTEM "html/definitions/htmlpreelement.xml">
  <!ENTITY html-htmlquoteelement 
  	SYSTEM "html/definitions/htmlquoteelement.xml">
  <!ENTITY html-htmlscriptelement 
  	SYSTEM "html/definitions/htmlscriptelement.xml">
  <!ENTITY html-htmlselectelement 
  	SYSTEM "html/definitions/htmlselectelement.xml">
  <!ENTITY html-htmlstyleelement 
  	SYSTEM "html/definitions/htmlstyleelement.xml">
  <!ENTITY html-htmltablecaptionelement 
  	SYSTEM "html/definitions/htmltablecaptionelement.xml">
  <!ENTITY html-htmltablecellelement 
  	SYSTEM "html/definitions/htmltablecellelement.xml">
  <!ENTITY html-htmltablecolelement 
  	SYSTEM "html/definitions/htmltablecolelement.xml">
  <!ENTITY html-htmltableelement 
  	SYSTEM "html/definitions/htmltableelement.xml">
  <!ENTITY html-htmltablerowelement 
  	SYSTEM "html/definitions/htmltablerowelement.xml">
  <!ENTITY html-htmltablesectionelement 
  	SYSTEM "html/definitions/htmltablesectionelement.xml">
  <!ENTITY html-htmltextareaelement 
  	SYSTEM "html/definitions/htmltextareaelement.xml">
  <!ENTITY html-htmltitleelement 
  	SYSTEM "html/definitions/htmltitleelement.xml">
  <!ENTITY html-htmlulistelement 
  	SYSTEM "html/definitions/htmlulistelement.xml">
  
  <!-- 
    ****************************************************** 
    | Object definitions for stylesheets                 |
    ******************************************************
  -->
  <!ENTITY stylesheets-stylesheet 
  	SYSTEM "style/definitions/StyleSheet.xml">
  <!ENTITY stylesheets-stylesheetlist 
  	SYSTEM "style/definitions/StyleSheetList.xml">
  <!ENTITY stylesheets-medialist 
  	SYSTEM "style/definitions/MediaList.xml">
  <!ENTITY stylesheets-documentstyle 
  	SYSTEM "style/definitions/DocumentStyle.xml">
  <!ENTITY stylesheets-linkstyle 
  	SYSTEM "style/definitions/LinkStyle.xml">
  
  <!-- 
    ****************************************************** 
    | Object definitions for css                         |
    ******************************************************
  -->
  <!ENTITY css-cssstylesheet 
  	SYSTEM "style/definitions/CSSStyleSheet.xml">
  <!ENTITY css-cssrulelist 
  	SYSTEM "style/definitions/CSSRuleList.xml">
  <!ENTITY css-cssrule 
  	SYSTEM "style/definitions/CSSRule.xml">
  <!ENTITY css-cssstylerule 
  	SYSTEM "style/definitions/CSSStyleRule.xml">
  <!ENTITY css-cssmediarule 
  	SYSTEM "style/definitions/CSSMediaRule.xml">
  <!ENTITY css-cssfontfacerule 
  	SYSTEM "style/definitions/CSSFontFaceRule.xml">
  <!ENTITY css-csspagerule 
  	SYSTEM "style/definitions/CSSPageRule.xml">
  <!ENTITY css-cssimportrule 
  	SYSTEM "style/definitions/CSSImportRule.xml">
  <!ENTITY css-csscharsetrule 
  	SYSTEM "style/definitions/CSSCharsetRule.xml">
  <!ENTITY css-cssrule 
  	SYSTEM "style/definitions/CSSRule.xml">
  <!ENTITY css-cssunknownrule 
  	SYSTEM "style/definitions/CSSUnknownRule.xml">
  <!ENTITY css-cssstyledeclaration 
  	SYSTEM "style/definitions/CSSStyleDeclaration.xml">
  <!ENTITY css-css2properties 
  	SYSTEM "style/definitions/CSS2Properties.xml">
  <!ENTITY css-cssvalue 
  	SYSTEM "style/definitions/CSSValue.xml">
  <!ENTITY css-cssvaluelist 
  	SYSTEM "style/definitions/CSSValueList.xml">
  <!ENTITY css-cssprimitivevalue 
  	SYSTEM "style/definitions/CSSPrimitiveValue.xml">
  <!ENTITY css-rect 
  	SYSTEM "style/definitions/Rect.xml">
  <!ENTITY css-rgbcolor 
  	SYSTEM "style/definitions/RGBColor.xml">
  <!ENTITY css-counter 
  	SYSTEM "style/definitions/Counter.xml">
  <!ENTITY css-viewcss 
  	SYSTEM "style/definitions/ViewCSS.xml">
  <!ENTITY css-documentcss 
  	SYSTEM "style/definitions/DocumentCSS.xml">
  <!ENTITY css-elementcssinlinestyle
  	SYSTEM "style/definitions/ElementCSSInlineStyle.xml">
  <!ENTITY css-domimplementationcss
  	SYSTEM "style/definitions/DOMImplementationCSS.xml">
  
  <!-- 
    ****************************************************** 
    | Object definitions for level two events            |
    ******************************************************
  -->
  <!ENTITY events-event 
  	SYSTEM "events/definitions/event.xml">
  <!ENTITY events-eventlistener 
  	SYSTEM "events/definitions/eventlistener.xml">
  <!ENTITY events-eventtarget 
  	SYSTEM "events/definitions/eventtarget.xml">
  <!ENTITY events-mutationevent 
  	SYSTEM "events/definitions/mutationevent.xml">
  <!ENTITY events-uievent 
  	SYSTEM "events/definitions/uievent.xml">
  <!ENTITY events-mouseevent 
  	SYSTEM "events/definitions/mouseevent.xml">
  <!ENTITY events-documentevent 
  	SYSTEM "events/definitions/documentevent.xml">
  <!ENTITY events-eventexception
  	SYSTEM "events/definitions/eventexception.xml">
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/references.xml
  
  Index: references.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: references.xml,v 1.1 2001/06/01 11:14:35 dims Exp $ -->
  <!--
   *************************************************************************
   * BEGINNING OF REFERENCES                                               *
   *************************************************************************
  -->
  <div1 role="references" id="References">
    <head>References</head>
    <p>
      For the latest version of any W3C specification please consult the list of
      <loc href='http://www.w3.org/TR'>W3C Technical Reports</loc> available at
      http://www.w3.org/TR.
    </p>
    
    <div2 id='References-Normative'>
      <head>Normative references</head>
      <blist>
        
        <bibl id='Charmod' key='Charmod'>
  	W3C (World Wide Web Consortium) <loc href='&charmod;'>Character Model
  	for the World Wide Web</loc>, November 1999. Available at &charmod;
        </bibl>
        
        <bibl id='DOMCore' key='DOM Level 2 Core'>
  	W3C (World Wide Web Consortium) <loc href='&core.url;'>Document Object
  	Model Level 2 Core Specification</loc>, &date.month;
  	&date.year;. Available at &core.url;
        </bibl>
        
        <bibl id='CSS2' key='CSS2'>
  	W3C (World Wide Web Consortium) <loc href='&css2;'>Cascading Style Sheets,
  	  level 2 Specification</loc>, May 1998. Available at &css2;
        </bibl>
        
        <bibl id='ECMAScript' key='ECMAScript'>
  	ECMA (European Computer Manufacturers Association) <loc
  	href='&ecma-262;'>ECMAScript Language Specification</loc>. Available at
  	&ecma-262;
        </bibl>
        
        <bibl id='DOMEvents' key='DOM Level 2 Events'>
  	W3C (World Wide Web Consortium) <loc href='&events.url;'>Document Object
  	Model Level 2 Events Specification</loc>, &date.month;
  	&date.year;. Available at &events.url;
        </bibl>
        
        <bibl id='HTML40' key='HTML4.0'>
  	W3C (World Wide Web Consortium) <loc href='&html40;'>HTML 4.0
  	  Specification</loc>, April 1998. Available at &html40;
        </bibl>
        
        <bibl id='ISO10646' key='ISO/IEC 10646'>
  	ISO (International Organization for Standardization).  ISO/IEC 10646-1:2000
  	(E).  Information technology - Universal Multiple-Octet Coded
  	Character Set (UCS) - Part 1: Architecture and Basic Multilingual
  	Plane.  [Geneva]: International Organization for Standardization.
        </bibl>
        
        <bibl id='Java' key='Java'>
  	Sun Microsystems Inc. <loc href='&java;'>The Java Language
  	Specification</loc>, James Gosling, Bill Joy, and Guy Steele, September
  	1996. Available at &java;
        </bibl>
        
        <bibl id='Namespaces' key='Namespaces'>
  	W3C (World Wide Web Consortium) <loc href='&xml-names;'>Namespaces in
  	  XML</loc>, January 1999. Available at &xml-names;
        </bibl>
        
        <bibl id='OMGIDL' key='OMGIDL'>
  	OMG (<loc href='http://www.omg.org/'>Object Management Group</loc>) IDL
  	(Interface Definition Language) defined in The Common Object Request
  	Broker: Architecture and Specification, version 2.3.1, October
  	1999. Available from http://www.omg.org/
        </bibl>
        
        <bibl id='DOMStyle' key='DOM Level 2 Style Sheets and CSS'>
  	W3C (World Wide Web Consortium) <loc href='&style.url;'>Document Object
  	Model Level 2 Style Sheets and CSS Specification</loc>, &date.month;
  	&date.year;. Available at &style.url;
        </bibl>
        
        <bibl id='DOMTraversal-Range' key='DOM Level 2 Traversal and Range'>
  	W3C (World Wide Web Consortium) <loc
  	href='&traversal-range.url;'>Document Object Model Level 2 Traversal
  	and Range Specification</loc>, &date.month; &date.year;. Available at
  	&traversal-range.url;
        </bibl>
        
        <bibl id='URIRef' key='RFC2396'>
  	IETF (Internet Engineering Task Force) <loc
  	href='http://www.ietf.org/rfc/rfc2396.txt'>RFC 2396: Uniform Resource
  	Identifiers (URI): Generic Syntax</loc>, eds. T. Berners-Lee,
  	R. Fielding, L. Masinter. August 1998. Available at
  	http://www.ietf.org/rfc/rfc2396.txt
        </bibl>
        
        <bibl id='Unicode' key='Unicode'>
  	The Unicode Consortium.  <loc
  	href="http://www.unicode.org/unicode/standard/versions/Unicode3.0.html">The
  	Unicode Standard, Version 3.0.</loc>, February 2000. Available at
  	http://www.unicode.org/unicode/standard/versions/Unicode3.0.html.
        </bibl>
        
        <bibl id='DOMViews' key='DOM Level 2 Views'>
  	W3C (World Wide Web Consortium) <loc href='&views.url;'>Document Object
  	Model Level 2 Views Specification</loc>, &date.month;
  	&date.year;. Available at &views.url;
        </bibl>
        
        <bibl id='XML' key='XML'>
  	W3C (World Wide Web Consortium) <loc href='&xml-spec;'>Extensible Markup
  	  Language (XML) 1.0</loc>, February 1998. Available at &xml-spec;
        </bibl>
        
        <bibl id='XML-StyleSheet' key='XML-StyleSheet'>
  	W3C (World Wide Web Consortium) <loc href='&xml-stylesheet;'>Associating
  	  Style Sheets with XML documents Version 1.0</loc>, June 1999. Available at
  	&xml-stylesheet;.
        </bibl>
      </blist>
      
    </div2>
    
    <div2 id='References-Informative'>
      <head>Informative references</head>
      
      <blist>      
        <bibl id='DOMCSS-inf' key='DOM Level 2 CSS'>
  	W3C (World Wide Web Consortium) <loc href='&style.latest.url;/css'>Document Object
  	Model Level 2 CSS</loc>. Available at &style.latest.url;/css
        </bibl>
        
        <bibl id='COM' key='COM'>
  	Microsoft Corp. <loc href='&com;'>The Component Object Model</loc>. Available
  	at &com;
        </bibl>
        
        <bibl id='CORBA' key='CORBA'>
  	OMG (<loc href='http://www.omg.org/'>Object Management Group</loc>) The
  	Common Object Request Broker: Architecture and Specification, version
  	2.3.1, October 1999. Available from http://www.omg.org/
        </bibl>
  
        <bibl id='DOM-Level-1' key='DOM Level 1'>
  	W3C (World Wide Web Consortium) <loc href='&domlevel1;'>DOM Level 1
  	Specification</loc>, October 1998. Available at &domlevel1;
        </bibl>
        
        <bibl id='DOMHTML-inf' key='DOM Level 2 HTML'>
  	W3C (World Wide Web Consortium) <loc href='&html.latest.url;'>Document Object
  	Model Level 2 HTML Specification</loc>. Available at &html.latest.url;
        </bibl>
        
        <bibl id='DOM-Level-3-Requirements' key='DOM-Level-3-Requirements'>
  	W3C (World Wide Web Consortium) <loc
  	href='http://www.w3.org/TR/DOM-Requirements/#Level3'>DOM Requirements
  	for DOM Level 3</loc>, Available at
  	http://www.w3.org/TR/DOM-Requirements/#Level3
        </bibl>
        
        <bibl id='DOMEvents-inf' key='DOM Level 2 Events'>
  	W3C (World Wide Web Consortium) <loc href='&events.latest.url;'>Document
  	Object Model Level 2 Events Specification</loc>. Available at &events.latest.url;
        </bibl>
        
        <bibl id='InfoSet' key='Infoset'>
  	W3C (World Wide Web Consortium) <loc href='&infoset;'>XML Information
  	Set</loc>, December 1999. Available at &infoset;
        </bibl>
        
        <bibl id='JavaIDL' key='JavaIDL'>
  	Sun Microsystems Inc. <loc href='&javaidl;'>Java IDL</loc>. Available
  	at &javaidl;
        </bibl>
        
        <bibl id='JavaScript' key='JavaScript'>
  	Netscape Communications Corp. <loc href='&javascript;'>JavaScript
  	Resources</loc>. Available at &javascript;
        </bibl>
        
        <bibl id='JScript' key='JScript'>
  	Microsoft Corp. <loc href='&jscript;'>JScript
  	Resources</loc>. Available at &jscript;
        </bibl>
        
        <bibl id='MSIDL' key='MIDL'>
  	Microsoft Corp. <loc href='&msidl;'>MIDL Language
  	Reference</loc>. Available at &msidl;
        </bibl>
        
        <bibl id='DOMStyleSheets-inf' key='DOM Level 2 Style Sheets'>
  	W3C (World Wide Web Consortium) <loc href='&style.latest.url;/stylesheets'>Document Object
  	Model Level 2 Style Sheets</loc>. Available at &style.latest.url;/stylesheets
        </bibl>
        
        <bibl id='DOMTraversal-inf' key='DOM Level 2 Traversal'>
  	W3C (World Wide Web Consortium) <loc
  	href='&traversal-range.latest.url;/traversal'>Document Object Model Level
  	2 Traversal</loc>. Available at
  	&traversal-range.latest.url;/traversal
        </bibl>
        
        <bibl id='DOMRange-inf' key='DOM Level 2 Range'>
  	W3C (World Wide Web Consortium) <loc
  	href='&traversal-range.latest.url;/ranges.html'>Document Object Model Level
  	2 Range</loc>. Available at
  	&traversal-range.latest.url;/ranges
        </bibl>
        
        <bibl id='DOMViews-inf' key='DOM Level 2 Views'>
  	W3C (World Wide Web Consortium) <loc href='&views.latest.url;'>Document Object
  	Model Level 2 Views Specification</loc>. Available at &views.latest.url;
        </bibl>
        
        <bibl id='XHTML10' key='XHTML10'>
  	W3C (World Wide Web Consortium) <loc href='&xhtml10;'>XHTML 1.0:
  	Extensible HyperText Markup Language</loc>, A Reformulation of HTML 4.0
  	in XML 1.0. Available at &xhtml10;
        </bibl>
  
        <bibl id='XPointer' key='XPointer'>
  	W3C (World Wide Web Consortium) <loc href='&xpointer;'>XML Pointer
  	  Language (XPointer)</loc>, June 2000. Available at &xpointer;
        </bibl>
      </blist>
  
  
    </div2>
    
  </div1>
  <!--
   *************************************************************************
   * END OF REFERENCES                                                     *
   *************************************************************************
  -->
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/toc.xml
  
  Index: toc.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: toc.xml,v 1.1 2001/06/01 11:14:36 dims Exp $ -->
  <div1 id="TOC">
    <head>Expanded Table of Contents</head>
    <?GENERATE-EXPANDED-TOC?>	
  </div1>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/version.xml
  
  Index: version.xml
  ===================================================================
  <!ENTITY eacute "&#233;">
  <!ENTITY uuml "&#252;">
  <!ENTITY auml "&#228;">
  <!ENTITY reg  "&#174;">
  <!ENTITY copy "&#169;"> 
  
  <!ENTITY core.prefix "Core">
  <!ENTITY html.prefix "HTML">
  <!ENTITY views.prefix "Views">
  <!ENTITY style.prefix "Style">
  <!ENTITY events.prefix "Events">
  <!ENTITY traversal-range.prefix "Traversal-Range">
  
  <!-- default prefix is empty -->
  <!ENTITY prefix "">
  
  <!-- date of documents -->
  <!ENTITY date.day "13">
  <!ENTITY date.month "November">
  <!ENTITY date.monthnum "11"> 
  <!ENTITY date.year "2000"> 
  <!ENTITY doc.date "&date.year;&date.monthnum;&date.day;"> 
  <!ENTITY dom2.prefix "DOM-Level-2">
  <!ENTITY dom.prefix "REC-&dom2.prefix;">
  <!ENTITY doc.prefix "&dom.prefix;-&prefix;">
  
  <!-- ***** Use this for internal release
  <!ENTITY release "confidential to W3C members and invited experts"> 
  <!ENTITY review "<emph role='important'>DOM IG</emph>"> 
  <!ENTITY to-mail "w3c-dom-ig@w3.org"> 
  <!ENTITY mailarchive "http://lists.w3.org/Archives/Member/w3c-dom-ig/"> 
  <!ENTITY tr.url "http://www.w3.org/DOM/Group/drafts">
  <!ENTITY this.url "&tr.url;/&date.year;/&doc.prefix;-&doc.date;"> 
  <!ENTITY pdf.loc "">
  <!ENTITY txt.loc "">
  <!ENTITY prev.url "http://www.w3.org/DOM/Group/drafts/2000/CR-&dom2.prefix;-&prefix;-200000809/">
  <!ENTITY prev.locs "&prev.loc;">
  
   ***** -->
  
  <!-- ***** Use this for public release -->
  <!ENTITY release "for public review"> 
  <!ENTITY review "public"> 
  <!ENTITY to-mail "www-dom@w3.org"> 
  <!ENTITY mailarchive "http://lists.w3.org/Archives/Public/www-dom/"> 
  <!ENTITY translation.url "http://www.w3.org/2000/11/&dom2.prefix;-translations"> 
  <!ENTITY errata.url "http://www.w3.org/2000/11/&dom2.prefix;-errata"> 
  <!ENTITY tr.url "http://www.w3.org/TR">
  <!ENTITY this.url "&tr.url;/&date.year;/&doc.prefix;-&doc.date;"> 
  <!ENTITY pdf.loc "<loc href='&this.url;/DOM2-&prefix;.pdf'>PDF file</loc>">
  <!ENTITY txt.loc "<loc href='&this.url;/DOM2-&prefix;.txt'>plain text</loc>">
  
  <!ENTITY prev.url "http://www.w3.org/TR/2000/PR-&dom2.prefix;-&prefix;-20000927">
  <!ENTITY prev.locs "&prev.loc;">
  <!-- ***** -->
  
  <!ENTITY core.url "&tr.url;/&date.year;/&dom.prefix;-&core.prefix;-&doc.date;"> 
  <!ENTITY html.url "&tr.url;/&date.year;/&dom.prefix;-&html.prefix;-&doc.date;"> 
  <!ENTITY views.url "&tr.url;/&date.year;/&dom.prefix;-&views.prefix;-&doc.date;"> 
  <!ENTITY style.url "&tr.url;/&date.year;/&dom.prefix;-&style.prefix;-&doc.date;"> 
  <!ENTITY events.url "&tr.url;/&date.year;/&dom.prefix;-&events.prefix;-&doc.date;"> 
  <!ENTITY traversal-range.url "&tr.url;/&date.year;/&dom.prefix;-&traversal-range.prefix;-&doc.date;"> 
  
  <!ENTITY latest.url "&tr.url;/&dom2.prefix;-&prefix;">
  <!ENTITY core.latest.url "&tr.url;/&dom2.prefix;-&core.prefix;"> 
  <!ENTITY html.latest.url "&tr.url;/&dom2.prefix;-&html.prefix;"> 
  <!ENTITY views.latest.url "&tr.url;/&dom2.prefix;-&views.prefix;"> 
  <!ENTITY style.latest.url "&tr.url;/&dom2.prefix;-&style.prefix;"> 
  <!ENTITY events.latest.url "&tr.url;/&dom2.prefix;-&events.prefix;"> 
  <!ENTITY traversal-range.latest.url "&tr.url;/&dom2.prefix;-&traversal-range.prefix;"> 
  
  <!ENTITY zip.loc "<loc href='&this.url;/DOM2-&prefix;.zip'>ZIP file</loc>">
  <!ENTITY ps.loc "<loc href='&this.url;/DOM2-&prefix;.ps'>PostScript file</loc>">
  <!ENTITY prev.loc "<loc href='&prev.url;'>&prev.url;</loc>">
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/changes.xml
  
  Index: changes.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: changes.xml,v 1.1 2001/06/01 11:14:42 dims Exp $ -->
  <div1 id="Changes">
    <head>Changes</head>
  
    <orglist role="editors">
      <member>
        <name>Arnaud Le Hors</name> 
        <affiliation>IBM</affiliation>
      </member>
      <member>
        <name>Philippe Le H&eacute;garet</name>
        <affiliation>W3C</affiliation>
      </member>
    </orglist>
  
    <div2 id="DOMLevel1to2Changes">
      <head>Changes between DOM Level 1 Core and DOM Level 2 Core</head>
  
      <glist>
        <gitem>
  	<label>OMG IDL</label>
  	<def><p>The DOM Level 2 specifications are now using Corba 2.3.1
  	    instead of Corba 2.2.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>Type <code>DOMString</code></label>
  	<def><p>The definition of <code>DOMString</code> in IDL is now a
  	    <code>valuetype</code>.</p>
  	</def>
        </gitem>
      </glist>
  
      <div3 id="DOMLevel1Changes">
        <head>Changes to DOM Level 1 Core interfaces and exceptions</head>
  
        <glist>
  	<gitem>
  	  <label>Interface <code>Attr</code></label>
  	  <def><p>The <code>Attr</code> interface has one new
  	      attribute: <code>ownerElement</code>.</p>
  	  </def>
  	</gitem>
  	<gitem>
  	  <label>Interface <code>Document</code></label>
  	  <def><p>The <code>Document</code> interface has five new methods:
  	      <code>importNode</code>, <code>createElementNS</code>,
  	      <code>createAttributeNS</code>, <code>getElementsByTagNameNS</code>
  	      and <code>getElementById</code>.</p>
  	  </def>
  	</gitem>
  	<gitem>
  	  <label>Interface <code>NamedNodeMap</code></label>
  	  <def><p>The <code>NamedNodeMap</code> interface has three new
  	      methods: <code>getNamedItemNS</code>, <code>setNamedItemNS</code>,
  	      <code>removeNamedItemNS</code>.</p>
  	  </def>
  	</gitem>
  	<gitem>
  	  <label>Interface <code>Node</code></label>
  	  <def><p>The <code>Node</code> interface has two new
                methods: <code>isSupported</code> and <code>hasAttributes</code>.</p><p><code>normalize</code>, previously
  	      in the <code>Element</code> interface, has been
  	      moved in the <code>Node</code> interface.</p>
  	    <p>The <code>Node</code> interface has three new attributes:
  	    <code>namespaceURI</code>, <code>prefix</code> and
  	    <code>localName</code>.</p>
  	    <p>The <code>ownerDocument</code> attribute was specified to be
  	      <code>null</code> when the node is a <code>Document</code>. It
  	      now is also <code>null</code> when the node is a
  	      <code>DocumentType</code> which is not used with any
  	      <code>Document</code> yet.</p>
  	  </def>
  	</gitem>
  	<gitem>
  	  <label>Interface <code>DocumentType</code></label>
  	  <def><p>The <code>DocumentType</code> interface has three attributes:
  	      <code>publicId</code>, <code>systemId</code> and
  	      <code>internalSubset</code>.</p>
  	  </def>
  	</gitem>
  	<gitem>
  	  <label>Interface <code>DOMImplementation</code></label>
  	  <def><p>The <code>DOMImplementation</code> interface has two new
  	      methods: <code>createDocumentType</code> and
  	      <code>createDocument</code>.</p>
  	  </def>
  	</gitem>
  	<gitem>
  	  <label>Interface <code>Element</code></label>
  	  <def><p>The <code>Element</code> interface has eight new
  	      methods: <code>getAttributeNS</code>,
  	      <code>setAttributeNS</code>, <code>removeAttributeNS</code>,
  	      <code>getAttributeNodeNS</code>, <code>setAttributeNodeNS</code>,
  	      <code>getElementsByTagNameNS</code>, <code>hasAttribute</code>
  	      and <code>hasAttributeNS</code>.</p>
  	      <p>The method <code>normalize</code> is now inherited from
  	      the <code>Node</code> interface where it was moved.</p>
  	  </def>
  	</gitem>
  	<gitem>
  	  <label>Exception <code>DOMException</code></label>
  	  <def><p>The <code>DOMException</code> has five new
  	      exception codes: <code>INVALID_STATE_ERR</code>,
  	      <code>SYNTAX_ERR</code>, <code>INVALID_MODIFICATION_ERR</code>,
  	      <code>NAMESPACE_ERR</code> and <code>INVALID_ACCESS_ERR</code>.</p>
  	  </def>
  	</gitem>
        </glist>
      </div3>
      <div3 id="DOMLevel2Addons">      
        <head>New features</head>
        <div4 id='DOMLevel2Addons-types'>
  	<head>New types</head>
  	<glist>
  	  <gitem>
  	    <label><code>DOMTimeStamp</code></label>
  	    <def>
  	      <p>
  		The <code>DOMTimeStamp</code> type was added to the Core
  		module.
  	      </p>
  	    </def>
  	  </gitem>
  	</glist>
        </div4>
      </div3>
    </div2>
  </div1>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/core.xml
  
  Index: core.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:14:44 $ $Revision: 1.1 $ -->
  <!--
   *************************************************************************
   * BEGINNING OF CORE                                                     *
   *************************************************************************
  -->
  <div1 id="Core"> 
    <head>Document Object Model Core</head> 
    <orglist role="editors"> 
  	 <member> 
  		<name>Arnaud Le Hors</name> 
  		<affiliation>IBM</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Gavin Nicol</name> 
  		<affiliation>Inso EPS (for DOM Level 1)</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Lauren Wood</name> 
  		<affiliation>SoftQuad, Inc. (for DOM Level 1)</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Mike Champion</name> 
  		<affiliation>ArborText (for DOM Level 1 from November 20,
  		  1997)</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Steve Byrne</name> 
  		<affiliation>JavaSoft (for DOM Level 1 until November 19,
  		  1997)</affiliation> 
  	 </member> 
    </orglist> <?GENERATE-MINI-TOC?>
  <!--
    ******************************************************
    | INTRODUCTION                                       |
    ******************************************************
    -->
    <div2 id="ID-1590626201"> 
  	 <head>Overview of the DOM Core Interfaces</head> 
  	 <p>This section defines a set of objects and interfaces for accessing and
  		manipulating document objects. The functionality specified in this section (the
  		<emph>Core</emph> functionality) is sufficient to allow software developers and
  		web script authors to access and manipulate parsed HTML and XML content inside
  		conforming products. The DOM Core API also allows creation and population of a <code>Document</code> object using only DOM API calls; loading a <code>Document</code> and saving it persistently is left to the product that implements the
  		DOM API.</p> 
  	 <div3 id="ID-1590626202"><head>The DOM Structure Model</head>	
  		<p>The DOM presents documents as a hierarchy of <code>Node</code> objects that also implement other, more specialized interfaces. Some
  		  types of nodes may have <termref def="dt-child">child</termref> nodes of
  		  various types, and others are leaf nodes that cannot have anything below them
  		  in the document structure. For XML and HTML, the node types, and which node
  		  types they may have as children, are as follows: 
  		  <ulist>	
  			 <item>
  				<p><code>Document</code> -- <code>Element</code> (maximum of one), <code>ProcessingInstruction</code>, <code>Comment</code>, <code>DocumentType</code> (maximum of one) </p>
  			 </item>	
  			 <item>
  				<p><code>DocumentFragment</code> -- <code>Element</code>, <code>ProcessingInstruction</code>, <code>Comment</code>, <code>Text</code>, <code>CDATASection</code>, <code>EntityReference</code> </p>
  			 </item>	
  			 <item>
  				<p><code>DocumentType</code> -- no children</p>
  			 </item>	
  			 <item>
  				<p><code>EntityReference</code> -- <code>Element</code>, <code>ProcessingInstruction</code>, <code>Comment</code>, <code>Text</code>, <code>CDATASection</code>, <code>EntityReference</code> </p>
  			 </item>	
  			 <item>
  				<p><code>Element</code> -- <code>Element</code>, <code>Text</code>, <code>Comment</code>, <code>ProcessingInstruction</code>, <code>CDATASection</code>, <code>EntityReference</code></p>
  			 </item>	
  			 <item>
  				<p><code>Attr</code> -- <code>Text</code>, <code>EntityReference</code></p>
  			 </item>	
  			 <item>
  				<p><code>ProcessingInstruction</code> -- no children</p>
  			 </item>	
  			 <item>
  				<p><code>Comment</code> -- no children</p>
  			 </item>	
  			 <item>
  				<p><code>Text</code> -- no children</p>
  			 </item>	
  			 <item>
  				<p><code>CDATASection</code> -- no children</p>
  			 </item>	
  			 <item>
  				<p><code>Entity</code> -- <code>Element</code>, <code>ProcessingInstruction</code>, <code>Comment</code>, <code>Text</code>, <code>CDATASection</code>, <code>EntityReference</code></p>
  			 </item>	
  			 <item>
  				<p><code>Notation</code> -- no children</p>
  			 </item>	
  		  </ulist> </p> 
  		<p>The DOM also specifies a <code>NodeList</code> interface to handle ordered lists of <code>Nodes</code>, such as the children of a <code>Node</code>, or the <termref def="dt-element">elements</termref> returned by the <code>getElementsByTagName</code> method of the <code>Element</code> interface, and also a <code>NamedNodeMap</code> interface to handle unordered sets of nodes referenced by their name
  		  attribute, such as the attributes of an <code>Element</code>. <termdef id="td-live" term="live"> <code>NodeList</code> and <code>NamedNodeMap</code> objects in the DOM are <term>live</term>; that is, changes to the
  		  underlying document structure are reflected in all relevant <code>NodeList</code> and <code>NamedNodeMap</code> objects. For example, if a DOM user gets a <code>NodeList</code> object containing the children of an <code>Element</code>, then subsequently adds more children to that <termref
  		  def="dt-element">element</termref> (or removes children, or modifies them),
  		  those changes are automatically reflected in the <code>NodeList</code>, without further action on the user's part. Likewise, changes to a <code>Node</code> in the tree are reflected in all references to that <code>Node</code> in <code>NodeList</code> and <code>NamedNodeMap</code> objects.</termdef></p> 
  		<p>Finally, the interfaces <code>Text</code>, <code>Comment</code>, and <code>CDATASection</code> all inherit from the <code>CharacterData</code> interface.</p> 
  	 </div3> 
  	 <div3 id="ID-249F15BA"><head>Memory Management</head> 
  		<p>Most of the APIs defined by this specification are
  		  <emph>interfaces</emph> rather than classes. That means that an implementation
  		  need only expose methods with the defined names and specified operation, not
  		  implement classes that correspond directly to the interfaces. This allows the
  		  DOM APIs to be implemented as a thin veneer on top of legacy applications with
  		  their own data structures, or on top of newer applications with different class
  		  hierarchies. This also means that ordinary constructors (in the Java or C++
  		  sense) cannot be used to create DOM objects, since the underlying objects to be
  		  constructed may have little relationship to the DOM interfaces. The
  		  conventional solution to this in object-oriented design is to define
  		  <emph>factory</emph> methods that create instances of objects that implement
  		  the various interfaces. Objects implementing some interface "X" are created by
  		  a "createX()" method on the <code>Document</code> interface; this is because all DOM objects live in the context of a
  		  specific Document.</p>	
  		<p>The DOM Level 2 API does <emph>not</emph> define a standard way to
  		  create <code>DOMImplementation</code> objects; DOM implementations must provide some proprietary way of
  		  bootstrapping these DOM interfaces, and then all other objects can be built
  		  from there.</p> 
  		<p>The Core DOM APIs are designed to be compatible with a wide range of
  		  languages, including both general-user scripting languages and the more
  		  challenging languages used mostly by professional programmers. Thus, the DOM
  		  APIs need to operate across a variety of memory management philosophies, from
  		  language bindings that do not expose memory management to the user at all,
  		  through those (notably Java) that provide explicit constructors but provide an
  		  automatic garbage collection mechanism to automatically reclaim unused memory,
  		  to those (especially C/C++) that generally require the programmer to explicitly
  		  allocate object memory, track where it is used, and explicitly free it for
  		  re-use. To ensure a consistent API across these platforms, the DOM does not
  		  address memory management issues at all, but instead leaves these for the
  		  implementation. Neither of the explicit language bindings defined by the DOM
  		  API (for <termref def="dt-ECMAScript">ECMAScript</termref> and Java)
  		  require any memory management methods, but DOM bindings for other languages
  		  (especially C or C++) may require such support. These extensions will be the
  		  responsibility of those adapting the DOM API to a specific language, not the
  		  DOM Working Group. </p> 
  	 </div3> 
  	 <div3 id="ID-45A944CB"> 
  		<head>Naming Conventions</head> 
  		<p>While it would be nice to have attribute and method names that are
  		  short, informative, internally consistent, and familiar to users of similar
  		  APIs, the names also should not clash with the names in legacy APIs supported
  		  by DOM implementations. Furthermore, both OMG IDL and <code>ECMAScript</code> have significant limitations in their ability to disambiguate names
  		  from different namespaces that make it difficult to avoid naming conflicts with
  		  short, familiar names. So, DOM names tend to be long and descriptive
  		  in order to be unique across all environments. </p> 
  		<p>The Working Group has also attempted to be internally consistent in
  		  its use of various terms, even though these may not be common distinctions in
  		  other APIs. For example, the DOM API uses the method name "remove" when the method
  		  changes the structural model, and the method name "delete" when the method gets
  		  rid of something inside the structure model. The thing that is deleted is not
  		  returned. The thing that is removed may be returned, when it makes sense to
  		  return it. </p> 
  	 </div3> 
  	 <div3 id="ID-1CED5498"> 
  		<head>Inheritance vs. Flattened Views of the API</head> 
  		<p>The DOM Core <termref def="dt-API">APIs</termref> present two somewhat
  		  different sets of interfaces to an XML/HTML document: one presenting an "object
  		  oriented" approach with a hierarchy of <termref
  		  def="dt-inheritance">inheritance</termref>, and a "simplified" view that allows
  		  all manipulation to be done via the <code>Node</code> interface without requiring casts (in Java and other C-like languages)
  		  or query interface calls in <termref def="dt-COM">COM</termref> environments.
  		  These operations are fairly expensive in Java and COM, and the DOM may be used
  		  in performance-critical environments, so we allow significant functionality
  		  using just the <code>Node</code> interface. Because many other users will find the
  		  <termref def="dt-inheritance">inheritance</termref> hierarchy easier to
  		  understand than the "everything is a <code>Node</code>" approach to the DOM, we also support the full higher-level interfaces
  		  for those who prefer a more object-oriented <termref
  		  def="dt-API">API</termref>. </p> 
  		<p>In practice, this means that there is a certain amount of redundancy
  		  in the <termref def="dt-API">API</termref>. The Working Group considers the
  		  "<termref def="dt-inheritance">inheritance</termref>" approach the primary view
  		  of the API, and the full set of functionality on <code>Node</code> to be "extra" functionality that users may employ, but that does not
  		  eliminate the need for methods on other interfaces that an object-oriented
  		  analysis would dictate. (Of course, when the O-O analysis yields an attribute
  		  or method that is identical to one on the <code>Node</code> interface, we don't specify a completely redundant one.) Thus, even
  		  though there is a generic <code>nodeName</code> attribute on the <code>Node</code> interface, there is still a <code>tagName</code> attribute on the <code>Element</code> interface; these two attributes must contain the same value, but the
  		  it is worthwhile to support both, given the different
  		  constituencies the DOM <termref def="dt-API">API</termref> must satisfy. </p> 
  	 </div3> 
  	 <div3 id="ID-C74D1578"> 
  		<head>The <code>DOMString</code> type</head> 
  		<p>To ensure interoperability, the DOM specifies the following:</p> 
  		<ulist>	
  		  <item> 
  			 <definitions> 
  				<typedef name="DOMString" id="DOMString"> 
  				  <descr>
  					 <p>A <code>DOMString</code> is a sequence of <termref def="dt-16-bit-unit">16-bit
  						units</termref>.</p> 
  				  </descr> 
  				  <sequence type="unsigned short"/> 
  				</typedef> 
  			 </definitions>	
  		  </item> 
  		  <item>
  			 <p>Applications must encode <code>DOMString</code> using UTF-16 (defined in <bibref ref="Unicode"/> and Amendment 1 of
  				<bibref ref="ISO10646"/>).</p> 
  			 <p>The UTF-16 encoding was chosen because of its widespread industry
  				practice. Note that for both HTML and XML, the document character set (and
  				therefore the notation of numeric character references) is based on UCS
  				[ISO-10646]. A single numeric character reference in a source document may
  				therefore in some cases correspond to two 16-bit units in a <code>DOMString</code> (a high surrogate and a low surrogate).</p> 
  			 <note>
  				<p>Even though the DOM defines the name of the string type to be <code>DOMString</code>, bindings may use different names. For example for Java, <code>DOMString</code> is bound to the <code>String</code> type because it also uses UTF-16 as its encoding.</p>
  			 </note>
  		  </item> 
  		</ulist> 
  		<note>
  		  <p>As of August 2000, the OMG IDL specification (<bibref
  			 ref="OMGIDL"/>) included a <code>wstring</code> type. However, that definition did not meet the interoperability
  			 criteria of the DOM <termref def="dt-API">API</termref> since it relied on
  			 negotiation to decide the width and encoding of a character.</p>
  		</note> 
  	 </div3> 
  	 <div3 id="Core-DOMTimeStamp"> 
  		<head>The <code>DOMTimeStamp</code> type</head> 
  		<p>To ensure interoperability, the DOM specifies the following:</p> 
  		<ulist>	
  		  <item> 
  			 <definitions> 
  				<typedef name="DOMTimeStamp" id="DOMTimeStamp"> 
  				  <descr> 
  					 <p> A <code>DOMTimeStamp</code> represents a number of milliseconds. </p> 
  				  </descr> 
  				  <typename>unsigned long long</typename> 
  				</typedef> 
  			 </definitions>	
  		  </item> 
  		  <item> 
  			 <note> 
  				<p> Even though the DOM uses the type <code>DOMTimeStamp</code>, bindings may use different types. For example for Java, <code>DOMTimeStamp</code> is bound to the <code>long</code> type. In ECMAScript, <code>TimeStamp</code> is bound to the <code>Date</code> type because the range of the <code>integer</code> type is too small. </p> 
  			 </note>	
  		  </item> 
  		</ulist> 
  	 </div3> 
  	 <div3 id="ID-5DFED1F0"> 
  		<head>String comparisons in the DOM</head> 
  		<p>The DOM has many interfaces that imply string matching. HTML
  		  processors generally assume an uppercase (less often, lowercase) normalization
  		  of names for such things as <termref def="dt-element">elements</termref>, while
  		  XML is explicitly case sensitive. For the purposes of the DOM, string matching
  		  is performed purely by binary <termref
  		  def="dt-string-compare">comparison</termref> of the
  		  <termref def="dt-16-bit-unit">16-bit units</termref> of the <code>DOMString</code>. In addition, the DOM assumes that any case normalizations take place
  		  in the processor, <emph>before</emph> the DOM structures are built.</p> 
  		<note>	
  		  <p>Besides case folding, there are additional normalizations that can
  			 be applied to text. The W3C I18N Working Group is in the process of defining
  			 exactly which normalizations are necessary, and where they should be applied.
  			 The W3C I18N Working Group expects to require early normalization, which means
  			 that data read into the DOM is assumed to already be normalized. The DOM and
  			 applications built on top of it in this case only have to assure that text
  			 remains normalized when being changed. For further details, please see
  			 <bibref ref="Charmod"/>.</p> 
  		</note> 
  	 </div3> 
  	 <div3 id="Namespaces-Considerations"> 
  		<head>XML Namespaces</head> 
  		<p>The DOM Level 2 supports XML namespaces <bibref ref="Namespaces"/> by
  		  augmenting several interfaces of the DOM Level 1 Core to allow creating and
  		  manipulating <termref def="dt-element">elements</termref> and attributes
  		  associated to a namespace.</p> 
  		<p>As far as the DOM is concerned, special attributes used for declaring
  		  <termref def="dt-XML-namespace">XML namespaces</termref> are still exposed and
  		  can be manipulated just like any other attribute. However, nodes are
  		  permanently bound to <termref def="dt-namespaceURI">namespace URIs</termref> as
  		  they get created. Consequently, moving a node within a document, using the DOM,
  		  in no case results in a change of its <termref
  		  def="dt-namespaceprefix">namespace prefix</termref> or namespace URI.
  		  Similarly, creating a node with a namespace prefix and namespace URI, or
  		  changing the namespace prefix of a node, does not result in any addition,
  		  removal, or modification of any special attributes for declaring the
  		  appropriate XML namespaces. Namespace validation is not enforced; the DOM
  		  application is responsible. In particular, since the mapping between prefixes
  		  and namespace URIs is not enforced, in general, the resulting document cannot
  		  be serialized naively. For example, applications may have to declare every
  		  namespace in use when serializing a document.</p> 
  		<p>DOM Level 2 doesn't perform any URI normalization or canonicalization.
  		  The URIs given to the DOM are assumed to be valid (e.g., characters such as
  		  whitespaces are properly escaped), and no lexical checking is performed.
  		  Absolute URI references are treated as strings and
  		  <termref def="dt-string-compare">compared literally</termref>. How relative
  		  namespace URI references are treated is undefined. To ensure interoperability
  		  only absolute namespace URI references (i.e., URI references beginning with a
  		  scheme name and a colon) should be used. Note that because the DOM does no 
                    lexical checking, the empty string will be treated as a real namespace URI 
                    in DOM Level 2 methods. Applications must use the value <code>null</code> 
                    as the namespaceURI parameter for methods if they wish to have no
  		  namespace.</p> 
  		<note>
  		  <p>In the DOM, all namespace declaration attributes are <emph>by
  			 definition</emph> bound to the namespace URI: "<loc
  			 href="&xmlns-ns;">&xmlns-ns;</loc>". These are the attributes whose
  			 <termref def="dt-namespaceprefix">namespace prefix</termref> or
  			 <termref def="dt-qualifiedname">qualified name</termref> is "xmlns". Although,
  			 at the time of writing, this is not part of the XML Namespaces specification
  			 <bibref ref="Namespaces"/>, it is planned to be incorporated in a future
  			 revision.</p> 
  		</note> 
  		<p>In a document with no namespaces, the <termref
  		  def="dt-child">child</termref> list of an <code>EntityReference</code> node is always the same as that of the corresponding <code>Entity</code>. This is not true in a document where an entity contains unbound
  		  <termref def="dt-namespaceprefix">namespace prefixes</termref>. In such a case,
  		  the <termref def="dt-descendant">descendants</termref> of the corresponding <code>EntityReference</code> nodes may be bound to different <termref
  		  def="dt-namespaceURI">namespace URIs</termref>, depending on where the entity
  		  references are. Also, because, in the DOM, nodes always remain bound to the
  		  same namespace URI, moving such <code>EntityReference</code> nodes can lead to documents that cannot be serialized. This is also
  		  true when the DOM Level 1 method <code>createEntityReference</code> of the <code>Document</code> interface is used to create entity references that correspond to such
  		  entities, since the <termref def="dt-descendant">descendants</termref> of the
  		  returned <code>EntityReference</code> are unbound. The DOM Level 2 does not support any mechanism to resolve
  		  namespace prefixes. For all of these reasons, use of such entities and entity
  		  references should be avoided or used with extreme care. A future Level of the
  		  DOM may include some additional support for handling these.</p> 
  		<p>The new methods, such as <code>createElementNS</code> and <code>createAttributeNS</code> of the <code>Document</code> interface, are meant to be used by namespace aware applications. Simple
  		  applications that do not use namespaces can use the DOM Level 1 methods, such
  		  as <code>createElement</code> and <code>createAttribute</code>. Elements and attributes created in this way do not have any namespace
  		  prefix, namespace URI, or local name.</p> 
  		<note>
  		  <p>DOM Level 1 methods are namespace ignorant. Therefore, while it is
  			 safe to use these methods when not dealing with namespaces, using them and the
  			 new ones at the same time should be avoided. DOM Level 1 methods solely
  			 identify attribute nodes by their <code>nodeName</code>. On the contrary, the DOM Level 2 methods related to namespaces,
  			 identify attribute nodes by their <code>namespaceURI</code> and <code>localName</code>. Because of this fundamental difference, mixing both sets of methods
  			 can lead to unpredictable results. In particular, using <code>setAttributeNS</code>, an <termref def="dt-element">element</termref> may have two attributes
  			 (or more) that have the same <code>nodeName</code>, but different <code>namespaceURI</code>s. Calling <code>getAttribute</code> with that <code>nodeName</code> could then return any of those attributes. The result depends on the
  			 implementation. Similarly, using <code>setAttributeNode</code>, one can set two attributes (or more) that have different <code>nodeNames</code> but the same <code>prefix</code> and <code>namespaceURI</code>. In this case <code>getAttributeNodeNS</code> will return either attribute, in an implementation dependent manner.
  			 The only guarantee in such cases is that all methods that access a named item
  			 by its <code>nodeName</code> will access the same item, and all methods which access a node by its
  			 URI and local name will access the same node. For instance, <code>setAttribute</code> and <code>setAttributeNS</code> affect the node that <code>getAttribute</code> and <code>getAttributeNS</code>, respectively, return.</p>
  		</note> 
  	 </div3> 
    </div2>  <!--
    ******************************************************
    | DOCUMENT OBJECT MODEL APIs                        |
    ******************************************************
    -->
    <div2 id="ID-BBACDC08"> 
  	 <head>Fundamental Interfaces</head> 
  	 <p>The interfaces within this section are considered
  		<emph>fundamental</emph>, and must be fully implemented by all conforming
  		implementations of the DOM, including all HTML DOM implementations
  		<bibref ref="DOMHTML-inf"/>, unless otherwise specified. 
           </p> 
  	 <p>
             A DOM application may use the <code>hasFeature(feature,
             version)</code> method of the <code>DOMImplementation</code>
             interface with parameter values "Core" and "2.0" (respectively) to
             determine whether or not this module is supported by the
             implementation. Any implementation that conforms to DOM Level 2 or a
             DOM Level 2 module must conform to the Core module. Please refer to
             additional information about <xspecref
             href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
             in this specification.
           </p>
  
  	 <definitions> &exceptions; &core-dom; &core-document; &core-node;
  		&core-node-list; &core-named-node-map; &core-data; &core-attribute;
  		&core-element; &core-text; &core-comment; 
  	 </definitions> 
    </div2> 
    <div2 id="ID-E067D597"> 
  	 <head>Extended Interfaces</head> 
  	 <p>The interfaces defined here form part of the DOM Core specification, but
  		objects that expose these interfaces will never be encountered in a DOM
  		implementation that deals only with HTML. As such, HTML-only DOM
  		implementations <bibref ref="DOMHTML-inf"/> do not need to have objects that
  		implement these interfaces.</p> 
      <p>
        The interfaces found within this section are not mandatory. A DOM
        application may use the <code>hasFeature(feature, version)</code> method
        of the <code>DOMImplementation</code> interface with parameter values
        "XML" and "2.0" (respectively) to determine whether or not this module
        is supported by the implementation. In order to fully support this
        module, an implementation must also support the "Core" feature defined in
        <specref ref="ID-BBACDC08"/>. Please refer to additional information about
        <specref ref='ID-Conformance'/> in this specification.
      </p>
  
      <definitions> &core-cdata-section; &core-doctype; &core-notation;
        &core-entity; &core-entity-reference; &core-pi; 
      </definitions> 
    </div2></div1><!--
   *************************************************************************
   * END OF CORE                                                           *
   *************************************************************************
  -->
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/dom-spec.xml
  
  Index: dom-spec.xml
  ===================================================================
  <?xml version="1.0" ?>
  <!-- $Id: dom-spec.xml,v 1.1 2001/06/01 11:14:45 dims Exp $ -->
  <!DOCTYPE spec PUBLIC
        "-//W3C//DTD Specification V2.1-Based DOM//EN"
        "../../../pubtext/xmlspec-v21-dom.dtd" [
  
  <!ENTITY prefix "Core">
  <!ENTITY % version SYSTEM "../version.xml">
  %version;
  <!ENTITY % links SYSTEM "../link-entities.xml">
  %links;
  <!ENTITY % parts SYSTEM "../part-entities.xml">
  %parts;
  <!ENTITY options SYSTEM "../options.xml">
  ]> 
  
  <spec>
    <!--
    *************************************************************************
    * FRONT MATTER                                                          *
    *************************************************************************
    -->
  &options;
  
  <header> 
  <title>Document Object Model (DOM) Level 2 Core Specification</title>
  <version>1.0</version> <w3c-designation>&doc.prefix;-&doc.date;
  </w3c-designation> <w3c-doctype>W3C Recommendation</w3c-doctype> <pubdate> 
  <day>&date.day;</day> <month>&date.month;</month> <year>&date.year;</year> 
  </pubdate> 
  <publoc> <loc href="&this.url;">&this.url;</loc>
  &ps.loc;
  &pdf.loc;
  &txt.loc;
  &zip.loc;
  </publoc>
  <latestloc> <loc href="&latest.url;">&latest.url;</loc> </latestloc> 
  <prevlocs>
  &prev.locs;
  </prevlocs> 
  <authlist> 
  <author role="editor">
  <name>Arnaud Le Hors</name> 
  <affiliation>W3C team contact until October 1999, then IBM</affiliation>
  </author>
  <author role="editor">
  <name>Philippe Le H&eacute;garet</name> 
  <affiliation>W3C, team contact (from November 1999)</affiliation>
  </author> 
  <author role="editor"> <name>Lauren Wood</name> 
  <affiliation>SoftQuad Software Inc., WG Chair</affiliation>
  </author>
  	 <author role="editor"> 
  		<name>Gavin Nicol</name> 
  		<affiliation>Inso EPS (for DOM Level 1)</affiliation> 
  	 </author> 
  <author role="editor">
  <name>Jonathan Robie</name>
  <affiliation>Texcel Research and Software AG (for DOM Level 1)</affiliation>
  </author>
  	 <author role="editor"> 
  		<name>Mike Champion</name> 
  		<affiliation>ArborText and Software AG (for DOM Level 1 from November 20,
  		  1997)</affiliation> 
  	 </author> 
  	 <author role="editor"> 
  		<name>Steve Byrne</name> 
  		<affiliation>JavaSoft (for DOM Level 1 until November 19,
  		  1997)</affiliation> 
  	 </author> 
  </authlist>
      <!--
      ******************************************************
      * DOCUMENT ABSTRACT                                  *
      ******************************************************
      -->
  <abstract id="id-abstract"> 
  
  <p>This specification defines the Document Object Model Level 2 Core, a platform-
  and language-neutral interface that allows programs and scripts to dynamically
  access and update the content and structure of documents. The Document
  Object Model Level 2 Core builds on the Document Object Model Level 1 Core.</p>
  
  <p>The DOM Level 2 Core is made of a set of core interfaces to create and
  manipulate the structure and contents of a document. The Core also contains
  specialized interfaces dedicated to XML.</p> 
  
  </abstract>
  
  &status;
  
  <sourcedesc>
  <p>Created in electronic form.</p>
  </sourcedesc>
  <langusage>
  <language id="en">English</language>
  </langusage>
  <revisiondesc>
  <p>$Revision: 1.1 $</p>
  </revisiondesc>
  <?GENERATE-TOC?>
  </header>
  <front>
    &toc;
    &copyright;
    &introduction;
  </front> 
   
  <body>
    &core;
  </body>
    <!--
    *************************************************************************
    * BACK MATTER                                                           *
    *************************************************************************
    -->
  <back> 
    &core-changes;
    &i18nfunctions;
  
  <div1 role="idl" id="idl">
    <head>IDL Definitions</head>
  
    <p>This appendix contains the complete OMG IDL <bibref ref='OMGIDL'/> for
    the Level 2 Document Object Model Core definitions.</p>
  
    <p>The IDL files are also available as: <loc
        href="idl.zip">&this.url;/idl.zip</loc></p>
  
      <!--
      ******************************************************
      | CORE OMG IDL DEFINITIONS                           |
      ******************************************************
      -->
        <?GENERATE-IDL Core dom w3c.org?>
  </div1>
  
  <div1 role="java-binding" id="java-binding">
    <head>Java Language Binding</head>
  
    <p>This appendix contains the complete Java Language <bibref ref='Java'/>
    binding for the Level 2 Document Object Model Core.</p>
  
    <p>The Java files are also available as <loc
        href="java-binding.zip">&this.url;/java-binding.zip</loc></p>
  
      <!--
      ******************************************************
      | CORE JAVA BINDINGS                                 |
      ******************************************************
      -->
        <?GENERATE-JAVA Core org.w3c dom?>
  </div1>
  <div1 role="ecma-binding" id="ecma-binding">
    <head>ECMAScript Language Binding</head>
  
    <p>This appendix contains the complete ECMAScript <bibref
    ref='ECMAScript'/> binding for the Level 2 Document Object Model Core
    definitions.</p>
  
        <note>
  	<p>
  	  Exceptions handling is only supported by ECMAScript implementation
  	  conformant with the Standard ECMA-262 3rd. Edition (<bibref
  	  ref="ECMAScript"/>).
  	</p>
        </note>
  
      <!--
      ******************************************************
      | CORE ECMASCRIPT BINDINGS                         |
      ******************************************************
      -->
    <?GENERATE-ECMA Core?>
  </div1>
    &contributors; 
    &glossary; 
    &references;
    &index; 
  </back>
  </spec> 
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/i18nfunctions.xml
  
  Index: i18nfunctions.xml
  ===================================================================
  <?xml version="1.0" encoding='UTF-8'?>
  <!-- $Id: i18nfunctions.xml,v 1.1 2001/06/01 11:14:45 dims Exp $ -->
  <!--
   *************************************************************************
   * BEGINNING OF DOM I18N                                                 * 
   *************************************************************************
  -->
  <div1 id="i18n"> 
    <head>Accessing code point boundaries</head> 
    <orglist> 
      <member> 
        <name>Mark Davis</name> 
        <affiliation>IBM</affiliation> 
      </member> 
      <member> 
        <name>Lauren Wood</name> 
        <affiliation>SoftQuad Software Inc.</affiliation> 
      </member> 
    </orglist><?GENERATE-MINI-TOC?>
    <div2 id="i18n-introduction"> 
      <head>Introduction</head>
      <p>
        This appendix is an informative, not a normative, part of the Level 2 DOM
        specification.
      </p>
  
      <p>
        Characters are represented in Unicode by numbers called <i>code
        points</i> (also called <i>scalar values</i>). These numbers can range
        from 0 up to 1,114,111 = 10FFFF<sub>16</sub> (although some of these values are
        illegal). Each code point can be directly encoded with a 32-bit code unit. 
        This encoding is termed UCS-4 (or UTF-32). 
        The DOM specification, however, uses UTF-16, in which the most frequent 
        characters (which have values less than FFFF<sub>16</sub>) are represented 
        by a single 16-bit code unit, while characters above FFFF<sub>16</sub>
        use a special pair of code units called a <i>surrogate pair</i>. For more information, 
        see <bibref ref="Unicode"/> or the Unicode Web site.
      </p>
  
      <p>
        While indexing by code points as opposed to code units is not
        common in programs, some specifications such as XPath (and therefore XSLT
        and XPointer) use code point
        indices.  For interfacing with such formats it is recommended
        that the programming language provide string processing methods for
        converting code point indices to code unit indices and back. Some
        languages do not provide these functions natively; for these it is
        recommended that the native <code>String</code> type that is bound to
        <code>DOMString</code> be extended to enable this conversion. An example
        of how such an API might look is supplied below.
      </p>
      <note>
        <p>
  	Since these methods are supplied as an illustrative example of the type
  	of functionality that is required, the names of the methods,
  	exceptions, and interface may differ from those given here.
        </p>
      </note>
  
    </div2> 
    <div2 id="i18n-methods"> 
      <head>Methods</head> 
      <definitions> 
        <interface id="i18n-methods-StringExtend" name="StringExtend">
  	<descr>
  	  <p>Extensions to a language's native String class or interface</p>
  	</descr>
  	<method id="i18n-methods-StringExtend-findOffset16" name="findOffset16">
  	  <descr>
  	    <p>Returns the UTF-16 offset that corresponds to a UTF-32 offset.
  	      Used for random access.</p>
  		<note>
  		  <p>
  		    You can always round-trip from a UTF-32 offset to a UTF-16
  		    offset and back. You can round-trip from a UTF-16 offset to
  		    a UTF-32 offset and back if and only if the offset16 is not
  		    in the middle of a surrogate pair. Unmatched surrogates
  		    count as a single UTF-16 value.
  		  </p>
  		</note>
  	  </descr>
  	  <parameters>
  	    <param name="offset32" type="int" attr="in">
  	      <descr> 
  		<p>
  		  UTF-32 offset. 
  		</p>
  	      </descr>
  	    </param>
  	  </parameters>
  	  <returns type="int">
  	    <descr>
  	      <p>UTF-16 offset</p>
  	    </descr>
  	  </returns>
  	  <raises>
  	    <exception name="StringIndexOutOfBoundsException">
  	      <descr>
  		<p>
  		  if <code>offset32</code> is out of bounds.
  		</p>
  	      </descr>
  	    </exception>
  	  </raises>
  	</method>
  	<method id="i18n-methods-StringExtend-findOffset32" name="findOffset32">
  	  <descr>
  	    <p>
  	      Returns the UTF-32 offset corresponding to a UTF-16 offset. Used
  	      for random access. To find the UTF-32 length of a string, use:
  	      <eg>len32 = findOffset32(source, source.length());</eg>
  	    </p>
  	    <note>
  	      <p>
  		If the UTF-16 offset is into the middle of a surrogate pair,
  		then the UTF-32 offset of the <emph>end</emph> of the pair is
  		returned; that is, the index of the char after the end of the
  		pair. You can always round-trip from a UTF-32 offset to a UTF-16
  		offset and back. You can round-trip from a UTF-16 offset to a
  		UTF-32 offset and back if and only if the offset16 is not in
  		the middle of a surrogate pair. Unmatched surrogates count as a
  		single UTF-16 value.
  	      </p>
  	    </note>
  	  </descr>
  	  <parameters>
  	    <param attr="in" type="int" name="offset16">
  	      <descr>
  		<p>UTF-16 offset</p>
  	      </descr>
  	    </param>
  	  </parameters>
  	  <returns type="int">
  	    <descr>
  	      <p>UTF-32 offset</p>
  	    </descr>
  	  </returns>
  	  <raises>
  	    <exception name="StringIndexOutOfBoundsException">
  	      <descr>
  		<p>if offset16 is out of bounds.</p>
  	      </descr>
  	    </exception>
  	  </raises>
  	</method>
        </interface>
      </definitions> 
    </div2>
  </div1>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/introduction.xml
  
  Index: introduction.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: introduction.xml,v 1.1 2001/06/01 11:14:45 dims Exp $ -->
  <!--
   *************************************************************************
   * BEGINNING OF DOM INTRODUCTION                                         * 
   *************************************************************************
  -->
  <div1 id="Introduction">
    <head>What is the Document Object Model?</head>
  
    <orglist role="editors">
      <member>
        <name>Philippe Le H&eacute;garet</name>
        <affiliation>W3C</affiliation>
      </member>
      <member>
        <name>Lauren Wood</name>
        <affiliation>SoftQuad Software Inc., WG Chair</affiliation>
      </member>
      <member>
        <name>Jonathan Robie</name>
        <affiliation>Texcel (for DOM Level 1)</affiliation>
      </member>
    </orglist>
  
    <div2 id="ID-E7C3082">
      <head>Introduction</head>
      <p>The Document Object Model (DOM) is an application programming interface 
        (<termref def="dt-API">API</termref>) for valid <termref def="dt-HTML">HTML</termref> and
        well-formed <termref def="dt-XML">XML</termref> documents. It defines the logical structure of documents and
        the way a document is accessed and manipulated. In the DOM specification,
        the term "document" is used in the broad sense - increasingly, XML is being used as a
        way of representing many different kinds of information that may
        be stored in diverse systems, and much of this would traditionally
        be seen as data rather than as documents. Nevertheless, XML presents
        this data as documents, and the DOM may be used to manage this data.</p>
  
      <p>With the Document
        Object Model, programmers can build documents, navigate
        their structure, and add, modify, or delete elements and content.
        Anything found in an HTML or XML document can be accessed,
        changed, deleted, or added using the Document Object Model,
        with a few exceptions - in particular, the DOM <termref
        def="dt-interface">interfaces</termref> for
        the XML internal and external subsets have not yet been specified.</p>
      <p>As a W3C specification, one important objective for the Document
        Object Model is to provide a standard programming interface that
        can be used in a wide variety of environments and <termref
        def="dt-application">applications</termref>.
        The DOM is designed to be used with any programming
        language. In order to provide a precise, language-independent
        specification of the DOM interfaces, we have chosen to define
        the specifications in Object Management Group (OMG) IDL <bibref
        ref="OMGIDL"/>, as defined in the CORBA 2.3.1 specification <bibref
        ref="CORBA"/>. In addition to the OMG IDL specification, we provide
        <termref def="dt-lang-binding">language bindings</termref> for Java <bibref ref="Java"/> and ECMAScript <bibref
        ref="ECMAScript"/> (an industry-standard scripting
        language based on JavaScript <bibref ref="JavaScript"/> and JScript
        <bibref ref='JScript'/>).</p> 
      <note><p>OMG IDL is used only as a language-independent and
  	implementation-neutral way to specify <termref def="dt-interface">interfaces</termref>. Various other
  	IDLs could have been used (<bibref ref="COM"/>, <bibref
          ref="JavaIDL"/>, <bibref ref="MSIDL"/>, ...). In general, IDLs 
  	are designed for specific computing environments. The Document Object
  	Model can be implemented in any computing environment, and does not 
  	require the object binding runtimes generally associated with 
  	such IDLs.
        </p></note>
  
    </div2>
    <div2 id="ID-E7C30821">
      <head>What the Document Object Model is</head>
      <p>The DOM is a programming <termref def="dt-API">API</termref> for documents.
        It is based on an object structure that closely resembles the structure of the
        documents it <termref def="dt-model">models</termref>. For instance, consider this table, taken
        from an HTML document: </p>
      <eg role="code">
        &lt;TABLE&gt;
        &lt;TBODY&gt; 
        &lt;TR&gt; 
        &lt;TD&gt;Shady Grove&lt;/TD&gt;
        &lt;TD&gt;Aeolian&lt;/TD&gt; 
        &lt;/TR&gt; 
        &lt;TR&gt;
        &lt;TD&gt;Over the River, Charlie&lt;/TD&gt;        
        &lt;TD&gt;Dorian&lt;/TD&gt; 
        &lt;/TR&gt; 
        &lt;/TBODY&gt;
        &lt;/TABLE&gt;
      </eg> 
      <p>A graphical representation of the DOM of the example table is:
        <graphic source="./images/table.gif" alt="graphical representation of the
  	       DOM of the example table"/>
      </p>
      <p>In the DOM, documents have a logical
        structure which is very much like a tree; to be more precise, which is
        like a &quot;forest&quot; or &quot;grove&quot;,
        which can contain more than one tree. Each document contains zero or one
        doctype nodes, one root element node, and zero or more comments
  		or processing instructions; the root element serves as the root
  		of the element tree for the document. However, the DOM
        does not specify that documents must be <emph>implemented</emph> as a
        tree or a grove<!--but not the same as an sgml grove-->, nor
        does it specify how the relationships among objects be
        implemented. The DOM is a logical model that may be implemented in any
        convenient manner. In this
        specification, we use the term <emph>structure model</emph> to
        describe the tree-like representation of a document.
        We also use the term "tree" when referring to the arrangement of 
        those information items which can be reached by using "tree-walking" 
        methods; (this does not include attributes).
        One important property of DOM structure models
        is <emph>structural isomorphism</emph>: if any two Document
        Object Model implementations are used to create a representation
        of the same document, they will create the same structure model,
        in accordance with the XML Information Set <bibref ref="InfoSet"/>.</p>
      <note><p>There may be some variations depending on the parser being
  	used to build the DOM. For instance, the DOM may not contain
  	whitespaces in element content if the parser discards them.</p>
      </note>
        <p>The name &quot;Document Object Model&quot; was chosen because
        it is an &quot;<termref def="dt-object-model">object model</termref>&quot; in the traditional
        object oriented design sense: documents are modeled using
        objects, and the model encompasses not only the structure of a
        document, but also the behavior of a document and the objects
        of which it is composed. In other words, the nodes in the
        above diagram do not represent a data structure, they
        represent objects, which have functions and identity. As an
        object model, the DOM identifies:</p>
      <ulist>
        <item><p>the interfaces and objects used to represent and manipulate
  	  a document</p></item>
        <item><p>the semantics of these interfaces and objects - including
  	  both behavior and attributes</p></item>
        <item><p>the relationships and collaborations among these interfaces
  	  and objects</p></item>
      </ulist>
      
      <p>The structure of SGML documents has traditionally been
        represented by an abstract <termref def="dt-datamodel">data model</termref>, not by an object model.
        In an abstract <termref def="dt-datamodel">data model</termref>, the model is centered around the
        data. In object oriented programming languages, the data itself
        is encapsulated in objects that hide the data, protecting it
        from direct external manipulation. The functions associated with
        these objects determine how the objects may be manipulated, and
        they are part of the object model.</p>
  
    </div2>
    <div2 id="ID-E7C30822">
      <head>What the Document Object Model is not</head>
      <p>This section is designed to give a more precise understanding
        of the DOM by distinguishing it from other
        systems that may seem to be like it.</p>
      <ulist>
        <item><p>The Document Object Model is not a binary specification.
  	  DOM programs written in the same language binding will be
  	  source code compatible across platforms, but the DOM
  	  does not define any form of binary interoperability.</p></item>
        <item><p>The Document Object Model is not a way of persisting objects
  	  to XML or HTML. Instead of specifying how objects may be
  	  represented in XML, the DOM specifies how
  	  XML and HTML documents are represented as objects, so that
  	  they may be used in object oriented programs.</p></item>
        <item><p>The Document Object Model is not a set of data structures;
  	  it is an <termref def="dt-object-model">object model</termref> that specifies interfaces. Although this
  	  document contains diagrams showing parent/child relationships,
  	  these are logical relationships defined by the programming
  	  interfaces, not representations of any particular internal
  	  data structures.</p></item>
        <item><p>The Document Object Model does not define what information in a
  	  document is relevant or how information in a document is
  	  structured. For XML, this is specified by the W3C XML Information Set
  	  <bibref ref="InfoSet"/>. The DOM is simply an <termref def="dt-API">API</termref> to this information
  	  set.</p></item>
        <item><p>The Document Object Model, despite its name, is not a
  	  competitor to the Component Object Model (COM). COM, like
  	  CORBA, is a language independent way to specify interfaces and
  	  objects; the DOM is a set of interfaces and
  	  objects designed for managing HTML and XML documents. The DOM
  	  may be implemented using language-independent systems like COM
  	  or CORBA; it may also be implemented using language-specific
  	  bindings like the Java or ECMAScript bindings specified in
  	  this document.</p></item>
      </ulist>
    </div2>
    <div2 id="ID-E7C30823">
      <head>Where the Document Object Model came from</head>
      <p>The DOM originated as a specification to
        allow JavaScript scripts and Java programs to be portable among
        Web browsers.  "Dynamic HTML" was  the immediate ancestor of the
        Document Object Model, and it was originally thought of largely
        in terms of  browsers. However, when the DOM
        Working Group was formed at W3C, it was also joined by vendors in other
        domains, including HTML or XML editors and document
        repositories. Several of these vendors had worked with SGML
        before XML was developed; as a result, the DOM
        has been influenced by SGML Groves and the HyTime standard. Some
        of these vendors had also developed their own object models for
        documents in order to provide an API for SGML/XML
        editors or document repositories, and these object models have
        also influenced the DOM.</p>
    </div2>
    
  
    <div2 id="ID-E7C30824"><head>Entities and the DOM Core</head>
      <p>In the fundamental DOM interfaces, there are no objects representing
        entities. Numeric character references, and references to the
        pre-defined entities in HTML and XML, are replaced by the
        single character that makes up the entity's replacement.
        For example, in:   
      </p>
        <eg role="code">
          &lt;p&gt;This is a dog &amp;amp; a cat&lt;/p&gt;        
        </eg>
      <p>
        the "&amp;amp;" will be replaced by the character "&amp;", and the text
        in the P element will form a single continuous sequence of
        characters. Since numeric character references and pre-defined entities
        are not recognized as such in CDATA sections, or in the SCRIPT and STYLE
        elements in HTML, they are not replaced by the single character they
        appear to refer to. If the example above were enclosed in a CDATA
        section, the "&amp;amp;" would not be replaced by "&amp;"; neither would
        the &lt;p&gt; be recognized as a start tag. The representation of general
        entities, both internal and external, are defined within the
        extended (XML) interfaces of DOM Level 1 <bibref ref='DOM-Level-1'/>.</p>
      <p>
        Note: When a DOM representation of a document is serialized
        as XML or HTML text, applications will need to check each
        character in text data to see if it needs to be escaped
        using a numeric or pre-defined entity. Failing to do so
        could result in invalid HTML or XML. Also, <termref
        def="dt-implementation">implementations</termref> should be
        aware of the fact that serialization into a character encoding
        ("charset") that does not fully cover ISO 10646 may fail if there are
        characters in markup or CDATA sections that are not present in the
        encoding.</p>
    </div2>
  
    <div2 id="ID-Conformance">
      <head>Conformance</head>
      <p>
        This section explains the different levels of conformance to DOM Level 2.
        DOM Level 2 consists of 14 modules. It is possible to conform to DOM
        Level 2, or to a DOM Level 2 module.
      </p>
  
      <p>
        An implementation is DOM Level 2 conformant if it supports the Core
        module defined in this document (see <specref ref="ID-BBACDC08"/>). An
        implementation conforms to a DOM Level 2 module if it supports all the
        interfaces for that module and the associated semantics.
      </p>
      <p>
        Here is the complete list of DOM Level 2.0 modules and the features used
        by them.  Feature names are case-insensitive.
      </p>
  
      <glist>
        <gitem>
  	<label>Core module</label>
  	<def>
  	  <p>
  	    defines the feature <xspecref
  	    href="core.html#ID-BBACDC08">"Core"</xspecref>.
  	  </p>
  	</def>
        </gitem>
        <gitem>
  	<label>XML module</label>
  	<def>
  	  <p>
  	    defines the feature <xspecref
  	    href="core.html#ID-E067D597">"XML"</xspecref>.
  	  </p>
  	</def>
        </gitem>
        <gitem>
  	<label>HTML module</label>
  	<def>
  	  <p>defines the feature "HTML". (see <bibref ref="DOMHTML-inf"/>).</p>
  	  <note>
  	    <p>At time of publication, this DOM Level 2 module is not yet a W3C Recommendation.</p>
  	  </note>
  	</def>
        </gitem>
        <gitem>
  	<label>Views module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&views.latest.url;/views.html'>"Views"</xspecref> in <bibref ref="DOMViews-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>Style Sheets module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&style.latest.url;/stylesheets.html'>"StyleSheets"</xspecref>  in <bibref ref="DOMStyleSheets-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>CSS module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&style.latest.url;/css.html'>"CSS"</xspecref>  in <bibref ref="DOMCSS-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>CSS2 module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&style.latest.url;/css.html'>"CSS2"</xspecref>  in <bibref ref="DOMCSS-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>Events module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&events.latest.url;/events.html'>"Events"</xspecref>  in <bibref ref="DOMEvents-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>User interface Events module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&events.latest.url;/events.html'>"UIEvents"</xspecref>  in <bibref ref="DOMEvents-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>Mouse Events module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&events.latest.url;/events.html'>"MouseEvents"</xspecref>  in <bibref ref="DOMEvents-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>Mutation Events module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&events.latest.url;/events.html'>"MutationEvents"</xspecref>  in <bibref ref="DOMEvents-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>HTML Events module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&events.latest.url;/events.html'>"HTMLEvents"</xspecref>  in <bibref ref="DOMEvents-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>Range module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&traversal-range.latest.url;/ranges.html'>"Range"</xspecref>  in <bibref ref="DOMRange-inf"/>.</p>
  	</def>
        </gitem>
        <gitem>
  	<label>Traversal module</label>
  	<def>
  	  <p>defines the feature <xspecref
  					   href='&traversal-range.latest.url;/traversal.html'>"Traversal"</xspecref>  in <bibref ref="DOMTraversal-inf"/>.</p>
  	</def>
        </gitem>
      </glist>
      
      <p>
        A DOM implementation must not return <code>"true"</code> to the
        <code>hasFeature(feature, version)</code> <termref
        def="dt-method">method</termref> of the <code>DOMImplementation</code>
        interface for that feature unless the implementation conforms to that
        module. The <code>version</code> number for all features used in DOM
        Level 2.0 is "2.0".
      </p>
  
    </div2>
  
    <div2 id="ID-E7C30826"><head>DOM Interfaces and DOM Implementations</head>
  
      <p>The DOM specifies interfaces which may be used to manage XML or
        HTML documents. It is important to realize that these interfaces
        are an abstraction - much like "abstract base classes" in C++,
        they are a means of specifying a way to access and manipulate an
        application's internal representation of a document. Interfaces 
  	do not imply a particular concrete
        implementation. Each DOM application is free to maintain
        documents in any convenient representation, as long as the
        interfaces shown in this specification are supported. Some
        DOM implementations will be existing programs that use the
        DOM interfaces to access software written long before the
        DOM specification existed. Therefore, the DOM is designed
        to avoid implementation dependencies; in particular,</p>
      <olist>
        <item><p>Attributes defined in the IDL do not imply concrete
  	  objects which must have specific data members - in the
  	  language bindings, they are translated to a pair of
  	  get()/set() functions, not to a data member. Read-only
  	  attributes have only a get() function in the language
  	  bindings.  </p>
        </item>
        <item><p>DOM applications may provide additional interfaces
  	  and objects not found in this specification and still be
  	  considered DOM conformant.</p></item>
        <item><p>Because we specify interfaces and not the actual
  	  objects that are to be created, the DOM cannot know what
  	  constructors to call for an implementation.  In general,
  	  DOM users call the createX() methods on the Document
  	  class to create document structures, and DOM
  	  implementations create their own internal representations
  	  of these structures in their implementations of the
  	  createX() functions.
  	</p></item>
      </olist>
      <p>
        The Level 1 interfaces were extended to provide both Level 1 and Level 2
        functionality.
      </p>
      <p>
        DOM implementations in languages other than Java or ECMAScript may
        choose bindings that are appropriate and natural for their language and
        run time environment.  For example, some systems may need to create a
        Document2 class which inherits from Document and contains the new methods
        and attributes.
      </p>
      <p>DOM Level 2 does not specify multithreading mechanisms.</p>
    </div2>
  </div1>
  <!--
    *************************************************************************
    * END OF DOM INTRODUCTION                                               *
    *************************************************************************
  -->
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/attribute.xml
  
  Index: attribute.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:14:53 $ $Revision: 1.1 $ -->
  <!--[ Attr object description ]-->
  <interface name="Attr" inherits="Node" id="ID-637646024">
    <descr><p>
  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> 
    <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, <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>
  <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>
   
      <p>In XML, where the value of an attribute can contain entity references,
      the child nodes of the <code>Attr</code> node may be either
      <code>Text</code> or <code>EntityReference</code> nodes (when these are in
      use; see the description of <code>EntityReference</code> for
      discussion). 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 <termref def="dt-tokenized">tokenized</termref>
      types.
      </p>
    </descr> 
    <attribute type="DOMString" readonly="yes" name="name" id="ID-1112119403">
      <descr><p>Returns the name of this attribute. </p></descr>
    </attribute>
    <attribute type="boolean" readonly="yes" name="specified" id="ID-862529273">
      <descr><p>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 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).</p>
        <p>In summary:
  <ulist>
  
  <item><p> 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.
  </p></item>
  
  <item><p> 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.</p></item>
  
  <item><p> 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.
  </p></item>
  
            <item><p>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>.</p>
            </item>
  </ulist>
  </p>
  
  </descr>
    </attribute>
    <attribute type="DOMString" name="value" id="ID-221662474">
      <descr><p>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 
          <code>Element</code> interface.</p>
        <p>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> interface.</p></descr>
      <setraises>
        <exception name="DOMException">
  	<descr><p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is
  	    readonly.</p></descr>
        </exception>
      </setraises>
    </attribute>
  
    <!-- ****** DOM Level 2 additions ****** -->
    <attribute name="ownerElement" type="Element" readonly="yes"
      id="Attr-ownerElement" since="DOM Level 2">
      <descr><p>The <code>Element</code> node this attribute is attached to or
  	<code>null</code> if this attribute is not in use.</p></descr>
    </attribute>
  </interface>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/cdata-section.xml
  
  Index: cdata-section.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--[ CDATA Section ]-->
  <!-- $Date: 2001/06/01 11:14:54 $ $Revision: 1.1 $ -->
  <interface name="CDATASection" inherits="Text" id="ID-667469212">
    <descr><p>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><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 <emph>may</emph> 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>
      <p> The <code>CDATASection</code> interface inherits from the
        <code>CharacterData</code> interface through the <code>Text</code>
        interface. Adjacent <code>CDATASection</code> nodes are not merged by
        use of the <code>normalize</code> method of the <code>Node</code>
        interface.</p>
      <note>
        <p>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.</p>
        <p>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, 
  	making the task of ensuring that data is not corrupted on serialization
  	more difficult.</p> 
      </note>
    </descr>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/comment.xml
  
  Index: comment.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--[ Comment object description ]-->
  <!-- $Date: 2001/06/01 11:14:55 $ $Revision: 1.1 $ -->
  <interface name="Comment" inherits="CharacterData" id="ID-1728279322">
    <descr><p>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.</p></descr>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/data.xml
  
  Index: data.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--[ Data interface description ]-->
  <!-- $Date: 2001/06/01 11:14:56 $ $Revision: 1.1 $ -->
  <interface name="CharacterData" inherits="Node" id="ID-FF21A306">
    <descr><p>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
  	inherit the interface from it. All <code>offsets</code> in this
  	interface start from <code>0</code>.</p>
          <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 <termref
            def='dt-16-bit-unit'>16-bit units</termref> is used whenever
            necessary to indicate that indexing on CharacterData is done in
            16-bit units.</p>
  </descr> 
  
    <attribute type="DOMString" name="data" id="ID-72AB8359">
      <descr><p>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.</p>
      </descr>
      <setraises>
        <exception name="DOMException">
  	<descr><p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is
  	    readonly.</p></descr>
        </exception>
      </setraises>
      <getraises>
        <exception name="DOMException">
  	<descr><p>DOMSTRING_SIZE_ERR: Raised when it would return more
  	    characters than fit in a <code>DOMString</code> variable on the
  	    implementation platform.</p></descr>
        </exception>
      </getraises>
    </attribute>
    <attribute type="unsigned long" name="length"  readonly="yes" id="ID-7D61178C">
      <descr><p>The number of <termref def='dt-16-bit-unit'>16-bit
         units</termref> 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.</p>
      </descr>
    </attribute>
    <method name="substringData" id="ID-6531BCCF">
      <descr><p>Extracts a range of data from the node.</p></descr> 
      <parameters>
        <param name="offset" type="unsigned long" attr="in">
  	<descr><p>Start offset of substring to extract.</p></descr>
        </param>
        <param name="count" type="unsigned long" attr="in">
  	<descr><p>The number of 16-bit units to extract.</p></descr>
        </param>
      </parameters>
      <returns type="DOMString">
        <descr><p>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.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>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
  	    negative.</p>
          <p>DOMSTRING_SIZE_ERR: Raised if the specified range of text does
  	not fit into a <code>DOMString</code>.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="appendData" id="ID-32791A2F">
      <descr>
        <p>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.</p>
      </descr> 
      <parameters>
        <param name="arg" type="DOMString" attr="in">
  	<descr><p>The <code>DOMString</code> to append.</p></descr>
        </param>
      </parameters>
      <returns type="void">
        <descr><p></p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  	readonly.</p></descr>
        </exception>
      </raises>
    </method>
    <!-- NOTE -->
    <method name="insertData" id="ID-3EDB695F">
      <descr>
        <p>Insert a string at the specified <termref def='dt-16-bit-unit'>16-bit
            unit</termref> offset.</p>
      </descr> 
      <parameters>
        <param name="offset" type="unsigned long" attr="in">
  	<descr><p>The character offset at which to insert.</p></descr>
        </param>
        <param name="arg" type="DOMString" attr="in">
  	<descr><p>The <code>DOMString</code> to insert.</p></descr>
        </param>
      </parameters>
      <returns type="void">
  	 <descr><p></p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>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>.</p>
          <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="deleteData" id="ID-7C603781">
      <descr>
        <p>Remove a range of <termref def='dt-16-bit-unit'>16-bit units</termref>
           from the node. Upon success, <code>data</code> and <code>length</code>
  	 reflect the change.</p>
      </descr> 
      <parameters>
        <param name="offset" type="unsigned long" attr="in">
  	<descr><p>The offset from which to start removing.</p>
  	</descr>
        </param>
        <param name="count" type="unsigned long" attr="in">
  	<descr><p>The 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.</p></descr>
        </param>
      </parameters>
      <returns type="void">
        <descr><p></p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>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
  	    negative.</p>
  	<p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="replaceData" id="ID-E5CBA7FB">
      <descr>
        <p>Replace the characters starting at the specified <termref
          def='dt-16-bit-unit'>16-bit unit</termref> offset with the specified
  	string.</p>
      </descr> 
      <parameters>
        <param name="offset" type="unsigned long" attr="in">
  	<descr><p>The offset from which to start replacing.</p></descr>
        </param>
        <param name="count" type="unsigned long" attr="in">
  	<descr><p>The 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).</p></descr>
        </param>
        <param name="arg" type="DOMString" attr="in">
  	<descr><p>The <code>DOMString</code> with which the range must
  	    be replaced.</p></descr>
        </param>
      </parameters>
      <returns type="void">
        <descr><p></p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>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
  	    negative.</p>
          <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/doctype.xml
  
  Index: doctype.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--[ DocumentType object description ]-->
  <interface name="DocumentType" inherits="Node" id="ID-412266927">
    <descr><p>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>
      <p>The DOM Level 2 doesn't support editing <code>DocumentType</code>
        nodes.</p></descr> 
    <attribute readonly="yes" name="name" type="DOMString" id="ID-1844763134">
      <descr><p>The name of DTD; i.e., the name immediately
  	following the <code>DOCTYPE</code> keyword.</p></descr>
    </attribute>
    <attribute readonly="yes" name="entities" type="NamedNodeMap" id="ID-1788794630">
      <descr><p>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:
  <eg role="code">&lt;!DOCTYPE ex SYSTEM "ex.dtd" [
    &lt;!ENTITY foo "foo">
    &lt;!ENTITY bar "bar">
    &lt;!ENTITY bar "bar2">
    &lt;!ENTITY % baz "baz">
  ]>
  &lt;ex/></eg>  
  	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.</p>
          <p>The DOM Level 2 does not support editing entities, therefore
          <code>entities</code> cannot be altered in any way.</p>
      </descr>
    </attribute>
    <attribute readonly="yes" name="notations" type="NamedNodeMap" id="ID-D46829EF">
      <descr><p>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.</p>
          <p>The DOM Level 2 does not support editing notations, therefore
          <code>notations</code> cannot be altered in any way.</p></descr>
    </attribute>
  
    <!-- ****** DOM Level 2 additions ****** -->
    <attribute readonly="yes" name="publicId" type="DOMString"
      id="ID-Core-DocType-publicId" since="DOM Level 2">
      <descr><p>The public identifier of the external subset.</p></descr>
    </attribute>
    <attribute readonly="yes" name="systemId" type="DOMString"
      id="ID-Core-DocType-systemId" since="DOM Level 2">
      <descr><p>The system identifier of the external subset.</p></descr>
    </attribute>
    <attribute readonly="yes" name="internalSubset" type="DOMString"
      id="ID-Core-DocType-internalSubset" since="DOM Level 2">
      <descr><p>The internal subset as a string.</p>
         <note><p>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.</p>
         </note>
      </descr>
    </attribute>
  
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/document.xml
  
  Index: document.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--[ DocumentFragment object description ]-->    
  <!-- $Date: 2001/06/01 11:14:57 $ $Revision: 1.1 $ -->
  <interface name="DocumentFragment" inherits="Node" id="ID-B63ED1A3">
    <descr><p><code>DocumentFragment</code> is a "lightweight" or "minimal"
        <code>Document</code> object. It is very common to want to be able to
        extract a portion of a document's tree or to create a new fragment of a
        document. Imagine implementing a user command like cut or rearranging a
        document by moving fragments around. It is desirable to have an object
        which can hold such fragments and it is quite natural to use a Node for
        this purpose. While it is true that a <code>Document</code> object could
        fulfill this role, a <code>Document</code> object can potentially be a
        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>
      <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
        <code>DocumentFragment</code> being moved to the child list of this
        node.</p>
      <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
        <termref def="dt-well-formed">well-formed XML documents</termref> (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>
      <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 <termref def="dt-sibling">siblings</termref>; 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>.</p>
    </descr> 
  </interface>
  
  <!--[ Document object description ]-->    
  <interface name="Document" inherits="Node" id="i-Document">
    <descr><p>The <code>Document</code> interface represents the entire
        HTML or XML document. Conceptually, it is the <termref def="dt-root-node">root</termref> of the
        document tree, and provides the  primary access to the
        document's data.</p>
      <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>
    </descr>
    <attribute readonly="yes" name="doctype" type="DocumentType"
      id="ID-B63ED1A31">
      <descr><p>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. <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>.</p>
      </descr> 
    </attribute>
    <attribute readonly="yes" name="implementation" type="DOMImplementation"
      id="ID-1B793EBA">
      <descr><p>The <code>DOMImplementation</code> object that handles this
  	document. A DOM application may use objects from multiple 
          implementations.</p>
      </descr> 
    </attribute>
    
    <attribute readonly="yes" name="documentElement" type="Element"
      id="ID-87CD092">
      <descr><p>This is a <termref def="dt-convenience">convenience</termref> 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".</p></descr> 
    </attribute>
    <!-- ********** -->
    <method name="createElement" id="ID-2141741547">
      <descr><p>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.</p>
        <p>In addition, if there are known attributes with default values,
  	<code>Attr</code> nodes representing them are automatically created and
  	attached to the element.</p>
        <p>To create an element with a qualified name and namespace URI, use the
  	<code>createElementNS</code> method.</p>
      </descr>
      <parameters>
        <param name="tagName" type="DOMString" attr="in">
  	<descr><p>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.
          </p></descr>
        </param>
      </parameters>
      <returns type="Element">
        <descr><p>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>.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>INVALID_CHARACTER_ERR: Raised if the specified name contains
  	an illegal character.</p></descr>
        </exception>
      </raises>
    </method>
    
    <!-- ********** -->
    <method name="createDocumentFragment" id="ID-35CB04B5">
      <descr><p>Creates an empty <code>DocumentFragment</code> object.
        </p></descr>
      <parameters>
        <!-- No parameters -->
      </parameters>
      <returns type="DocumentFragment">
        <descr><p>A new <code>DocumentFragment</code>.</p></descr>
      </returns>
      <raises>
        <!-- Throws no exceptions -->
      </raises>
    </method>
  
    <!-- ********** -->
    <method name="createTextNode" id="ID-1975348127">
      <descr><p>Creates a <code>Text</code> node given the specified
  	string.</p></descr> 
      <parameters>
        <param name="data" type="DOMString" attr="in">
  	<descr><p>The data for the node.</p></descr>
        </param>
      </parameters>
      <returns type="Text">
        <descr><p>The new <code>Text</code> object.</p></descr>
      </returns>
      <raises>
        <!-- Throws no exceptions -->
      </raises>
    </method>
    <!-- ********** -->
    <method name="createComment" id="ID-1334481328">
      <descr><p>Creates a <code>Comment</code> node given the specified
  	string.</p></descr> 
      <parameters>
        <param name="data" type="DOMString" attr="in">
  	<descr><p>The data for the node.</p></descr>
        </param>
      </parameters>
      <returns type="Comment">
        <descr><p>The new <code>Comment</code> object.</p></descr>
      </returns>
      <raises>
        <!-- Throws no exceptions -->
      </raises>
    </method>
    <!-- ********** -->
    <method name="createCDATASection" id="ID-D26C0AF8">
      <descr><p>Creates a <code>CDATASection</code> node whose value  is
  	the specified string.</p></descr> 
      <parameters>
        <param name="data" type="DOMString" attr="in">
  	<descr><p>The data for the <code>CDATASection</code> contents.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="CDATASection">
        <descr><p>The new <code>CDATASection</code> object.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>NOT_SUPPORTED_ERR: Raised if this document is an HTML
  	document.</p></descr>
        </exception>
      </raises>
    </method>
    <!-- ********** -->
    <method name="createProcessingInstruction" id="ID-135944439">
      <descr><p>Creates a <code>ProcessingInstruction</code> node given
  	the specified name and data strings.</p></descr> 
      <parameters>
        <param name="target" type="DOMString" attr="in">
  	<descr><p>The target part of the processing instruction.</p></descr>
        </param>
        <param name="data" type="DOMString" attr="in">
  	<descr><p>The data for the node.</p></descr>
        </param>
      </parameters>
      <returns type="ProcessingInstruction">
        <descr><p>The new <code>ProcessingInstruction</code> object.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>INVALID_CHARACTER_ERR: Raised if the specified target
  	    contains an illegal character.</p>
  	<p>NOT_SUPPORTED_ERR: Raised if this document is an HTML document.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <!-- ********** -->
    <method name="createAttribute" id="ID-1084891198">
      <descr><p>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>setAttributeNode</code> method. </p>
        <p>To create an attribute with a qualified name and namespace URI, use
  	the <code>createAttributeNS</code> method.</p>
      </descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The name of the attribute.</p></descr>
        </param>
      </parameters>
      <returns type="Attr">
        <descr><p>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.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>INVALID_CHARACTER_ERR: Raised if the specified name contains
  	an illegal character.</p></descr>
        </exception>
      </raises>
    </method>
  
  
    <method name="createEntityReference" id="ID-392B75AE">
      <descr><p>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.</p>
  	<note><p>If any descendant of the <code>Entity</code> node has an
  	  unbound <termref def='dt-namespaceprefix'>namespace prefix</termref>,
  	  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 resolve namespace prefixes.</p></note>
      </descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The name of the entity to reference. </p>
          </descr>
        </param>
      </parameters>
      <returns type="EntityReference">
        <descr><p>The new <code>EntityReference</code> object.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>INVALID_CHARACTER_ERR: Raised if the specified name contains
  	an illegal character.</p>
  	<p>NOT_SUPPORTED_ERR: Raised if this document is an HTML document.</p>
  	</descr>
        </exception>
      </raises>
    </method>
  
    <!-- ********** -->
    <method name="getElementsByTagName" id="ID-A6C9094">
      <descr><p>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.
        </p></descr>
      <parameters>
        <param name="tagname" type="DOMString" attr="in">
  	<descr><p>The name of the tag to match on. The special value "*"
  	    matches all tags.</p></descr>
        </param>
      </parameters>
      <returns type="NodeList">
        <descr><p>A new <code>NodeList</code> object containing
  	  all the matched <code>Elements</code>.</p></descr>
      </returns>
      <raises>
        <!-- Throws no exceptions -->
      </raises>
    </method>
  
    <!-- ****** DOM Level 2 additions ****** -->
    <method name="importNode" id="Core-Document-importNode" since="DOM Level 2">
      <descr>
        <p>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.</p>
  
        <p>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 is not altered.</p>
  
        <p>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.
  
  	<glist>
  	  <gitem>
  	    <label>ATTRIBUTE_NODE</label>
  
  	    <def><p>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
  		<termref def="dt-descendant">descendants</termref> of the source <code>Attr</code> are recursively
  		imported and the resulting nodes reassembled to form the
  		corresponding subtree.</p>
  	      <p>Note that the <code>deep</code> parameter has no effect on 
  		<code>Attr</code> nodes; they always carry their children with
  		them when imported.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>DOCUMENT_FRAGMENT_NODE</label>
  	    <def><p>If the <code>deep</code> option was set to
                  <code>true</code>, the <termref def="dt-descendant">descendants</termref> 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>.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>DOCUMENT_NODE</label>
  	    <def><p><code>Document</code> nodes cannot be imported.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>DOCUMENT_TYPE_NODE</label>
  	    <def><p><code>DocumentType</code> nodes cannot be imported.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>ELEMENT_NODE</label>
  	    <def><p><emph>Specified</emph> 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 <emph>not</emph> 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
  		<termref def="dt-descendant">descendants</termref> of the source element are recursively imported
  		and the resulting nodes reassembled to form the corresponding
  		subtree.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>ENTITY_NODE</label>
  	    <def><p><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.</p>
  	      <p>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 <termref def="dt-descendant">descendants</termref> of the
  		the source <code>Entity</code> are recursively imported and the
  		resulting nodes reassembled to form the corresponding
  		subtree.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>ENTITY_REFERENCE_NODE</label>
  	    <def><p>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.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>NOTATION_NODE</label>
  	    <def><p><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.</p>
  	      <p>On import, the <code>publicId</code> and
  		<code>systemId</code> attributes are copied.</p>
  	      <p>Note that the <code>deep</code> parameter has no effect on 
  		<code>Notation</code> nodes since they never have any
  		children.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>PROCESSING_INSTRUCTION_NODE</label>
  	    <def><p>The imported node copies its <code>target</code> and
  		<code>data</code> values from those of the source node.</p>
  	    </def>
  	  </gitem>
  	  <gitem>
  	    <label>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</label>
  	    <def><p>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.</p>
  	    </def>
  	  </gitem>
  	</glist>
        </p>
      </descr>
      <parameters>
        <param name="importedNode" type="Node" attr="in">
  	<descr><p>The node to import.</p></descr>
        </param>
        <param name="deep" type="boolean" attr="in">
  	<descr><p>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 has no effect on
  	    <code>Attr</code>, <code>EntityReference</code>, and
  	    <code>Notation</code> nodes.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="Node">
        <descr><p>The imported node that belongs to this
  	  <code>Document</code>.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>NOT_SUPPORTED_ERR: Raised if the type of node being imported
  	    is not supported.</p></descr>
        </exception>
      </raises>
    </method>
  
    <method name="createElementNS" id="ID-DocCrElNS" since="DOM Level 2">
      <descr><p>Creates an element of the given qualified name and namespace
  	URI. HTML-only DOM implementations do not need to implement this
  	method.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the element to create.</p>
  	</descr>
        </param>
        <param name="qualifiedName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-qualifiedname'>qualified name</termref>
  	    of the element type to instantiate.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="Element">
        <descr><p>A new <code>Element</code> object with the following
  	  attributes:</p>
  	<table summary='Layout table: the first cell the name property,
                          the second cell contains his initial value'>
  	  <tbody>
  	    <tr><th>Attribute</th><th>Value</th></tr>
  	    <tr><td><code>Node.nodeName</code></td>
  	      <td><code>qualifiedName</code></td>
  	    </tr>
  	    <tr><td><code>Node.namespaceURI</code></td>
  	      <td><code>namespaceURI</code></td></tr>
  	    <tr><td><code>Node.prefix</code></td><td>prefix, extracted from
  		<code>qualifiedName</code>, or <code>null</code> if there is no
  		prefix</td></tr>
  	    <tr><td><code>Node.localName</code></td><td><termref
  		  def='dt-localname'>local name</termref>, extracted from
  		<code>qualifiedName</code></td></tr>
  	    <tr><td><code>Element.tagName</code></td>
  	      <td><code>qualifiedName</code></td>
  	    </tr>
  	  </tbody>
  	</table>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  	    contains an illegal character.</p>
  	  <p>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 "<loc href='&xml-ns;'>&xml-ns;</loc>" <bibref
  	      ref='Namespaces'/>.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="createAttributeNS" id="ID-DocCrAttrNS" since="DOM Level 2">
      <descr><p>Creates an attribute of the given qualified name and namespace
  	URI. HTML-only DOM implementations do not need to implement this
  	method.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the attribute to create.</p>
  	</descr>
        </param>
        <param name="qualifiedName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-qualifiedname'>qualified name</termref>
  	    of the attribute to instantiate.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="Attr">
        <descr><p>A new <code>Attr</code> object with the following
  	  attributes:</p>
  	<table summary='Layout table: the first cell the name property,
                          the second cell contains his initial value'>
  	  <tbody>
  	    <tr><th>Attribute</th><th>Value</th></tr>
  	    <tr><td><code>Node.nodeName</code></td><td>qualifiedName</td>
  	    </tr>
  	    <tr><td><code>Node.namespaceURI</code></td>
  	      <td><code>namespaceURI</code></td></tr>
  	    <tr><td><code>Node.prefix</code></td><td>prefix, extracted from
  		<code>qualifiedName</code>, or <code>null</code> if there is no
  		prefix</td></tr>
  	    <tr><td><code>Node.localName</code></td><td><termref
  		  def='dt-localname'>local name</termref>, extracted from
  		<code>qualifiedName</code></td></tr>
  	    <tr><td><code>Attr.name</code></td>
  	      <td><code>qualifiedName</code></td></tr>
  	    <tr><td><code>Node.nodeValue</code></td>
  	      <td>the empty string</td></tr>
  	  </tbody>
  	</table>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  	    contains an illegal character.</p>
  	  <p>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>, if the 
              <code>qualifiedName</code> has a prefix that is
  	    "xml" and the <code>namespaceURI</code> is different from
  	    "<loc href='&xml-ns;'>&xml-ns;</loc>", or if the
  	    <code>qualifiedName</code> is "xmlns" and the
  	    <code>namespaceURI</code> is different from
  	    "<loc href='&xmlns-ns;'>&xmlns-ns;</loc>".</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="getElementsByTagNameNS" id="ID-getElBTNNS" since="DOM Level 2">
      <descr><p>Returns a <code>NodeList</code> of all the <code>Elements</code>
  	with a given <termref def='dt-localname'>local name</termref> and
  	namespace URI in the order in which they are encountered in a
  	preorder traversal of the <code>Document</code> tree.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the elements to match on. The special value "*" matches all
  	    namespaces.</p>
  	</descr>
        </param>
        <param name="localName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-localname'>local name</termref> of the
  	    elements to match on. The special value "*" matches all local
  	    names.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="NodeList">
        <descr><p>A new <code>NodeList</code> object containing all the matched
  	  <code>Elements</code>.</p></descr>
      </returns>
      <raises>
        <!-- Throws no exceptions -->
      </raises>
    </method>
    <method name="getElementById" id="ID-getElBId" since="DOM Level 2">
      <descr><p>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>.
          <note><p>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>.</p></note></p></descr>
      <parameters>
        <param name="elementId" type="DOMString" attr="in">
  	<descr><p>The unique <code>id</code> value for an element.</p></descr>
        </param>
      </parameters>
      <returns type="Element">
        <descr><p>The matching element.</p></descr>
      </returns>
      <raises>
        <!-- Throws no exceptions -->
      </raises>
    </method>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/dom.xml
  
  Index: dom.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--[ DOMImplementation object description ]-->    
  <!-- $Date: 2001/06/01 11:14:57 $ $Revision: 1.1 $ -->
  <interface name="DOMImplementation" id="ID-102161490">
    <descr><p>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>
    </descr>
    <method name="hasFeature" id="ID-5CED94D7">
  	  <descr><p>Test if the DOM implementation implements a
  	   specific feature.</p></descr> 
      <parameters>
        <param name="feature" type="DOMString" attr="in">
  	<descr><p>The 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 <specref ref="ID-Conformance"/> section. The name must be an
  	    <termref def="dt-XML-name">XML name</termref>. 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".</p></descr>
        </param>
        <param name="version" type="DOMString" attr="in">
  	<descr><p>This 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>.</p></descr>
        </param>
      </parameters>
      <returns type="boolean">
        <descr><p><code>true</code> if the feature is implemented in the
  	  specified version, <code>false</code> otherwise.</p></descr>
      </returns>
      <raises>
        <!-- Throws no exceptions -->
      </raises>
    </method>
  
    <!-- ****** DOM Level 2 additions ****** -->
    <method name="createDocumentType" id="Level-2-Core-DOM-createDocType"
      since="DOM Level 2">
      <descr><p>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>.</p>
  	<p>HTML-only DOM implementations do not need to
  	  implement this method.</p>
      </descr>
      <parameters>
        <param name="qualifiedName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-qualifiedname'>qualified name</termref>
  	    of the document type to be created. </p>
  	</descr>
        </param>
        <param name="publicId" type="DOMString" attr="in">
  	<descr><p>The external subset public identifier.</p>
  	</descr>
        </param>
        <param name="systemId" type="DOMString" attr="in">
  	<descr><p>The external subset system identifier.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="DocumentType">
        <descr><p>A new <code>DocumentType</code> node with
  	  <code>Node.ownerDocument</code> set to <code>null</code>.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  	    contains an illegal character.</p>
  	  <p>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
  	    malformed.</p>
  	</descr>
        </exception>
      </raises>
    </method>
  
    <method name="createDocument" id="Level-2-Core-DOM-createDocument"
      since="DOM Level 2">
      <descr><p>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.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the document element to create.</p>
  	</descr>
        </param>
        <param name="qualifiedName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-qualifiedname'>qualified name</termref>
  	    of the document element to be created.</p>
  	</descr>
        </param>
        <param name="doctype" type="DocumentType" attr="in">
  	<descr><p>The type of document to be created or <code>null</code>.</p>
  	  <p>When <code>doctype</code> is not <code>null</code>, its
  	    <code>Node.ownerDocument</code> attribute is set to the document
  	    being created.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="Document">
        <descr><p>A new <code>Document</code> object.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  	    contains an illegal character.</p>
  	  <p>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 "<loc href='&xml-ns;'>&xml-ns;</loc>" <bibref
  	      ref='Namespaces'/>.</p>
  	  <p>WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already
  	    been used with a different document or was created from a different
              implementation.</p>
  	</descr>
        </exception>
      </raises>
    </method>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/element.xml
  
  Index: element.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:14:58 $ $Revision: 1.1 $ -->
  <!--[ Element object description ]-->
  <interface name="Element" inherits="Node" id="ID-745549614">
    <descr><p>The <code>Element</code> interface represents an <termref def="dt-element">element</termref> 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 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 <code>Attr</code>
      object by name or an attribute value by name. In XML, where an attribute
      value may contain entity references, an <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 <termref def="dt-convenience">convenience</termref>.</p>
  
      <note><p>In DOM Level 2, the method <code>normalize</code> is
  	inherited from the <code>Node</code> interface where it was
  	moved.</p></note>
      </descr>
  
  
    <attribute type="DOMString" name="tagName" readonly="yes" id="ID-104682815">
      <descr><p>The name of the element. For example, in:  
  <eg role="code">
  &lt;elementExample id="demo"&gt; 
          ... 
  &lt;/elementExample&gt; ,
  </eg>
       <code>tagName</code> has 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 document. </p>
      </descr>
    </attribute>
  
    <method name="getAttribute" id="ID-666EE0F9">
      <descr><p>Retrieves an attribute value by name.</p></descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The name of the attribute to retrieve.</p></descr>
        </param>
      </parameters>
      <returns type="DOMString">
        <descr><p>The <code>Attr</code> value as a string, or the empty string if
          that attribute does not have a specified or default value.</p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <method name="setAttribute" id="ID-F68F082">
      <descr><p>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.</p>
        <p>To set an attribute with a qualified name and namespace URI, use
  	the <code>setAttributeNS</code> method.</p>
      </descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The name of the attribute to create or alter.</p></descr>
        </param>
        <param name="value" type="DOMString" attr="in">
  	<descr><p>Value to set in string form.</p></descr>
        </param>
      </parameters>
      <returns type="void">
          <descr><p></p></descr>      
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>INVALID_CHARACTER_ERR: Raised if the specified name contains
  	an illegal character.</p>
  	<p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="removeAttribute" id="ID-6D6AC0F9">
      <descr><p>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.</p>
        <p>To remove an attribute by local name and namespace URI, use
  	the <code>removeAttributeNS</code> method.</p>
      </descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The name of the attribute to remove.</p></descr>
        </param>
      </parameters>
      <returns type="void">
          <descr><p></p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  	readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="getAttributeNode" id="ID-217A91B8">
      <descr><p>Retrieves an attribute node by name.</p>
        <p>To retrieve an attribute node by qualified name and namespace URI, use
  	the <code>getAttributeNodeNS</code> method.</p>
      </descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The name (<code>nodeName</code>) of the attribute to
  	  retrieve.</p></descr>
        </param>
      </parameters>
      <returns type="Attr">
        <descr><p>The <code>Attr</code> node with the specified
          name (<code>nodeName</code>) or <code>null</code> if there is no such
  	attribute.</p></descr> 
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <method name="setAttributeNode" id="ID-887236154">
      <descr><p>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.</p>
        <p>To add a new attribute node with a qualified name and namespace URI,
  	use the <code>setAttributeNodeNS</code> method.</p>
       </descr>
      <parameters>
        <param name="newAttr" type="Attr" attr="in">
  	<descr><p>The <code>Attr</code> node to add to the attribute
  	    list.</p></descr>
        </param>
      </parameters>
      <returns type="Attr">
           <descr><p>If the <code>newAttr</code> attribute replaces
  	   an existing attribute, the replaced <code>Attr</code> node is
  	   returned, otherwise <code>null</code> is returned.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was
  	created from a different document than the one that created the
  	element.</p>
          <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>
  	<p>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.</p></descr>
        </exception>
      </raises>
    </method>
    <method name="removeAttributeNode" id="ID-D589198">
      <descr><p>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.</p>
      </descr>
      <parameters>
        <param name="oldAttr" type="Attr" attr="in">
  	<descr><p>The <code>Attr</code> node to remove from the attribute
  	    list.</p></descr>
        </param>
      </parameters>
      <returns type="Attr">
        <descr><p>The <code>Attr</code> node that was removed.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  	readonly.</p>
          <p>NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an attribute of
  	the element.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="getElementsByTagName" id="ID-1938918D">
      <descr><p>Returns a <code>NodeList</code> of all <termref def="dt-descendant">descendant</termref>
          <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.</p></descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The name of the tag to match on. The special value "*"
  	    matches all tags.</p></descr>
        </param>
      </parameters>
      <returns type="NodeList">
        <descr><p>A list of matching <code>Element</code> nodes.</p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
  
    <!-- ****** DOM Level 2 additions ****** -->
    <method name="getAttributeNS" id="ID-ElGetAttrNS" since="DOM Level 2">
      <descr><p>Retrieves an attribute value by local name and namespace
  	URI. HTML-only DOM implementations do not need to implement this
  	method.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the attribute to retrieve.</p>
  	</descr>
        </param>
        <param name="localName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-localname'>local name</termref> of the
  	    attribute to retrieve.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="DOMString">
        <descr><p>The <code>Attr</code> value as a string, or the empty string if
          that attribute does not have a specified or default value.</p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <method name="setAttributeNS" id="ID-ElSetAttrNS" since="DOM Level 2">
      <descr><p>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.</p>
        <p>HTML-only DOM implementations do not need to implement this
          method.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the attribute to create or alter.</p>
  	</descr>
        </param>
        <param name="qualifiedName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-qualifiedname'>qualified name</termref>
  	    of the attribute to create or alter.</p>
  	</descr>
        </param>
        <param name="value" type="DOMString" attr="in">
  	<descr><p>The value to set in string form.</p></descr>
        </param>
      </parameters>
      <returns type="void">
        <descr><p></p></descr>      
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
  	    contains an illegal character.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>
  	  <p>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>, if the 
              <code>qualifiedName</code> has a prefix that is
  	    "xml" and the <code>namespaceURI</code> is different from
  	    "<loc href='&xml-ns;'>&xml-ns;</loc>", or if the
  	    <code>qualifiedName</code> is "xmlns" and the
  	    <code>namespaceURI</code> is different from
  	    "<loc href='&xmlns-ns;'>&xmlns-ns;</loc>".</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="removeAttributeNS" id="ID-ElRemAtNS" since="DOM Level 2">
      <descr><p>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.</p>
  	<p>HTML-only DOM implementations do not need to implement this
  	  method.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the attribute to remove.</p>
  	</descr>
        </param>
        <param name="localName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-localname'>local name</termref> of the
  	    attribute to remove.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="void">
        <descr><p></p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is
  	    readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="getAttributeNodeNS" id="ID-ElGetAtNodeNS" since="DOM Level 2">
      <descr><p>Retrieves an <code>Attr</code> node by local name and namespace
  	URI. HTML-only DOM implementations do not need to implement this
  	method.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the attribute to retrieve.</p>
  	</descr>
        </param>
        <param name="localName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-localname'>local name</termref> of the
  	    attribute to retrieve.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="Attr">
        <descr><p>The <code>Attr</code> node with the specified attribute local
  	  name and namespace URI or <code>null</code> if there is no such
  	  attribute.</p>
        </descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <method name="setAttributeNodeNS" id="ID-ElSetAtNodeNS" since="DOM Level 2">
      <descr><p>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.</p>
  	<p>HTML-only DOM implementations do not need to implement this
  	  method.</p>
      </descr>
      <parameters>
        <param name="newAttr" type="Attr" attr="in">
  	<descr><p>The <code>Attr</code> node to add to the attribute list.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="Attr">
        <descr><p>If the <code>newAttr</code> attribute replaces an existing
  	  attribute with the same <termref def='dt-localname'>local
  	    name</termref> and <termref def='dt-namespaceURI'>namespace
  	    URI</termref>, the replaced <code>Attr</code> node is
  	  returned, otherwise <code>null</code> is returned.</p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr><p>WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was
  	    created from a different document than the one that created the
  	    element.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>
  	  <p>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.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="getElementsByTagNameNS" id="ID-A6C90942" since="DOM Level 2">
      <descr><p>Returns a <code>NodeList</code> of all the <termref def="dt-descendant">descendant</termref>
          <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.</p>
  	<p>HTML-only DOM implementations do not need to implement this
  	  method.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the elements to match on. The special value "*" matches all
  	    namespaces.</p>
  	</descr>
        </param>
        <param name="localName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-localname'>local name</termref> of the
  	    elements to match on. The special value "*" matches all local
  	    names.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="NodeList">
        <descr><p>A new <code>NodeList</code> object containing all the matched
  	  <code>Elements</code>.</p>
        </descr>
      </returns>
      <raises>
        <!-- Throws no exceptions -->
      </raises>
    </method>
    <method name="hasAttribute" id="ID-ElHasAttr" since="DOM Level 2">
      <descr><p>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.</p>
      </descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The name of the attribute to look for.</p></descr>
        </param>
      </parameters>
      <returns type="boolean">
        <descr><p><code>true</code> if an attribute with the given name is
          specified on this element or has a default value, <code>false</code>
          otherwise.</p>
        </descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <method name="hasAttributeNS" id="ID-ElHasAttrNS" since="DOM Level 2">
      <descr><p>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.</p>
      </descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the attribute to look for.</p>
  	</descr>
        </param>
        <param name="localName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-localname'>local name</termref> of the
  	    attribute to look for.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="boolean">
        <descr><p><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.</p>
        </descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
  </interface>
        
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/entity-reference.xml
  
  Index: entity-reference.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <interface name="EntityReference" inherits="Node" id="ID-11C98490">
    <descr><p><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 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 <termref def='dt-namespaceprefix'>namespace
        prefix</termref>. In such a case, because the namespace prefix resolution
        depends on where the entity reference is, the <termref def="dt-descendant">descendants</termref> of the
        <code>EntityReference</code> node may be bound to different
        <termref def='dt-namespaceURI'>namespace URIs</termref>.</p>
      <p>As for <code>Entity</code> nodes, <code>EntityReference</code> nodes and
        all their <termref def="dt-descendant">descendants</termref> are
        <termref def="dt-readonly-node">readonly</termref>.</p>
    </descr>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/entity.xml
  
  Index: entity.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <interface name="Entity" inherits="Node" id="ID-527DCFF2">
    <descr><p>This interface represents an entity, either parsed or
        unparsed, in an XML document. Note that this models the entity
        itself <emph>not</emph> the entity declaration. <code>Entity</code>
        declaration modeling has been left for a later Level of the DOM
        specification.</p> 
      <p>The <code>nodeName</code> attribute that is inherited from
        <code>Node</code> contains the name of the entity.</p> 
      <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>
      <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> node's child list represents the structure of
        that replacement text. Otherwise, the child list is empty.</p>
      <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. <code>Entity</code> nodes and all their
        <termref def="dt-descendant">descendants</termref> are <termref def="dt-readonly-node">readonly</termref>.</p>
      <p>An <code>Entity</code> node does not have any parent.</p>
      <note><p>If the entity contains an unbound <termref
         def='dt-namespaceprefix'>namespace prefix</termref>, 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> 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></note>
    </descr>
    <attribute readonly="yes" name="publicId" type="DOMString" id="ID-D7303025">
      <descr><p>The public identifier associated with the entity, if
  	specified. If the public identifier was not specified, this
  	is <code>null</code>.</p>
      </descr>
    </attribute>
    <attribute readonly="yes" name="systemId" type="DOMString" id="ID-D7C29F3E">
      <descr><p>The system identifier associated with the entity, if
  	specified. If the system identifier was not specified, this
  	is <code>null</code>.</p>
      </descr>
    </attribute>
    <attribute readonly="yes" name="notationName" type="DOMString" id="ID-6ABAEB38">
      <descr><p>For unparsed entities, the name of the notation for the
  	entity. For parsed entities, this is <code>null</code>. </p>
      </descr> 
    </attribute>
  </interface>
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/exceptions.xml
  
  Index: exceptions.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:14:58 $ $Revision: 1.1 $ -->
  <!--[ Exceptions description ]-->
  <exception name="DOMException"  id="ID-17189187">
    <descr>
      <p>DOM operations only raise exceptions in &quot;exceptional&quot;
        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>
      <p>Implementations should raise other exceptions under other circumstances.
      For example, implementations should raise an implementation-dependent 
      exception if a <code>null</code> argument is passed. </p>
      <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.</p>
    </descr>
    <component id="ID-146F692A" name="code">
      <typename>unsigned short</typename>
    </component>
  </exception>
  <group id="ID-258A00AF" name="ExceptionCode">
    <descr><p>An integer indicating the type of error generated.</p>
      <note><p>Other numeric codes are reserved for W3C for possible future
  	use.</p></note>
    </descr>
    <constant name="INDEX_SIZE_ERR" type="unsigned short" value="1">
      <descr><p>If index or size is negative, or greater than the 
          allowed value</p></descr>
    </constant>
    <constant name="DOMSTRING_SIZE_ERR" type="unsigned short" value="2">
      <descr><p>If the specified range of text does not fit into a
  	DOMString</p></descr>
    </constant>
    <constant name="HIERARCHY_REQUEST_ERR" type="unsigned short" value="3">
      <descr><p>If any node is inserted somewhere it doesn't belong</p></descr>
    </constant>
    <constant name="WRONG_DOCUMENT_ERR" type="unsigned short" value="4">
      <descr><p>If a node is used in a different document than the one that 
         created it (that doesn't support it)</p></descr>
    </constant>
    <constant name="INVALID_CHARACTER_ERR" type="unsigned short" value="5">
      <descr><p>If an invalid or illegal character is specified, such as in a
  	name. See <xspecref href="&xml-spec;#NT-Char">production 2</xspecref>
          in the XML specification for the definition of a legal character, and 
          <xspecref href="&xml-spec;#NT-Name">production 5</xspecref>
          for the definition of a legal name character.</p></descr></constant>
    <constant name="NO_DATA_ALLOWED_ERR" type="unsigned short" value="6">
      <descr><p>If data is specified for a node which does not support
  	data</p></descr></constant>
    <constant name="NO_MODIFICATION_ALLOWED_ERR" type="unsigned short" value="7">
      <descr><p>If an attempt is made to modify an object where modifications are
  	not allowed</p></descr></constant>
    <constant name="NOT_FOUND_ERR" type="unsigned short" value="8">
      <descr><p>If an attempt is made to reference a node in a context where it
  	does not exist</p></descr></constant>
    <constant name="NOT_SUPPORTED_ERR" type="unsigned short" value="9">
      <descr><p>If the implementation does not support the requested
  	type of object or operation.</p></descr></constant>
    <constant name="INUSE_ATTRIBUTE_ERR" type="unsigned short" value="10">
      <descr><p>If an attempt is made to add an attribute that is already in use
  	elsewhere</p></descr></constant>
    <!-- ****** DOM Level 2 additions ****** -->
    <constant name="INVALID_STATE_ERR" type="unsigned short" value="11"
      since="DOM Level 2">
      <descr><p>If an attempt is made to use an object that is not, or is no
  	longer, usable.</p></descr></constant>
    <constant name="SYNTAX_ERR" type="unsigned short" value="12"
      since="DOM Level 2">
      <descr><p>If an invalid or illegal string is specified.</p></descr></constant>
    <constant name="INVALID_MODIFICATION_ERR" type="unsigned short" value="13"
      since="DOM Level 2">
      <descr><p>If an attempt is made to modify the type of the underlying
  	object.</p></descr></constant>
    <constant name="NAMESPACE_ERR" type="unsigned short" value="14"
      since="DOM Level 2">
      <descr><p>If an attempt is made to create or change an object in a way
        which is incorrect with regard to namespaces.</p></descr>
    </constant>
    <constant name="INVALID_ACCESS_ERR" type="unsigned short" value="15"
      since="DOM Level 2">
      <descr><p>If a parameter or an operation is not supported by the
        underlying object.</p></descr>
    </constant>
  </group>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/named-node-map.xml
  
  Index: named-node-map.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:14:59 $ $Revision: 1.1 $ -->
  <!--[ NamedNodeMap object description ]-->
  <interface name="NamedNodeMap" id="ID-1780488922">
    <descr><p>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>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>, and does not imply that the DOM specifies an
        order to these Nodes. </p>
      <p><code>NamedNodeMap</code> objects in the DOM are <termref
          def="td-live">live</termref>.</p>
    </descr>
    <method name="getNamedItem" id="ID-1074577549">
      <descr><p>Retrieves a node specified by name.</p></descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The <code>nodeName</code> of a node to retrieve.</p></descr>
        </param>
      </parameters>
      <returns type="Node">
        <descr><p>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.</p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <method name="setNamedItem" id="ID-1025163788">
      <descr>
        <p>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.</p>
        <p>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.</p>
      </descr>
      <parameters>
        <param name="arg" type="Node" attr="in">
  	<descr><p>A node to store in this map. The node will later be
  	    accessible using the value of its <code>nodeName</code>
  	    attribute.</p></descr>
        </param>
      </parameters>
      <returns type="Node">
        <descr><p>If the new <code>Node</code> replaces an existing node the
        replaced <code>Node</code> is returned, otherwise <code>null</code> is
        returned.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created
  	from a different document than the one that created this map.</p>
          <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</p>
  	<p>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.</p></descr>
        </exception>
      </raises>
    </method>
    <method name="removeNamedItem" id="ID-D58B193">
      <descr><p>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.</p></descr>
      <parameters>
        <param name="name" type="DOMString" attr="in">
  	<descr><p>The <code>nodeName</code> of the node to remove.</p>
          </descr>
        </param>
      </parameters>
      <returns type="Node">
         <descr><p>The node removed from this map if a node with such a name
  	  exists.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>NOT_FOUND_ERR: Raised if there is no node named
  	<code>name</code> in this map.</p>
          <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    <method name="item" id="ID-349467F9">
      <descr><p>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>.</p>
      </descr> 
      <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr><p>Index into this map.</p></descr>
        </param>
      </parameters>
      <returns type="Node">
        <descr><p>The node at the <code>index</code>th position in the map, or
  	  <code>null</code> if that is not a valid index.</p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <attribute type="unsigned long" readonly = "yes" name="length"
      id="ID-6D0FB19E">
      <descr><p>The number of nodes in this map. The range of valid child node
  	indices is <code>0</code> to <code>length-1</code>
  	inclusive. </p></descr>
    </attribute>
    <method name="getNamedItemNS" id="ID-getNamedItemNS" since="DOM Level 2">
      <descr><p>Retrieves a node specified by local name and namespace
  	URI. HTML-only DOM implementations do not need to implement this
  	method.</p></descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the node to retrieve.</p>
  	</descr>
        </param>
        <param name="localName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-localname'>local name</termref> of the
  	    node to retrieve.</p></descr>
        </param>
      </parameters>
      <returns type="Node">
        <descr><p>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.</p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <method name="setNamedItemNS" id="ID-setNamedItemNS" since="DOM Level 2">
      <descr>
        <p>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.</p>
        <p>HTML-only DOM implementations do not need to implement this
  	method.</p>
      </descr>
      <parameters>
        <param name="arg" type="Node" attr="in">
  	<descr><p>A 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.</p></descr>
        </param>
      </parameters>
      <returns type="Node">
        <descr><p>If the new <code>Node</code> replaces an existing node the
  	  replaced <code>Node</code> is returned, otherwise <code>null</code>
  	  is returned.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created
  	from a different document than the one that created this map.</p>
          <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</p>
  	<p>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.</p></descr>
        </exception>
      </raises>
    </method>
    <method name="removeNamedItemNS" id="ID-removeNamedItemNS"
      since="DOM Level 2">
      <descr><p>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.</p>
        <p>HTML-only DOM implementations do not need to implement this
  	method.</p></descr>
      <parameters>
        <param name="namespaceURI" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
  	    the node to remove.</p>
  	</descr>
        </param>
        <param name="localName" type="DOMString" attr="in">
  	<descr><p>The <termref def='dt-localname'>local name</termref> of the
  	    node to remove.</p>
          </descr>
        </param>
      </parameters>
      <returns type="Node">
         <descr><p>The node removed from this map if a node with such a local
  	  name and namespace URI exists.</p></descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr><p>NOT_FOUND_ERR: Raised if there is no node with the specified
  	    <code>namespaceURI</code> and <code>localName</code> in this
  	    map.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
  </interface>
        
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/node-list.xml
  
  Index: node-list.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:14:59 $ $Revision: 1.1 $ -->
  <!--[ NodeList object description ]-->
  <interface name="NodeList" id="ID-536297177">
    <descr><p>The <code>NodeList</code> interface provides the abstraction of an
        ordered collection of nodes, without defining or constraining how this
        collection is implemented. <code>NodeList</code> objects in the DOM are
        <termref def="td-live">live</termref>.</p>
      <p>The items in the <code>NodeList</code> are accessible via an
        integral index, starting from 0.</p>
    </descr>
     <method name="item" id="ID-844377136">
      <descr><p>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>.</p></descr> 
      <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr><p>Index into the collection.</p></descr>
        </param>
      </parameters>
      <returns type="Node">
        <descr><p>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.</p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    <attribute type="unsigned long" readonly = "yes" name="length" id="ID-203510337">
      <descr><p>The number of nodes in the list. The range of valid child node
  	indices is 0 to <code>length-1</code> inclusive. </p></descr>
    </attribute>
  </interface>
        
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/node.xml
  
  Index: node.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:15:00 $ $Revision: 1.1 $ -->
  <!--[ Node object description ]-->
  <interface name="Node" id="ID-1950641247"> 
    <descr>
  	 <p>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> 
  	 <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 may contain additional and more
  		convenient mechanisms to get and set the relevant information.</p> 
    </descr> 
    <group id="ID-1841493061" name="NodeType"> 
  	 <descr>
  		<p>An integer indicating which type of node this is.</p> 
  		<note>
  		  <p>Numeric codes up to 200 are reserved to W3C for possible future
  			 use.</p>
  		</note> 
  	 </descr> 
  	 <constant name="ELEMENT_NODE" type="unsigned short" value="1"> 
  		<descr>
  		  <p>The node is an <code>Element</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="ATTRIBUTE_NODE" type="unsigned short" value="2"> 
  		<descr>
  		  <p>The node is an <code>Attr</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="TEXT_NODE" type="unsigned short" value="3"> 
  		<descr>
  		  <p>The node is a <code>Text</code> node.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="CDATA_SECTION_NODE" type="unsigned short" value="4"> 
  		<descr>
  		  <p>The node is a <code>CDATASection</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="ENTITY_REFERENCE_NODE" type="unsigned short" value="5"> 
  		<descr>
  		  <p>The node is an <code>EntityReference</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="ENTITY_NODE" type="unsigned short" value="6"> 
  		<descr>
  		  <p>The node is an <code>Entity</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="PROCESSING_INSTRUCTION_NODE" type="unsigned short"
  	  value="7"> 
  		<descr>
  		  <p>The node is a <code>ProcessingInstruction</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="COMMENT_NODE" type="unsigned short" value="8"> 
  		<descr>
  		  <p>The node is a <code>Comment</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="DOCUMENT_NODE" type="unsigned short" value="9"> 
  		<descr>
  		  <p>The node is a <code>Document</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="DOCUMENT_TYPE_NODE" type="unsigned short" value="10"> 
  		<descr>
  		  <p>The node is a <code>DocumentType</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="DOCUMENT_FRAGMENT_NODE" type="unsigned short" value="11"> 
  		<descr>
  		  <p>The node is a <code>DocumentFragment</code>.</p>
  		</descr> 
  	 </constant> 
  	 <constant name="NOTATION_NODE" type="unsigned short" value="12"> 
  		<descr>
  		  <p>The node is a <code>Notation</code>.</p>
  		</descr> 
  	 </constant> 
    </group> 
    <p>The values of <code>nodeName</code>, <code>nodeValue</code>, and <code>attributes</code> vary according to the node type as follows: 
    <table summary='Layout table:
                    the first cell contains the name of the interface,
                    the second contains the value of the nodeName attribute for this interface,
                    the third contains the value of the nodeValue attribute for this interface and
                    the fourth contains the value of the attributes attribute for this interface'
           border="1"> 
  	 <tbody>	
  		<tr> 
  		  <th>Interface</th> 
  		  <th>nodeName</th> 
  		  <th>nodeValue</th> 
  		  <th>attributes</th>	
  		</tr>	
  		<tr> 
  		  <td>Attr</td> 
  		  <td>name of attribute</td> 
  		  <td>value of attribute</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>CDATASection</td> 
  		  <td>#cdata-section</td> 
  		  <td>content of the CDATA Section</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>Comment</td> 
  		  <td>#comment</td> 
  		  <td>content of the comment</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>Document</td> 
  		  <td>#document</td> 
  		  <td>null</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>DocumentFragment</td> 
  		  <td>#document-fragment</td> 
  		  <td>null</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>DocumentType</td> 
  		  <td>document type name</td> 
  		  <td>null</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>Element</td> 
  		  <td>tag name</td> 
  		  <td>null</td> 
  		  <td>NamedNodeMap</td>	
  		</tr>	
  		<tr> 
  		  <td>Entity</td> 
  		  <td>entity name</td> 
  		  <td>null</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>EntityReference</td> 
  		  <td>name of entity referenced</td> 
  		  <td>null</td> 
  		  <td>null</td> 
  		</tr>	
  		<tr> 
  		  <td>Notation</td> 
  		  <td>notation name</td> 
  		  <td>null</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>ProcessingInstruction</td> 
  		  <td>target</td> 
  		  <td>entire content excluding the target</td> 
  		  <td>null</td>	
  		</tr>	
  		<tr> 
  		  <td>Text</td> 
  		  <td>#text</td> 
  		  <td>content of the text node</td> 
  		  <td>null</td>	
  		</tr> 
  	 </tbody> 
    </table> </p> 
    <attribute type="DOMString" readonly="yes" name="nodeName" id="ID-F68D095"> 
  	 <descr> 
  		<p>The name of this node, depending on its type; see the table above.
  		  </p> 
  	 </descr> 
    </attribute> 
    <attribute type="DOMString" name="nodeValue" id="ID-F68D080"> 
  	 <descr> 
  		<p>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.</p> 
  	 </descr> 
  	 <setraises> 
  		<exception name="DOMException">	
  		  <descr>
  			 <p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.</p>
  		  </descr> 
  		</exception> 
  	 </setraises> 
  	 <getraises> 
  		<exception name="DOMException">	
  		  <descr>
  			 <p>DOMSTRING_SIZE_ERR: Raised when it would return more characters
  				than fit in a <code>DOMString</code> variable on the implementation platform.</p>
  		  </descr> 
  		</exception> 
  	 </getraises> 
    </attribute> 
    <attribute type="unsigned short" name="nodeType" readonly="yes"
  	id="ID-111237558"> 
  	 <descr>
  		<p>A code representing the type of the underlying object, as defined
  		  above.</p>
  	 </descr> 
    </attribute> 
    <attribute type="Node" readonly="yes" name="parentNode" id="ID-1060184317"> 
  	 <descr>
  		<p>The <termref def="dt-parent">parent</termref> 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>.</p> 
  	 </descr> 
    </attribute> 
    <attribute type="NodeList" readonly="yes" name="childNodes"
  	id="ID-1451460987"> 
  	 <descr>
  		<p>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.</p> 
  	 </descr> 
    </attribute> 
    <attribute readonly="yes" type="Node" name="firstChild" id="ID-169727388"> 
  	 <descr>
  		<p>The first child of this node. If there is no such node, this returns <code>null</code>.</p>
  	 </descr> 
    </attribute> 
    <attribute readonly="yes" type="Node" name="lastChild" id="ID-61AD09FB"> 
  	 <descr>
  		<p>The last child of this node. If there is no such node, this returns <code>null</code>.</p>
  	 </descr> 
    </attribute> 
    <attribute readonly="yes" type="Node" name="previousSibling"
  	id="ID-640FB3C8"> 
  	 <descr>
  		<p>The node immediately preceding this node. If there is no such node,
  		  this returns <code>null</code>.</p>
  	 </descr> 
    </attribute> 
    <attribute readonly="yes" type="Node" name="nextSibling" id="ID-6AC54C2F"> 
  	 <descr>
  		<p>The node immediately following this node. If there is no such node,
  		  this returns <code>null</code>.</p>
  	 </descr> 
    </attribute> 
    <attribute readonly="yes" type="NamedNodeMap" name="attributes"
  	id="ID-84CF096"> 
  	 <descr>
  		<p>A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise. </p>
  	 </descr> 
    </attribute> 
    <attribute readonly="yes" type="Document" name="ownerDocument"
  	id="node-ownerDoc" version="DOM Level 2"> 
  	 <descr>
  		<p>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>.</p>
  	 </descr> 
    </attribute> 
    <method name="insertBefore" id="ID-952280727"> 
  	 <descr>
  		<p>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.</p> 
  		<p>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.</p>
  	 </descr> 
  	 <parameters> 
  		<param name="newChild" type="Node" attr="in">	
  		  <descr>
  			 <p>The node to insert.</p>
  		  </descr> 
  		</param> 
  		<param name="refChild" type="Node" attr="in">	
  		  <descr>
  			 <p>The reference node, i.e., the node before which the new node must
  				be inserted.</p>
  		  </descr> 
  		</param> 
  	 </parameters> 
  	 <returns type="Node"> 
  		<descr>
  		  <p>The node being inserted.</p>
  		</descr> 
  	 </returns> 
  	 <raises> 
  		<exception name="DOMException">	
  		  <descr>
  			 <p>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
  				<termref def="dt-ancestor">ancestors</termref>.</p> 
  			 <p>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created from a different document than the one that created this
  				node.</p> 
  			 <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or if
  				the parent of the node being inserted is readonly.</p>	
  			 <p>NOT_FOUND_ERR: Raised if <code>refChild</code> is not a child of this node.</p>
  		  </descr> 
  		</exception> 
  	 </raises> 
    </method> 
    <method name="replaceChild" id="ID-785887307"> 
  	 <descr>
  		<p>Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node.</p> 
  		<p>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.</p> 
  	 </descr> 
  	 <parameters> 
  		<param name="newChild" type="Node" attr="in">	
  		  <descr>
  			 <p>The new node to put in the child list.</p>
  		  </descr> 
  		</param> 
  		<param name="oldChild" type="Node" attr="in">	
  		  <descr>
  			 <p>The node being replaced in the list.</p>
  		  </descr> 
  		</param> 
  	 </parameters> 
  	 <returns type="Node"> 
  		<descr>
  		  <p>The node replaced.</p>
  		</descr> 
  	 </returns> 
  	 <raises> 
  		<exception name="DOMException">	
  		  <descr>
  			 <p>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
  				<termref def="dt-ancestor">ancestors</termref>.</p> 
  			 <p>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created from a different document than the one that created this
  				node.</p> 
  			 <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent of
  				the new node is readonly.</p>	
  			 <p>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of this node.</p>
  		  </descr> 
  		</exception> 
  	 </raises> 
    </method> 
    <method name="removeChild" id="ID-1734834066"> 
  	 <descr>
  		<p>Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.</p> 
  	 </descr> 
  	 <parameters> 
  		<param name="oldChild" type="Node" attr="in">	
  		  <descr>
  			 <p>The node being removed.</p>
  		  </descr> 
  		</param> 
  	 </parameters> 
  	 <returns type="Node"> 
  		<descr>
  		  <p>The node removed.</p>
  		</descr> 
  	 </returns> 
  	 <raises> 
  		<exception name="DOMException"> 
  		  <descr>
  			 <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>	
  			 <p>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of this node.</p>
  		  </descr> 
  		</exception> 
  	 </raises> 
    </method> 
    <method name="appendChild" id="ID-184E7107"> 
  	 <descr>
  		<p>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.</p> 
  	 </descr> 
  	 <parameters> 
  		<param name="newChild" type="Node" attr="in">	
  		  <descr>
  			 <p>The node to add.</p> 
  			 <p>If it is a <code>DocumentFragment</code> object, the entire contents of the document fragment are moved into the
  				child list of this node</p>
  		  </descr> 
  		</param> 
  	 </parameters> 
  	 <returns type="Node"> 
  		<descr>
  		  <p>The node added.</p>
  		</descr> 
  	 </returns> 
  	 <raises> 
  		<exception name="DOMException">	
  		  <descr>
  			 <p>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
  				<termref def="dt-ancestor">ancestors</termref>.</p>	
  			 <p>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created from a different document than the one that created this
  				node.</p>	
  			 <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>	
  		  </descr> 
  		</exception> 
  	 </raises> 
    </method> 
    <method name="hasChildNodes" id="ID-810594187"> 
  	 <descr>
  		<p>Returns whether this node has any children.</p> 
  	 </descr> 
  	 <parameters>      <!-- No parameters -->
  	 </parameters> 
  	 <returns type="boolean"> 
  		<descr>
  		  <p> <code>true</code> if this node has any children, <code>false</code> otherwise.</p>
  		</descr> 
  	 </returns> 
  	 <raises>      <!-- No exceptions -->
  	 </raises> 
    </method>
    <method name="cloneNode" id="ID-3A0ED0A4"> 
  	 <descr>
  		<p>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> is <code>null</code>.).</p> 
  		<p>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 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.</p> 
  		<p>Note that cloning an immutable subtree results in a mutable copy, but
  		  the children of an <code>EntityReference</code> clone are <termref def="dt-readonly-node">readonly</termref>. 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.</p> 
  	 </descr> 
  	 <parameters> 
  		<param name="deep" type="boolean" attr="in">	
  		  <descr>
  			 <p>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>). </p>
  		  </descr> 
  		</param> 
  	 </parameters> 
  	 <returns type="Node"> 
  		<descr>
  		  <p>The duplicate node.</p>
  		</descr> 
  	 </returns> 
  	 <raises>      <!-- No exceptions -->
  	 </raises> 
    </method>
    <!-- ****** DOM Level 2 additions ****** -->
    <method id="ID-normalize" name="normalize" version="DOM Level 2"> 
  	 <descr>
  		<p>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 <bibref ref="XPointer"/> lookups) that depend on a particular
  		  document tree structure are to be used.</p> 
  		<note>	
  		  <p>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.</p> 
  		</note> 
  	 </descr> 
  	 <parameters>      <!-- No parameters -->
  	 </parameters> 
  	 <returns type="void"> 
  		<descr>
  		  <p></p>
  		</descr> 
  	 </returns> 
  	 <raises>      <!-- No exceptions -->
  	 </raises> 
    </method> 
    <method name="isSupported" id="Level-2-Core-Node-supports"
    since="DOM Level 2"> 
  	 <descr>
  		<p>Tests whether the DOM implementation implements a specific feature and
  		  that feature is supported by this node.</p> 
  	 </descr> 
  	 <parameters> 
  		<param name="feature" type="DOMString" attr="in">	
  		  <descr>
  			 <p>The 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>.</p>
  		  </descr> 
  		</param> 
  		<param name="version" type="DOMString" attr="in">	
  		  <descr>
  			 <p>This 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>.</p>
  		  </descr> 
  		</param> 
  	 </parameters> 
  	 <returns type="boolean"> 
  		<descr>
  		  <p>Returns <code>true</code> if the specified feature is supported on this node, <code>false</code> otherwise.</p>
  		</descr> 
  	 </returns> 
  	 <raises>      <!-- No exceptions -->
  	 </raises> 
    </method> 
    <attribute readonly="yes" type="DOMString" name="namespaceURI"
    id="ID-NodeNSname" since="DOM Level 2"> 
  	 <descr>
  		<p>The <termref def="dt-namespaceURI">namespace URI</termref> of this
  		  node, or <code>null</code> if it is unspecified.</p> 
  		<p>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.</p> 
  		<p>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>.</p> 
  		<note>	
  		  <p>Per the <emph>Namespaces in XML</emph> Specification
  			 <bibref ref="Namespaces"/> 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.</p> 
  		</note> 
  	 </descr> 
    </attribute> 
    <attribute type="DOMString" name="prefix" id="ID-NodeNSPrefix"
    since="DOM Level 2"> 
  	 <descr>
  		<p>The <termref def="dt-namespaceprefix">namespace prefix</termref> of
  		  this node, or <code>null</code> if it is unspecified.</p> 
  		<p>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the <termref def="dt-qualifiedname">qualified
  		  name</termref>, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable.</p> 
  		<p>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.</p> 
  		<p>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>.</p> 
  	 </descr> 
  	 <setraises> 
  		<exception name="DOMException">	
  		  <descr>
  			 <p>INVALID_CHARACTER_ERR: Raised if the specified prefix contains an
  				illegal character.</p> 
  			 <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p> 
  			 <p>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 "<loc href="&xml-ns;">&xml-ns;</loc>",
  				if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<loc
  				href="&xmlns-ns;">&xmlns-ns;</loc>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" <bibref ref="Namespaces"/>.</p>	
  		  </descr> 
  		</exception> 
  	 </setraises> 
    </attribute> 
    <attribute readonly="yes" type="DOMString" name="localName"
    id="ID-NodeNSLocalN" since="DOM Level 2"> 
  	 <descr>
  		<p>Returns the local part of the <termref
  		  def="dt-qualifiedname">qualified name</termref> of this node.</p> 
  		<p>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>.</p> 
  	 </descr> 
    </attribute> 
    <method name="hasAttributes" id="ID-NodeHasAttrs" since="DOM Level 2"> 
  	 <descr>
  		<p>Returns whether this node (if it is an element) has any
  		  attributes.</p> 
  	 </descr> 
  	 <parameters>      <!-- No parameters -->
  	 </parameters> 
  	 <returns type="boolean"> 
  		<descr>
  		  <p><code>true</code> if this node has any attributes, <code>false</code> otherwise.</p> 
  		</descr> 
  	 </returns> 
  	 <raises>      <!-- No exceptions -->
  	 </raises> 
    </method>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/notation.xml
  
  Index: notation.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <interface name="Notation" inherits="Node" id="ID-5431D1B9">
  <!-- $Date: 2001/06/01 11:15:00 $ $Revision: 1.1 $ -->
    <descr>
      <p>This interface represents a notation declared in the DTD. A notation
      either declares, by name, the format of an unparsed entity (see  <xspecref
        href="&xml-spec;#Notations">section 4.7</xspecref>
      of the XML 1.0 specification <bibref ref="XML"/>), or is used for formal
        declaration of
      processing instruction targets (see <xspecref
        href="&xml-spec;#sec-pi">section 2.6</xspecref> of the XML 1.0
      specification <bibref ref="XML"/>). The <code>nodeName</code> attribute
        inherited from
      <code>Node</code> is set to the declared name of the notation.</p>
      <p>The DOM Level 1 does not support editing <code>Notation</code>
        nodes; they are therefore
        <termref def="dt-readonly-node">readonly</termref>.</p>
      <p>A <code>Notation</code> node does not have any parent.</p>
    </descr>
    <attribute readonly="yes" name="publicId" type="DOMString" id="ID-54F2B4D0">
      <descr><p>The public identifier of this notation. If the 
  	public identifier was not specified, this is <code>null</code>.</p>
      </descr> 
    </attribute>
    <attribute readonly="yes" name="systemId" type="DOMString" id="ID-E8AAB1D0">
      <descr><p>The system identifier of this notation. If the 
  	system identifier was not specified, this is <code>null</code>.</p>
      </descr> 
    </attribute>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/pi.xml
  
  Index: pi.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--[ ProcessingInstruction object description ]-->
  <!-- $Date: 2001/06/01 11:15:03 $ $Revision: 1.1 $ -->
  <interface name="ProcessingInstruction" inherits="Node" id="ID-1004215813">
    <descr><p>The <code>ProcessingInstruction</code> interface
        represents a  &quot;processing instruction&quot;, used in XML
        as a way to keep processor-specific information in the text of the
        document.</p></descr>
    <attribute readonly="yes" type="DOMString" name="target" id="ID-1478689192">
      <descr><p>The target of this processing instruction. XML defines this as
  	being the first <termref def="dt-token">token</termref> following the 
          markup that begins the processing instruction.</p></descr>
    </attribute>
    <attribute type="DOMString" name="data" id="ID-837822393">
      <descr><p>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>.</p>
      </descr>
      <setraises>
        <exception name="DOMException">
  	<descr><p>NO_MODIFICATION_ALLOWED_ERR: Raised when the node is
  	    readonly.</p></descr>
        </exception>
      </setraises>
    </attribute>
  </interface>
      
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/core/definitions/text.xml
  
  Index: text.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!--[ Text object description ]-->
  <!-- $Date: 2001/06/01 11:15:03 $ $Revision: 1.1 $ -->
  <interface name="Text" inherits="CharacterData" id="ID-1312295772"> 
    <descr>
  	 <p>The <code>Text</code> interface inherits from <code>CharacterData</code> and represents the textual content (termed
  		<xspecref href="&xml-spec;#syntax">character data</xspecref> 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 <termref def="dt-infoitem">information items</termref>
  		(elements, comments, etc.) and <code>Text</code> nodes that form the list of children of the element.</p> 
  	 <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>Node</code> merges any such adjacent <code>Text</code> objects into a single node for each block of text.</p> 
    </descr> 
    <method name="splitText" id="ID-38853C1D"> 
  	 <descr>
  		<p>Breaks this node into two nodes at the specified <code>offset</code>, keeping both in the tree as <termref
  		  def="dt-sibling">siblings</termref>. 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 <termref def="dt-sibling">sibling</termref> of the
  		  original node. When the <code>offset</code> is equal to the length of this node, the new node has no data.</p>
  	 </descr> 
  	 <parameters> 
  		<param name="offset" type="unsigned long" attr="in">	
  		  <descr>
  			 <p>The <termref def="dt-16-bit-unit">16-bit unit</termref> offset at
  				which to split, starting from <code>0</code>.</p>
  		  </descr> 
  		</param> 
  	 </parameters> 
  	 <returns type="Text"> 
  		<descr>
  		  <p>The new node, of the same type as this node.</p>
  		</descr> 
  	 </returns> 
  	 <raises> 
  		<exception name="DOMException"> 
  		  <descr>
  			 <p>INDEX_SIZE_ERR: Raised if the specified offset is negative or
  				greater than the number of 16-bit units in <code>data</code>.</p>	
  			 <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.</p>	
  		  </descr> 
  		</exception> 
  	 </raises> 
    </method>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/dom-spec.xml
  
  Index: dom-spec.xml
  ===================================================================
  <?xml version="1.0" ?>
  <!-- $Id: dom-spec.xml,v 1.1 2001/06/01 11:15:08 dims Exp $ -->
  <!DOCTYPE spec PUBLIC
        "-//W3C//DTD Specification V2.1-Based DOM//EN"
        "../../../pubtext/xmlspec-v21-dom.dtd" [
  
  <!ENTITY prefix "Events">
  <!ENTITY % version SYSTEM "../version.xml">
  %version;
  <!ENTITY % links SYSTEM "../link-entities.xml">
  %links;
  <!ENTITY % parts SYSTEM "../part-entities.xml">
  %parts;
  <!ENTITY options SYSTEM "../options.xml">
  ]>
  
  <spec>
    <!--
    *************************************************************************
    * FRONT MATTER                                                          *
    *************************************************************************
    -->
  &options;
  
  <header> 
  <title>Document Object Model (DOM) Level 2 Events Specification</title>
  <version>1.0</version> <w3c-designation>&doc.prefix;-&doc.date;
  </w3c-designation> <w3c-doctype>W3C Recommendation</w3c-doctype> <pubdate> 
  <day>&date.day;</day> <month>&date.month;</month> <year>&date.year;</year> 
  </pubdate> 
  <publoc> <loc href="&this.url;">&this.url;</loc>
  &ps.loc;
  &pdf.loc;
  &txt.loc;
  &zip.loc;
  </publoc>
  <latestloc> <loc href="&latest.url;">&latest.url;</loc> </latestloc> 
  <prevlocs>
  &prev.locs;
  </prevlocs> 
  <authlist> 
  <author role="editor"> <name>Tom Pixley</name> 
  <affiliation>Netscape Communications Corp.</affiliation> </author> 
  </authlist>
      <!--
      ******************************************************
      * DOCUMENT ABSTRACT                                  *
      ******************************************************
      -->
  <abstract id="id-abstract"> 
  
  <p>This specification defines the Document Object Model Level 2 Events, a
  platform- and language-neutral interface that gives to programs and scripts a
  generic event system. The Document Object Model Level 2 Events builds on the
  Document Object Model Level 2 Core <bibref ref='DOMCore'/> and on Document
  Object Model Level 2 Views <bibref ref='DOMViews'/>.</p>
  
  </abstract>
  
  &status;
  
  <sourcedesc>
  <p>Created in electronic form.</p>
  </sourcedesc>
  <langusage>
  <language id="en">English</language>
  </langusage>
  <revisiondesc>
  <p>$Revision: 1.1 $</p>
  </revisiondesc>
  <?GENERATE-TOC?>
  </header>
  <front>
    &toc;
    &copyright;
  </front> 
   
  <body>
    &events;
  </body>
    <!--
    *************************************************************************
    * BACK MATTER                                                           *
    *************************************************************************
    -->
  <back> 
  
  <div1 role="idl" id="idl">
    <head>IDL Definitions</head>
  
    <p>This appendix contains the complete OMG IDL <bibref ref='OMGIDL'/> for
    the Level 2 Document Object Model Events definitions.</p>
  
    <p>The IDL files are also available as: <loc
        href="idl.zip">&this.url;/idl.zip</loc></p>
  
      <!--
      ******************************************************
      | Events OMG IDL DEFINITIONS                           |
      ******************************************************
      -->
        <?GENERATE-IDL Events events dom.w3c.org dom views?>
  </div1>
  
  <div1 role="java-binding" id="java-binding">
    <head>Java Language Binding</head>
  
    <p>This appendix contains the complete Java <bibref ref='Java'/> bindings
    for the Level 2 Document Object Model Events.</p>
  
    <p>The Java files are also available as <loc
        href="java-binding.zip">&this.url;/java-binding.zip</loc></p>
  
      <!--
      ******************************************************
      | Events JAVA BINDINGS                                 |
      ******************************************************
      -->
        <?GENERATE-JAVA Events org.w3c.dom events?>
  </div1>
  <div1 role="ecma-binding" id="ecma-binding">
    <head>ECMAScript Language Binding</head>
  
    <p>This appendix contains the complete ECMAScript <bibref
    ref='ECMAScript'/> binding for the Level 2 Document Object Model Events
    definitions.</p>
  
        <note>
  	<p>
  	  Exceptions handling is only supported by ECMAScript implementation
  	  conformant with the Standard ECMA-262 3rd. Edition (<bibref
  	  ref="ECMAScript"/>).
  	</p>
        </note>
  
      <!--
      ******************************************************
      | Events ECMASCRIPT BINDINGS                         |
      ******************************************************
      -->
    <?GENERATE-ECMA Events?>
      <p>
        The following example will add an ECMAScript based EventListener to the
        Node 'exampleNode':
      </p>
      <eg role='code'>
    // Given the Node 'exampleNode'
  
    // Define the EventListener function
    function clickHandler(evt) 
    {
      // Function contents 
    }
  
    // The following line will add a non-capturing 'click' listener
    // to 'exampleNode'. 
    exampleNode.addEventListener("click", clickHandler, false);      
      </eg>
  </div1>
    &contributors; 
    &glossary; 
    &references;
    &index; 
  </back>
  </spec> 
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/events.xml
  
  Index: events.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: events.xml,v 1.1 2001/06/01 11:15:09 dims Exp $ -->
  <!--
   *************************************************************************
   * BEGINNING OF EVENTS                                                   *
   *************************************************************************
  -->
  <div1 id="Events">
    <head>Document Object Model Events</head>
    <orglist role="editors">
      <member>
        <name>Tom Pixley</name>
        <affiliation>Netscape Communications Corp.</affiliation>
      </member>
    </orglist>
    <?GENERATE-MINI-TOC?>
    <!--
    ******************************************************
    | INTRODUCTION                                       |
    ******************************************************
    -->
    <div2 id="Events-overview">
      <head>Overview of the DOM Level 2 Event Model</head>
  		<p>The DOM Level 2 Event Model is designed with two main goals.  The first goal is the design
  		of a generic event system which allows registration of event handlers, describes event flow 
  		through a tree structure, and provides basic contextual information for each event.  
  		Additionally, the specification will provide standard modules of events for user 
  		interface control and document mutation notifications, including defined contextual information 
  		for each of these event modules.</p>
  		<p>The second goal of the event model is to provide a common subset of the current event 
  		systems used in <termref def='dt-DOM-Level-0'>DOM 
  	Level 0</termref> browsers.  This is
  		intended to foster interoperability of existing scripts and content.  It is not expected that 
  		this goal will be met with full backwards compatibility.  However, the specification attempts
  		to achieve this when possible.</p>
      <p>The following sections of the Event Model specification define both the specification
      for the DOM Event Model and a number of conformant event modules designed for use within the
      model.  The Event Model consists of the two sections on event propagation and event listener
      registration and the Event interface.</p>
  
      <p>
        A DOM application may use the <code>hasFeature(feature, version)</code>
        method of the <code>DOMImplementation</code> interface with parameter
        values "Events" and "2.0" (respectively) to determine whether or not the
        event module is supported by the implementation. In order to fully support this
        module, an implementation must also support the "Core" feature defined in
        the DOM Level 2 Core specification <bibref ref="DOMCore"/>. Please, refer
        to additional information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
      <p>
        Each event module describes its own feature string in the event module
        listing.
      </p>
  
  		<div3 id="Events-overview-terminology">
  			<head>Terminology</head>
  
  			<glist>
  			<gitem>
  			<label>UI events</label>
  			<def><p>User interface events. These events are generated
  			by user interaction through an external device (mouse, keyboard, etc.)</p></def>
  			</gitem>
  
  			<gitem>
  			<label>UI Logical events</label>
  			<def><p>Device independent user interface events such as focus change 
  			messages or element triggering notifications.</p></def>
  			</gitem>
  
  			<gitem>
  			<label>Mutation events</label>
  			<def><p>Events caused by any action which modifies the structure of the
  			document.</p></def>
  			</gitem>
  
  			<gitem>
  			<label>Capturing</label>
  			<def><p>The process by which an event can be handled by one of the event's
  	      target's <termref def="dt-ancestor">ancestors</termref> before being handled by the event's target.</p></def>
  			</gitem>
  
  			<gitem>
  			<label>Bubbling</label>
  	                <def><p>The process by which an event propagates upward through its
  	      <termref def="dt-ancestor">ancestors</termref>
  			after being handled by the event's target.</p></def>
  			</gitem>
  
  			<gitem>
  			<label>Cancelable</label>
  			<def><p>A designation for events which indicates that upon handling the event
  			the client may choose to prevent the DOM implementation from processing any default
  			action associated with the event.</p></def>
  			</gitem>
  			</glist>
  		</div3>
    </div2>
    <div2 id="Events-flow">
  	<head>Description of event flow</head>
  	  <p>Event flow is the process through which the an event originates from the DOM implementation
  	  and is passed into the Document Object Model.  The methods of event capture and event
  	  bubbling, along with various event listener registration techniques, allow the event
  	  to then be handled in a number of ways.  It can be handled locally at the <code>
  	  EventTarget</code> level or centrally from an <code>EventTarget</code> higher in the document tree.</p>
  	<div3 id="Events-flow-basic">
  	  <head>Basic event flow</head>
  	  <p>Each event has an <code>EventTarget</code> toward which the event is directed by the DOM implementation. This
  	  <code>EventTarget</code> is specified in the <code>Event</code>'s <code>target</code> attribute. When 
      the event reaches the target, any event 
  	  listeners registered on the <code>EventTarget</code> are triggered.  Although all <code>EventListeners</code>
  	  on the <code>EventTarget</code> are guaranteed to be triggered by any event which is received by that <code>
      EventTarget</code>, no specification is made as to the order
  	  in which they will receive the event with regards to the other <code>EventListeners</code> on the
  	  <code>EventTarget</code>. If neither event 
  	  capture or event bubbling are in use for that particular event, 
  	  the event flow process will complete after all listeners have been triggered.  If event capture
  	  or event bubbling is in use, the event flow will be modified as described in the sections below.</p>
      <p>Any exceptions thrown inside an <code>EventListener</code> will not stop propagation of the
      event.  It will continue processing any additional <code>EventListener</code> in the described manner.</p>
      <p>It is expected that actions taken by <code>EventListener</code>s may cause additional events to
      fire.  Additional events should be handled in a synchronous manner and may cause reentrancy into
      the event model.</p>
  	</div3>
  	<div3 id="Events-flow-capture">
  	  <head>Event capture</head>
        <p>Event capture is the process by which an EventListener registered on
  	an <termref def="dt-ancestor">ancestor</termref> 
      of the event's target can intercept events of a given type before they
      are received by the event's target.  Capture operates from
  		the top of the tree, generally the <code>Document</code>, downward, making it the symmetrical opposite of bubbling 
  		which is described below.  The chain of <code>EventTarget</code>s from the top of the tree
      to the event's target is determined before the initial dispatch of the event.  If modifications
      occur to the tree during event processing, event flow will proceed based on the initial state of the tree.</p>
  		<p>An <code>EventListener</code> being registered on an <code>EventTarget</code>
  		may choose to have that <code>EventListener</code> capture events by
  		specifying the <code>useCapture</code> parameter of the <code>addEventListener</code>
  	method to be <code>true</code>.  Thereafter, when an event of the given type is 
  	dispatched toward a <termref def="dt-descendant">descendant</termref> of the capturing object, the event 
  		will trigger any capturing event listeners of the appropriate type 
  		which exist in the direct line between the top of the document and the
  		event's target.  This downward propagation continues until the event's target is 
  		reached.  A capturing <code>EventListener</code> will not be triggered by events 
      dispatched directly to the <code>EventTarget</code> upon which it is registered.</p>
  		<p>If the capturing <code>EventListener</code> wishes to prevent further
  		processing of the event from occurring it may call the <code>stopProgagation</code> method of 
      the <code>Event</code> interface.  This will prevent further dispatch of the event, although additional <code>EventListeners</code> registered at
  		the same hierarchy level will still receive the event.  Once an event's 
      <code>stopPropagation</code> method has been called, further calls to that method have
      no additional effect.  If no additional capturers exist and <code>stopPropagation</code> 
      has not been called,
  		the event triggers the appropriate <code>EventListeners</code> on the target  
  		itself.</p>
  		<p>Although event capture is similar to the delegation based event 
  		model in which all interested parties register their listeners directly on the target
      about which they wish to receive notifications, it is different in two important respects.  
  	First, event capture only allows interception of events which are
  	targeted at <termref def="dt-descendant">descendants</termref> 
  		of the capturing <code>EventTarget</code>.  It does not allow interception of events 
  	targeted to the capturer's <termref
  					    def="dt-ancestor">ancestors</termref>, its <termref def="dt-sibling">siblings</termref>, or its 
  		sibling's <termref def="dt-descendant">descendants</termref>.  Secondly, event capture is not specified for 
  		a single <code>EventTarget</code>, it is specified for a specific type of event.  
  		Once specified, event capture intercepts all events 
  		of the specified type targeted toward any of the capturer's <termref def="dt-descendant">descendants</termref>.</p>
  	</div3>
  	<div3 id="Events-flow-bubbling">
  	  <head>Event bubbling</head>
  	  <p>Events which are designated as bubbling will initially proceed with the
  		same event flow as non-bubbling events.  The event is dispatched to its target
  		<code>EventTarget</code> and any event listeners found there are triggered.  Bubbling
  		events will then trigger any additional event listeners found by following the 
  		<code>EventTarget</code>'s parent chain upward, checking for any event listeners
  		registered on each successive <code>EventTarget</code>.  This upward propagation will continue
  		up to and including the <code>Document</code>.  <code>EventListener</code>s registered as
      capturers will not be triggered during this phase.  The chain of <code>EventTarget</code>s from the event 
      target to the top of the tree is determined before the initial dispatch of the event.  If modifications
      occur to the tree during event processing, event flow will proceed based on the initial state of the tree.</p>
  		<p>Any event handler may choose to prevent further event propagation 
      by calling the <code>stopPropagation</code> method of the <code>Event</code> interface.  If
      any <code>EventListener</code> calls this method, all additional <code>EventListeners</code>
      on the current <code>EventTarget</code> will be triggered but bubbling
  		will cease at that level.  Only one call to <code>stopPropagation</code> is required to
      prevent further bubbling.</p>
  	</div3>
  	<div3 id="Events-flow-cancelation">
  	  <head>Event cancelation</head>
  	  <p>Some events are specified as cancelable.  For these events, the 
  	  DOM implementation generally has a default action associated with the
  	  event.  An example of this is a hyperlink in a web browser.  When the user clicks on the
      hyperlink the default action is generally to active that hyperlink.
      Before processing these events, the implementation must check for 
  	  event listeners registered to receive the event and dispatch the event to 
  	  those listeners.  These listeners then have the option of canceling the 
  	  implementation's default action or allowing the default action to proceed.  In the
      case of the hyperlink in the browser, canceling the action would have the result
      of not activating the hyperlink.</p>
      <p>Cancelation is accomplished by calling the <code>Event</code>'s <code>
  		preventDefault</code> method.  If one or more <code>EventListeners</code> call <code>
      preventDefault</code> during any phase of event flow the default action will
      be canceled.</p>
      <p>Different implementations will specify their own default actions, if any, associated
      with each event.  The DOM does not attempt to specify these actions.</p>
  	</div3>
    </div2>
    <div2 id="Events-registration">
      <head>Event listener registration</head>
  	<div3 id="Events-Registration-interfaces">
  	  <head>Event registration interfaces</head>
  	  <definitions>
          &events-eventtarget;
          &events-eventlistener;
  	  </definitions>
  	</div3>
  	<div3 id="Events-registration-html40">
  	   <head>Interaction with HTML 4.0 event listeners</head>
  	   <p>In HTML 4.0, event listeners were specified as attributes of an element.  As such,
  	   registration of a second event listener of the same type would replace the 
  	   first listener.  The DOM Event Model allows registration of multiple event listeners on
  	   a single <code>EventTarget</code>.  To achieve this, event listeners are no longer stored as attribute
  	   values.</p>
  	   <p>In order to achieve compatibility with HTML 4.0, implementors may view the setting of 
  	   attributes which represent event handlers as the creation and registration of an <code>
  	   EventListener</code> on the <code>EventTarget</code>.  The value of <code>useCapture</code>
  	defaults to <code>false</code>.  This <code>EventListener</code> behaves in
  	   the same manner as any other <code>EventListeners</code> which may be registered on the
  	   <code>EventTarget</code>. If the attribute representing the event listener is changed, this may be
  	   viewed as the removal of the previously registered <code>EventListener</code> and the 
  	   registration of a new one. No technique is provided to allow HTML 4.0 event listeners 
       access to the context information defined for each event.</p>
  	</div3>
    </div2>
    <div2 id="Events-interface">
      <head>Event interface</head>
      <definitions>
        &events-event;
        &events-eventexception;
      </definitions>
    </div2>
    <div2 id="Events-document">
      <head>DocumentEvent interface</head>
      <definitions>
        &events-documentevent;
      </definitions>
    </div2>
    <div2 id="Events-eventgroupings">
      <head>Event module definitions</head>
  		<p>The DOM Level 2 Event Model allows a DOM implementation to support multiple modules of events. The
  		model has been designed to allow addition of new event modules as is required.  The DOM will
  		not attempt to define all possible events.  For purposes of interoperability, the DOM will
  		define a module of user interface events including lower level device dependent events, a module
              of UI logical events, and a module of document mutation events.
  
              Any new event types defined by third parties must not begin with any upper, lower, or mixed 
  		case version of the string "DOM".  This prefix is reserved for future DOM event modules.  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.
  		</p>
      <div3 id="Events-eventgroupings-uievents">
  		<head>User Interface event types</head>
  		<p>The User Interface event module is composed of events listed in HTML 4.0 and additional
  		events which are supported in <termref def='dt-DOM-Level-0'>DOM 
  	Level 0</termref> browsers.</p>
  
      <p>
        A DOM application may use the <code>hasFeature(feature, version)</code>
        method of the <code>DOMImplementation</code> interface with parameter
        values "UIEvents" and "2.0" (respectively) to determine whether or not
        the User Interface event module is supported by the implementation. In
        order to fully support this module, an implementation must also support
        the "Events" feature defined in this specification and the
        "Views" feature defined in the DOM Level 2 Views specification <bibref
        ref="DOMViews"/>. Please, refer to additional information about
        <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
  
        <note>
  	<p>To create an instance of the <code>UIEvent</code> interface, use the
  	feature string "UIEvents" as the value of the input parameter used with
  	  the <code>createEvent</code> method of the <code>DocumentEvent</code>
  	  interface.</p>
        </note>
  
      <definitions>
        &events-uievent;
      </definitions>
  
        <p>The different types of such events that can occur are:
  	<glist>
  	  <gitem>
  	    <label>DOMFocusIn</label>
  	    <def>
  	      <p>The DOMFocusIn event occurs when an <code>EventTarget</code> receives focus, for
  		instance via a pointing device being moved onto an element or
  		by tabbing navigation to the element. Unlike the HTML event
  		focus, DOMFocusIn can be applied to any focusable <code>EventTarget</code>, not just FORM
  		controls.</p>
  	      <ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  
  	      </ulist>
  	    </def>
  	  </gitem>
  
  	  <gitem>
  	    <label>DOMFocusOut</label>
  	    <def>
  	      <p>The DOMFocusOut event occurs when a <code>EventTarget</code> loses focus, for
  		instance via a pointing device being moved out of an element or
  		by tabbing navigation out of the element. Unlike the HTML event
  		blur, DOMFocusOut can be applied to any focusable <code>EventTarget</code>, not just FORM
  		controls.</p>
  	      <ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  	      </def>
  	  </gitem>
  
  	  <gitem>
  	    <label>DOMActivate</label>
  	    <def>
  	      <p>The activate event occurs when an element is activated, for
  		instance, thru a mouse click or a keypress. A numerical
  		argument is provided to give an indication of the type of
  		activation that occurs: 1 for a simple activation (e.g. a
  		simple click or Enter), 2 for hyperactivation (for instance a
  		double click or Shift Enter).</p>
  	      <ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: Yes</p></item>
  		<item><p>Context Info: detail (the numerical value)</p></item>
  	      </ulist>
  	    </def>
  	  </gitem>
  	</glist>
        </p>
      </div3>
      <div3 id="Events-eventgroupings-mouseevents">
        <head>Mouse event types</head>
        <p>The Mouse event module is composed of events listed in HTML 4.0 and additional
  	events which are supported in <termref def='dt-DOM-Level-0'>DOM 
  	Level 0</termref> browsers.  This event module is specifically designed for use with mouse
      input devices.</p>
  
      <p>
        A DOM application may use the <code>hasFeature(feature, version)</code>
        method of the <code>DOMImplementation</code> interface with parameter
        values "MouseEvents" and "2.0" (respectively) to determine whether or not
        the Mouse event module is supported by the implementation. In order to
        fully support this module, an implementation must also support the
        "UIEvents" feature defined in this specification. Please, refer to
        additional information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
  
        <note>
  	<p>To create an instance of the <code>MouseEvent</code> interface, use the
  	feature string "MouseEvents" as the value of the input parameter used with
  	the <code>createEvent</code> method of the <code>DocumentEvent</code>
  	  interface.</p>
        </note>
  
      <definitions>
        &events-mouseevent;
      </definitions>
  
        <p>The different types of Mouse events that can occur are:
  	<glist>
  	  <gitem>
  		<label>click</label>
  		<def>
  		<p>The click event occurs when the pointing device button is clicked over
  		an element. A click is defined as a mousedown and mouseup over the same screen
      location.  The sequence of these events is:
      <eg>
      mousedown
      mouseup
      click
      </eg>
      If multiple clicks occur at the same screen location, the sequence repeats 
      with the <code>detail</code> attribute incrementing with each repetition.  
      This event is valid for most elements.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: Yes</p></item>
  		<item><p>Context Info: screenX, screenY, clientX, clientY, altKey, ctrlKey, shiftKey, metaKey, button, detail</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>mousedown</label>
  		<def>
  		<p>The mousedown event occurs when the pointing device button is pressed over
  		an element. This event is valid for most elements.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: Yes</p></item>
  		<item><p>Context Info: screenX, screenY, clientX, clientY, altKey, ctrlKey, shiftKey, metaKey, button, detail</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>mouseup</label>
  		<def>
  		<p>The mouseup event occurs when the pointing device button is released over
  		an element. This event is valid for most elements.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: Yes</p></item>
  		<item><p>Context Info: screenX, screenY, clientX, clientY, altKey, ctrlKey, shiftKey, metaKey, button, detail</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>mouseover</label>
  		<def>
  		<p>The mouseover event occurs when the pointing device is moved onto an element.
  		This event is valid for most elements.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: Yes</p></item>
  		<item><p>Context Info: screenX, screenY, clientX, clientY, altKey, ctrlKey, shiftKey, metaKey, relatedTarget
      indicates the <code>EventTarget</code> the pointing device is exiting.</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>mousemove</label>
  		<def>
  		<p>The mousemove event occurs when the pointing device is moved while it is
  		over an element. This event is valid for most elements.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: screenX, screenY, clientX, clientY, altKey, ctrlKey, shiftKey, metaKey</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
    	<gitem>
  		<label>mouseout</label>
  		<def>
  		<p>The mouseout event occurs when the pointing device is moved away from an
  		element. This event is valid for most elements..</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: Yes</p></item>
  		<item><p>Context Info: screenX, screenY, clientX, clientY, altKey, ctrlKey, shiftKey, metaKey, relatedTarget
      indicates the <code>EventTarget</code> the pointing device is entering.</p></item>
  		</ulist>
  		</def>
  	  </gitem>
  
  	</glist>
        </p>
      </div3>
  
      <div3 id="Events-eventgroupings-keyevents">
        <head>Key events</head>
        <p>The DOM Level 2 Event specification does not provide a key event module.  An event module designed 
        for use with keyboard
        input devices will be included in a later version of the DOM specification.</p>
      </div3>
  
      <div3 id="Events-eventgroupings-mutationevents">
        <head>Mutation event types</head>
  		<p>The mutation event module is designed to allow notification of any changes
  		to the structure of a document, including attr and text modifications.  It may 
  		be noted that none of the mutation events listed are designated as cancelable.
  		This stems from the fact that it is very difficult to make
  		use of existing DOM interfaces which cause document modifications if any change
  		to the document might or might not take place due to cancelation of the related
  		event.  Although this is still a desired capability, it was decided that it would
  		be better left until the addition of transactions into the DOM.</p>
      <p>Many single modifications of the tree can cause multiple mutation events to be fired.
      Rather than attempt to specify the ordering of mutation events due to every
      possible modification of the tree, the ordering of these events is left to the implementation.</p>
  
      <p>
        A DOM application may use the <code>hasFeature(feature, version)</code>
        method of the <code>DOMImplementation</code> interface with parameter
        values "MutationEvents" and "2.0" (respectively) to determine whether or not
        the Mutation event module is supported by the implementation. In order to
        fully support this module, an implementation must also support the
        "Events" feature defined in this specification. Please, refer to
        additional information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
  
        <note>
  	<p>To create an instance of the <code>MutationEvent</code> interface, use the
  	feature string "MutationEvents" as the value of the input parameter used with
  	the <code>createEvent</code> method of the <code>DocumentEvent</code>
  	  interface.</p>
        </note>
  
  
      <definitions>
        &events-mutationevent;
      </definitions>
  
        <p>The different types of Mutation events that can occur are:
  	<glist>
  	  <gitem>
  		<label>DOMSubtreeModified</label>
  		<def>
  		<p>  This is a general event for notification of all changes to the
      document. It can be used instead of the more specific events listed
      below. It may be fired after a single modification to the document or, at
      the implementation's discretion, after multiple changes have occurred.  The
      latter use should generally be used to accomodate multiple changes which occur
      either simultaneously or in rapid succession.  The target of this event
      is the lowest common parent of the changes which have taken place.  This
      event is dispatched after any other events caused by the mutation have
      fired.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>DOMNodeInserted</label>
  		<def>
  		<p>Fired when a node has been added as a <termref def='dt-child'>child</termref> of another node.  This
      event is dispatched after the insertion has taken place.  The target of
      this event is the node being inserted.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: relatedNode holds the parent node</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>DOMNodeRemoved</label>
  		<def>
  		<p>Fired when a node is being removed from its parent node.  This event is
      dispatched before the node is removed from the tree.  The target of this
      event is the node being removed.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: relatedNode holds the parent node</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>DOMNodeRemovedFromDocument</label>
  		<def>
  		<p>Fired when a node is being removed from a document, either through
      direct removal of the Node or removal of a subtree in which it is
      contained.  This event is dispatched before the removal takes place. 
      The target of this event is the Node being removed.  If the Node is
      being directly removed the DOMNodeRemoved event will fire before the
      DOMNodeRemovedFromDocument event.</p>
  		<ulist>
  		<item><p>Bubbles: No</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>DOMNodeInsertedIntoDocument</label>
  		<def>
  		<p>Fired when a node is being inserted into a document, either through
      direct insertion of the Node or insertion of a subtree in which it is
      contained.  This event is dispatched after the insertion has taken
      place.  The target of this event is the node being inserted.  If the
      Node is being directly inserted the DOMNodeInserted event will fire before
      the DOMNodeInsertedIntoDocument event.</p>
  		<ulist>
  		<item><p>Bubbles: No</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>DOMAttrModified</label>
  		<def>
  		<p>Fired after an <code>Attr</code> has been modified on a node. The target of this
  	event is the <code>Node</code> whose <code>Attr</code> changed.  The value of attrChange indicates
  	whether the <code>Attr</code> was modified, added, or removed.  The
  	value of relatedNode indicates the <code>Attr</code> node whose value has been affected.  It is expected
        that string based replacement of an <code>Attr</code> value will be viewed as a modification of the <code>Attr</code>
  	since its identity does not change.  Subsequently replacement of the <code>Attr</code> node with a different
  	<code>Attr</code> node is viewed as the removal of the first <code>Attr</code> node and the addition of the second.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: attrName, attrChange, prevValue, newValue, relatedNode</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>DOMCharacterDataModified</label>
  		<def>
  		<p>Fired after CharacterData within a node has been modified but the node
      itself has not been inserted or deleted.  This event is also triggered by
      modifications to PI elements. The target of this event is the
      CharacterData node.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: prevValue, newValue</p></item>
  		</ulist>
  		</def>
  		</gitem>
  	</glist>
        </p>
  
      </div3>
      <div3 id="Events-eventgroupings-htmlevents">
        <head>HTML event types</head>
        <p>The HTML event module is composed of events listed in HTML 4.0 and additional
  	events which are supported in <termref def='dt-DOM-Level-0'>DOM 
  	Level 0</termref> browsers.</p>
  
      <p>
        A DOM application may use the <code>hasFeature(feature, version)</code>
        method of the <code>DOMImplementation</code> interface with parameter
        values "HTMLEvents" and "2.0" (respectively) to determine whether or not
        the HTML event module is supported by the implementation. In order to
        fully support this module, an implementation must also support the
        "Events" feature defined in this specification. Please, refer to
        additional information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
  
        <note>
  	<p>To create an instance of the <code>Event</code> interface for
  	  the HTML event module, use the
  	feature string "HTMLEvents" as the value of the input parameter used with
  	the <code>createEvent</code> method of the <code>DocumentEvent</code>
  	  interface.</p>
        </note>
  
      <p>The HTML events use the base DOM Event interface to pass contextual information.</p>
  
        <p>The different types of such events that can occur are:
  	<glist>
  	  <gitem>
  		<label>load</label>
  		<def>
  		<p>The load event occurs when the DOM implementation finishes loading all content within
  		a document, all frames within a FRAMESET, or an OBJECT element.</p>
  		<ulist>
  		<item><p>Bubbles: No</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>unload</label>
  		<def><p>The unload event occurs when the DOM implementation removes a document from a window
  		or frame. This event is valid for BODY and FRAMESET elements.</p>
  		<ulist>
  		<item><p>Bubbles: No</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>abort</label>
  		<def><p>The abort event occurs when page loading is stopped before an image has
  		been allowed to completely load. This event applies to OBJECT elements.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>error</label>
  		<def><p>The error event occurs when an image does not load properly or when an
  		error occurs during script execution. This event is valid for OBJECT
  		elements, BODY elements, and FRAMESET element.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>select</label>
  		<def><p>The select event occurs when a user selects some text in a text field.
  		This event is valid for INPUT and TEXTAREA elements.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>change</label>
  		<def><p>The change event occurs when a control loses the input focus and its value
  		has been modified since gaining focus. This event is valid for INPUT, SELECT, and TEXTAREA.
      element.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>submit</label>
  		<def><p>The submit event occurs when a form is submitted. This event only applies to the
  		FORM element.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: Yes</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>reset</label>
  		<def><p>The reset event occurs when a form is reset. This event only applies to the FORM
  		element.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>focus</label>
  		<def><p>The focus event occurs when an element receives focus either via a pointing
  		device or by tabbing navigation. This event is valid for the following
  		elements: LABEL, INPUT, SELECT, TEXTAREA, and BUTTON.</p>
  		<ulist>
  		<item><p>Bubbles: No</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  		<gitem>
  		<label>blur</label>
  		<def><p>The blur event occurs when an element loses focus either via the pointing
  		device or by tabbing navigation. This event is valid for the following
  		elements: LABEL, INPUT, SELECT, TEXTAREA, and BUTTON.</p>
  		<ulist>
  		<item><p>Bubbles: No</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  		</gitem>
  
  	  <gitem>
  		<label>resize</label>
  		<def>
  		<p>The resize event occurs when a document view is resized.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  	  </gitem>
  
  	  <gitem>
  		<label>scroll</label>
  		<def>
  		<p>The scroll event occurs when a document view is
  		scrolled.</p>
  		<ulist>
  		<item><p>Bubbles: Yes</p></item>
  		<item><p>Cancelable: No</p></item>
  		<item><p>Context Info: None</p></item>
  		</ulist>
  		</def>
  	  </gitem>
  	</glist>
        </p>
      </div3>
    </div2>
  </div1>
  <!--
   *************************************************************************
   * END OF EVENTS                                                         *
   *************************************************************************
  -->
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/documentevent.xml
  
  Index: documentevent.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: documentevent.xml,v 1.1 2001/06/01 11:15:11 dims Exp $ -->
  <!-- DocumentEvent interface -->
  
    <interface name="DocumentEvent" id="Events-DocumentEvent" since="DOM Level 2">
      <descr>
        <p>
        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.
        </p>
      </descr>
  
      <method name="createEvent" id="Events-DocumentEvent-createEvent">
       <descr>
       <p></p>
       </descr>
       <parameters>
        <param name="eventType" type="DOMString" attr="in">
  	    <descr>
          <p>The <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.</p>
          <p>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 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.</p>
        </descr>
        </param>
       </parameters>
       <returns type="Event">
         <descr><p>The newly created <code>Event</code></p></descr>
       </returns>
       <raises>
        <exception name="DOMException">
  	      <descr><p>NOT_SUPPORTED_ERR: Raised if the implementation does not support
          the type of <code>Event</code> interface requested</p>
          </descr>
        </exception>
       </raises>
      </method>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/event.xml
  
  Index: event.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: event.xml,v 1.1 2001/06/01 11:15:12 dims Exp $ -->
  <!-- Event interface -->
  
    <interface name="Event" id="Events-Event" since="DOM Level 2">
      <descr>
      <p>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.
      </p>
      </descr>
  
  	<group id="Events-Event-eventPhaseType" name="PhaseType">
  		<descr><p>An integer indicating which phase of event flow is being processed.</p></descr>
  		<constant name="CAPTURING_PHASE" type="unsigned short" value="1">
  		  <descr><p>The current event phase is the capturing phase.</p></descr>
  		</constant>
  		<constant name="AT_TARGET" type="unsigned short" value="2">
  		  <descr><p>The event is currently being evaluated at the target <code>EventTarget</code>.</p></descr>
  		</constant>
  		<constant name="BUBBLING_PHASE" type="unsigned short" value="3">
  		  <descr><p>The current event phase is the bubbling phase.</p></descr>
  		</constant>
  	</group>
  
      <attribute type="DOMString" name="type" readonly="yes" id="Events-Event-type">
       <descr>
       <p>The name of the event (case-insensitive). The name must be an <termref def="dt-XML-name">XML
  	  name</termref>.</p>
       </descr>
      </attribute>
  
      <attribute type="EventTarget" name="target" readonly="yes" id="Events-Event-target">
       <descr>
       <p>Used to indicate the <code>EventTarget</code> to which the event 
  	 was originally dispatched.
       </p>
       </descr>
      </attribute>
  
      <attribute type="EventTarget" name="currentTarget" readonly="yes" id="Events-Event-currentTarget">
       <descr>
       <p>Used to indicate the <code>EventTarget</code> whose
       <code>EventListeners</code> are currently being processed.  This is particularly
       useful during capturing and bubbling.
       </p>
       </descr>
      </attribute>
  
      <attribute type="unsigned short" name="eventPhase" readonly="yes" id="Events-Event-eventPhase">
       <descr>
       <p>Used to indicate which phase of event flow is currently 
  	 being evaluated.
       </p>
       </descr>
      </attribute>
  
      <attribute type="boolean" name="bubbles" readonly="yes" id="Events-Event-canBubble">
       <descr>
       <p>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.
       </p>
       </descr>
      </attribute>
  
      <attribute type="boolean" name="cancelable" readonly="yes" id="Events-Event-canCancel">
       <descr>
       <p>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.
       </p>
       </descr>
      </attribute>
  
      <attribute type="DOMTimeStamp" name="timeStamp" readonly="yes" id="Events-Event-timeStamp">
       <descr>
        <p>
  	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.
       </p>
       </descr>
      </attribute>
  
      <method name="stopPropagation" id="Events-Event-stopPropagation">
       <descr>
       <p>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.</p>
       </descr>
       <parameters>
       </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
  
      <method name="preventDefault" id="Events-Event-preventDefault">
       <descr>
       <p>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 <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 <code>preventDefault</code> has been
     called it will remain in effect throughout the remainder of the event's propagation.  This
     method may be used during any stage of event flow.
       </p>
       </descr>
       <parameters>
       </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
  
      <method name="initEvent" id="Events-Event-initEvent">
        <descr>
        <p>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 <code>Event</code> interface only the values specified in the <code>initEvent</code> method are
        modified, all other attributes are left unchanged.</p>
        </descr>
        <parameters>
          <param name="eventTypeArg" type="DOMString" attr="in">
  	  <descr><p>Specifies 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 <termref def="dt-XML-name">XML name</termref>. </p>
            <p>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.</p>
            </descr>
          </param>
          <param name="canBubbleArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not the event can bubble.</p>
            </descr>
          </param>
          <param name="cancelableArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not the event's default 
            action can be prevented.</p>
            </descr>
          </param>
        </parameters>
        <returns type="void">
          <descr><p></p></descr>
        </returns>
        <raises>
         <!-- No exceptions -->
        </raises>
      </method>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/eventcapturer.xml
  
  Index: eventcapturer.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: eventcapturer.xml,v 1.1 2001/06/01 11:15:12 dims Exp $ -->
  <!-- Event interface -->
  
    <interface name="EventCapturer" id="Events-EventCapturer"
        since="DOM Level 2">
      <descr>
      <p>The <code>EventCapturer</code> interface is implemented by <code>Node</code>'s which are
  	designated as being able to capture events.
      </p>
      </descr>
  
      <method name="captureEvent" id="Events-EventCapturer-captureEvent">
       <descr>
       <p>This method is used when a capturing <code>Node</code> wishes to begin
  	 capturing a particular type of event. 
       </p>
       </descr>
       <parameters>
        <param name="type" type="DOMString" attr="in">
  	  <descr><p>The name of the event to be captured</p></descr>
        </param>
       </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
  
      <method name="releaseEvent" id="Events-EventCapturer-releaseEvent">
       <descr>
       <p>This method is used when a capturing <code>Node</code> wishes to cease
  	 capturing a particular type of event.
       </p>
       </descr>
       <parameters>
        <param name="type" type="DOMString" attr="in">
  	  <descr><p>The name of the event to be released</p></descr>
        </param>
       </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
  
      <method name="routeEvent" id="Events-EventCapturer-routeEvent">
       <descr>
       <p>This method is called during the handling of an event by a capturing <code>
  	 Node</code> to continue the event's flow to additional event handlers, or if none
  	 are present, to the event's target. 
       </p>
       </descr>
       <parameters>
  	 </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <!-- Need an exception for when method is called outside of an event listener -->
       </raises>
      </method>
  
    </interface>
  
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/eventexception.xml
  
  Index: eventexception.xml
  ===================================================================
  <?xml version='1.0' encoding='UTF-8'?>
  <!-- EventException interface -->
  
  <exception id="Events-EventException" name="EventException" since="DOM Level 2">
    <descr>
      <p>
        Event operations may throw an <code>EventException</code> as specified in
        their method descriptions.
      </p>
    </descr>
    
    <component id="Events-EventException-code" name="code">
      <typename>unsigned short</typename>
    </component>
    
  </exception>
  
  <group id="Events-EventException-EventExceptionCode" name="EventExceptionCode" since="DOM Level 2">
    <descr>
      <p>
        An integer indicating the type of error generated.
      </p>
    </descr>
    <constant name="UNSPECIFIED_EVENT_TYPE_ERR" type="unsigned short" value="0">
      <descr>
        <p>
  	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.
        </p>
      </descr>
    </constant>
  </group>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/eventlistener.xml
  
  Index: eventlistener.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: eventlistener.xml,v 1.1 2001/06/01 11:15:12 dims Exp $ -->
  <!-- Event listener interface -->
  
  <interface id="Events-EventListener" name="EventListener"
    since="DOM Level 2">
    <descr>
      <p>
        The <code>EventListener</code> interface is the primary method for
        handling events. Users implement the <code>EventListener</code> interface
        and register their listener on an <code>EventTarget</code> using the
        <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>
  	<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>
    </descr>
    
    <method name="handleEvent" id="Events-EventListener-handleEvent">
      <descr>
        <p>
  	This method is called whenever an event occurs of the type for which
  	the <code> EventListener</code> interface was registered.
        </p>
      </descr>
      <parameters>
        <param name="evt" type="Event" attr="in">
  	<descr>
  	  <p>
  	    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 determining the event's flow and default
  	    action.
  	  </p>
  	</descr>
        </param>
      </parameters>
      <returns type="void">
        <descr><p></p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/eventtarget.xml
  
  Index: eventtarget.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: eventtarget.xml,v 1.1 2001/06/01 11:15:13 dims Exp $ -->
  <!-- Event target interface -->
  
    <interface name="EventTarget" id="Events-EventTarget"
      since="DOM Level 2">
      <descr>
      <p>
        The <code>EventTarget</code> interface is implemented by all
        <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>
      </descr>
  
      <method name="addEventListener" id="Events-EventTarget-addEventListener">
       <descr>
       <p>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.
       </p>
       <p>
       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 
      discarded they do not need to be removed with the <code>removeEventListener</code> method.
       </p>
       </descr>
       <parameters>
        <param name="type" type="DOMString" attr="in">
  	  <descr><p>The event type for which the user is registering</p></descr>
        </param>
        <param name="listener" type="EventListener" attr="in">
  	  <descr><p>The <code>listener</code> parameter takes an interface implemented by
  	  the user which contains the methods to be called when the event occurs.</p></descr>
        </param>
  	  <param name="useCapture" type="boolean" attr="in">
  	  <descr><p>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 <code>EventListener</code> before being dispatched to any
  	  <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.</p>
      	  </descr>
        </param>
       </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
  
      <method name="removeEventListener" id="Events-EventTarget-removeEventListener">
       <descr>
       <p>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.</p>
      <p>Calling <code>removeEventListener</code> with arguments which do not identify any
      currently registered <code>EventListener</code> on the <code>EventTarget</code>
      has no effect.</p>
       </descr>
       <parameters>
        <param name="type" type="DOMString" attr="in">
  	    <descr><p>Specifies the event type of the <code>EventListener</code> being removed.
  	    </p>
  	    </descr>
        </param>
        <param name="listener" type="EventListener" attr="in">
  	  <descr><p>The <code>EventListener</code> parameter indicates the <code>EventListener
  	  </code> to be removed.
  	  </p></descr>
        </param>
  	    <param name="useCapture" type="boolean" attr="in">
  	    <descr><p>Specifies 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 does not
        affect a non-capturing version of the same listener, and vice versa.
  	    </p></descr>
        </param>
       </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
  
      <method name="dispatchEvent" id="Events-EventTarget-dispatchEvent">
       <descr>
       <p>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.
       </p>
       </descr>
       <parameters>
        <param name="evt" type="Event" attr="in">
  	    <descr><p>Specifies the event type, behavior, and contextual information to be used
        in processing the event.</p>
  	    </descr>
        </param>
       </parameters>
       <returns type="boolean">
         <descr><p>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 called the value is false, else the value is true.
         </p></descr>
       </returns>
       <raises>
        <exception name="EventException">
  	      <descr><p>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 will also trigger this
  	      exception.</p>
          </descr>
        </exception>
       </raises>
      </method>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/mouseevent.xml
  
  Index: mouseevent.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: mouseevent.xml,v 1.1 2001/06/01 11:15:13 dims Exp $ -->
  <!-- MouseEvent interface -->
  
    <interface name="MouseEvent" inherits="UIEvent" id="Events-MouseEvent"
      since="DOM Level 2">
      <descr>
      <p>The <code>MouseEvent</code> interface provides specific contextual 
        information associated with Mouse events.</p>
      <p>The <code>detail</code> attribute inherited from <code>UIEvent</code>
        indicates the number of times a mouse button has been pressed and
        released over the same screen location during a user action.  The
        attribute value is 1 when the user begins this action and increments by 1
        for each full sequence of pressing and releasing. If the user moves the
        mouse between the mousedown and mouseup the value will be set to 0,
        indicating that no click is occurring.</p>
      <p>In the case of nested elements mouse events are always targeted at the
        most deeply nested element.  Ancestors of the targeted element may use
        bubbling to obtain notification of mouse events which occur within its
        descendent elements.</p>
      </descr>
  
      <attribute type="long" name="screenX" readonly="yes"
      id="Events-MouseEvent-screenX">
       <descr>
        <p>The horizontal coordinate at which the
  	event occurred relative to the origin of the screen coordinate
  	system.</p>
       </descr>
      </attribute>
  
      <attribute type="long" name="screenY" readonly="yes"
      id="Events-MouseEvent-screenY">
       <descr>
        <p>The vertical coordinate at which the
  	event occurred relative to the origin of the screen coordinate
  	system.</p>
       </descr>
      </attribute>
  
      <attribute type="long" name="clientX" readonly="yes"
      id="Events-MouseEvent-clientX">
       <descr>
        <p>The horizontal coordinate at which the
  	event occurred relative to the DOM implementation's client area.</p>
       </descr>
      </attribute>
  
      <attribute type="long" name="clientY" readonly="yes"
      id="Events-MouseEvent-clientY">
       <descr>
        <p>The vertical coordinate at which the
  	event occurred relative to the DOM implementation's client area.</p>
  
       </descr>
      </attribute>
  
      <attribute type="boolean" name="ctrlKey" readonly="yes"
      id="Events-MouseEvent-ctrlKey">
       <descr>
        <p>Used to indicate whether the 'ctrl' key was depressed
  	during the firing of the event.</p>
       </descr>
      </attribute>
  
      <attribute type="boolean" name="shiftKey" readonly="yes"
      id="Events-MouseEvent-shiftKey">
       <descr>
        <p>Used to indicate whether the 'shift' key was depressed
  	during the firing of the event.</p>
       </descr>
      </attribute>
  
      <attribute type="boolean" name="altKey" readonly="yes"
      id="Events-MouseEvent-altKey">
       <descr>
        <p>Used to indicate whether the 'alt' key was depressed
  	during the firing of the event. On some platforms this key may map to
  	an alternative key name.</p>
       </descr>
      </attribute>
  
      <attribute type="boolean" name="metaKey" readonly="yes"
      id="Events-MouseEvent-metaKey">
       <descr>
        <p>Used to indicate whether the 'meta' key was depressed
  	during the firing of the event.  On some platforms this key may map to
  	an alternative key name.</p>
       </descr>
      </attribute>
  
      <attribute type="unsigned short" name="button" readonly="yes"
      id="Events-MouseEvent-button">
       <descr>
        <p>During mouse events caused by the depression or release of a mouse
  	button, <code>button</code> is used to indicate which mouse button
  	changed state.  The values for <code>button</code> range from zero to indicate 
    the left button of the mouse, one to indicate the middle button if present, and 
    two to indicate the right button.  For mice configured for left handed use in which
    the button actions are reversed the values are instead read from right to left.</p>
       </descr>
      </attribute>
  
      <attribute type="EventTarget" name="relatedTarget" readonly="yes"
      id="Events-MouseEvent-relatedTarget">
       <descr>
        <p>Used to identify a secondary <code>EventTarget</code> related
  	to a UI event.  Currently this attribute is used with the mouseover event to indicate the
    <code>EventTarget</code> which the pointing device exited and with the mouseout event to indicate the 
    <code>EventTarget</code> which the pointing device entered.</p>
       </descr>
      </attribute>
  
      <method name="initMouseEvent" id="Events-Event-initMouseEvent">
        <descr>
        <p>The <code>initMouseEvent</code> method is used to initialize the value of a <code>MouseEvent</code> created through
        the <code>DocumentEvent</code> interface.  This method may only be called before the <code>MouseEvent</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.</p>
        </descr>
        <parameters>
          <param name="typeArg" type="DOMString" attr="in">
            <descr><p>Specifies the event type.</p>
            </descr>
          </param>
          <param name="canBubbleArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not the event can bubble.</p>
            </descr>
          </param>
          <param name="cancelableArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not the event's default 
            action can be prevented.</p>
            </descr>
          </param>
          <param name="viewArg" type="views::AbstractView" attr="in">
            <descr><p>Specifies the <code>Event</code>'s
  	    <code>AbstractView</code>.</p>
            </descr>
          </param>
          <param name="detailArg" type="long" attr="in">
            <descr><p>Specifies the <code>Event</code>'s mouse click count.</p>
            </descr>
          </param>
          <param name="screenXArg" type="long" attr="in">
            <descr><p>Specifies the <code>Event</code>'s screen x coordinate</p>
            </descr>
          </param>
          <param name="screenYArg" type="long" attr="in">
            <descr><p>Specifies the <code>Event</code>'s screen y coordinate</p>
            </descr>
          </param>
          <param name="clientXArg" type="long" attr="in">
            <descr><p>Specifies the <code>Event</code>'s client x coordinate</p>
            </descr>
          </param>
          <param name="clientYArg" type="long" attr="in">
            <descr><p>Specifies the <code>Event</code>'s client y coordinate</p>
            </descr>
          </param>
          <param name="ctrlKeyArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not control key was depressed during
  	    the <code>Event</code>.</p>
            </descr>
          </param>
          <param name="altKeyArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not alt key was depressed during the 
            <code>Event</code>.</p>
            </descr>
          </param>
          <param name="shiftKeyArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not shift key was depressed during the
  	    <code>Event</code>.</p>
            </descr>
          </param>
          <param name="metaKeyArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not meta key was depressed during the 
            <code>Event</code>.</p>
            </descr>
          </param>
          <param name="buttonArg" type="unsigned short" attr="in">
            <descr><p>Specifies the <code>Event</code>'s mouse button.</p>
            </descr>
          </param>
          <param name="relatedTargetArg" type="EventTarget" attr="in">
            <descr><p>Specifies the <code>Event</code>'s related <code>EventTarget</code>.</p>
            </descr>
          </param>
        </parameters>
        <returns type="void">
         <descr><p></p></descr>
        </returns>
        <raises>
        <!-- No exceptions -->
        </raises>
      </method>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/mutationevent.xml
  
  Index: mutationevent.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: mutationevent.xml,v 1.1 2001/06/01 11:15:13 dims Exp $ -->
  <!-- MutationEvent interface -->
  
    <interface name="MutationEvent" inherits="Event"
      id="Events-MutationEvent" since="DOM Level 2">
      <descr>
      <p>The <code>MutationEvent</code> interface provides specific contextual 
  	information associated with Mutation events.
      </p>
      </descr>
  
  	<group id="Events-MutationEvent-attrChangeType" name="attrChangeType">
  		<descr><p>An integer indicating in which way the <code>Attr</code> was changed.</p></descr>
  		<constant name="MODIFICATION" type="unsigned short" value="1">
  		  <descr><p>The <code>Attr</code> was modified in place.</p></descr>
  		</constant>
  		<constant name="ADDITION" type="unsigned short" value="2">
  		  <descr><p>The <code>Attr</code> was just added.</p></descr>
  		</constant>
  		<constant name="REMOVAL" type="unsigned short" value="3">
  		  <descr><p>The <code>Attr</code> was just removed.</p></descr>
  		</constant>
  	</group>
  
      <attribute type="Node" name="relatedNode" readonly="yes"
      id="Events-MutationEvent-relatedNode">
       <descr>
       <p>
  	 <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
  	 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.
       </p>
       </descr>
      </attribute>
  
      <attribute type="DOMString" name="prevValue" readonly="yes"
      id="Events-MutationEvent-prevValue">
       <descr>
       <p>
  	   <code>prevValue</code> indicates the previous value of the <code>Attr</code> node in
       DOMAttrModified events, and of the <code>CharacterData</code> node in DOMCharDataModified events.
       </p>
       </descr>
      </attribute>
  
      <attribute type="DOMString" name="newValue" readonly="yes"
      id="Events-MutationEvent-newValue">
       <descr>
       <p>
  	   <code>newValue</code> indicates the new value of the <code>Attr</code> node in DOMAttrModified
       events, and of the <code>CharacterData</code> node in DOMCharDataModified events.
       </p>
       </descr>
      </attribute>
  
      <attribute type="DOMString" name="attrName" readonly="yes"
      id="Events-MutationEvent-attrName">
       <descr>
       <p>
  	   <code>attrName</code> indicates the name of the changed <code>Attr</code> node in a
       DOMAttrModified event.
       </p>
       </descr>
      </attribute>
  
      <attribute type="unsigned short" name="attrChange" readonly="yes"
      id="Events-MutationEvent-attrChange">
       <descr>
       <p>
     <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>.
       </p>
       </descr>
      </attribute>
  
      <method name="initMutationEvent" id="Events-Event-initMutationEvent">
        <descr>
        <p>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 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 final invocation takes precedence.</p>
        </descr>
        <parameters>
          <param name="typeArg" type="DOMString" attr="in">
            <descr><p>Specifies the event type.</p>
            </descr>
          </param>
          <param name="canBubbleArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not the event can bubble.</p>
            </descr>
          </param>
          <param name="cancelableArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not the event's default 
            action can be prevented.</p>
            </descr>
          </param>
          <param name="relatedNodeArg" type="Node" attr="in">
            <descr><p>Specifies the <code>Event</code>'s related Node.</p>
            </descr>
          </param>
          <param name="prevValueArg" type="DOMString" attr="in">
            <descr><p>Specifies the <code>Event</code>'s <code>prevValue</code> attribute.  This value may be null.</p>
            </descr>
          </param>
          <param name="newValueArg" type="DOMString" attr="in">
            <descr><p>Specifies the <code>Event</code>'s <code>newValue</code> attribute.  This value may be null.</p>
            </descr>
          </param>
          <param name="attrNameArg" type="DOMString" attr="in">
            <descr><p>Specifies the <code>Event</code>'s <code>attrName</code> attribute.  This value may be null.</p>
            </descr>
          </param>
          <param name="attrChangeArg" type="unsigned short" attr="in">
            <descr><p>Specifies the <code>Event</code>'s <code>attrChange</code> attribute</p>
            </descr>
          </param>
       </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/events/definitions/uievent.xml
  
  Index: uievent.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- $Id: uievent.xml,v 1.1 2001/06/01 11:15:13 dims Exp $ -->
  <!-- UIEvent interface -->
  
    <interface name="UIEvent" inherits="Event" id="Events-UIEvent"
      since="DOM Level 2">
      <descr>
      <p>The <code>UIEvent</code> interface provides specific contextual 
        information associated with User Interface events.</p>
      </descr>
  
      <attribute type="views::AbstractView" name="view" readonly="yes"
      id="Events-UIEvent-view">
       <descr>
       <p>The <code>view</code> attribute identifies the
  	<code>AbstractView</code> from which the event was generated.</p>
       </descr>
      </attribute>
  
    <attribute id="Events-UIEvent-detail" name="detail" type="long" readonly="yes">
      <descr><p>Specifies some detail information about the <code>Event</code>,
  	depending on the type of event.</p>
      </descr>
    </attribute>
  
      <method name="initUIEvent" id="Events-Event-initUIEvent">
        <descr>
        <p>The <code>initUIEvent</code> method is used to initialize the value of a <code>UIEvent</code> created through
        the <code>DocumentEvent</code> interface.  This method may only be called before the <code>UIEvent</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.</p>
        </descr>
        <parameters>
          <param name="typeArg" type="DOMString" attr="in">
            <descr><p>Specifies the event type.</p>
            </descr>
          </param>
          <param name="canBubbleArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not the event can bubble.</p>
            </descr>
          </param>
          <param name="cancelableArg" type="boolean" attr="in">
            <descr><p>Specifies whether or not the event's default 
            action can be prevented.</p>
            </descr>
          </param>
          <param name="viewArg" type="views::AbstractView" attr="in">
            <descr><p>Specifies the <code>Event</code>'s
  	    <code>AbstractView</code>.</p>
            </descr>
          </param>
          <param name="detailArg" type="long" attr="in">
            <descr><p>Specifies the <code>Event</code>'s detail.</p>
            </descr>
          </param>
        </parameters>
        <returns type="void">
         <descr><p></p></descr>
        </returns>
        <raises>
        <!-- No exceptions -->
        </raises>
      </method>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/css.xml
  
  Index: css.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:15:18 $ $Revision: 1.1 $ -->
  <!--
   *************************************************************************
   * BEGINNING OF LEVEL TWO CSS                                           *
   *************************************************************************
  -->
  <div1 id="CSS">
    <head>Document Object Model CSS</head>
    <orglist role="editors">
      <member>
        <name>Chris Wilson</name>
        <affiliation>Microsoft Corp.</affiliation>
      </member>
      <member>
        <name>Philippe Le H&eacute;garet</name>
        <affiliation>W3C</affiliation>
      </member>
      <member>
        <name>Vidur Apparao</name>
        <affiliation>Netscape Communications Corp.</affiliation>
      </member>
    </orglist>
    <?GENERATE-MINI-TOC?>
    <!--
    ******************************************************
    | INTRODUCTION                                       |
    ******************************************************
    -->
    <div2 id="CSS-overview">
      <head>Overview of the DOM Level 2 CSS Interfaces</head>
      <p>
        The DOM Level 2 Cascading Style Sheets (<loc href="&CSS;">CSS</loc>)
        interfaces are designed with the goal of exposing CSS constructs to
        object model consumers. Cascading Style Sheets is a declarative syntax
        for defining presentation rules, properties and ancillary constructs used
        to format and render Web documents. This document specifies a mechanism
        to programmatically access and modify the rich style and presentation
        control provided by CSS (specifically CSS level 2 <bibref
        ref='CSS2'/>).  This augments CSS by providing a mechanism to dynamically
        control the inclusion and exclusion of individual style sheets, as well
        as manipulate CSS rules and properties.
      </p>
      <p>
        The CSS interfaces are organized in a logical, rather than 
        physical structure.  A collection of all style sheets 
        referenced by or embedded in the document is accessible on
        the document interface.  Each item in this collection exposes
        the properties common to all style sheets referenced or embedded
        in HTML and XML documents; this interface is described in the
        <specref ref="StyleSheets"/>.  User style sheets are
        not accessible through this collection, in part due to potential
        privacy concerns (and certainly read-write issues).
      </p>
      <p>
        For each CSS style sheet, an additional interface is exposed - the
        <code>CSSStyleSheet</code> interface.  This interface allows access to
        the collection of rules within a CSS style sheet and methods to modify
        that collection.  Interfaces are provided for each specific type of rule
        in CSS2 (e.g. style declarations, <code>@import</code> rules, or
        <code>@font-face</code> rules), as well as a shared generic
        <code>CSSRule</code> interface.
      </p>
      <p>
        The most common type of rule is a style declaration.  The
        <code>CSSStyleRule</code> interface that represents this type of rule
        provides string access to the CSS selector of the rule, and access to the
        property declarations through the <code>CSSStyleDeclaration</code>
        interface.
      </p>
      <p>
        Finally, an optional <code>CSS2Properties</code> interface is described; 
        this interface (if implemented) provides shortcuts to the string
        values of all the properties in CSS level 2.
      </p>
      <p>
        All CSS objects in the DOM are "live", that is, a change in the style sheet
        is reflected in the computed and actual style.
      </p>
      
    </div2>
    <div2 id="CSS-fundamental">
      <head>CSS Fundamental Interfaces</head>
  
      <p>
        The interfaces within this section are considered fundamental CSS
        interfaces, and must be supported by all conforming implementations of
        the CSS module. These interfaces represent CSS style sheets specifically.
      </p>
      <p>
        A DOM application may use the <code>hasFeature(feature, version)</code>
        method of the <code>DOMImplementation</code> interface with parameter
        values "CSS" and "2.0" (respectively) to determine whether or not this
        module is supported by the implementation. In order to fully support this
        module, an implementation must also support the "Core" feature defined
        defined in the DOM Level 2 Core specification <bibref ref="DOMCore"/> and
        the "Views" feature defined in the DOM Level 2 Views specification
        <bibref ref="DOMViews"/>. Please refer to additional information about
        <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
  
      <definitions>
        &css-cssstylesheet;
        &css-cssrulelist;
        &css-cssrule;
        &css-cssstylerule;
        &css-cssmediarule;
        &css-cssfontfacerule;
        &css-csspagerule;
        &css-cssimportrule;
        &css-csscharsetrule;
        &css-cssunknownrule;
        &css-cssstyledeclaration;
        &css-cssvalue;
        &css-cssprimitivevalue;
        &css-cssvaluelist;
        &css-rgbcolor;
        &css-rect;
        &css-counter;
      </definitions>
  
      <div3 id="CSS-OverrideAndComputed">
        <head>Override and computed style sheet</head>
        <definitions>
  	&css-viewcss;
  	&css-documentcss;
        </definitions>
      </div3>    
  
      <div3 id="CSS-StyleSheetCreation">
        <head>Style sheet creation</head>
        <definitions>
  	&css-domimplementationcss;
        </definitions>
      </div3>    
  
      <div3 id="CSS-htmlelementcss">
        <head>Element with CSS inline style</head>
        <definitions>
  	&css-elementcssinlinestyle;
        </definitions>
      </div3>    
  
    </div2>
  
    <div2 id="CSS-extended">
      <head>CSS2 Extended Interface</head>
      <p>
        The interface found within this section are not mandatory. A DOM
        application may use the <code>hasFeature(feature, version)</code> method
        of the <code>DOMImplementation</code> interface with parameter values
        "CSS2" and "2.0" (respectively) to determine whether or not this module
        is supported by the implementation. In order to fully support this
        module, an implementation must also support the "CSS" feature defined
        defined in <specref ref="CSS-fundamental"/>. Please refer to additional
        information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
  
      <definitions>
        &css-css2properties;
      </definitions>
    </div2>
  </div1>
        <!--
        *************************************************************************
        * END OF LEVEL TWO CSS                                                 *
        *************************************************************************
        -->
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/dom-spec.xml
  
  Index: dom-spec.xml
  ===================================================================
  <?xml version="1.0" ?>
  <!-- $Id: dom-spec.xml,v 1.1 2001/06/01 11:15:20 dims Exp $ -->
  <!DOCTYPE spec PUBLIC
        "-//W3C//DTD Specification V2.1-Based DOM//EN"
        "../../../pubtext/xmlspec-v21-dom.dtd" [
  
  <!ENTITY prefix "Style">
  <!ENTITY % version SYSTEM "../version.xml">
  %version;
  <!ENTITY % links SYSTEM "../link-entities.xml">
  %links;
  <!ENTITY % parts SYSTEM "../part-entities.xml">
  %parts;
  <!ENTITY options SYSTEM "../options.xml">
  ]>
  
  <spec>
    <!--
    *************************************************************************
    * FRONT MATTER                                                          *
    *************************************************************************
    -->
  &options;
  
  <header> 
  <title>Document Object Model (DOM) Level 2 Style Specification</title>
  <version>1.0</version> <w3c-designation>&doc.prefix;-&doc.date;
  </w3c-designation> <w3c-doctype>W3C Recommendation</w3c-doctype> <pubdate> 
  <day>&date.day;</day> <month>&date.month;</month> <year>&date.year;</year> 
  </pubdate> 
  <publoc> <loc href="&this.url;">&this.url;</loc>
  &ps.loc;
  &pdf.loc;
  &txt.loc;
  &zip.loc;
  </publoc>
  <latestloc> <loc href="&latest.url;">&latest.url;</loc> </latestloc> 
  <prevlocs>
  &prev.locs;
  </prevlocs> 
  <authlist> 
  <author role="editor"> <name>Chris Wilson</name>
  <affiliation>Microsoft Corp.</affiliation> </author>
  <author role="editor"> <name>Philippe Le H&eacute;garet</name> 
  <affiliation>W3C, team contact (from November 1999)</affiliation> </author> 
  <author role="editor"> <name>Vidur Apparao</name> 
  <affiliation>Netscape Communications Corp.</affiliation> </author> 
  </authlist>
      <!--
      ******************************************************
      * DOCUMENT ABSTRACT                                  *
      ******************************************************
      -->
  <abstract id="id-abstract"> 
  
  <p>This specification defines the Document Object Model Level 2 Style Sheets
  and Cascading Style Sheets (CSS), a platform- and language-neutral interface
  that allows programs and scripts to dynamically access and update the content
  and of style sheets documents. The Document Object Model Level 2 Style
  builds on the Document Object Model Level 2 Core <bibref ref='DOMCore'/> and on
  the Document Object Model Level 2 Views <bibref ref='DOMViews'/>.</p>
  
  </abstract>
  
  &status;
  
  <sourcedesc>
  <p>Created in electronic form.</p>
  </sourcedesc>
  <langusage>
  <language id="en">English</language>
  </langusage>
  <revisiondesc>
  <p>$Revision: 1.1 $</p>
  </revisiondesc>
  <?GENERATE-TOC?>
  </header>
  <front>
    &toc;
    &copyright;
  </front> 
   
  <body>
    &stylesheets;
    &css;
  </body>
    <!--
    *************************************************************************
    * BACK MATTER                                                           *
    *************************************************************************
    -->
  <back> 
  <div1 role="idl" id="idl">
    <head>IDL Definitions</head>
  
    <p>This appendix contains the complete OMG IDL <bibref ref='OMGIDL'/> for the
    Level 2 Document Object Model Style definitions. The
    definitions are divided into <loc href="#StyleSheets-IDL">Stylesheets</loc>
    and <loc href="#CSS-IDL">CSS</loc>.</p>
  
  
    <p>The IDL files are also available as: <loc
        href="idl.zip">&this.url;/idl.zip</loc></p>
  
    <div2 id="StyleSheets-IDL">
      <head>Document Object Model Style Sheets</head>
      <!--
      ******************************************************
      | STYLESHEETS OMG IDL DEFINITIONS                    |
      ******************************************************
      -->
        <?GENERATE-IDL StyleSheets stylesheets dom.w3c.org dom?>
    </div2>
    <div2 id="CSS-IDL">
      <head>Document Object Model CSS</head>
      <!--
      ******************************************************
      | CSS OMG IDL DEFINITIONS                            |
      ******************************************************
      -->
        <?GENERATE-IDL CSS css dom.w3c.org dom stylesheets views?>
    </div2>
  </div1>
  
  <div1 role="java-binding" id="java-binding">
    <head>Java Language Binding</head>
  
    <p>This appendix contains the complete Java Language <bibref ref='Java'/>
    binding for the Level 2 Document Object Model Style. The definitions are
    divided into <loc href="#StyleSheets-Java">StyleSheets</loc> and <loc
    href="#CSS-Java">CSS</loc>.</p>
  
    <p>The Java files are also available as <loc
        href="java-binding.zip">&this.url;/java-binding.zip</loc></p>
  
    <div2 id="StyleSheets-Java"> 
      <head>Document Object Model Style Sheets</head>
      <!--
      ******************************************************
      | STYLESHEETS JAVA BINDINGS                          |
      ******************************************************
      -->
        <?GENERATE-JAVA StyleSheets org.w3c.dom stylesheets?>
    </div2>
    <div2 id="CSS-Java"> 
      <head>Document Object Model CSS</head>
      <!--
      ******************************************************
      | CSS JAVA BINDINGS                                  |
      ******************************************************
      -->
        <?GENERATE-JAVA CSS org.w3c.dom css?>
    </div2>
  </div1>
  <div1 role="ecma-binding" id="ecma-binding">
    <head>ECMAScript Language Binding</head>
  
    <p>This appendix contains the complete ECMAScript <bibref
    ref='ECMAScript'/> binding for the Level 2 Document Object Model Style
    definitions. The definitions are divided into 
      <loc href="#StyleSheets-ECMA">StyleSheets</loc> and
      <loc href="#CSS-ECMA">CSS</loc>.</p>
  
        <note>
  	<p>
  	  Exceptions handling is only supported by ECMAScript implementation
  	  conformant with the Standard ECMA-262 3rd. Edition (<bibref
  	  ref="ECMAScript"/>).
  	</p>
        </note>
  
    <div2 id="StyleSheets-ECMA">
      <head>Document Object Model StyleSheets</head>
      <!--
      ******************************************************
      | STYLESHEETS ECMASCRIPT BINDINGS                   |
      ******************************************************
      -->
        <?GENERATE-ECMA StyleSheets?>
    </div2>
    <div2 id="CSS-ECMA">
      <head>Document Object Model CSS</head>
      <!--
      ******************************************************
      | CSS ECMASCRIPT BINDINGS                           |
      ******************************************************
      -->
        <?GENERATE-ECMA CSS?>
    </div2>
  </div1>
    &contributors; 
    &references;
    &index; 
  </back>
  </spec> 
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/stylesheets.xml
  
  Index: stylesheets.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Date: 2001/06/01 11:15:20 $ $Revision: 1.1 $ -->
  <!--
   *************************************************************************
   * BEGINNING OF LEVEL TWO STYLE SHEETS                                   *
   *************************************************************************
  -->
  <div1 id="StyleSheets">
    <head>Document Object Model Style Sheets</head>
    <orglist role="editors">
      <member>
        <name>Chris Wilson</name>
        <affiliation>Microsoft Corp.</affiliation>
      </member>
      <member>
        <name>Philippe Le H&eacute;garet</name>
        <affiliation>W3C</affiliation>
      </member>
      <member>
        <name>Vidur Apparao</name>
        <affiliation>Netscape Communications Corp.</affiliation>
      </member>
    </orglist>
    <?GENERATE-MINI-TOC?>
    <!--
    ******************************************************
    | INTRODUCTION                                       |
    ******************************************************
    -->
    <div2 id="StyleSheets-overview">
      <head>Introduction</head>
      <p>
        The DOM Level 2 Style Sheet interfaces are base interfaces used to
        represent any type of style sheet. The expectation is that DOM modules
        that represent a specific style sheet language may contain interfaces
        that derive from these interfaces.
      </p>
      <p>
        The interfaces found within this section are not mandatory. A DOM
        application may use the <code>hasFeature(feature, version)</code> method
        of the <code>DOMImplementation</code> interface with parameter values
        "StyleSheets" and "2.0" (respectively) to determine whether or not this module
        is supported by the implementation. In order to fully support this
        module, an implementation must also support the "Core" feature defined
        defined in the DOM 2 Core specification <bibref
        ref="DOMCore"/>. Please refer to additional information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
  
    </div2>
  
    <div2 id="StyleSheets-fundamental">
      <head>Style Sheet Interfaces</head>
      <p>This set of interfaces represents the generic notion of style sheets.</p>
      <definitions>
        &stylesheets-stylesheet;
        &stylesheets-stylesheetlist;
        &stylesheets-medialist;
      </definitions>
    </div2>
  
    <div2 id="StyleSheets-extensions">
      <head>Document Extensions</head>
      <definitions>
        &stylesheets-linkstyle;
        &stylesheets-documentstyle;
      </definitions>
    </div2>
  
    <div2 id="StyleSheets-Association">
        <head>Association between a style sheet and a document.</head>
      <glist>
        <gitem>
  	<label>HTML and Style Sheet Creation</label>
  	<def>
  	  <p>
  	    A style sheet can be associated with an HTMLDocument in one of two
  	    ways:
  	  </p>
  	  <ulist>
  	    <item>
  	      <p>
  		By creating a new LINK HTML element (see the
  		<code>HTMLLinkElement</code> interface in the <bibref
  		ref="DOMHTML-inf"/> and <bibref ref="HTML40"/>). The underlying
  		style sheet will be created after the element is inserted into
  		the document and both the href and the type attribute have been
  		set in a way indicating that the linked object is a style
  		sheet.
  	      </p>
  	    </item>
  	    <item>
  	      <p>
  		By creating a new STYLE HTML element (see the
  		<code>HTMLStyleElement</code> interface in the <bibref
  		ref="DOMHTML-inf"/> and <bibref ref="HTML40"/>). The underlying style
  		sheet will be created after the element is inserted into the
  		document and the type attribute is set in a way indicating that
  		the element corresponds to a style sheet language interpreted
  		by the user agent.
  	      </p>
  	    </item>
  	  </ulist>
  	</def>
        </gitem>
        <gitem>
  	<label>
  	  HTML and Style Sheet Removal
  	</label>
  	<def>
  	  <p>
  	    Removing a LINK HTML element or a STYLE HTML element removes the
  	    underlying style sheet from the style sheet collection associated
  	    with a document. Specifically, the removed style sheet is no longer
  	    applied to the presentation of the document.
  	  </p>
  	</def>
        </gitem>
        <gitem>
  	<label>XML and Style Sheet Creation</label>
  	<def>
  	  <p>
  	    A new style sheet can be created and associated with an XML
  	    document by creating a processing instruction with the target
  	    'xml-stylesheet' <bibref ref="XML-StyleSheet"/> and inserting it
  	    into the document.
  	  </p>
  	</def>
        </gitem>
        <gitem>
  	<label>XML and Style Sheet Removal</label>
  	<def>
  	  <p>
  	    Removing a processing instruction with a target of 'xml-stylesheet'
  	    <bibref ref="XML-StyleSheet"/> removes the underlying style sheet
  	    from the style sheet collection associated with a document.
  	    Specifically, the removed style sheet is no longer applied to the
  	    presentation of the document.
  	  </p>
  	</def>
        </gitem>
      </glist>
    </div2>
  </div1>
  <!--
   *************************************************************************
   * END OF LEVEL TWO STYLE SHEETS                                         *
   *************************************************************************
  -->
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSS2Properties.xml
  
  Index: CSS2Properties.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSS2Properties interface -->
  
  <interface name="CSS2Properties" id="CSS-CSS2Properties"
    since="DOM Level 2">
    <descr>
      <p>
        The <code>CSS2Properties</code> interface represents a convenience
        mechanism for retrieving and setting properties within a
        <code>CSSStyleDeclaration</code>. The attributes of this interface
        correspond to all the <xspecref
  	href="&css2;/propidx.html">properties specified in
  	CSS2</xspecref>. Getting an attribute of this interface is equivalent to
        calling the <code>getPropertyValue</code> method of the
        <code>CSSStyleDeclaration</code> interface. Setting an attribute of this
        interface is equivalent to calling the <code>setProperty</code> method of
        the <code>CSSStyleDeclaration</code> interface.
      </p>
      <p>
        A conformant implementation of the CSS module is not required to implement the
        <code>CSS2Properties</code> interface. If an implementation does
        implement this interface, the expectation is that language-specific
        methods can be used to cast from an instance of the
        <code>CSSStyleDeclaration</code> interface to the
        <code>CSS2Properties</code> interface.
      </p>
      <p>
        If an implementation does implement this interface, it is expected to
        understand the specific syntax of the shorthand properties, and apply
        their semantics; when the <code>margin</code> property is set, for
        example, the <code>marginTop</code>, <code>marginRight</code>,
        <code>marginBottom</code> and <code>marginLeft</code> properties are
        actually being set by the underlying implementation.
      </p>
      <p>
        When dealing with CSS "shorthand" properties, the shorthand
        properties should be decomposed into their component longhand
        properties as appropriate, and when querying for their value, the
        form returned should be the shortest form exactly equivalent to the
        declarations made in the ruleset.  However, if there is no shorthand
        declaration that could be added to the ruleset without changing in
        any way the rules already declared in the ruleset (i.e., by adding
        longhand rules that were previously not declared in the ruleset),
        then the empty string should be returned for the shorthand property.
      </p>
      <p>
        For example, querying for the <code>font</code> property should not
        return "normal normal normal 14pt/normal Arial, sans-serif", when
        "14pt Arial, sans-serif" suffices. (The normals are initial values,
        and are implied by use of the longhand property.)
      </p>
      <p>
        If the values for all the longhand properties that compose a
        particular string are the initial values, then a string consisting of
        all the initial values should be returned (e.g.  a
        <code>border-width</code> value of "medium" should be returned as
        such, not as "").
      </p>
      <p>
        For some shorthand properties that take missing values from other
        sides, such as the <code>margin</code>, <code>padding</code>, and
        <code>border-[width|style|color]</code> properties, the minimum
        number of sides possible should be used; i.e., "0px 10px" will be
        returned instead of "0px 10px 0px 10px".
      </p>
      <p>
        If the value of a shorthand property can not be decomposed into its
        component longhand properties, as is the case for the
        <code>font</code> property with a value of "menu", querying for the
        values of the component longhand properties should return the empty
        string.
      </p>
    </descr>
    
    <attribute type="DOMString" name="azimuth" id="CSS-CSS2Properties-azimuth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-azimuth">azimuth property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="background" id="CSS-CSS2Properties-background">
      <descr>
        <p>
  	See the <xspecref href="&css2;/colors.html#propdef-background">background property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="backgroundAttachment" id="CSS-CSS2Properties-backgroundAttachment">
      <descr>
        <p>
  	See the <xspecref href="&css2;/colors.html#propdef-background-attachment">background-attachment property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="backgroundColor" id="CSS-CSS2Properties-backgroundColor">
      <descr>
        <p>
  	See the <xspecref href="&css2;/colors.html#propdef-background-color">background-color property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="backgroundImage" id="CSS-CSS2Properties-backgroundImage">
      <descr>
        <p>
  	See the <xspecref href="&css2;/colors.html#propdef-background-image">background-image property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="backgroundPosition" id="CSS-CSS2Properties-backgroundPosition">
      <descr>
        <p>
  	See the <xspecref href="&css2;/colors.html#propdef-background-position">background-position property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="backgroundRepeat" id="CSS-CSS2Properties-backgroundRepeat">
      <descr>
        <p>
  	See the <xspecref href="&css2;/colors.html#propdef-background-repeat">background-repeat property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="border" id="CSS-CSS2Properties-border">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border">border property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderCollapse" id="CSS-CSS2Properties-borderCollapse">
      <descr>
        <p>
  	See the <xspecref href="&css2;/tables.html#propdef-border-collapse">border-collapse property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderColor" id="CSS-CSS2Properties-borderColor">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-color">border-color property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderSpacing" id="CSS-CSS2Properties-borderSpacing">
      <descr>
        <p>
  	See the <xspecref href="&css2;/tables.html#propdef-border-spacing">border-spacing property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderStyle" id="CSS-CSS2Properties-borderStyle">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-style">border-style property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderTop" id="CSS-CSS2Properties-borderTop">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-top">border-top property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderRight" id="CSS-CSS2Properties-borderRight">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-right">border-right property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderBottom" id="CSS-CSS2Properties-borderBottom">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-bottom">border-bottom property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderLeft" id="CSS-CSS2Properties-borderLeft">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-left">border-left property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderTopColor" id="CSS-CSS2Properties-borderTopColor">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-top-color">border-top-color property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderRightColor" id="CSS-CSS2Properties-borderRightColor">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-right-color">border-right-color property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderBottomColor" id="CSS-CSS2Properties-borderBottomColor">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-bottom-color">border-bottom-color property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderLeftColor" id="CSS-CSS2Properties-borderLeftColor">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-left-color">border-left-color property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderTopStyle" id="CSS-CSS2Properties-borderTopStyle">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-top-style">border-top-style property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderRightStyle" id="CSS-CSS2Properties-borderRightStyle">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-right-style">border-right-style property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderBottomStyle" id="CSS-CSS2Properties-borderBottomStyle">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-bottom-style">border-bottom-style property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderLeftStyle" id="CSS-CSS2Properties-borderLeftStyle">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-left-style">border-left-style property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderTopWidth" id="CSS-CSS2Properties-borderTopWidth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-top-width">border-top-width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderRightWidth" id="CSS-CSS2Properties-borderRightWidth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-right-width">border-right-width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderBottomWidth" id="CSS-CSS2Properties-borderBottomWidth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-bottom-width">border-bottom-width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderLeftWidth" id="CSS-CSS2Properties-borderLeftWidth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-left-width">border-left-width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="borderWidth" id="CSS-CSS2Properties-borderWidth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-border-width">border-width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="bottom" id="CSS-CSS2Properties-bottom">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-bottom">bottom property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="captionSide" id="CSS-CSS2Properties-captionSide">
      <descr>
        <p>
  	See the <xspecref href="&css2;/tables.html#propdef-caption-side">caption-side property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="clear" id="CSS-CSS2Properties-clear">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-clear">clear property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="clip" id="CSS-CSS2Properties-clip">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visufx#propdef-clip">clip property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="color" id="CSS-CSS2Properties-color">
      <descr>
        <p>
  	See the <xspecref href="&css2;/colors.html#propdef-color">color property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="content" id="CSS-CSS2Properties-content">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-content">content property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="counterIncrement" id="CSS-CSS2Properties-counterIncrement">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-counter-increment">counter-increment property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="counterReset" id="CSS-CSS2Properties-counterReset">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-counter-reset">counter-reset property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="cue" id="CSS-CSS2Properties-cue">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-cue">cue property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="cueAfter" id="CSS-CSS2Properties-cueAfter">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-cue-after">cue-after property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="cueBefore" id="CSS-CSS2Properties-cueBefore">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-cue-before">cue-before property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="cursor" id="CSS-CSS2Properties-cursor">
      <descr>
        <p>
  	See the <xspecref href="&css2;/ui.html#propdef-cursor">cursor property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="direction" id="CSS-CSS2Properties-direction">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-direction">direction property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="display" id="CSS-CSS2Properties-display">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-display">display property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="elevation" id="CSS-CSS2Properties-elevation">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-elevation">elevation property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="emptyCells" id="CSS-CSS2Properties-emptyCells">
      <descr>
        <p>
  	See the <xspecref href="&css2;/tables.html#propdef-empty-cells">empty-cells property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="cssFloat" id="CSS-CSS2Properties-cssFloat">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-float">float property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="font" id="CSS-CSS2Properties-font">
      <descr>
        <p>
  	See the <xspecref href="&css2;/fonts.html#propdef-font">font property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="fontFamily" id="CSS-CSS2Properties-fontFamily">
      <descr>
        <p>
  	See the <xspecref href="&css2;/fonts.html#propdef-font-family">font-family property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="fontSize" id="CSS-CSS2Properties-fontSize">
      <descr>
        <p>
  	See the <xspecref href="&css2;/fonts.html#propdef-font-size">font-size property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="fontSizeAdjust" id="CSS-CSS2Properties-fontSizeAdjust">
      <descr>
        <p>
  	See the <xspecref href="&css2;/fonts.html#propdef-font-size-adjust">font-size-adjust property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="fontStretch" id="CSS-CSS2Properties-fontStretch">
      <descr>
        <p>
  	See the <xspecref href="&css2;/fonts.html#propdef-font-stretch">font-stretch property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="fontStyle" id="CSS-CSS2Properties-fontStyle">
      <descr>
        <p>
  	See the <xspecref href="&css2;/fonts.html#propdef-font-style">font-style property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="fontVariant" id="CSS-CSS2Properties-fontVariant">
      <descr>
        <p>
  	See the <xspecref href="&css2;/fonts.html#propdef-font-variant">font-variant property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="fontWeight" id="CSS-CSS2Properties-fontWeight">
      <descr>
        <p>
  	See the <xspecref href="&css2;/fonts.html#propdef-font-weight">font-weight property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="height" id="CSS-CSS2Properties-height">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visudet.html#propdef-height">height property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="left" id="CSS-CSS2Properties-left">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-left">left property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="letterSpacing" id="CSS-CSS2Properties-letterSpacing">
      <descr>
        <p>
  	See the <xspecref href="&css2;/text.html#propdef-letter-spacing">letter-spacing property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="lineHeight" id="CSS-CSS2Properties-lineHeight">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visudet.html#propdef-line-height">line-height property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="listStyle" id="CSS-CSS2Properties-listStyle">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-list-style">list-style property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="listStyleImage" id="CSS-CSS2Properties-listStyleImage">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-list-style-image">list-style-image property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="listStylePosition" id="CSS-CSS2Properties-listStylePosition">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-list-style-position">list-style-position property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="listStyleType" id="CSS-CSS2Properties-listStyleType">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-list-style-type">list-style-type property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="margin" id="CSS-CSS2Properties-margin">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-margin">margin property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="marginTop" id="CSS-CSS2Properties-marginTop">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-margin-top">margin-top property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="marginRight" id="CSS-CSS2Properties-marginRight">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-margin-right">margin-right property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="marginBottom" id="CSS-CSS2Properties-marginBottom">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-margin-bottom">margin-bottom property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="marginLeft" id="CSS-CSS2Properties-marginLeft">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-margin-left">margin-left property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="markerOffset" id="CSS-CSS2Properties-markerOffset">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-marker-offset">marker-offset property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="marks" id="CSS-CSS2Properties-marks">
      <descr>
        <p>
  	See the <xspecref href="&css2;/page.html#propdef-marks">marks property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="maxHeight" id="CSS-CSS2Properties-maxHeight">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visudet.html#propdef-max-height">max-height property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="maxWidth" id="CSS-CSS2Properties-maxWidth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visudet.html#propdef-max-width">max-width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="minHeight" id="CSS-CSS2Properties-minHeight">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visudet.html#propdef-min-height">min-height property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="minWidth" id="CSS-CSS2Properties-minWidth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visudet.html#propdef-min-width">min-width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="orphans" id="CSS-CSS2Properties-orphans">
      <descr>
        <p>
  	See the <xspecref href="&css2;/page.html#propdef-orphans">orphans property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="outline" id="CSS-CSS2Properties-outline">
      <descr>
        <p>
  	See the <xspecref href="&css2;/ui.html#propdef-outline">outline property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="outlineColor" id="CSS-CSS2Properties-outlineColor">
      <descr>
        <p>
  	See the <xspecref href="&css2;/ui.html#propdef-outline-color">outline-color property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="outlineStyle" id="CSS-CSS2Properties-outlineStyle">
      <descr>
        <p>
  	See the <xspecref href="&css2;/ui.html#propdef-outline-style">outline-style property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="outlineWidth" id="CSS-CSS2Properties-outlineWidth">
      <descr>
        <p>
  	See the <xspecref href="&css2;/ui.html#propdef-outline-width">outline-width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="overflow" id="CSS-CSS2Properties-overflow">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visufx.html#propdef-overflow">overflow property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="padding" id="CSS-CSS2Properties-padding">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-padding">padding property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="paddingTop" id="CSS-CSS2Properties-paddingTop">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-padding-top">padding-top property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="paddingRight" id="CSS-CSS2Properties-paddingRight">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-padding-right">padding-right property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="paddingBottom" id="CSS-CSS2Properties-paddingBottom">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-padding-bottom">padding-bottom property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="paddingLeft" id="CSS-CSS2Properties-paddingLeft">
      <descr>
        <p>
  	See the <xspecref href="&css2;/box.html#propdef-padding-left">padding-left property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="page" id="CSS-CSS2Properties-page">
      <descr>
        <p>
  	See the <xspecref href="&css2;/page.html#propdef-page">page property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="pageBreakAfter" id="CSS-CSS2Properties-pageBreakAfter">
      <descr>
        <p>
  	See the <xspecref href="&css2;/page.html#propdef-page-break-after">page-break-after property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="pageBreakBefore" id="CSS-CSS2Properties-pageBreakBefore">
      <descr>
        <p>
  	See the <xspecref href="&css2;/page.html#propdef-page-break-before">page-break-before property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="pageBreakInside" id="CSS-CSS2Properties-pageBreakInside">
      <descr>
        <p>
  	See the <xspecref href="&css2;/page.html#propdef-page-break-inside">page-break-inside property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="pause" id="CSS-CSS2Properties-pause">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-pause">pause property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="pauseAfter" id="CSS-CSS2Properties-pauseAfter">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-pause-after">pause-after property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="pauseBefore" id="CSS-CSS2Properties-pauseBefore">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-pause-before">pause-before property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="pitch" id="CSS-CSS2Properties-pitch">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-pitch">pitch property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="pitchRange" id="CSS-CSS2Properties-pitchRange">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-pitch-range">pitch-range property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="playDuring" id="CSS-CSS2Properties-playDuring">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-play-during">play-during property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="position" id="CSS-CSS2Properties-position">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-position">position property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="quotes" id="CSS-CSS2Properties-quotes">
      <descr>
        <p>
  	See the <xspecref href="&css2;/generate.html#propdef-quotes">quotes property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="richness" id="CSS-CSS2Properties-richness">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-richness">richness property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="right" id="CSS-CSS2Properties-right">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-right">right property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="size" id="CSS-CSS2Properties-size">
      <descr>
        <p>
  	See the <xspecref href="&css2;/page.html#propdef-size">size property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="speak" id="CSS-CSS2Properties-speak">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-speak">speak property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="speakHeader" id="CSS-CSS2Properties-speakHeader">
      <descr>
        <p>
  	See the <xspecref href="&css2;/tables.html#propdef-speak-header">speak-header property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="speakNumeral" id="CSS-CSS2Properties-speakNumeral">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-speak-numeral">speak-numeral property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="speakPunctuation" id="CSS-CSS2Properties-speakPunctuation">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-speak-punctuation">speak-punctuation property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="speechRate" id="CSS-CSS2Properties-speechRate">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-speech-rate">speech-rate property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="stress" id="CSS-CSS2Properties-stress">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-stress">stress property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="tableLayout" id="CSS-CSS2Properties-tableLayout">
      <descr>
        <p>
  	See the <xspecref href="&css2;/tables.html#propdef-table-layout">table-layout property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="textAlign" id="CSS-CSS2Properties-textAlign">
      <descr>
        <p>
  	See the <xspecref href="&css2;/text.html#propdef-text-align">text-align property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="textDecoration" id="CSS-CSS2Properties-textDecoration">
      <descr>
        <p>
  	See the <xspecref href="&css2;/text.html#propdef-text-decoration">text-decoration property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="textIndent" id="CSS-CSS2Properties-textIndent">
      <descr>
        <p>
  	See the <xspecref href="&css2;/text.html#propdef-text-indent">text-indent property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="textShadow" id="CSS-CSS2Properties-textShadow">
      <descr>
        <p>
  	See the <xspecref href="&css2;/text.html#propdef-text-shadow">text-shadow property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="textTransform" id="CSS-CSS2Properties-textTransform">
      <descr>
        <p>
  	See the <xspecref href="&css2;/text.html#propdef-text-transform">text-transform property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="top" id="CSS-CSS2Properties-top">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-top">top property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="unicodeBidi" id="CSS-CSS2Properties-unicodeBidi">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-unicode-bidi">unicode-bidi property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="verticalAlign" id="CSS-CSS2Properties-verticalAlign">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visudet.html#propdef-vertical-align">vertical-align property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="visibility" id="CSS-CSS2Properties-visibility">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visufx.html#propdef-visibility">visibility property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="voiceFamily" id="CSS-CSS2Properties-voiceFamily">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-voice-family">voice-family property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="volume" id="CSS-CSS2Properties-volume">
      <descr>
        <p>
  	See the <xspecref href="&css2;/aural.html#propdef-volume">volume property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="whiteSpace" id="CSS-CSS2Properties-whiteSpace">
      <descr>
        <p>
  	See the <xspecref href="&css2;/text.html#propdef-white-space">white-space property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="widows" id="CSS-CSS2Properties-widows">
      <descr>
        <p>
  	See the <xspecref href="&css2;/page.html#propdef-widows">widows property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="width" id="CSS-CSS2Properties-width">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visudet.html#propdef-width">width property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="wordSpacing" id="CSS-CSS2Properties-wordSpacing">
      <descr>
        <p>
  	See the <xspecref href="&css2;/text.html#propdef-word-spacing">word-spacing property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="DOMString" name="zIndex" id="CSS-CSS2Properties-zIndex">
      <descr>
        <p>
  	See the <xspecref href="&css2;/visuren.html#propdef-z-index">z-index property definition</xspecref> in CSS2.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the new value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
          </descr>  
        </exception>
      </setraises>
    </attribute>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSCharsetRule.xml
  
  Index: CSSCharsetRule.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSCharsetRule interface -->
  
  <interface id="CSS-CSSCharsetRule" name="CSSCharsetRule"
    inherits="CSSRule" since="DOM Level 2">
    <descr>
      <p>
        The <code>CSSCharsetRule</code> interface represents a <xspecref
        href="&css2;/syndata.html#x66">@charset
        rule</xspecref> in a CSS style sheet. The value of the
        <code>encoding</code> attribute does not affect the encoding of
        text data in the DOM objects; this encoding is always UTF-16. After a
        stylesheet is loaded, the value of the <code>encoding</code> attribute is
        the value found in the <code>@charset</code> rule. If there was no
        <code>@charset</code> in the original document, then no
        <code>CSSCharsetRule</code> is created.  The value of the
        <code>encoding</code> attribute may also be used as a hint for the
        encoding used on serialization of the style sheet.
      </p>
      <p>
        The value of the <xspecref href="&css2;/syndata.html#x66">@charset
        rule</xspecref> (and therefore of the <code>CSSCharsetRule</code>) may
        not correspond to the encoding the document actually came in; character
        encoding information e.g. in an HTTP header, has priority (see <xspecref
        href="&css2;/syndata.html#x66">CSS document representation</xspecref>) but this is
        not reflected in the <code>CSSCharsetRule</code>.
      </p>
    </descr>
    
    <attribute type="DOMString" readonly="no" name="encoding" id="CSS-CSSCharsetRule-encoding">
      <descr>
        <p>
  	The encoding information used in this <code>@charset</code> rule.
        </p>
      </descr>
       <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the specified encoding value has a syntax
  	    error and is unparsable.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is
  	    readonly.</p>
          </descr>
        </exception>
       </setraises>
    </attribute>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSFontFaceRule.xml
  
  Index: CSSFontFaceRule.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSFontFaceRule interface -->
  
    <interface name="CSSFontFaceRule" inherits="CSSRule"
    id="CSS-CSSFontFaceRule" since="DOM Level 2">
      <descr>
      <p>
        The <code>CSSFontFaceRule</code> interface represents a <xspecref href="&css2;/fonts.html#font-descriptions">@font-face 
        rule</xspecref> in a CSS style sheet. The <code>@font-face</code> rule 
        is used to hold a set of font descriptions.
      </p>
      </descr>
  
      <attribute type="CSSStyleDeclaration" readonly="yes" name="style" id="CSS-CSSFontFaceRule-style">
       <descr>
       <p>
         The <xspecref href="&css2;/syndata.html#q8">declaration-block</xspecref> of this rule.
       </p>
       </descr>
      </attribute>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSImportRule.xml
  
  Index: CSSImportRule.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSImportRule interface -->
  
  <interface name="CSSImportRule" inherits="CSSRule"
    id="CSS-CSSImportRule" since="DOM Level 2">
    <descr>
      <p>
        The <code>CSSImportRule</code> interface represents a <xspecref
        href="&css2;/cascade.html#at-import">@import
        rule</xspecref> within a CSS style sheet. The <code>@import</code> rule is
        used to import style rules from other style sheets.
      </p>
    </descr>
    
    <attribute id="CSS-CSSImportRule-href" name="href" type="DOMString"
      readonly="yes">
      <descr>
        <p>
  	The location of the style sheet to be imported. The attribute will not
  	contain the <code>"url(...)"</code> specifier around the URI.
        </p>
      </descr>
    </attribute>
    
    
    <attribute id="CSS-CSSImportRule-media" name="media" type="stylesheets::MediaList"
      readonly="yes">
      <descr>
        <p>
  	A list of media types for which this style sheet may be
  	used.
        </p>
      </descr>
    </attribute>
    
    <attribute id="CSS-CSSImportRule-styleSheet" name="styleSheet"
      type="CSSStyleSheet" readonly="yes">
      <descr>
        <p>The style sheet referred to by this rule, if it has been loaded. The
        value of this attribute is <code>null</code> if the style sheet has not
        yet been loaded or if it will not be loaded (e.g. if the style sheet is
        for a media type not supported by the user agent).
        </p>
      </descr>
    </attribute>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSMediaRule.xml
  
  Index: CSSMediaRule.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSMediaRule interface -->
  
  <interface name="CSSMediaRule" inherits="CSSRule" id="CSS-CSSMediaRule"
    since="DOM Level 2">
    <descr>
      <p>
        The <code>CSSMediaRule</code> interface represents a <xspecref href="&css2;/media.html#at-media-rule">@media
  	rule</xspecref> in a CSS style sheet. A <code>@media</code> rule can be
        used to delimit style rules for specific media types.
      </p>
    </descr>
    
    <attribute id="CSS-CSSMediaRule-mediaTypes" name="media"
      type="stylesheets::MediaList" readonly="yes">
      <descr>
        <p>
  	A list of <xspecref href="&css2;/media.html#media-types">media types</xspecref> for this rule.
        </p>
      </descr>
    </attribute>
    
    <attribute type="CSSRuleList" readonly="yes" name="cssRules" id="CSS-CSSMediaRule-cssRules">
      <descr>
        <p>
  	A list of all CSS rules contained within the media block.
        </p>
      </descr>
    </attribute>
    
    <method name="insertRule" id="CSS-CSSMediaRule-insertRule">
      <descr>
        <p>
  	Used to insert a new rule into the media block. 
        </p>
      </descr>
      <parameters>
        <param name="rule" type="DOMString" attr="in">
  	<descr>
            <p>
  	    The parsable text representing the rule. For rule sets
  	    this contains both the selector and the style declaration.
  	    For at-rules, this specifies both the at-identifier and the
  	    rule content.
            </p>
          </descr>
        </param>
        <param name="index" type="unsigned long" attr="in">
  	<descr>
            <p>
  	    The index within the media block's rule collection of the rule 
  	    before which to insert the specified rule. If the 
  	    specified index is equal to the length of the media blocks's rule
  	    collection, the rule will be added to the end of the media block.
            </p>
          </descr>
        </param>
      </parameters>
      <returns type="unsigned long">
        <descr>
          <p>
            The index within the media block's rule collection of the newly
            inserted rule.
          </p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted
  	    at the specified index, e.g., if an <code>@import</code> rule
  	    is inserted after a standard rule set or other at-rule.</p>
  	  <p>INDEX_SIZE_ERR: Raised if the specified index is not a valid
  	    insertion point.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
  	  readonly.</p>
  	  <p>SYNTAX_ERR: Raised if the specified rule has a syntax error 
  	    and is unparsable.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    
    <method name="deleteRule" id="CSS-CSSMediaRule-deleteRule">
      <descr>
        <p>
  	Used to delete a rule from the media block.
        </p>
      </descr>
      <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr>
            <p>
  	    The index within the media block's rule collection of the rule
  	    to remove.
            </p>
          </descr>
        </param>
      </parameters>
      <returns type="void">
        <descr><p></p></descr>
      </returns>
      <raises>
        <!-- No exceptions -->
        <exception name="DOMException">
  	<descr>
            <p>INDEX_SIZE_ERR: Raised if the specified index does not correspond
               to a rule in the media rule list.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
  	    readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSPageRule.xml
  
  Index: CSSPageRule.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSPageRule interface -->
  
  <interface name="CSSPageRule" inherits="CSSRule" id="CSS-CSSPageRule"
    since="DOM Level 2">
    <descr>
      <p>
        The <code>CSSPageRule</code> interface represents a <xspecref
        href="&css2;/page.html#page-box">@page
        rule</xspecref> within a CSS style sheet. The <code>@page</code> rule is
        used to specify the dimensions, orientation, margins, etc. of a page box
        for paged media.
      </p>
    </descr>
    
    <attribute type="DOMString" name="selectorText" id="CSS-CSSPageRule-name">
      <descr>
        <p>
  	The parsable textual representation of the page selector for the rule.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the specified CSS string value has a syntax
  	    error and is unparsable.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is
  	    readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="CSSStyleDeclaration" readonly="yes" name="style" id="CSS-CSSPageRule-style">
      <descr>
        <p>
  	The <xspecref href="&css2;/syndata.html#q8">declaration-block</xspecref> of this rule.
        </p>
      </descr>
    </attribute>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSPrimitiveValue.xml
  
  Index: CSSPrimitiveValue.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSPrimitiveValue interface -->
  
  <interface id="CSS-CSSPrimitiveValue" name="CSSPrimitiveValue"
    inherits="CSSValue" since="DOM Level 2">
    <descr>
      <p>
        The <code>CSSPrimitiveValue</code> interface represents a single
        <xspecref href="&css2;/syndata.html#values">CSS value</xspecref>. This
        interface may be used to determine the value of a specific style property
        currently set in a block or to set a specific style property explicitly
        within the block. An instance of this interface might be obtained from
        the <code>getPropertyCSSValue</code> method of the
        <code>CSSStyleDeclaration</code> interface. A
        <code>CSSPrimitiveValue</code> object only occurs in a context of a CSS
        property.
      </p>
      <p>
        Conversions are allowed between absolute values (from millimeters to
        centimeters, from degrees to radians, and so on) but not between relative
        values. (For example, a pixel value cannot be converted to a centimeter
        value.) Percentage values can't be converted since they are relative to
        the parent value (or another property value). There is one exception for
        color percentage values: since a color percentage value is relative to
        the range 0-255, a color percentage value can be converted to a number;
        (see also the <code>RGBColor</code> interface).
      </p>
    </descr>
    <group id="CSS-CSSPrimitiveValue-types" name="UnitTypes">
      <descr>
        <p>An integer indicating which type of unit applies to the value.</p>      
      </descr>
      <constant name="CSS_UNKNOWN" type="unsigned short" value="0">
        <descr><p>The value is not a recognized CSS2 value. The value can only be
        obtained by using the <code>cssText</code> attribute.</p></descr>
      </constant>
      <constant name="CSS_NUMBER" type="unsigned short" value="1">
        <descr><p>The value is a simple <xspecref
        href="&css2;/syndata.html#q13">number</xspecref>.
        The value can be obtained by using the <code>getFloatValue</code> method.</p></descr>
      </constant>
      <constant name="CSS_PERCENTAGE" type="unsigned short" value="2">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#percentage-units">percentage</xspecref>.
        The value can be obtained by using the <code>getFloatValue</code> method.</p></descr>
      </constant>
      <constant name="CSS_EMS" type="unsigned short" value="3">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#length-units">length
        (ems)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_EXS" type="unsigned short" value="4">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#length-units">length
        (exs)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_PX" type="unsigned short" value="5">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#length-units">length
        (px)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_CM" type="unsigned short" value="6">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#length-units">length
        (cm)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_MM" type="unsigned short" value="7">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#length-units">length
        (mm)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_IN" type="unsigned short" value="8">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#length-units">length
        (in)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_PT" type="unsigned short" value="9">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#length-units">length
        (pt)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_PC" type="unsigned short" value="10">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#length-units">length
        (pc)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_DEG" type="unsigned short" value="11">
        <descr><p>The value is an <xspecref
        href="&css2;/syndata.html#q19">angle
        (deg)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_RAD" type="unsigned short" value="12">
        <descr><p>The value is an <xspecref
        href="&css2;/syndata.html#q19">angle
        (rad)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_GRAD" type="unsigned short" value="13">
        <descr><p>The value is an <xspecref
        href="&css2;/syndata.html#q19">angle
        (grad)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_MS" type="unsigned short" value="14">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#q20">time
        (ms)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_S" type="unsigned short" value="15">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#q20">time (s)</xspecref>. 
        The value can be obtained by using the <code>getFloatValue</code> method.</p></descr>
      </constant>
      <constant name="CSS_HZ" type="unsigned short" value="16">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#q21">frequency
        (Hz)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_KHZ" type="unsigned short" value="17">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#q21">frequency
        (kHz)</xspecref>. The value can be obtained by using the <code>getFloatValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_DIMENSION" type="unsigned short" value="18">
        <descr><p>The value is a number with an unknown dimension. 
        The value can be obtained by using the <code>getFloatValue</code> method.</p></descr>
      </constant>
      <constant name="CSS_STRING" type="unsigned short" value="19">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#strings">STRING</xspecref>. 
        The value can be obtained by using the <code>getStringValue</code> method.</p></descr>
      </constant>
      <constant name="CSS_URI" type="unsigned short" value="20">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#uri">URI</xspecref>. 
        The value can be obtained by using the <code>getStringValue</code> method.</p></descr>
      </constant>
      <constant name="CSS_IDENT" type="unsigned short" value="21">
        <descr><p>The value is an <xspecref
        href="&css2;/syndata.html#value-def-identifier">identifier</xspecref>. 
        The value can be obtained by using the <code>getStringValue</code> method.</p></descr>
      </constant>
      <constant name="CSS_ATTR" type="unsigned short" value="22">
        <descr><p>The value is a <xspecref
        href="&css2;/generate.html#x16">attribute
        function</xspecref>. The value can be obtained by using the <code>getStringValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_COUNTER" type="unsigned short" value="23">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#counter">counter or
        counters function</xspecref>. The value can be obtained by using the
        <code>getCounterValue</code> method.</p></descr>
      </constant>
      <constant name="CSS_RECT" type="unsigned short" value="24">
        <descr><p>The value is a <xspecref
        href="&css2;/visufx.html#value-def-shape">rect
        function</xspecref>. The value can be obtained by using the <code>getRectValue</code>
        method.</p></descr>
      </constant>
      <constant name="CSS_RGBCOLOR" type="unsigned short" value="25">
        <descr><p>The value is a <xspecref
        href="&css2;/syndata.html#color-units">RGB
        color</xspecref>. The value can be obtained by using the <code>getRGBColorValue</code>
        method.</p></descr>
      </constant>
    </group>
  
    <attribute  id="CSS-CSSPrimitiveValue-primitiveType" 
      name="primitiveType" type="unsigned short" readonly="yes">
      <descr>
        <p>The type of the value as defined by the constants specified above.</p>
      </descr>
    </attribute>
    
    <method id="CSS-CSSPrimitiveValue-setFloatValue" name="setFloatValue">
      <descr>
        <p>
  	A method to set the float value with a specified unit. If the property
  	attached with this value can not accept the specified unit or the float
  	value, the value will be unchanged and a <code>DOMException</code> will
  	be raised.
        </p>
      </descr>
      <parameters>
        <param name="unitType" type="unsigned short" attr="in">
  	<descr>
  	  <p>
              A unit code as defined above. The unit code can only be a float
              unit type (i.e. <code>CSS_NUMBER</code>,
              <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
              <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
              <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
              <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
              <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
              <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
              <code>CSS_DIMENSION</code>).
  	  </p>
  	</descr>
        </param>
        <param name="floatValue" type="float" attr="in">
  	<descr>
  	  <p>
  	    The new float value.
  	  </p>
  	</descr>
        </param>
      </parameters>    
      <returns type="void">
        <descr>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
              INVALID_ACCESS_ERR: Raised if the attached property doesn't support
              the float value or the unit type.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
  
    <method id="CSS-CSSPrimitiveValue-getFloatValue" name="getFloatValue">
      <descr>
        <p>
  	This method is used to get a float value in a specified unit. If this
  	CSS value doesn't contain a float value or can't be converted into the
  	specified unit, a <code>DOMException</code> is raised.
        </p>
      </descr>
      <parameters>
        <param name="unitType" type="unsigned short" attr="in">
  	<descr>
  	  <p>
  	    A unit code to get the float value.  The unit code can only be a
  	    float unit type (i.e. <code>CSS_NUMBER</code>,
  	    <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
  	    <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
  	    <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
  	    <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
  	    <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
  	    <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
  	    <code>CSS_DIMENSION</code>).
  	  </p>
  	</descr>
        </param>
      </parameters>
      <returns type="float">
        <descr>
  	<p>
  	  The float value in the specified unit.
  	</p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
  	    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a float
  	    value or if the float value can't be converted into the specified
  	    unit.
  	  </p>
  	</descr>
        </exception>
      </raises>
    </method>
  
    <method id="CSS-CSSPrimitiveValue-setStringValue" name="setStringValue">
      <descr>
        <p>
          A method to set the string value with the specified unit. If the
          property attached to this value can't accept the specified unit or the
          string value, the value will be unchanged and a
          <code>DOMException</code> will be raised.
        </p>
      </descr>
      <parameters>
        <param name="stringType" type="unsigned short" attr="in">
  	<descr>
  	  <p>
              A string code as defined above. The string code can only be a
              string unit type (i.e. <code>CSS_STRING</code>,
              <code>CSS_URI</code>, <code>CSS_IDENT</code>, and
              <code>CSS_ATTR</code>).
  	  </p>
  	</descr>
        </param>
        <param name="stringValue" type="DOMString" attr="in">
  	<descr>
  	  <p>
              The new string value.
  	  </p>
  	</descr>
        </param>
      </parameters>
      <returns type="void">
        <descr>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
  	    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
  	    value or if the string value can't be converted into the specified
  	    unit.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is
  	    readonly.</p>
  	</descr>
        </exception>
      </raises>
    </method>
  
    <method id="CSS-CSSPrimitiveValue-getStringValue" name="getStringValue">
      <descr>
        <p>
  	This method is used to get the string value. If the
  	CSS value doesn't contain a string value, a <code>DOMException</code>
  	is raised.
        </p>
        <note>
  	<p>
  	  Some properties (like <loc
  	  href="&css2;/fonts.html#propdef-font-family">'font-family'</loc> or
  	  <loc
  	  href="&css2;/aural.html#propdef-voice-family">'voice-family'</loc>)
  	  convert a whitespace separated list of idents to a string.
  	</p>
        </note>
      </descr>
      <parameters>
      </parameters>
      <returns type="DOMString">
        <descr>
  	<p>
  	  The string value in the current unit. The current
  	  <code>primitiveType</code> can only be a string unit type
  	  (i.e. <code>CSS_STRING</code>, <code>CSS_URI</code>,
  	  <code>CSS_IDENT</code> and <code>CSS_ATTR</code>).
  	</p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
  	    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
  	    value.
  	  </p>
  	</descr>
        </exception>
      </raises>
    </method>
  
    <method id="CSS-CSSPrimitiveValue-getCounterValue" name="getCounterValue">
      <descr>
        <p>
  	This method is used to get the Counter value. If this CSS value doesn't
  	contain a counter value, a <code>DOMException</code> is
  	raised. Modification to the corresponding style property can be
  	achieved using the <code>Counter</code> interface.
        </p>
      </descr>
      <parameters>
      </parameters>
      <returns type="Counter">
        <descr>
  	<p>The Counter value.</p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
  	    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
  	    Counter value (e.g. this is not <code>CSS_COUNTER</code>).
  	  </p>
  	</descr>
        </exception>
      </raises>
    </method>
  
    <method id="CSS-CSSPrimitiveValue-getRectValue" name="getRectValue">
      <descr>
        <p>
  	This method is used to get the Rect value. If this CSS value doesn't
  	contain a rect value, a <code>DOMException</code> is
  	raised. Modification to the corresponding style property can be
  	achieved using the <code>Rect</code> interface.
        </p>
      </descr>
      <parameters>
      </parameters>
      <returns type="Rect">
        <descr>
  	<p>The Rect value.</p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
  	    INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a Rect
  	    value.  (e.g. this is not <code>CSS_RECT</code>).
  	  </p>
  	</descr>
        </exception>
      </raises>
    </method>
  
    <method id="CSS-CSSPrimitiveValue-getRGBColorValue" name="getRGBColorValue">
      <descr>
        <p>
  	This method is used to get the RGB color. If this CSS value doesn't
  	contain a RGB color value, a <code>DOMException</code> is
  	raised. Modification to the corresponding style property can be
  	achieved using the <code>RGBColor</code> interface.
        </p>
      </descr>
      <parameters>
      </parameters>
      <returns type="RGBColor">
        <descr>
  	<p>the RGB color value.</p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
  	    INVALID_ACCESS_ERR: Raised if the attached property can't return a
  	    RGB color value (e.g. this is not <code>CSS_RGBCOLOR</code>).
  	  </p>
  	</descr>
        </exception>
      </raises>
    </method>
  
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSRule.xml
  
  Index: CSSRule.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSRule interface -->
  
  <interface name="CSSRule" id="CSS-CSSRule" since="DOM Level 2">
    <descr>
      <p>
        The <code>CSSRule</code> interface is the abstract base interface for any
        type of CSS <xspecref
        href="&css2;/syndata.html#q5">statement</xspecref>.
        This includes both <xspecref
        href="&css2;/syndata.html#q8">rule sets</xspecref>
        and <xspecref
        href="&css2;/syndata.html#at-rules">at-rules</xspecref>. An
        implementation is expected to preserve all rules specified in a CSS style
        sheet, even if the rule is not recognized by the parser. Unrecognized
        rules are represented using the <code>CSSUnknownRule</code> interface.
      </p>
    </descr>
    
    <group id="CSS-CSSRule-ruleType" name="RuleType">
      <descr><p>An integer indicating which type of rule this is.</p></descr>
      <constant name="UNKNOWN_RULE" type="unsigned short" value="0">
        <descr><p>The rule is a <code>CSSUnknownRule</code>.</p></descr>
      </constant>
      <constant name="STYLE_RULE" type="unsigned short" value="1">
        <descr><p>The rule is a <code>CSSStyleRule</code>.</p></descr>
      </constant>
      <constant name="CHARSET_RULE" type="unsigned short" value="2">
        <descr><p>The rule is a <code>CSSCharsetRule</code>.</p></descr>
      </constant>
      <constant name="IMPORT_RULE" type="unsigned short" value="3">
        <descr><p>The rule is a <code>CSSImportRule</code>.</p></descr>
      </constant>
      <constant name="MEDIA_RULE" type="unsigned short" value="4">
        <descr><p>The rule is a <code>CSSMediaRule</code>.</p></descr>
      </constant>
      <constant name="FONT_FACE_RULE" type="unsigned short" value="5">
        <descr><p>The rule is a <code>CSSFontFaceRule</code>.</p></descr>
      </constant>
      <constant name="PAGE_RULE" type="unsigned short" value="6">
        <descr><p>The rule is a <code>CSSPageRule</code>.</p></descr>
      </constant>
    </group>
    
    <attribute type="unsigned short" readonly="yes" name="type" id="CSS-CSSRule-type">
      <descr>
        <p>
  	The type of the rule, as defined above. The expectation is that
  	binding-specific casting methods can be used to cast down from an
  	instance of the <code>CSSRule</code> interface to the specific derived
  	interface implied by the <code>type</code>.
        </p>
      </descr>
    </attribute>
    
    <attribute type="DOMString" name="cssText" id="CSS-CSSRule-cssText">
      <descr>
        <p>
  	The parsable textual representation of the rule. This reflects the
  	current state of the rule and not its initial value.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the specified CSS string value has a syntax
  	    error and is unparsable.</p> 
            <p>INVALID_MODIFICATION_ERR: Raised if the specified CSS string value
  	    represents a different type of rule than the current one.</p> 
  	  <p>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
  	    this point in the style sheet.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <attribute type="CSSStyleSheet" readonly="yes" name="parentStyleSheet" id="CSS-CSSRule-sheet">
      <descr>
        <p>
  	The style sheet that contains this rule.
        </p>
      </descr>
    </attribute>
    
    <attribute type="CSSRule" readonly="yes" name="parentRule" id="CSS-CSSRule-parentRule">
      <descr>
        <p>
  	If this rule is contained inside another rule (e.g. a style rule inside
  	an @media block), this is the containing rule. If this rule is not
  	nested inside any other rules, this returns <code>null</code>.
        </p>
      </descr>
    </attribute>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSRuleList.xml
  
  Index: CSSRuleList.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSRuleList interface -->
  
    <interface name="CSSRuleList" id="CSS-CSSRuleList"
    since="DOM Level 2">
      <descr>
      <p>
        The <code>CSSRuleList</code> interface provides the 
        abstraction of an ordered collection of CSS rules.
      </p>
      <p>
        The items in the <code>CSSRuleList</code> are accessible via an integral
        index, starting from 0.
      </p>
      </descr>
  
      <attribute type="unsigned long" readonly="yes" name="length" id="CSS-CSSRuleList-length">
       <descr>
       <p>
         The number of <code>CSSRules</code> in the list. The range of valid
         child rule indices is <code>0</code> to <code>length-1</code> inclusive.
       </p>
       </descr>
      </attribute>
  
      <method name="item" id="CSS-CSSRuleList-item">
       <descr>
       <p>
         Used to retrieve a CSS rule by ordinal index. The order in this
         collection represents the order of the rules in the CSS style sheet. If
         index is greater than or equal to the number of rules in the list, this
         returns <code>null</code>.
       </p>
       </descr>
       <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr><p>Index into the collection</p></descr>
        </param>
       </parameters>
       <returns type="CSSRule">
        <descr><p>The style rule at the <code>index</code> position in the
           <code>CSSRuleList</code>, or <code>null</code> if 
            that is not a valid index.
        </p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
    </interface>
  
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSStyleDeclaration.xml
  
  Index: CSSStyleDeclaration.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSStyleDeclaration interface -->
  
  <interface name="CSSStyleDeclaration" id="CSS-CSSStyleDeclaration"
    since="DOM Level 2">
    <descr>
      <p>
        The <code>CSSStyleDeclaration</code> interface represents a single
        <xspecref href="&css2;/syndata.html#block">CSS declaration block</xspecref>. This interface may be used to determine the style properties
        currently set in a block or to set style properties explicitly within
        the block.
      </p>
      <p>
        While an implementation may not recognize all CSS properties within a CSS
        declaration block, it is expected to provide access to all specified
        properties in the style sheet through the
        <code>CSSStyleDeclaration</code> interface.  Furthermore, implementations
        that support a specific level of CSS should correctly handle <xspecref
        href="&css2;/about.html#shorthand">CSS shorthand</xspecref> properties
        for that level. For a further discussion of shorthand properties, see the
        <code>CSS2Properties</code> interface.
      </p>
      <p>
        This interface is also used to provide a <b>read-only</b> access to the
        <xspecref href="&css2;/cascade.html#computed-value">computed
        values</xspecref> of an element. See also the <code>ViewCSS</code>
        interface.
      </p>
      <note>
        <p>
  	The CSS Object Model doesn't provide an access to the <xspecref
  	href="&css2;/cascade.html#specified-value">specified</xspecref> or
  	<xspecref
  	href="&css2;/cascade.html#specified-value">actual</xspecref> values of the
  	CSS cascade.
        </p>
      </note>
    </descr>
    
    <attribute type="DOMString" name="cssText" id="CSS-CSSStyleDeclaration-cssText">
      <descr>
        <p>
  	The parsable textual representation of the declaration block (excluding
  	the surrounding curly braces). Setting this attribute will result in
  	the parsing of the new value and resetting of all the properties in the
  	declaration block including the removal or addition of properties.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the specified CSS string value has a syntax
  	    error and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
  	    readonly or a property is readonly.</p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
    
    <method name="getPropertyValue" id="CSS-CSSStyleDeclaration-getPropertyValue">
      <descr>
        <p>
  	Used to retrieve the value of a CSS property if it has been explicitly
  	set within this declaration block.
        </p>
      </descr>
      <parameters>
        <param name="propertyName" type="DOMString" attr="in">
  	<descr>
            <p>
  	    The name of the CSS property. See the <xspecref href="&css2;/propidx.html">CSS property index</xspecref>.
            </p>
          </descr>
        </param>
      </parameters>
      <returns type="DOMString">
        <descr>
          <p>
            Returns the value of the property if it has been explicitly set
            for this declaration block. Returns the empty string if the property
            has not been set.
          </p>
        </descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    
    <method name="getPropertyCSSValue" id="CSS-CSSStyleDeclaration-getPropertyCSSValue">
      <descr>
        <p>
  	Used to retrieve the object representation of the value of a CSS
  	property if it has been explicitly set within this declaration block.
  	This method returns <code>null</code> if the property is a <xspecref href="&css2;/about.html#shorthand">shorthand</xspecref> property. Shorthand
  	property values can only be accessed and modified as strings, using
  	the <code>getPropertyValue</code> and <code>setProperty</code> methods.
        </p>
      </descr>
      <parameters>
        <param name="propertyName" type="DOMString" attr="in">
  	<descr>
            <p>
  	    The name of the CSS property. See the <xspecref href="&css2;/propidx.html">CSS property index</xspecref>.
            </p>
          </descr>
        </param>
      </parameters>
      <returns type="CSSValue">
        <descr>
          <p>
            Returns the value of the property if it has been explicitly set for
            this declaration block. Returns <code>null</code> if the property
            has not been set.
          </p>
        </descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    
    <method name="removeProperty" id="CSS-CSSStyleDeclaration-removeProperty">
      <descr>
        <p>
  	Used to remove a CSS property if it has been explicitly
  	set within this declaration block.
        </p>
      </descr>
      <parameters>
        <param name="propertyName" type="DOMString" attr="in">
  	<descr>
            <p>
  	    The name of the CSS property. See the <xspecref href="&css2;/propidx.html">CSS property index</xspecref>.
            </p>
          </descr>
        </param>
      </parameters>
      <returns type="DOMString">
        <descr>
          <p>
            Returns the value of the property if it has been explicitly set
            for this declaration block. Returns the empty string if the property
            has not been set or the property name does not correspond to
            a known CSS property.
          </p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
  	    readonly or the property is readonly.</p>
          </descr>  
        </exception>       
      </raises>
    </method>
    
    <method name="getPropertyPriority" id="CSS-CSSStyleDeclaration-getPropertyPriority">
      <descr>
        <p> 
  	Used to retrieve the priority of a CSS property 
  	(e.g. the <code>"important"</code> qualifier) if the property 
  	has been explicitly set in this declaration block.
        </p>
      </descr>
      <parameters>
        <param name="propertyName" type="DOMString" attr="in">
  	<descr>
  	  <p>
  	    The name of the CSS property. See the <xspecref
  	    href="&css2;/propidx.html">CSS property
  	    index</xspecref>.
  	  </p>
          </descr>
        </param>
      </parameters>
      <returns type="DOMString">
        <descr>
  	<p>
  	  A string representing the priority (e.g. <code>"important"</code>)
  	  if one exists. The empty string if none exists.
  	</p>
        </descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    
    <method name="setProperty" id="CSS-CSSStyleDeclaration-setProperty">
      <descr>
        <p>
  	Used to set a property value and priority within this declaration
  	block.
        </p>
      </descr>
      <parameters>
        <param name="propertyName" type="DOMString" attr="in">
  	<descr>
  	  <p>
  	    The name of the CSS property. See the <xspecref href="&css2;/propidx.html">CSS property index</xspecref>.
  	  </p>
          </descr>
        </param>
        <param name="value" type="DOMString" attr="in">
  	<descr>
  	  <p>
  	    The new value of the property.
  	  </p>
          </descr>
        </param>
        <param name="priority" type="DOMString" attr="in">
  	<descr>
  	  <p>
  	    The new priority of the property (e.g. <code>"important"</code>).
  	  </p>
          </descr>
        </param>
      </parameters>
      <returns type="void">
        <descr>
          <p>
          </p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the specified value has a syntax error 
  	    and is unparsable.</p>
            <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
  	    readonly or the property is readonly.</p>
          </descr>  
        </exception>       
      </raises>
    </method>
    
    <attribute type="unsigned long" readonly="yes" name="length" id="CSS-CSSStyleDeclaration-length">
      <descr>
        <p>
  	The number of properties that have been explicitly set in this
  	declaration block. The range of valid indices is 0 to length-1
  	inclusive.
        </p>
      </descr>
    </attribute>
    
    <method name="item" id="CSS-CSSStyleDeclaration-item">
      <descr>
        <p>
  	Used to retrieve the properties that have been explicitly set in
  	this declaration block. The order of the properties retrieved using
  	this method does not have to be the order in which they were set.
  	This method can be used to iterate over all properties in this
  	declaration block.
        </p>
      </descr>
      <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr>
  	  <p>
  	    Index of the property name to retrieve.
  	  </p>
          </descr>
        </param>
      </parameters>
      <returns type="DOMString">
        <descr>
          <p>
            The name of the property at this ordinal position. The empty string
            if no property exists at this position.
          </p>
        </descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
    
    <attribute type="CSSRule" readonly="yes" name="parentRule" id="CSS-CSSStyleDeclaration-parentRule">
      <descr>
        <p>
  	The CSS rule that contains this declaration block or <code>null</code>
  	if this <code>CSSStyleDeclaration</code> is not attached to a
  	<code>CSSRule</code>.
        </p>
      </descr>
    </attribute>
    
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSStyleRule.xml
  
  Index: CSSStyleRule.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSStyleRule interface -->
  
    <interface name="CSSStyleRule" inherits="CSSRule"
    id="CSS-CSSStyleRule" since="DOM Level 2">
      <descr>
      <p>
        The <code>CSSStyleRule</code> interface represents a single <xspecref
        href="&css2;/syndata.html#q8">rule set</xspecref>
        in a CSS style sheet.
      </p>
      </descr>
  
      <attribute type="DOMString" name="selectorText" id="CSS-CSSStyleRule-selectorText">
       <descr>
       <p>
         The textual representation of the <xspecref
         href="&css2;/selector.html">selector</xspecref>
         for the rule set. The implementation may have stripped out insignificant
         whitespace while parsing the selector.
       </p>
       </descr>
       <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the specified CSS string value has a syntax error 
               and is unparsable.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is
  	    readonly.</p>
          </descr>  
        </exception>       
       </setraises>
      </attribute>
  
      <attribute type="CSSStyleDeclaration" readonly="yes" name="style" id="CSS-CSSStyleRule-style">
       <descr>
       <p>
         The <xspecref
         href="&css2;/syndata.html#q8">declaration-block</xspecref>
         of this rule set.
       </p>
       </descr>
      </attribute>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSStyleSheet.xml
  
  Index: CSSStyleSheet.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSStyleSheet interface -->
  
    <interface name="CSSStyleSheet" inherits="stylesheets::StyleSheet"
    id="CSS-CSSStyleSheet" since="DOM Level 2">
      <descr>
      <p>
        The <code>CSSStyleSheet</code> interface is a concrete interface used
        to represent a CSS style sheet i.e., a style sheet whose content type
        is "text/css".
      </p>
      </descr>
  
      <attribute type="CSSRule" readonly="yes" name="ownerRule" id="CSS-CSSStyleSheet-ownerRule">
       <descr>
       <p>
  	If this style sheet comes from an <code>@import</code> rule, the
  	<code>ownerRule</code> attribute will contain the
  	<code>CSSImportRule</code>. In that case, the <code>ownerNode</code>
  	attribute in the <code>StyleSheet</code> interface will be
  	<code>null</code>. If the style sheet comes from an element or a
  	processing instruction, the <code>ownerRule</code> attribute will be
  	<code>null</code> and the <code>ownerNode</code> attribute will contain 
  	the <code>Node</code>.
       </p>
       </descr>
      </attribute>
  
      <attribute type="CSSRuleList" readonly="yes" name="cssRules" id="CSS-CSSStyleSheet-cssRules">
       <descr>
       <p>
         The list of all CSS rules contained within the style sheet.
         This includes both <xspecref href="&css2;/syndata.html#q8">rule sets</xspecref> and 
         <xspecref href="&css2;/syndata.html#at-rules">at-rules</xspecref>.
       </p>
       </descr>
      </attribute>
  
      <method name="insertRule" id="CSS-CSSStyleSheet-insertRule">
       <descr>
       <p>
         Used to insert a new rule into the style sheet. The new rule now
         becomes part of the cascade.
       </p>
       </descr>
       <parameters>
        <param name="rule" type="DOMString" attr="in">
  	<descr>
           <p>
             The parsable text representing the rule. For rule sets
             this contains both the selector and the style declaration.
             For at-rules, this specifies both the at-identifier and the
             rule content.
           </p>
          </descr>
        </param>
        <param name="index" type="unsigned long" attr="in">
  	<descr>
            <p> 
             The index within the style sheet's rule list of the rule 
             before which to insert the specified rule. If the 
             specified index is equal to the length of the style sheet's rule
             collection, the rule will be added to the end of the style sheet.
            </p>
          </descr>
        </param>
       </parameters>
       <returns type="unsigned long">
        <descr>
          <p>
            The index within the style sheet's rule collection of the newly
            inserted rule.
          </p>
        </descr>
       </returns>
       <raises>
        <exception name="DOMException">
          <descr>
            <p>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted
               at the specified index e.g. if an <code>@import</code> rule
               is inserted after a standard rule set or other at-rule.</p>
            <p>INDEX_SIZE_ERR: Raised if the specified index is not a valid
               insertion point.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
  	    readonly.</p>
            <p>SYNTAX_ERR: Raised if the specified rule has a syntax error 
               and is unparsable.</p>
          </descr>  
        </exception>       
       </raises>
      </method>
  
      <method name="deleteRule" id="CSS-CSSStyleSheet-deleteRule">
       <descr>
       <p>
         Used to delete a rule from the style sheet.
       </p>
       </descr>
       <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr>
            <p>
             The index within the style sheet's rule list of the rule
             to remove.
            </p>
          </descr>
        </param>
       </parameters>
       <returns type="void">
         <descr><p></p></descr>
       </returns>
       <raises>
        <exception name="DOMException">
          <descr>
            <p>INDEX_SIZE_ERR: Raised if the specified index does not correspond
               to a rule in the style sheet's rule list.</p>
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
  	    readonly.</p>
          </descr>  
        </exception>
       </raises>
      </method>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSUnknownRule.xml
  
  Index: CSSUnknownRule.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSUnknownRule interface -->
  
    <interface name="CSSUnknownRule" inherits="CSSRule"
    id="CSS-CSSUnknownRule" since="DOM Level 2">
      <descr>
      <p>
        The <code>CSSUnknownRule</code> interface represents an at-rule not
        supported by this user agent.
      </p>
      </descr>
  
    </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSValue.xml
  
  Index: CSSValue.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- CSSValue interface -->
  
  <interface name="CSSValue" id="CSS-CSSValue" since="DOM Level 2">
    <descr>
      <p>
        The <code>CSSValue</code> interface represents a simple or a complex
        value. A <code>CSSValue</code> object only occurs in a context of a CSS
        property.
      </p>
    </descr>
  
    <group id="CSS-CSSValue-types" name="UnitTypes">
      <descr>
        <p>An integer indicating which type of unit applies to the value.</p>
      </descr>
      <constant name="CSS_INHERIT" type="unsigned short" value="0">
        <descr><p>The value is inherited and the <code>cssText</code> contains
        "inherit".</p>
        </descr>
      </constant>
      <constant name="CSS_PRIMITIVE_VALUE" type="unsigned short" value="1">
        <descr>
  	<p>The value is a primitive value and an instance of the
  	<code>CSSPrimitiveValue</code> interface can be obtained by using
  	binding-specific casting methods on this instance of the
  	<code>CSSValue</code> interface.</p>
        </descr>
      </constant>
      <constant name="CSS_VALUE_LIST" type="unsigned short" value="2">
        <descr><p>The value is a <code>CSSValue</code> list and an instance of
  	  the <code>CSSValueList</code> interface can be obtained by using
  	  binding-specific casting methods on this instance of the
  	  <code>CSSValue</code> interface.</p>
        </descr>
      </constant>
      <constant name="CSS_CUSTOM" type="unsigned short" value="3">
        <descr><p>The value is a custom value.</p>
        </descr>
      </constant>
    </group>
  
    <attribute id="CSS-CSSValue-cssText" name="cssText" type="DOMString" readonly="no">
      <descr>
        <p>
          A string representation of the current value.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>
  	    SYNTAX_ERR: Raised if the specified CSS string value has a syntax
  	    error (according to the attached property) or is unparsable.
  	  </p>
            <p>INVALID_MODIFICATION_ERR: Raised if the specified CSS string value
              represents a different type of values than the values allowed by
  	    the CSS property.</p> 
            <p>
  	    NO_MODIFICATION_ALLOWED_ERR: Raised if this value is readonly.
  	  </p>
          </descr>  
        </exception>       
      </setraises>
    </attribute>
  
    <attribute id="CSS-CSSValue-cssValueType" name="cssValueType" type="unsigned short" readonly="yes">
      <descr>
        <p>
  	A code defining the type of the value as defined above.
        </p>
      </descr>
    </attribute>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/CSSValueList.xml
  
  Index: CSSValueList.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- the CSSValueList interface -->
  
  <interface id="CSS-CSSValueList" name="CSSValueList"
    inherits="CSSValue" since="DOM Level 2">
    <descr>
      <p>The <code>CSSValueList</code> interface provides the abstraction of an
        ordered collection of CSS values.</p>
      <p>
        Some properties allow an empty list into their syntax. In that case,
        these properties take the <code>none</code> identifier. So, an empty list 
        means that the property has the value <code>none</code>.
      </p>
      <p>
        The items in the <code>CSSValueList</code> are accessible via an integral
        index, starting from 0.
      </p>
    </descr>
    <attribute id="CSS-CSSValueList-length" name="length" 
      type="unsigned long" readonly="yes">
      <descr>
        <p>The number of <code>CSSValues</code> in the list. The range of valid
  	values of the indices is <code>0</code> to <code>length-1</code>
  	inclusive.</p>
      </descr>
    </attribute>
  
    <method id="CSS-CSSValueList-item" name="item">
      <descr>
        <p>Used to retrieve a <code>CSSValue</code> by ordinal index. The order in this
  	collection represents the order of the values in the CSS style
  	property.  If index is greater than or equal to the number of values in the list, this
         returns <code>null</code>.</p>
      </descr>
      <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr>
  	  <p>Index into the collection.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="CSSValue">
        <descr>
  	<p>The <code>CSSValue</code> at the <code>index</code> position in the
  	  <code>CSSValueList</code>, or <code>null</code> if that is not a valid
  	  index.</p>
        </descr>
      </returns>
      <raises>
        <!-- No exceptions -->
      </raises>
    </method>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/Counter.xml
  
  Index: Counter.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- Counter interface -->
  
  <interface id="CSS-Counter" name="Counter" since="DOM Level 2">
    <descr>
      <p>
        The <code>Counter</code> interface is used to represent any <xspecref href="&css2;/syndata.html#value-def-counter">counter or
        counters function</xspecref> value. This interface reflects the values in 
        the underlying style property.
      </p>
    </descr>
    
    <attribute id="CSS-Counter-identifier" name="identifier" type="DOMString" readonly="yes">
      <descr>
        <p>
          This attribute is used for the identifier of the counter.
        </p>
      </descr>
    </attribute>
  
    <attribute id="CSS-Counter-listStyle" name="listStyle" type="DOMString" readonly="yes">
      <descr>
        <p>
          This attribute is used for the style of the list.
        </p>
      </descr>
    </attribute>
  
    <attribute id="CSS-Counter-separator" name="separator" type="DOMString" readonly="yes">
      <descr>
        <p>
          This attribute is used for the separator of the nested counters.
        </p>
      </descr>
    </attribute>
  
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/DOMImplementationCSS.xml
  
  Index: DOMImplementationCSS.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: DOMImplementationCSS.xml,v 1.1 2001/06/01 11:15:23 dims Exp $ -->
  <interface id="CSS-DOMImplementationCSS" name="DOMImplementationCSS" since="DOM
    Level 2" inherits="DOMImplementation">
    <descr>
      <p>
        This interface allows the DOM user to create a <code>CSSStyleSheet</code>
        outside the context of a document. There is no way to associate the new
        <code>CSSStyleSheet</code> with a document in DOM Level 2.
      </p>
    </descr>
    <method id='CSS-DOMImplementationCSS-createCSSStyleSheet' name="createCSSStyleSheet">
      <descr>
        <p>Creates a new <code>CSSStyleSheet</code>.</p>
      </descr>
      <parameters>
        <param name="title" type="DOMString" attr="in">
  	<descr>
  	  <p>
  	    The advisory title. See also the <specref
  	      ref="StyleSheets-StyleSheet-title"/> section.
  	  </p>
  	</descr>
        </param>
        <param name="media" type="DOMString" attr="in">
  	<descr>
  	  <p>
  	    The comma-separated list of media associated with the new style
  	    sheet. See also the <specref ref="StyleSheets-StyleSheet-media"/>
  	    section.
  	  </p>
  	</descr>
        </param>
      </parameters>
      <returns type="CSSStyleSheet">
        <descr>
  	<p>A new CSS style sheet.</p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
          <descr>
            <p>
  	    SYNTAX_ERR: Raised if the specified media string value has a syntax
  	    error and is unparsable.
  	  </p>
          </descr>  
        </exception>       
      </raises>
    </method>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/DocumentCSS.xml
  
  Index: DocumentCSS.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- DocumentCSS interface -->
  
  <interface id="CSS-DocumentCSS" name="DocumentCSS" 
    inherits="stylesheets::DocumentStyle" since="DOM Level 2">
    <descr>
      <p>This interface represents a document with a CSS view.</p>
      <p>
        The <code>getOverrideStyle</code> method provides a mechanism through
        which a DOM author could effect immediate change to the style of an
        element without modifying the explicitly linked style sheets of a
        document or the inline style of elements in the style sheets.  This style
        sheet comes after the author style sheet in the cascade algorithm and is
        called <emph>override style sheet</emph>. The override style sheet takes
        precedence over author style sheets. An "!important" declaration still
        takes precedence over a normal declaration. Override, author, and user
        style sheets all may contain "!important" declarations. User "!important"
        rules take precedence over both override and author "!important" rules,
        and override "!important" rules take precedence over author "!important"
        rules.
      </p>
      <p>
        The expectation is that an instance of the <code>DocumentCSS</code>
        interface can be obtained by using binding-specific casting methods on an
        instance of the <code>Document</code> interface.
      </p>
    </descr>
  
    <method id="CSS-DocumentCSS-getOverrideStyle" name="getOverrideStyle">
      <descr>
        <p>
  	This method is used to retrieve the override style declaration for a
  	specified element and a specified pseudo-element.
        </p>
      </descr>
      <parameters>
        <param name="elt" type="Element" attr="in">
  	<descr>
  	  <p>
  	    The element whose style is to be modified.  This parameter cannot
  	    be null.
  	  </p>
  	</descr>
        </param>
        <param name="pseudoElt" type="DOMString" attr="in">
  	<descr>
  	  <p>
  	    The pseudo-element or <code>null</code> if none.
  	  </p>
  	</descr>
        </param>
      </parameters>
      <returns type="CSSStyleDeclaration">
        <descr>
  	<p>
  	  The override style declaration.
  	</p>
        </descr>
      </returns>
      <raises>
      </raises>
    </method>
  
  </interface>
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/DocumentStyle.xml
  
  Index: DocumentStyle.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- DocumentStyle interface -->
  
  <interface name="DocumentStyle" id="StyleSheets-StyleSheet-DocumentStyle"
    since="DOM Level 2">
    <descr>
      <p>
        The <code>DocumentStyle</code> interface provides a mechanism by which
        the style sheets embedded in a document can be retrieved. The expectation
        is that an instance of the <code>DocumentStyle</code> interface can be
        obtained by using binding-specific casting methods on an instance of the
        <code>Document</code> interface.
      </p>
    </descr>
  
    <attribute type="StyleSheetList" readonly="yes" name="styleSheets" id="StyleSheets-DocumentStyle-styleSheets">
      <descr>
        <p>
  	A list containing all the style sheets explicitly linked into or
  	embedded in a document.  For HTML documents, this includes external
  	style sheets, included via the HTML
        <xspecref href="&html40;/struct/links.html#h-12.3">
          LINK</xspecref> element, and inline
        <xspecref href="&html40;/present/styles.html#h-14.2.3">
          STYLE</xspecref> elements. In XML, this includes external
        style sheets, included via style sheet
          processing instructions (see <bibref ref="XML-StyleSheet"/>).
        </p>
      </descr>
    </attribute>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/ElementCSSInlineStyle.xml
  
  Index: ElementCSSInlineStyle.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- Counter interface -->
  
  <interface id="CSS-ElementCSSInlineStyle" name="ElementCSSInlineStyle"
    since="DOM Level 2">
    <descr>
      <p>
        Inline style information attached to elements is exposed through the
        <code>style</code> attribute.  This represents the contents of the
        <xspecref href="&html40;/present/styles.html#h-14.2.2">STYLE</xspecref>
        attribute for HTML elements (or elements in other schemas or DTDs which
        use the STYLE attribute in the same way). The expectation is that an
        instance of the ElementCSSInlineStyle interface can be obtained by using
        binding-specific casting methods on an instance of the Element interface
        when the element supports inline CSS style informations.
      </p>
    </descr>
    
    <attribute id="CSS-ElementCSSInlineStyle-style" name="style"
      type="CSSStyleDeclaration" readonly="yes">
      <descr>
        <p>
          The style attribute.
        </p>
      </descr>
    </attribute>
  
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/LinkStyle.xml
  
  Index: LinkStyle.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: LinkStyle.xml,v 1.1 2001/06/01 11:15:24 dims Exp $ -->
  <interface id="StyleSheets-LinkStyle" name="LinkStyle" since="DOM Level 2">
    <descr>	  
      <p>
        The <code>LinkStyle</code> interface provides a mechanism by which a
        style sheet can be retrieved from the node responsible for linking it
        into a document. An instance of the <code>LinkStyle</code> interface can
        be obtained using binding-specific casting methods on an instance of a
        linking node (<code>HTMLLinkElement</code>, <code>HTMLStyleElement</code>
        or <code>ProcessingInstruction</code> in DOM Level 2).
      </p>
    </descr>
    <attribute id="StyleSheets-LinkStyle-sheet" name="sheet"
      type="StyleSheet" readonly="yes">
      <descr>
        <p>
  	The style sheet.
        </p>
      </descr>
    </attribute>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/MediaList.xml
  
  Index: MediaList.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: MediaList.xml,v 1.1 2001/06/01 11:15:24 dims Exp $ -->
  <interface id="StyleSheets-MediaList" name="MediaList" since="DOM Level 2">
    <descr>
      <p>
        The <code>MediaList</code> interface provides the abstraction of an
        ordered collection of <xspecref
        href="&html40;/types.html#h-6.13">media</xspecref>,
        without defining or constraining how this collection is implemented. An
        empty list is the same as a list that contains the medium
        <code>"all"</code>.
      </p>
      <p>
        The items in the <code>MediaList</code> are accessible via an integral
        index, starting from 0.
      </p>
    </descr>
    
    <attribute type="DOMString" name="mediaText" id="StyleSheets-MediaList-mediaText">
      <descr>
        <p>
  	The parsable textual representation of the media list. This is a
  	comma-separated list of media.
        </p>
      </descr>
      <setraises>
        <exception name="DOMException">
          <descr>
            <p>SYNTAX_ERR: Raised if the specified string value has a syntax
            error and is unparsable.</p> 
  	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is
  	  readonly.</p>
  	</descr>
        </exception>
      </setraises>
    </attribute>
  
    <attribute id="StyleSheets-MediaList-length" name="length" type="unsigned long" readonly="yes">
      <descr>
        <p>
  	The number of media in the list. The range of valid media is
  	<code>0</code> to <code>length-1</code> inclusive.
        </p>
      </descr>
    </attribute>
    
    <method id="StyleSheets-MediaList-item" name="item">
      <descr>
        <p>
  	Returns the <code>index</code>th in the list. If <code>index</code> is
  	greater than or equal to the number of media in the list, this returns
  	<code>null</code>.
        </p>
      </descr>
      <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr>
  	  <p>
  	    Index into the collection.
  	  </p>
  	</descr>
        </param>
      </parameters>
      <returns type="DOMString">
        <descr>
  	<p>
  	  The medium at the <code>index</code>th position in the
  	  <code>MediaList</code>, or <code>null</code> if that is not a
  	  valid index.
  	</p>
        </descr>
      </returns>
      <raises>
      </raises>
    </method>
    
    <method name="deleteMedium" id="StyleSheets-MediaList-deleteMedium">
      <descr>
        <p>
  	Deletes the medium indicated by <code>oldMedium</code> from the list.
        </p>
      </descr>
      <parameters>
        <param name="oldMedium" type="DOMString" attr="in">
  	<descr>
  	  <p>The medium to delete in the media list.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="void">
        <descr>
  	<p></p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
  	    NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
  	  </p>
  	  <p>
  	    NOT_FOUND_ERR: Raised if <code>oldMedium</code> is not in the list.
  	  </p>
  	</descr>
        </exception>
      </raises>
    </method>
    
    <method id="StyleSheets-MediaList-appendMedium" name="appendMedium">
      <descr>
        <p>
  	Adds the medium <code>newMedium</code> to the end of the list. If the
  	<code>newMedium</code> is already used, it is first removed.
        </p>
      </descr>
      <parameters>
        <param name="newMedium" type="DOMString" attr="in">
  	<descr>
  	  <p>The new medium to add.</p>
  	</descr>
        </param>
      </parameters>
      <returns type="void">
        <descr>
  	<p></p>
        </descr>
      </returns>
      <raises>
        <exception name="DOMException">
  	<descr>
  	  <p>
  	    INVALID_CHARACTER_ERR: If the medium contains characters that are
  	    invalid in the underlying style language.
  	  </p>	  
  	  <p>
  	    NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
  	  </p>
  	</descr>
        </exception>
      </raises>
    </method>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/RGBColor.xml
  
  Index: RGBColor.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- RGBColor interface -->
  
  <interface id="CSS-RGBColor" name="RGBColor" since="DOM Level 2">
    <descr>
      <p>
        The <code>RGBColor</code> interface is used to represent any <xspecref
        href="&css2;/syndata.html#value-def-color">RGB
        color</xspecref> value. This interface reflects the values in the
        underlying style property. Hence, modifications made to the
        <code>CSSPrimitiveValue</code> objects modify the style property.
      </p>
      <p>
        A specified RGB color is not clipped (even if the number is outside the
        range 0-255 or 0%-100%). A computed RGB color is clipped depending on the
        device.
      </p>
      <p>
        Even if a style sheet can only contain an integer for a color value, the
        internal storage of this integer is a float, and this can be used as a
        float in the specified or the computed style.
      </p>
      <p>
        A color percentage value can always be converted to a number and vice
        versa.
      </p>
    </descr>
    
    <attribute id="CSS-RGBColor-red" name="red" type="CSSPrimitiveValue" readonly="yes">
      <descr>
        <p>
          This attribute is used for the red value of the RGB color.
        </p>
      </descr>
    </attribute>
  
    <attribute id="CSS-RGBColor-green" name="green" type="CSSPrimitiveValue" readonly="yes">
      <descr>
        <p>
          This attribute is used for the green value of the RGB color.
        </p>
      </descr>
    </attribute>
  
    <attribute id="CSS-RGBColor-blue" name="blue" type="CSSPrimitiveValue" readonly="yes">
      <descr>
        <p>
          This attribute is used for the blue value of the RGB color.
        </p>
      </descr>
    </attribute>
  
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/Rect.xml
  
  Index: Rect.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- Rect interface -->
  
  <interface id="CSS-Rect" name="Rect" since="DOM Level 2">
    <descr>
      <p>
        The <code>Rect</code> interface is used to represent any <xspecref
        href="&css2;/visufx.html#value-def-shape">rect</xspecref>
        value. This interface reflects the values in the underlying style
        property. Hence, modifications made to the <code>CSSPrimitiveValue</code>
        objects modify the style property.
      </p>
    </descr>
    
    <attribute id="CSS-Rect-top" name="top" type="CSSPrimitiveValue"
      readonly="yes">
      <descr>
        <p>
          This attribute is used for the top of the rect.
        </p>
      </descr>
    </attribute>
  
    <attribute id="CSS-Rect-right" name="right" type="CSSPrimitiveValue"
      readonly="yes">
      <descr>
        <p>
          This attribute is used for the right of the rect.
        </p>
      </descr>
    </attribute>
  
    <attribute id="CSS-Rect-bottom" name="bottom" type="CSSPrimitiveValue"
      readonly="yes">
      <descr>
        <p>
          This attribute is used for the bottom of the rect.
        </p>
      </descr>
    </attribute>
  
    <attribute id="CSS-Rect-left" name="left" type="CSSPrimitiveValue"
      readonly="yes">
      <descr>
        <p>
          This attribute is used for the left of the rect.
        </p>
      </descr>
    </attribute>
  
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/StyleSheet.xml
  
  Index: StyleSheet.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- StyleSheet interface -->
  
  <interface name="StyleSheet" id="StyleSheets-StyleSheet" since="DOM Level 2">
    <descr>
      <p>
        The <code>StyleSheet</code> interface is the abstract base interface for
        any type of style sheet. It represents a single style sheet associated
        with a structured document. In HTML, the StyleSheet interface represents
        either an external style sheet, included via the HTML
        <xspecref href="&html40;/struct/links.html#h-12.3">
          LINK</xspecref> element, or an inline
        <xspecref href="&html40;/present/styles.html#h-14.2.3">
          STYLE</xspecref> element. In XML, this interface represents an external
        style sheet, included via a <xspecref href="&xml-stylesheet;">style sheet
          processing instruction</xspecref>.
      </p>
    </descr>
    
    <attribute type="DOMString" readonly="yes" name="type" id="StyleSheets-StyleSheet-type">
      <descr>
        <p>
  	This specifies the style sheet language for this style sheet. The style
  	sheet language is specified as a content type (e.g. "text/css").  The
  	<xspecref href="&html40;/types.html#type-content-type">content
  	type</xspecref> is often specified in the <code>ownerNode</code>.  Also
  	see the <xspecref href="&html40;/struct/links.html#adef-type-A">type
  	attribute definition</xspecref> for the <code>LINK</code> element in
  	HTML 4.0, and the type pseudo-attribute for the XML <xspecref
  	href="&xml-stylesheet;">style sheet processing instruction</xspecref>.
        </p>
      </descr>
    </attribute>
    
    <attribute type="boolean" name="disabled" id="StyleSheets-StyleSheet-disabled">
      <descr>
        <p>
  	<code>false</code> if the style sheet is applied to the document.
  	<code>true</code> if it is not. Modifying this attribute may cause a
  	new resolution of style for the document. A stylesheet only applies if
  	both an appropriate medium definition is present and the disabled
  	attribute is false. So, if the media doesn't apply to the current user
  	agent, the <code>disabled</code> attribute is ignored.
        </p>
      </descr>
    </attribute>
    
    <attribute type="Node" readonly="yes" name="ownerNode" id="StyleSheets-StyleSheet-ownerNode">
      <descr>
        <p>
  	The node that associates this style sheet with the document. For HTML,
  	this may be the corresponding <code>LINK</code> or <code>STYLE</code>
  	element. For XML, it may be the linking processing instruction. For
  	style sheets that are included by other style sheets, the value of this
  	attribute is <code>null</code>.
        </p>
      </descr>
    </attribute>
    
    <attribute type="StyleSheet" readonly="yes" name="parentStyleSheet" id="StyleSheets-StyleSheet-parentStyleSheet">
      <descr>
        <p>
  	For style sheet languages that support the concept of style sheet
  	inclusion, this attribute represents the including style sheet, if one
  	exists. If the style sheet is a top-level style sheet, or the style
  	sheet language does not support inclusion, the value of this attribute
  	is <code>null</code>.
        </p>
      </descr>
    </attribute>
    
    <attribute type="DOMString" readonly="yes" name="href" id="StyleSheets-StyleSheet-href">
      <descr>
        <p>
  	If the style sheet is a linked style sheet, the value of its attribute
  	is its location. For inline style sheets, the value of this attribute
  	is <code>null</code>. See the <xspecref
  	href="&html40;/struct/links.html#adef-href">href
  	attribute definition</xspecref> for the <code>LINK</code> element in HTML
  	4.0, and the href pseudo-attribute for the XML <xspecref
  	href="&xml-stylesheet;/#The xml-stylesheet processing instruction">style sheet processing
  	instruction</xspecref>.
        </p>
      </descr>
    </attribute>
    
    <attribute type="DOMString" readonly="yes" name="title" id="StyleSheets-StyleSheet-title">
      <descr>
        <p>
  	The advisory title.  The title is often specified in the
  	<code>ownerNode</code>.  See the <xspecref
  	href="&html40;/struct/global.html#adef-title">title attribute
  	definition</xspecref> for the <code>LINK</code> element in HTML 4.0,
  	and the title pseudo-attribute for the XML <xspecref
  	href="&xml-stylesheet;/#The xml-stylesheet processing instruction">style sheet processing instruction</xspecref>.
        </p>
      </descr>
    </attribute>
    
    <attribute type="MediaList" readonly="yes" name="media" id="StyleSheets-StyleSheet-media">
      <descr>
        <p>
  	The intended destination media for style information.  The media is
  	often specified in the <code>ownerNode</code>. If no media has been
  	specified, the <code>MediaList</code> will be empty. See the <xspecref
  	href="&html40;/present/styles.html#adef-media">media
  	attribute definition</xspecref> for the <code>LINK</code> element in
  	HTML 4.0, and the media pseudo-attribute for the XML <xspecref
  	href="&xml-stylesheet;/#The xml-stylesheet processing instruction">style sheet processing
  	instruction </xspecref>. Modifying the media list may cause a change to
  	the attribute <code>disabled</code>.
        </p>
      </descr>
    </attribute>
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/StyleSheetList.xml
  
  Index: StyleSheetList.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- StyleSheetList interface -->
  
    <interface name="StyleSheetList" id="StyleSheets-StyleSheetList"
      since="DOM Level 2">
      <descr>
      <p>The <code>StyleSheetList</code> interface provides the 
        abstraction of an ordered collection of style sheets.
      </p>
      <p>
        The items in the <code>StyleSheetList</code> are accessible via an
        integral index, starting from 0.
      </p>
      </descr>
  
      <attribute type="unsigned long" readonly="yes" name="length" id="StyleSheets-StyleSheetList-length">
       <descr>
       <p>
         The number of <code>StyleSheets</code> in the list. The range of valid
         child stylesheet indices is <code>0</code> to <code>length-1</code>
         inclusive.
       </p>
       </descr>
      </attribute>
  
      <method name="item" id="StyleSheets-StyleSheetList-item">
       <descr>
       <p>
         Used to retrieve a style sheet by ordinal index. If index is greater
         than or equal to the number of style sheets in the list, this returns
         <code>null</code>.
       </p>
       </descr>
       <parameters>
        <param name="index" type="unsigned long" attr="in">
  	<descr><p>Index into the collection</p></descr>
        </param>
       </parameters>
       <returns type="StyleSheet">
        <descr><p>The style sheet at the <code>index</code> position in the
           <code>StyleSheetList</code>, or <code>null</code> if 
            that is not a valid index.
        </p></descr>
       </returns>
       <raises>
        <!-- No exceptions -->
       </raises>
      </method>
    </interface>
  
  
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/style/definitions/ViewCSS.xml
  
  Index: ViewCSS.xml
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <!-- ViewCSS interface -->
  
  <interface id="CSS-ViewCSS" name="ViewCSS" inherits="views::AbstractView" since="DOM Level 2">
    <descr>
      <p>
        This interface represents a CSS view. The <code>getComputedStyle</code>
        method provides a <b>read only access</b> to the <xspecref
        href="&css2;/cascade.html#computed-value">computed values</xspecref> of
        an element.
      </p>
      <p>
        The expectation is that an instance of the <code>ViewCSS</code>
        interface can be obtained by using binding-specific casting methods on an
        instance of the <code>AbstractView</code> interface.
      </p>
      <p>
        Since a computed style is related to an <code>Element</code> node, if
        this element is removed from the document, the associated
        <code>CSSStyleDeclaration</code> and <code>CSSValue</code> related to
        this declaration are no longer valid.
      </p>
      
    </descr>
  
    <method id="CSS-CSSview-getComputedStyle" name="getComputedStyle">
      <descr>
        <p>
  	This method is used to get the computed style as it is defined in
  	<bibref ref="CSS2"/>.
        </p>
      </descr>
      <parameters>
        <param name="elt" type="Element" attr="in">
  	<descr>
  	  <p>
  	    The element whose style is to be computed.  This parameter cannot
  	    be null.
  	  </p>
  	</descr>
        </param>
        <param name="pseudoElt" type="DOMString" attr="in">
  	<descr>
  	  <p>
  	    The pseudo-element or <code>null</code> if none.
  	  </p>
  	</descr>
        </param>
      </parameters>
      <returns type="CSSStyleDeclaration">
        <descr>
  	<p>
  	  The computed style. The <code>CSSStyleDeclaration</code> is
  	  read-only and contains only absolute values.
  	</p>
        </descr>
      </returns>
      <raises>
        <!-- No Exception -->
      </raises>
    </method>
    
  </interface>
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/traversal-range/dom-spec.xml
  
  Index: dom-spec.xml
  ===================================================================
  <?xml version="1.0" ?>
  <!-- $Id: dom-spec.xml,v 1.1 2001/06/01 11:15:31 dims Exp $ -->
  <!DOCTYPE spec PUBLIC
        "-//W3C//DTD Specification V2.1-Based DOM//EN"
        "../../../pubtext/xmlspec-v21-dom.dtd" [
  
  <!ENTITY prefix "Traversal-Range">
  <!ENTITY % version SYSTEM "../version.xml">
  %version;
  <!ENTITY % links SYSTEM "../link-entities.xml">
  %links;
  <!ENTITY % parts SYSTEM "../part-entities.xml">
  %parts;
  <!ENTITY options SYSTEM "../options.xml">
  ]>
  
  <spec>
    <!--
    *************************************************************************
    * FRONT MATTER                                                          *
    *************************************************************************
    -->
  &options;
  
  <header> 
  <title>Document Object Model (DOM) Level 2 Traversal and Range Specification</title>
  <version>1.0</version> <w3c-designation>&doc.prefix;-&doc.date;
  </w3c-designation> <w3c-doctype>W3C Recommendation</w3c-doctype> <pubdate> 
  <day>&date.day;</day> <month>&date.month;</month> <year>&date.year;</year> 
  </pubdate> 
  <publoc> <loc href="&this.url;">&this.url;</loc>
  &ps.loc;
  &pdf.loc;
  &txt.loc;
  &zip.loc;
  </publoc>
  <latestloc> <loc href="&latest.url;">&latest.url;</loc> </latestloc> 
  <prevlocs>
  &prev.locs;
  </prevlocs> 
  <authlist> 
  <author role="editor"> <name>Joe Kesselman</name>
  <affiliation>IBM</affiliation> </author>
  <author role="editor"> <name>Jonathan Robie</name>
  <affiliation>Texcel Research and Software AG</affiliation></author> 
  <author role="editor"> <name>Mike Champion</name> 
  <affiliation>Arbortext and Software AG</affiliation> </author>
  <author role="editor"> <name>Peter Sharpe</name> 
  <affiliation>SoftQuad Software Inc.</affiliation> </author> 
  <author role="editor"> <name>Vidur Apparao</name> 
  <affiliation>Netscape Communications Corp.</affiliation> </author> 
  <author role="editor"> <name>Lauren Wood</name> 
  <affiliation>SoftQuad Software Inc., WG Chair</affiliation> </author> 
  </authlist>
      <!--
      ******************************************************
      * DOCUMENT ABSTRACT                                  *
      ******************************************************
      -->
  <abstract id="id-abstract"> 
  
  <p>This specification defines the Document Object Model Level 2 Traversal and
  Range, platform- and language-neutral interfaces that allow programs and
  scripts to dynamically traverse and identify a range of content
  in a document. The Document Object Model Level 2 Traversal and Range
  build on the Document Object Model Level 2 Core <bibref ref='DOMCore'/>.</p>
  
  <p>The DOM Level 2 Traversal and Range specification is composed of two modules. The 
  two modules contain specialized interfaces dedicated to traversing the document structure
  and identifying and manipulating a range in a document.</p>
  
  </abstract>
  
  &status;
  
  <sourcedesc>
  <p>Created in electronic form.</p>
  </sourcedesc>
  <langusage>
  <language id="en">English</language>
  </langusage>
  <revisiondesc>
  <p>$Revision: 1.1 $</p>
  </revisiondesc>
  <?GENERATE-TOC?>
  </header>
  <front>
    &toc;
    &copyright;
  </front> 
   
  <body>
    &traversal;
    &range;
  </body>
    <!--
    *************************************************************************
    * BACK MATTER                                                           *
    *************************************************************************
    -->
  <back> 
  
  <div1 role="idl" id="idl">
    <head>IDL Definitions</head>
  
    <p>This appendix contains the complete OMG IDL <bibref ref='OMGIDL'/> for the
    Level 2 Document Object Model Traversal and Range definitions. The
    definitions are divided into <loc href="#Traversal-IDL">Traversal</loc>, and
    <loc href="#Range-IDL">Range</loc>.</p>
  
    <p>The IDL files are also available as: <loc
        href="idl.zip">&this.url;/idl.zip</loc></p>
  
    <div2 id="Traversal-IDL">
      <head>Document Object Model Traversal</head>
      <!--
      ******************************************************
      | TWIF OMG IDL DEFINITIONS                           |
      ******************************************************
      -->
        <?GENERATE-IDL Traversal traversal dom.w3c.org dom?>
    </div2>
    <div2 id="Range-IDL">
      <head>Document Object Model Range</head>
      <!--
      ******************************************************
      | RANGE OMG IDL DEFINITIONS                          |
      ******************************************************
      -->
        <?GENERATE-IDL Range ranges dom.w3c.org dom?>
    </div2>
  </div1>
  
  <div1 role="java-binding" id="java-binding">
    <head>Java Language Binding</head>
  
    <p>This appendix contains the complete Java Language <bibref ref='Java'/>
    binding for the Level 2 Document Object Model Traversal and Range. The
    definitions are divided into <loc href="#Traversal-Java">Traversal</loc>, and
    <loc href="#Range-Java">Range</loc>.</p>
  
    <p>The Java files are also available as <loc
        href="java-binding.zip">&this.url;/java-binding.zip</loc></p>
  
    <div2 id="Traversal-Java"> 
      <head>Document Object Model Traversal</head>
      <!--
      ******************************************************
      | Traversal JAVA BINDINGS                                 |
      ******************************************************
      -->
        <?GENERATE-JAVA Traversal org.w3c.dom traversal?>
    </div2>
    <div2 id="Range-Java"> 
      <head>Document Object Model Range</head>
      <!--
      ******************************************************
      | RANGE JAVA BINDINGS                                |
      ******************************************************
      -->
        <?GENERATE-JAVA Range org.w3c.dom ranges?> 
    </div2>
  </div1>
  <div1 role="ecma-binding" id="ecma-binding">
    <head>ECMAScript Language Binding</head>
  
    <p>This appendix contains the complete ECMAScript <bibref
    ref='ECMAScript'/> binding for the Level 2 Document Object Model Traversal
    and Range definitions. The definitions are divided into 
      <loc href="#Traversal-ECMA">Traversal</loc>, and 
      <loc href="#Range-ECMA">Range</loc>.</p>
  
        <note>
  	<p>
  	  Exceptions handling is only supported by ECMAScript implementation
  	  conformant with the Standard ECMA-262 3rd. Edition (<bibref
  	  ref="ECMAScript"/>).
  	</p>
        </note>
  
  
      <!--
      ******************************************************
      | CORE ECMASCRIPT BINDINGS                         |
      ******************************************************
      -->
    <div2 id="Traversal-ECMA">
      <head>Document Object Model Traversal</head>
      <!--
      ******************************************************
      | Traversal ECMASCRIPT BINDINGS                      |
      ******************************************************
      -->
        <?GENERATE-ECMA Traversal?>
    </div2>
    <div2 id="Range-ECMA">
      <head>Document Object Model Range</head>
      <!--
      ******************************************************
      | RANGE ECMASCRIPT BINDINGS                          |
      ******************************************************
      -->
        <?GENERATE-ECMA Range?>
    </div2>
  </div1>
    &contributors; 
    &glossary; 
    &references;
    &index; 
  </back>
  </spec> 
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/traversal-range/range.xml
  
  Index: range.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: range.xml,v 1.1 2001/06/01 11:15:32 dims Exp $ -->
  <!--
   *************************************************************************
   * BEGINNING OF LEVEL TWO RANGE                                           *
   *************************************************************************
  -->
  <div1 id="Range"> 
    <head>Document Object Model Range</head> 
    <orglist role="editors"> 
  	 <member> 
  		<name>Peter Sharpe</name> 
  		<affiliation>SoftQuad Software Inc.</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Vidur Apparao</name> 
  		<affiliation>Netscape Communications Corp.</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Lauren Wood</name> 
  		<affiliation>SoftQuad Software Inc.</affiliation> 
  	 </member> 
    </orglist> <?GENERATE-MINI-TOC?>
  <!--
    ******************************************************
    | INTRODUCTION                                       |
    ******************************************************
    -->
    <div2 id="Level-2-Range-introduction"> 
  	 <head>Introduction</head> 
  	 <p> A Range identifies a range of content in a Document, DocumentFragment
  		or Attr. It is contiguous in the sense that it can be characterized as
  		selecting all of the content between a pair of boundary-points. </p> 
  	 <note> 
  		<p> In a text editor or a word processor, a user can make a selection by
  		  pressing down the mouse at one point in a document, moving the mouse to another
  		  point, and releasing the mouse. The resulting selection is contiguous and
  		  consists of the content between the two points. </p> 
  	 </note> 
  	 <p> The term 'selecting' does not mean that every Range corresponds to a
  		selection made by a GUI user; however, such a selection can be returned to a
  		DOM user as a Range. </p> 
  	 <note> 
  		<p> In bidirectional writing (Arabic, Hebrew), a range may correspond to
  		  a logical selection that is not necessarily contiguous when displayed. A
  		  visually contiguous selection, also used in some cases, may not correspond to a
  		  single logical selection, and may therefore have to be represented by more than
  		  one range. </p> 
  	 </note> 
  	 <p> The Range interface provides methods for accessing and manipulating the
  		document tree at a higher level than similar methods in the Node interface. The
  		expectation is that each of the methods provided by the Range interface for the
  		insertion, deletion and copying of content can be directly mapped to a series
  		of Node editing operations enabled by DOM Core. In this sense, the Range
  		operations can be viewed as convenience methods that also enable the
  		implementation to optimize common editing patterns. </p> 
  	 <p> This chapter describes the Range interface, including methods for
  		creating and moving a Range and methods for manipulating content with Ranges.</p>
      <p>
        The interfaces found within this section are not mandatory. A DOM
        application may use the <code>hasFeature(feature, version)</code> method
        of the <code>DOMImplementation</code> interface with parameter values
        "Range" and "2.0" (respectively) to determine whether or not this module
        is supported by the implementation. In order to fully support this
        module, an implementation must also support the "Core" feature defined
        defined in the DOM Level 2 Core specification <bibref
        ref="DOMCore"/>. Please refer to additional information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
    </div2> 
    <div2 id="Level-2-Range-Definitions"> 
  	 <head>Definitions and Notation</head> 
  	 <div3 id="Level-2-Range-Position"> 
  		<head>Position</head> 
  		<p> This chapter refers to two different representations of a document:
  		  the text or source form that includes the document markup and the tree
  		  representation similar to the one described in the
  	          introduction section of the DOM Level 2 Core <bibref ref="DOMCore"/>. </p> 
  		<p>A Range consists of two <term>boundary-points</term> corresponding to
  		  the start and the end of the Range.
  		  <termdef id="td-boundarypoint" term="boundary-point">A boundary-point's
  		  position in a Document or DocumentFragment tree can be characterized by a node
  		  and an offset.</termdef> <termdef id="td-container" term="container">The node
  		  is called the <term>container</term> of the boundary-point and of its
  		  position.</termdef> <termdef id="td-ancestor-container" term="ancestor
  	        container">The container and its ancestors are the <term>ancestor
  		  container</term>s of the boundary-point and of its position.</termdef>
  		  <termdef id="td-offset" term="offset">The offset within the node is called the
  		  <term>offset</term> of the boundary-point and its position.</termdef> If the
  		  container is an Attr, Document, DocumentFragment, Element or EntityReference
  	node, the offset is between its <termref def="dt-child">child</termref> nodes. If the container is a
  		  CharacterData, Comment or ProcessingInstruction node, the offset is between the
  	<termref def="dt-16-bit-unit">16-bit units</termref> of the UTF-16 encoded string contained by it.</p> 
  		<p>The <termref def="td-boundarypoint">boundary-points</termref> of a
  		  Range must have a common <termref def="td-ancestor-container">ancestor
  		  container</termref> which is either a Document, DocumentFragment or Attr node.
  		  That is, the content of a Range must be entirely within the subtree rooted by a
  		  single Document, DocumentFragment or Attr Node.
  		  <termdef id="td-root-container" term="root container">This common
  		  <termref def="td-ancestor-container">ancestor container</termref> is known as
  		  the <term>root container</term> of the Range.</termdef>
  		  <termdef id="td-context-tree" term="context tree">The tree rooted by the
  		  <termref def="td-root-container">root container</termref> is known as the
  		  Range's <term>context tree</term>.</termdef> </p> 
  		<p> The <termref def="td-container">container</termref> of a 
  		  <termref def="td-boundarypoint">boundary-point</termref> of a Range must be an 
  		  Element, Comment, ProcessingInstruction, EntityReference, CDATASection,
  		  Document, DocumentFragment, Attr, or Text node. None of the 
  		  <termref def="td-ancestor-container">ancestor container</termref>s of the 
  		  <termref def="td-boundarypoint">boundary-point</termref> of a Range can be a
  		  DocumentType, Entity or Notation node.</p> 
  		<p>In terms of the text representation of a document, the 
  		  <termref def="td-boundarypoint">boundary-points</termref> of a Range can only
  		  be on token boundaries. That is, the <termref
  		  def="td-boundarypoint">boundary-point</termref> of the text range cannot be in
  		  the middle of a start- or end-tag of an element or within the name of an entity
  		  or character reference. A Range locates a contiguous portion of the content of
  		  the structure model.</p> 
  		<p>The relationship between locations in a text representation of the
  		  document and in the Node tree interface of the DOM is illustrated in the
  		  following diagram:</p>
  		<graphic source="images/RangeExample.gif" alt="Range Example"/> 
  		<p> In this diagram, four different Ranges are illustrated. The
  		  <termref def="td-boundarypoint">boundary-points</termref> of each Range are
  		  labelled with <i>s#</i> (the start of the Range) and <i>e#</i> (the end of the
  		  Range), where # is the number of the Range. For Range 2, the start is in the
  		  BODY element and is immediately after the H1 element and immediately before the
  		  P element, so its position is between the H1 and P children of BODY. The
  		  <termref def="td-offset">offset</termref> of a <termref
  		  def="td-boundarypoint">boundary-point</termref> whose
  		  <termref def="td-container">container</termref> is not a CharacterData node is
  		  0 if it is before the first child, 1 if between the first and second child, and
  		  so on. So, for the start of the Range 2, the <termref
  		  def="td-container">container</termref> is BODY and the <termref
  		  def="td-offset">offset</termref> is 1. The <termref
  		  def="td-offset">offset</termref> of a <termref
  		  def="td-boundarypoint">boundary-point</termref> whose
  		  <termref def="td-container">container</termref> is a CharacterData node is
  	obtained similarly but using <termref def="dt-16-bit-unit">16-bit unit</termref> positions instead. For example, the
  		  <termref def="td-boundarypoint">boundary-point</termref> labelled s1 of the
  		  Range 1 has a Text node (the one containing "Title") as its
  		  <termref def="td-container">container</termref> and an <termref
  		  def="td-offset">offset</termref> of 2 since it is between the second and third
  	<termref def="dt-16-bit-unit">16-bit unit</termref>.</p> 
  		<p>Notice that the <termref
  		  def="td-boundarypoint">boundary-point</termref>s of Ranges 3 and 4 correspond
  		  to the same location in the text representation. An important feature of the
  		  Range is that a <termref def="td-boundarypoint">boundary-point</termref> of a
  		  Range can unambiguously represent every position within the document tree.</p> 
  		<p>The <termref def="td-container">container</termref>s and
  		  <termref def="td-offset">offset</termref>s of the
  		  <termref def="td-boundarypoint">boundary-point</termref>s can be obtained
  		  through the following read-only Range attributes: 
  		  <eg>  readonly attribute Node startContainer; 
    readonly attribute long startOffset;
    readonly attribute Node endContainer; 
    readonly attribute long endOffset;
  </eg> </p> 
  	 <p><termdef id="td-collapsed" term="collapsed">If the
  		<termref def="td-boundarypoint">boundary-point</termref>s of a Range have the
  		same <termref def="td-container">container</termref>s and
  		<termref def="td-offset">offset</termref>s, the Range is said to be a
  		<term>collapsed</term> Range.</termdef> (This is often referred to as an
  		insertion point in a user agent.)</p> 
    </div3> 
    <div3 id="Level-2-Range-Containment"> 
  	 <head>Selection and Partial Selection</head> 
  	 <p><termdef id="td-selected" term="selected">A node or <termref def="dt-16-bit-unit">16-bit unit</termref> unit is said
  		to be <term>selected</term> by a Range if it is between the two
  		<termref def="td-boundarypoint">boundary-point</termref>s of the
  		Range,</termdef> that is, if the position immediately before the node or 16-bit
  		unit is before the end of the Range and the position immediately after the node
  		or 16-bit unit is after the start of the range. For example, in terms of a text
  		representation of the document, an element would be <termref
  		def="td-selected">selected</termref> by a Range if its corresponding start-tag
  		was located after the start of the Range and its end-tag was located before the
  		end of the Range. In the examples in the above diagram, the Range 2
  		<termref def="td-selected">selects</termref> the P node and the Range 3
  		<termref def="td-selected">selects</termref> the text node containing the text
  		"Blah xyz."</p> 
  	 <p><termdef id="td-partially-selected" term="partially
                  selected">A node is said to be <term>partially selected</term>
  		by a Range if it is an <termref def="td-ancestor-container">ancestor
  		container</termref> of exactly one <termref
  		def="td-boundarypoint">boundary-point</termref> of the Range</termdef>. For
  		example, consider Range 1 in the above diagram. The element H1 is
  		<termref def="td-partially-selected">partially selected</termref> by that Range
  		since the start of the Range is within one of its children.</p> 
    </div3> 
    <div3 id="Level-2-Range-Notation"> 
  	 <head>Notation</head> 
  	 <p>Many of the examples in this chapter are illustrated using a text
  		representation of a document. The <termref
  		def="td-boundarypoint">boundary-point</termref>s of a Range are indicated by
  		displaying the characters (be they markup or data characters) between the two
  		<termref def="td-boundarypoint">boundary-point</termref>s in bold, as in 
  		<eg>    &lt;FOO&gt;A<b>BC&lt;BAR&gt;DE</b>F&lt;/BAR&gt;&lt;/FOO&gt;
                    </eg> </p> 
    <p>When both <termref def="td-boundarypoint">boundary-point</termref>s are at
  	 the same position, they are indicated with a bold caret ('<b>^</b>'), as in 
  	 <eg>    &lt;FOO&gt;A<b>^</b>BC&lt;BAR&gt;DEF&lt;/BAR&gt;&lt;/FOO&gt;
  </eg> </p> 
  <!--
  <p>And when referring to a single <termref
    def="td-boundarypoint">boundary-point</termref>, it will be shown as a bold
    asterisk ('<b>*</b>') as in 
    <eg>    &lt;FOO&gt;A<b>*</b>BC&lt;BAR&gt;DEF&lt;/BAR&gt;&lt;/FOO&gt;
  </eg> </p> 
  -->
  </div3> 
  </div2> 
  <div2 id="Level-2-Range-Creating"> 
  <head>Creating a Range </head> 
  <p>A Range is created by calling the <code>createRange()</code> method on
  the <code>DocumentRange</code> interface. This interface can be obtained from
  the object implementing the <code>Document</code> interface using
  binding-specific casting methods.
  <eg>  interface DocumentRange {
      Range createRange();
    }</eg> </p> 
  <p>The initial state of the Range returned from this method is such that both
  of its <termref def="td-boundarypoint">boundary-point</termref>s are positioned
  at the beginning of the corresponding Document, before any content. In other
  words, the <termref def="td-container">container</termref> of each <termref
  def="td-boundarypoint">boundary-point</termref> is the Document node and the
  offset within that node is 0.</p> 
  <p>Like some objects created using methods in the Document interface (such as
  Nodes and DocumentFragments), Ranges created via a particular document instance
  can select only content associated with that Document, or with
  DocumentFragments and Attrs for which that Document is
  the <code>ownerDocument</code>. Such Ranges, then, can not be used with other
  Document instances.</p> 
  </div2> 
  <div2 id="Level-2-Range-Changing"> 
  <head>Changing a Range's Position</head> 
  <p>A Range's position can be specified by setting the <termref
  def="td-container">container</termref> and <termref
  def="td-offset">offset</termref> of each boundary-point with
  the <code>setStart</code> and <code>setEnd</code> methods.
  <eg>  void setStart(in Node parent, in long offset)
                          raises(RangeException);
    void setEnd(in Node parent, in long offset)
                  raises(RangeException);
  </eg> </p> 
  <p>If one boundary-point of a Range is set to have a <termref
  def="td-root-container">root container</termref> other than the current one for
  the Range, the Range is <termref def="td-collapsed">collapsed</termref> to the
  new position. This enforces the restriction that both boundary-points of a
  Range must have the same <termref def="td-root-container">root
  container</termref>.</p> 
  <p>The start position of a Range is guaranteed to never be after the end
  position. To enforce this restriction, if the start is set to be at a position
  after the end, the Range is <termref def="td-collapsed">collapsed</termref> to
  that position. Similarly, if the end is set to be at a position before the
  start, the Range is <termref def="td-collapsed">collapsed</termref> to that
  position. </p> 
  <p>It is also possible to set a Range's position relative to nodes in the tree:
  <eg>  void setStartBefore(in Node node);
                                raises(RangeException);
    void setStartAfter(in Node node);
                         raises(RangeException);
    void setEndBefore(in Node node);
                        raises(RangeException);
    void setEndAfter(in Node node);
                       raises(RangeException);
  </eg> </p> 
      <p>The <termref def="dt-parent">parent</termref> of the node becomes the <termref
  def="td-container">container</termref> of the <termref
  def="td-boundarypoint">boundary-point</termref> and the Range is subject to the
  same restrictions as given above in the description
  of <code>setStart()</code>and <code>setEnd()</code>.</p> 
  <p>A Range can be <termref def="td-collapsed">collapsed</termref> to either
  boundary-point: 
  <eg>  void collapse(in boolean toStart);</eg> </p> 
  <p>Passing <code>TRUE</code> as the parameter <code>toStart</code> will <termref
  def="td-collapsed">collapse</termref> the Range to its start, <code>FALSE</code>
  to its end.</p> 
  <p>Testing whether a Range is <termref
  def="td-collapsed">collapsed</termref> can be done by examining the
  <code>collapsed</code> attribute: 
  <eg>  readonly attribute boolean collapsed;</eg> </p> 
  <p>The following methods can be used to make a Range select the contents of a
  node or the node itself. 
  <eg>  void selectNode(in Node n);
    void selectNodeContents(in Node n);</eg> </p> 
  <p>The following examples demonstrate the operation of the
  methods <code>selectNode</code> and <code>selectNodeContents</code>: 
  <eg>Before:
    <b>^</b>&lt;BAR&gt;&lt;FOO&gt;A&lt;MOO&gt;B&lt;/MOO&gt;C&lt;/FOO&gt;&lt;/BAR&gt;
  After Range.selectNodeContents(FOO):
    &lt;BAR&gt;&lt;FOO&gt;<b>A&lt;MOO&gt;B&lt;/MOO&gt;C</b>&lt;/FOO&gt;&lt;/BAR&gt;
  (In this case, FOO is the parent of both boundary-points)
  After Range.selectNode(FOO):
  
  &lt;BAR&gt;<b>&lt;FOO&gt;A&lt;MOO&gt;B&lt;/MOO&gt;C&lt;/FOO&gt;</b>&lt;/BAR&gt;</eg></p> 
  </div2> 
  <div2 id="Level-2-Range-Comparing"> 
  <head>Comparing Range Boundary-Points</head> 
  <p>It is possible to compare two Ranges by comparing their boundary-points: 
  <eg>  short compareBoundaryPoints(in CompareHow how, in Range sourceRange) raises(RangeException);</eg> </p> 
  <p>where <code>CompareHow</code> is one of four
  values: <code>START_TO_START</code>, <code> START_TO_END</code>, <code>
  END_TO_END</code> and <code>END_TO_START</code>. The return value is -1, 0 or 1
  depending on whether the corresponding boundary-point of the Range is before,
  equal to, or after the corresponding boundary-point of
  <code>sourceRange</code>. An exception is thrown if the two Ranges have
  different <termref def="td-root-container">root container</termref>s.</p> 
  <p>The result of comparing two boundary-points (or positions) is specified
  below. An informal but not always correct specification is that an
  boundary-point is before, equal to, or after another if it corresponds to a
  location in a text representation before, equal to, or after the other's
  corresponding location.</p> 
  <p><termdef id="td-comparison" term="before/after/equal
                  to">Let A and B be two boundary-points or positions. Then one
  of the following holds: A is <term>before</term> B, A is <term>equal
  to</term> B, or A is <term>after</term> B. Which one holds is specified in the
  following by examining four cases:</termdef></p> 
  <p>In the first case the boundary-points have the same <termref
  def="td-container">container</termref>. A is <term>before</term> B if its
  <termref def="td-offset">offset</termref> is less than the <termref
  def="td-offset">offset</termref> of B, A is <term>equal to</term> B if its
  <termref def="td-offset">offset</termref> is equal to the <termref
  def="td-offset">offset</termref> of B, and A is <term>after</term> B if its
  <termref def="td-offset">offset</termref> is greater than the <termref
  def="td-offset">offset</termref> of B.</p> 
  <p>In the second case a child node C of the <termref
  def="td-container">container</termref> of A is an <termref
  def="td-ancestor-container">ancestor container</termref> of B. In this case, A
  is <term>before</term> B if the <termref def="td-offset">offset</termref> of A
  is less than or equal to the index of the child node C and A is <term>after</term> B
  otherwise.</p> 
  <p>In the third case a child node C of the <termref
  def="td-container">container</termref> of B is an <termref
  def="td-ancestor-container">ancestor container</termref> of A. In this case, A
  is <term>before</term> B if the index of the child node C is less than the <termref
  def="td-offset">offset</termref> of B and A is <term>after</term> B
  otherwise.</p> 
  <p>In the fourth case, none of three other cases hold: the containers of A and
        B are <termref def="dt-sibling">siblings</termref> or <termref
  								     def="dt-descendant">descendants</termref> of sibling nodes. In this case, A
  is <term>before</term> B if the <termref def="td-container">container</termref>
  of A is before the <termref def="td-container">container</termref> of B in a
  pre-order traversal of the Ranges' <termref def="td-context-tree">context
  tree</termref> and A is <term>after</term> B otherwise.</p> 
  <p>Note that because the same location in a text representation of the document
  can correspond to two different positions in the DOM tree, it is possible for
  two boundary-points to not compare equal even though they would be equal in the
  text representation. For this reason, the informal definition above can
  sometimes be incorrect.</p> 
  </div2> 
  <div2 id="Level-2-Range-Deleting-Content"> 
  <head>Deleting Content with a Range</head> 
  <p>One can delete the contents selected by a Range with: 
  <eg>  void deleteContents();</eg> </p> 
  <p><code>deleteContents()</code> deletes all nodes and characters selected by
  the Range. All other nodes and characters remain in the <termref
  def="td-context-tree">context tree</termref> of the Range. Some examples of
  this deletion operation are: 
  <eg>(1) &lt;FOO&gt;A<b>B&lt;MOO&gt;CD&lt;/MOO&gt;</b>CD&lt;/FOO&gt;  --&gt;
  &lt;FOO&gt;A<b>^</b>CD&lt;/FOO&gt;</eg> 
  <eg>(2) &lt;FOO&gt;A&lt;MOO&gt;B<b>C&lt;/MOO&gt;D</b>E&lt;/FOO&gt;  --&gt;
  &lt;FOO&gt;A&lt;MOO&gt;B&lt;/MOO&gt;<b>^</b>E&lt;/FOO&gt;</eg> 
  <eg>(3) &lt;FOO&gt;X<b>Y&lt;BAR&gt;Z</b>W&lt;/BAR&gt;Q&lt;/FOO&gt;  --&gt;
  &lt;FOO&gt;X<b>^</b>&lt;BAR&gt;W&lt;/BAR&gt;Q&lt;/FOO&gt;</eg> 
  <eg>(4) &lt;FOO&gt;&lt;BAR1&gt;A<b>B&lt;/BAR1&gt;&lt;BAR2/&gt;&lt;BAR3&gt;C</b>D&lt;/BAR3&gt;&lt;/FOO&gt;
  --&gt;  &lt;FOO&gt;&lt;BAR1&gt;A&lt;/BAR1&gt;<b>^</b>&lt;BAR3&gt;D&lt;/BAR3&gt;</eg> </p> 
  <p>After <code>deleteContents()</code> is invoked on a Range, the Range
  is <termref def="td-collapsed">collapsed</termref>. If no node was <termref
  def="td-partially-selected">partially selected</termref> by the Range, then it
  is <termref def="td-collapsed">collapsed</termref> to its original start point,
  as in example (1). If a node was <termref def="td-partially-selected">partially
  selected</termref> by the Range and was an <termref
  def="td-ancestor-container">ancestor container</termref> of the start of the
        Range and no <termref def="dt-ancestor">ancestor</termref> of the node satisfies these two conditions, then the
  Range is collapsed to the position immediately after the node, as in examples
  (2) and (4). If a node was <termref def="td-partially-selected">partially
  selected</termref> by the Range and was an <termref
  def="td-ancestor-container">ancestor container</termref> of the end of the
  Range and no ancestor of the node satisfies these two conditions, then the
  Range is collapsed to the position immediately before the node, as in examples
  (3) and (4). </p>
  <p>Note that if deletion of a Range leaves adjacent Text nodes, they are not
  automatically merged, and empty Text nodes are not automatically removed. Two
  Text nodes should be joined only if each is the container of one of the
  boundary-points of a Range whose contents are deleted. To merge adjacent Text
  nodes, or remove empty text nodes, the <code>normalize()</code> method on
  the <code>Node</code> interface should be used. </p> 
  </div2> 
  <div2 id="Level-2-Range-Extracting"> 
  <head>Extracting Content</head> 
  <p>If the contents of a Range need to be extracted rather than deleted, the
  following method may be used: 
  <eg>  DocumentFragment extractContents();</eg> </p> 
  <p>The <code>extractContents()</code> method removes nodes from the
  Range's <termref def="td-context-tree">context tree</termref> similarly to the
  <code>deleteContents()</code> method. In addition, it places the deleted
  contents in a new <code>DocumentFragment</code>. The following examples
  illustrate the contents of the returned DocumentFragment: 
  <eg>(1) &lt;FOO&gt;A<b>B&lt;MOO&gt;CD&lt;/MOO&gt;</b>CD&lt;/FOO&gt;  --&gt;
  B&lt;MOO&gt;CD&lt;/MOO&gt;</eg> 
  <eg>(2) &lt;FOO&gt;A&lt;MOO&gt;B<b>C&lt;/MOO&gt;D</b>E&lt;/FOO&gt;  --&gt;
  &lt;MOO&gt;C&lt;MOO&gt;D</eg> 
  <eg>(3) &lt;FOO&gt;X<b>Y&lt;BAR&gt;Z</b>W&lt;/BAR&gt;Q&lt;/FOO&gt;  --&gt;
  Y&lt;BAR&gt;Z&lt;/BAR&gt;</eg> 
  <eg>(4)
  &lt;FOO&gt;&lt;BAR1&gt;A<b>B&lt;/BAR1&gt;&lt;BAR2/&gt;&lt;BAR3&gt;C</b>D&lt;/BAR3&gt;&lt;/FOO&gt; --&gt;
  &lt;BAR1&gt;B&lt;/BAR1&gt;&lt;BAR2/&gt;&lt;BAR3&gt;C&lt;/BAR3&gt;</eg> </p> 
  <p>It is important to note that nodes that are <termref
  def="td-partially-selected">partially selected</termref> by the Range are
  cloned. Since part of such a node's contents must remain in the Range's <termref
  def="td-context-tree">context tree</termref> and part of the contents must be
  moved to the new DocumentFragment, a clone of the <termref
  def="td-partially-selected">partially selected</termref> node is included in
  the new DocumentFragment. Note that cloning does not take place for <termref def="td-selected">selected</termref>
  elements; these nodes are moved to the new DocumentFragment.</p> 
  </div2> 
  <div2 id="Level-2-Range-Cloning"> 
  <head>Cloning Content</head> 
  <p>The contents of a Range may be duplicated using the following method: 
  <eg>  DocumentFragment cloneContents();</eg> </p> 
  <p>This method returns a <code>DocumentFragment</code> that is similar to the
  one returned by the method <code>extractContents()</code>. However, in this
  case, the original nodes and character data in the Range are not removed from
  the Range's <termref def="td-context-tree"> context tree</termref>. Instead, all
  of the nodes and text content within the returned
  <code>DocumentFragment</code> are cloned.</p>
  </div2> 
  <div2 id="Level-2-Range-Inserting"> 
  <head>Inserting Content</head> 
  <p>A node may be inserted into a Range using the following method: 
  <eg>  void insertNode(in Node n) raises(RangeException);</eg> </p> 
  <p>The <code>insertNode()</code> method inserts the specified node into the
  Range's <termref def="td-context-tree">context tree</termref>. The node is
  inserted at the start <termref
  def="td-boundarypoint">boundary-point</termref> of the Range, without modifying
  it.</p> 
  <p>If the start boundary point of the Range is in a <code>Text</code> node, the
  <code>insertNode</code> operation splits the <code>Text</code> node at the 
  boundary point. If the node to be inserted is also a <code>Text</code> node, 
  the resulting adjacent <code>Text</code> nodes are not normalized automatically;
  this operation is left to the application.</p>
  <p>The Node passed into this method can be a <code>DocumentFragment</code>. In
  that case, the contents of the <code>DocumentFragment</code> are inserted at
  the start <termref def="td-boundarypoint">boundary-point</termref> of the
  Range, but the <code>DocumentFragment</code> itself is not. Note that if the
  Node represents the root of a sub-tree, the entire sub-tree is inserted.</p> 
  <p>The same rules that apply to the <code>insertBefore()</code> method on the
  Node interface apply here. Specifically, the Node passed in, if it already has
  a parent, will be removed from its existing position.</p>
  </div2> 
  <div2 id="Level-2-Range-Surrounding"> 
  <head>Surrounding Content</head> 
  <p>The insertion of a single node to subsume the content selected by a Range
  can be performed with: 
  <eg>  void surroundContents(in Node newParent);</eg> </p> 
  <p>The <code>surroundContents()</code> method causes all of the content
  selected by the Range to be rooted by the specified node. The nodes may not be
  Attr, Entity, DocumentType, Notation, Document, or DocumentFragment nodes.
  Calling <code>surroundContents()</code> with the Element node FOO in the following
  examples yields: 
  <eg>     Before:
         &lt;BAR&gt;A<b>B&lt;MOO&gt;C&lt;/MOO&gt;D</b>E&lt;/BAR&gt;
  
       After surroundContents(FOO):
  
  &lt;BAR&gt;A<b>&lt;FOO&gt;B&lt;MOO&gt;C&lt;/MOO&gt;D&lt;/FOO&gt;</b>E&lt;/BAR&gt;</eg> </p> 
  <p>Another way of describing the effect of this method on the Range's <termref
  def="td-context-tree">context tree</termref> is to decompose it in terms of
  other operations: </p> 
  <olist> 
  <item> 
  <p>Remove the contents selected by the Range with a call
  to <code>extractContents()</code>.</p> 
  </item> 
  <item> 
  <p>Insert the node <code>newParent</code> where the Range is collapsed (after the
  extraction) with <code>insertNode().</code></p> 
  </item> 
  <item> 
  <p>Insert the entire contents of the extracted DocumentFragment
  into <code>newParent</code>. Specifically, invoke the <code>appendChild()</code>
  on <code>newParent</code> passing in the DocumentFragment returned as a result of the
  call to <code>extractContents()</code> </p> 
  </item> 
  <item> 
  <p>Select <code>newParent</code> and all of its contents with
  <code>selectNode()</code>.</p> 
  </item> 
  </olist> 
  <p>The <code>surroundContents()</code> method raises an exception if the
  Range <termref def="td-partially-selected">partially selects</termref> a
  non-Text node. An example of a Range for
  which <code>surroundContents()</code>raises an exception is: 
  <eg>     &lt;FOO&gt;A<b>B&lt;BAR&gt;C</b>D&lt;/BAR&gt;E&lt;/FOO&gt;</eg> </p> 
  <p>If the node <code>newParent</code> has any children, those children are removed before its
  insertion. Also, if the node <code>newParent</code> already has a parent, it is removed from
  the original parent's <code>childNodes</code> list.</p> 
  </div2> 
  <div2 id="Level-2-Range-Misc"> 
  <head>Miscellaneous Members</head> 
  <p>One can clone a Range: 
  <eg>  Range cloneRange();</eg> </p> 
  <p>This creates a new Range which selects exactly the same content as that
  selected by the Range on which the method <code>cloneRange</code> was invoked.
  No content is affected by this operation.</p> 
  <p>Because the boundary-points of a Range do not necessarily have the
  same <termref def="td-container">container</termref>s, use: 
  <eg>  readonly attribute Node commonAncestorContainer;</eg> </p> 
  <p>to get the <termref def="td-ancestor-container">ancestor
  container</termref> of both boundary-points that is furthest down from the
  Range's <termref def="td-root-container"> root container</termref></p> 
  <p>One can get a copy of all the character data selected or partially selected
  by a Range with: 
  <eg>  DOMString toString();</eg> </p> 
  <p>This does nothing more than simply concatenate all the character data
  selected by the Range. This includes character data in both
  <code>Text</code> and <code>CDATASection</code> nodes.</p> 
  </div2> 
  <div2 id="Level-2-Range-Mutation"> 
  <head>Range modification under document mutation</head> 
  <p>As a document is modified, the Ranges within the document need to be
  updated. For example, if one boundary-point of a Range is within a node and
  that node is removed from the document, then the Range would be invalid unless
  it is fixed up in some way. This section describes how Ranges are modified
  under document mutations so that they remain valid.</p> 
  <p>There are two general principles which apply to Ranges under document
  mutation: The first is that all Ranges in a document will remain valid after
  any mutation operation and the second is that, as much as possible, all Ranges
  will select the same portion of the document after any mutation operation.</p> 
  <p>Any mutation of the document tree which affect Ranges can be considered to
  be a combination of basic deletion and insertion operations. In fact, it can be
  convenient to think of those operations as being accomplished using the
  <code>deleteContents()</code> and <code>insertNode()</code> Range methods and,
  in the case of Text mutations, the <code>splitText()</code> and
  <code>normalize()</code> methods.</p> 
  <div3 id="Level-2-Range-Insertions"> 
  <head>Insertions </head> 
  <p>An insertion occurs at a single point, the insertion point, in the document.
  For any Range in the document tree, consider each boundary-point. The only case
  in which the boundary-point will be changed after the insertion is when the
  boundary-point and the insertion point have the same <termref
  def="td-container">container</termref> and the <termref
  def="td-offset">offset</termref> of the insertion point is strictly less than
  the <termref def="td-offset">offset</termref> of the Range's boundary-point. In
  that case the <termref def="td-offset">offset</termref> of the Range's
  boundary-point will be increased so that it is between the same nodes or
  characters as it was before the insertion.</p> 
  <p>Note that when content is inserted at a boundary-point, it is ambiguous as
  to where the boundary-point should be repositioned if its relative position is
  to be maintained. There are two possibilities: at the start or at the end of
  the newly inserted content. We have chosen that in this case neither
  the <termref def="td-container"> container</termref> nor <termref
  def="td-offset">offset</termref> of the boundary-point is changed. As a result,
  the boundary-point will be positioned at the start of the newly inserted
  content.</p> 
  <p><emph>Examples:</emph></p> 
  <p>Suppose the Range selects the following: 
  <eg>&lt;P&gt;Abcd efgh X<b>Y blah i</b>jkl&lt;/P&gt;</eg> </p> 
  <p>Consider the insertion of the text "<i>inserted text</i>" at the following
  positions: 
  <eg>1. Before the 'X':
  
  &lt;P&gt;Abcd efgh <i>inserted text</i>X<b>Y blah i</b>jkl&lt;/P&gt;
  
  2. After the 'X':
  
  &lt;P&gt;Abcd efgh X<b><i>inserted text</i>Y blah i</b>jkl&lt;/P&gt;
  
  3. After the 'Y':
  
  &lt;P&gt;Abcd efgh X<b>Y<i>inserted text</i> blah i</b>jkl&lt;/P&gt;
  
  4. After the 'h' in "Y blah":
  
  &lt;P&gt;Abcd efgh X<b>Y blah<i>inserted text</i> i</b>jkl&lt;/P&gt;
  
  </eg> </p> 
  </div3> 
  <div3 id="Level-2-Range-Deletions"> 
  <head>Deletions</head> 
  <p>Any deletion from the document tree can be considered as a sequence
  of <code>deleteContents()</code> operations applied to a minimal set of disjoint
  Ranges. To specify how a Range is modified under deletions we need only
  consider what happens to a Range under a single
  <code>deleteContents()</code>operation of another Range. And, in fact, we need
  only consider what happens to a single boundary-point of the Range since both
  boundary-points are modified using the same algorithm.</p> 
  <p>If a boundary-point of the original Range is within the content being
  deleted, then after the deletion it will be at the same position as the
  resulting boundary-point of the (now <termref
  def="td-collapsed">collapsed</termref>) Range used to delete the contents.</p> 
  <p>If a boundary-point is after the content being deleted then it is not
  affected by the deletion unless its <termref
  def="td-container">container</termref> is also the <termref
  def="td-container">container</termref> of one of the boundary-points of the
  Range being deleted. If there is such a common <termref
  def="td-container">container</termref>, then the index of the boundary-point is
  modified so that the boundary-point maintains its position relative to the
  content of the <termref def="td-container">container</termref>.</p> 
  <p>If a boundary-point is before the content being deleted then it is not
  affected by the deletion at all.</p> 
  <p><emph>Examples:</emph></p> 
  <p>In these examples, the Range on which <code>deleteContents()</code>is
  invoked is indicated by the underline. </p> 
  <p><emph>Example 1. </emph></p> 
  <p>Before: </p>
  <eg>&lt;P&gt;Abcd <u>efgh T</u><b><u>he </u>Range i</b>jkl&lt;/P&gt;</eg> 
  <p>After:</p> 
  <eg>&lt;P&gt;Abcd <b>Range i</b>jkl&lt;/P&gt;</eg> 
  <p><emph>Example 2. </emph></p> 
  <p>Before:</p> 
  <eg>&lt;p&gt;Abcd <u>efgh T<b>he Range i</b>j</u>kl&lt;/p&gt;</eg> 
  <p>After:</p> 
  <eg>&lt;p&gt;Abcd <b>^</b>kl&lt;/p&gt;</eg> 
  <p><emph>Example 3. </emph></p> 
  <p>Before:</p> 
  <eg>&lt;P&gt;ABCD <u>efgh T</u><b><u>he &lt;EM&gt;R</u>ange</b>&lt;/EM&gt; ijkl&lt;/P&gt;</eg> 
  <p>After:</p> 
  <eg>&lt;P&gt;ABCD &lt;EM&gt;<b>ange</b>&lt;/EM&gt; ijkl&lt;/P&gt;</eg> 
  <p>In this example, the container of the start boundary-point after the
  deletion is the Text node holding the string "ange".</p> 
  <p><emph>Example 4. </emph></p> 
  <p>Before:</p> 
  <eg>&lt;P&gt;Abcd <u>efgh T</u><b>he Range i</b>jkl&lt;/P&gt;</eg> 
  <p>After:</p> 
  <eg>&lt;P&gt;Abcd <b>he Range i</b>jkl&lt;/P&gt;</eg> 
  <p><emph>Example 5. </emph></p> 
  <p>Before:</p> 
  <eg>&lt;P&gt;Abcd <u>&lt;EM&gt;efgh T<b>he Range i</b>j&lt;/EM&gt;</u>kl&lt;/P&gt;</eg> 
  <p>After:</p> 
  <eg>&lt;P&gt;Abcd <b>^</b>kl&lt;/P&gt;</eg> 
  </div3> 
  </div2> 
  <div2 id="Level-2-Range-Interface"> 
  <head>Formal Description of the Range Interface</head>
  <p>To summarize, the complete, formal description of the <code>Range</code>
  interface is given below:</p> 
  <definitions> 
  <interface name="Range" id="Level-2-Range-idl" since="DOM Level 2"> 
  <descr> 
  </descr> 
  <attribute name="startContainer" type="Node" readonly="yes"
  id="Level-2-Range-attr-startParent"> 
  <descr> 
  <p>Node within which the Range begins </p> 
  </descr> 
  <getraises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </getraises> 
  </attribute> 
  <attribute name="startOffset" type="long" readonly="yes"
  id="Level-2-Range-attr-startOffset"> 
  <descr> 
  <p>Offset within the starting node of the Range. </p> 
  </descr> 
  <getraises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </getraises> 
  </attribute> 
  <attribute name="endContainer" type="Node" readonly="yes"
  id="Level-2-Range-attr-endParent"> 
  <descr> 
  <p>Node within which the Range ends </p> 
  </descr> 
  <getraises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </getraises> 
  </attribute> 
  <attribute name="endOffset" type="long" readonly="yes"
  id="Level-2-Range-attr-endOffset"> 
  <descr> 
  <p>Offset within the ending node of the Range. </p> 
  </descr> 
  <getraises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </getraises> 
  </attribute> 
  <attribute name="collapsed" type="boolean" readonly="yes"
  id="Level-2-Range-attr-collapsed"> 
  <descr> 
  <p>TRUE if the Range is collapsed </p> 
  </descr> 
  <getraises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </getraises> 
  </attribute> 
  <attribute name="commonAncestorContainer" type="Node" readonly="yes"
  id="Level-2-Range-attr-commonParent"> 
  <descr> 
  <p>The <termref def="dt-deepest">deepest</termref> common <termref
  def="td-ancestor-container">ancestor container</termref> of the Range's two
  boundary-points.</p> 
  </descr> 
  <getraises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </getraises> 
  </attribute> 
  <method name="setStart" id="Level2-Range-method-setStart"> 
  <descr> 
  <p>Sets the attributes describing the start of the Range. </p> 
  </descr> 
  <parameters> 
  <param name="refNode" type="Node" attr="in"> 
  <descr> 
  <p>The <code>refNode</code> value. This parameter must be different from
  <code>null</code>.</p> 
  </descr> 
  </param> 
  <param name="offset" type="long" attr="in"> 
  <descr> 
  <p>The <code>startOffset</code> value.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor of
  <code>refNode</code> is an Entity, Notation, or DocumentType node.</p> 
  </descr> 
  </exception> 
  <exception name="DOMException"> 
  <descr> 
  <p>INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater than
  the number of child units in <code>refNode</code>. Child units are <termref def="dt-16-bit-unit">16-bit units</termref>
  if <code>refNode</code> is a type of CharacterData node (e.g., a Text or Comment node) or a ProcessingInstruction
  node. Child units are Nodes in all other cases.</p> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="setEnd" id="Level2-Range-method-setEnd"> 
  <descr> 
  <p>Sets the attributes describing the end of a Range.</p> 
  </descr> 
  <parameters> 
  <param name="refNode" type="Node" attr="in"> 
  <descr> 
  <p>The <code>refNode</code> value. This parameter must be different from
  <code>null</code>.</p> 
  </descr> 
  </param> 
  <param name="offset" type="long" attr="in"> 
  <descr> 
  <p>The <code>endOffset</code> value.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor of
  <code>refNode</code> is an Entity, Notation, or DocumentType node.</p> 
  </descr> 
  </exception> 
  <exception name="DOMException"> 
  <descr> 
  <p>INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater than
  the number of child units in <code>refNode</code>. Child units are <termref def="dt-16-bit-unit">16-bit units</termref>
  if <code>refNode</code> is a type of CharacterData node (e.g., a Text or Comment node) or a ProcessingInstruction
  node. Child units are Nodes in all other cases.</p> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="setStartBefore" id="Level2-Range-setStartBefore"> 
  <descr> 
  <p>Sets the start position to be before a node</p> 
  </descr> 
  <parameters> 
  <param name="refNode" type="Node" attr="in"> 
  <descr> 
  <p>Range starts before <code>refNode</code></p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if the root container of
  <code>refNode</code> is not an Attr, Document, or DocumentFragment node or if
  <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, or Notation
  node.</p> 
  </descr> 
  </exception> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="setStartAfter" id="Level2-Range-method-setStartAfter"> 
  <descr> 
  <p>Sets the start position to be after a node</p> 
  </descr> 
  <parameters> 
  <param name="refNode" type="Node" attr="in"> 
  <descr> 
  <p>Range starts after <code>refNode</code></p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if the root container of <code>refNode</code> is
  not an Attr, Document, or DocumentFragment node or if <code>refNode</code> is a
  Document, DocumentFragment, Attr, Entity, or Notation node.</p> 
  </descr> 
  </exception> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="setEndBefore" id="Level2-Range-method-setEndBefore"> 
  <descr> 
  <p>Sets the end position to be before a node. </p> 
  </descr> 
  <parameters> 
  <param name="refNode" type="Node" attr="in"> 
  <descr> 
  <p>Range ends before <code>refNode</code></p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if the root container of <code>refNode</code> is
  not an Attr, Document, or DocumentFragment node or if <code>refNode</code> is a
  Document, DocumentFragment, Attr, Entity, or Notation node.</p> 
  </descr> 
  </exception> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="setEndAfter" id="Level2-Range-method-setEndAfter"> 
  <descr> 
  <p>Sets the end of a Range to be after a node </p> 
  </descr> 
  <parameters> 
  <param name="refNode" type="Node" attr="in"> 
  <descr> 
  <p>Range ends after <code>refNode</code>.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if the root container of
  <code>refNode</code> is not an Attr, Document or DocumentFragment node or if
  <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, or Notation
  node.</p> 
  </descr> 
  </exception> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="collapse" id="Level2-Range-method-collapse"> 
  <descr> 
  <p>Collapse a Range onto one of its boundary-points </p> 
  </descr> 
  <parameters> 
  <param name="toStart" type="boolean" attr="in"> 
  <descr> 
  <p>If TRUE, collapses the Range onto its start; if FALSE, collapses it onto its
  end.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="selectNode" id="Level2-Range-method-selectNode"> 
  <descr> 
  <p>Select a node and its contents </p> 
  </descr> 
  <parameters> 
  <param name="refNode" type="Node" attr="in"> 
  <descr> 
  <p>The node to select.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if an ancestor of <code>refNode</code> is an
  Entity, Notation or DocumentType node or if <code>refNode</code> is a Document,
  DocumentFragment, Attr, Entity, or Notation node.</p> 
  </descr> 
  </exception> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="selectNodeContents" id="Level2-Range-method-selectNodeContents"> 
  <descr> 
  <p>Select the contents within a node </p> 
  </descr> 
  <parameters> 
  <param name="refNode" type="Node" attr="in"> 
  <descr> 
  <p>Node to select from</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor of
  <code>refNode</code> is an Entity, Notation or DocumentType node.</p> 
  </descr> 
  </exception> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <group id="Level2-Range-compareHow" name="CompareHow"> 
  <descr> 
  <p>Passed as a parameter to the <code>compareBoundaryPoints</code> method.</p> 
  </descr> 
  <constant name="START_TO_START" type="unsigned short" value="0"> 
  <descr> 
  <p>Compare start boundary-point of <code>sourceRange</code> to start
  boundary-point of Range on which <code>compareBoundaryPoints</code> is
  invoked.</p> 
  </descr> 
  </constant> 
  <constant name="START_TO_END" type="unsigned short" value="1"> 
  <descr> 
  <p>Compare start boundary-point of <code>sourceRange</code> to end
  boundary-point of Range on which <code>compareBoundaryPoints</code> is
  invoked.</p> 
  </descr> 
  </constant> 
  <constant name="END_TO_END" type="unsigned short" value="2"> 
  <descr> 
  <p>Compare end boundary-point of <code>sourceRange</code> to end boundary-point
  of Range on which <code>compareBoundaryPoints</code> is invoked.</p> 
  </descr> 
  </constant> 
  <constant name="END_TO_START" type="unsigned short" value="3"> 
  <descr> 
  <p>Compare end boundary-point of <code>sourceRange</code> to start
  boundary-point of Range on which <code>compareBoundaryPoints</code> is
  invoked.</p> 
  </descr> 
  </constant> 
  </group> 
  <method name="compareBoundaryPoints"
   id="Level2-Range-method-compareBoundaryPoints"> 
  <descr> 
  <p>Compare the boundary-points of two Ranges in a document.</p> 
  </descr> 
  <parameters> 
  <param name="how" type="unsigned short" attr="in"> 
  <descr> 
  <p>A code representing the type of comparison, as defined above.</p> 
  </descr> 
  </param> 
  <param name="sourceRange" type="Range" attr="in"> 
  <descr> 
  <p>The <code>Range</code> on which this current <code>Range</code> is compared to.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="short"> 
  <descr> 
  <p> -1, 0 or 1 depending on whether the corresponding boundary-point of the
  Range is respectively before, equal to, or after the corresponding boundary-point
  of <code>sourceRange</code>. </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same Document or
  DocumentFragment.</p> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="deleteContents" id="Level2-Range-method-deleteContents"> 
  <descr> 
  <p>Removes the contents of a Range from the containing document or document
  fragment without returning a reference to the removed content. </p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the
  Range is read-only or any of the nodes that contain any of the content of the
  Range are read-only.</p> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="extractContents" id="Level2-Range-method-extractContents"> 
  <descr> 
  <p>Moves the contents of a Range from the containing document or document
  fragment to a new DocumentFragment. </p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="DocumentFragment"> 
  <descr> 
  <p>A DocumentFragment containing the extracted contents. </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the
  Range is read-only or any of the nodes which contain any of the content of the
  Range are read-only.</p> 
  <p>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be extracted into
  the new DocumentFragment.</p> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="cloneContents" id="Level2-Range-method-cloneContents"> 
  <descr> 
  <p>Duplicates the contents of a Range </p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="DocumentFragment"> 
  <descr> 
  <p>A DocumentFragment that contains content equivalent to this Range.</p>
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be extracted into
  the new DocumentFragment.</p> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="insertNode" id="Level2-Range-method-insertNode"> 
  <descr> 
  <p>Inserts a node into the Document or DocumentFragment at the start of the
  Range. If the container is a Text node, this will be split at the start of the
  Range (as if the Text node's splitText method was performed at the insertion
  point) and the insertion will occur between the two resulting Text nodes.
  Adjacent Text nodes will not be automatically merged. If the node to be inserted is a 
  DocumentFragment node, the children will be inserted rather than the DocumentFragment node
  itself.</p> 
  </descr> 
  <parameters> 
  <param name="newNode" type="Node" attr="in"> 
  <descr> 
  <p>The node to insert at the start of the Range</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if an <termref
  def="td-ancestor-container">ancestor container</termref> of the start of the
  Range is read-only.</p> 
  <p>WRONG_DOCUMENT_ERR: Raised if <code>newNode</code> and the <termref
  def="td-container">container</termref> of the start of the Range were not
  created from the same document.</p> 
  <p>HIERARCHY_REQUEST_ERR: Raised if the <termref
  def="td-container">container</termref> of the start of the Range is of a type
  that does not allow children of the type of <code>newNode</code> or
  if <code>newNode</code> is an ancestor of the <termref
  def="td-container">container</termref>.</p> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  <exception name="RangeException"> 
  <descr> 
  <p>INVALID_NODE_TYPE_ERR: Raised if <code>newNode</code> is an Attr, Entity,
  Notation, or Document node.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="surroundContents" id="Level2-Range-method-surroundContents"> 
  <descr> 
  <p>Reparents the contents of the Range to the given node and inserts the node
  at the position of the start of the Range. </p> 
  </descr> 
  <parameters> 
  <param name="newParent" type="Node" attr="in"> 
  <descr> 
  <p>The node to surround the contents with.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p> </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if an <termref
  def="td-ancestor-container">ancestor container</termref> of either
  boundary-point of the Range is read-only.</p> 
  <p>WRONG_DOCUMENT_ERR: Raised if <code> newParent</code> and the <termref
  def="td-container">container</termref> of the start of the Range were not
  created from the same document.</p> 
  <p>HIERARCHY_REQUEST_ERR: Raised if the <termref
  def="td-container">container</termref> of the start of the Range is of a type
  that does not allow children of the type of <code>newParent</code> or
  if <code>newParent</code> is an ancestor of the <termref
  def="td-container">container</termref> or if <code>node</code> would end up with
  a child node of a type not allowed by the type of <code>node</code>.</p> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  <exception name="RangeException"> 
  <descr> 
  <p>BAD_BOUNDARYPOINTS_ERR: Raised if the Range <termref
  def="td-partially-selected">partially selects</termref> a non-text node.</p> 
  <p>INVALID_NODE_TYPE_ERR: Raised if <code> node</code> is an Attr, Entity,
  DocumentType, Notation, Document, or DocumentFragment node.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="cloneRange" id="Level2-Range-method-clone"> 
  <descr> 
  <p>Produces a new Range whose boundary-points are equal to the boundary-points
  of the Range. </p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Range"> 
  <descr> 
  <p>The duplicated Range. </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="toString" id="Level2-Range-method-toString"> 
  <descr> 
  <p>Returns the contents of a Range as a string. This string contains only the
  data characters, not any markup. </p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="DOMString"> 
  <descr> 
  <p>The contents of the Range.</p> 
  </descr> 
  </returns>
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="detach" id="Level2-Range-method-detach"> 
  <descr> 
  <p>Called to indicate that the Range is no longer in use and that the
  implementation may relinquish any resources associated with this Range.
  Subsequent calls to any methods or attribute getters on this Range will result
  in a <code>DOMException</code> being thrown with an error code of
  <code>INVALID_STATE_ERR</code>.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked
  on this object.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  </interface> 
  <interface name="DocumentRange" id="Level-2-DocumentRange-idl"
   since="DOM Level 2"> 
  <descr> 
  </descr> 
  <method name="createRange" id="Level2-DocumentRange-method-createRange"> 
  <descr> 
  <p>This interface can be obtained from the object implementing
  the <code>Document</code> interface using binding-specific casting methods.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Range"> 
  <descr> 
  <p>The initial state of the Range returned from this method is such that both
  of its boundary-points are positioned at the beginning of the corresponding
  Document, before any content. The Range returned can only be used to select
  content associated with this Document, or with DocumentFragments and Attrs for
  which this Document is the <code>ownerDocument</code>.</p> 
  </descr> 
  </returns> 
  <raises> 
  </raises> 
  </method> 
  </interface> 
  <exception name="RangeException" id="RangeException" since="DOM Level 2"> 
  <descr> 
  <p>Range operations may throw a <code>RangeException</code> as specified in
  their method descriptions.</p> 
  </descr> 
  <component id="RangeExceptionComponent" name="code"> 
  <typename>unsigned short</typename> 
  </component> 
  </exception> 
  <group id="RangeExceptionCode" name="RangeExceptionCode"> 
  <descr> 
  <p>An integer indicating the type of error generated.</p> 
  </descr> 
  <constant name="BAD_BOUNDARYPOINTS_ERR" type="unsigned short" value="1"> 
  <descr> 
  <p>If the boundary-points of a Range do not meet specific requirements.</p> 
  </descr> 
  </constant> 
  <constant name="INVALID_NODE_TYPE_ERR" type="unsigned short" value="2"> 
  <descr> 
  <p>If the <termref def="td-container">container</termref> of an boundary-point
  of a Range is being set to either a node of an invalid type or a node with an
  ancestor of an invalid type.</p> 
  </descr> 
  </constant> 
  </group> 
  </definitions> 
  </div2> 
  </div1>      <!--
        *************************************************************************
        * END OF LEVEL TWO RANGE                                                 *
        *************************************************************************
        -->
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/traversal-range/traversal.xml
  
  Index: traversal.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: traversal.xml,v 1.1 2001/06/01 11:15:32 dims Exp $ -->
  <!--
  
   *************************************************************************
  
   * BEGINNING OF TRAVERSAL                                                *
  
   *************************************************************************
  
  -->
  <div1 id="Traversal"> 
    <head>Document Object Model Traversal</head> 
    <orglist role="editors"> 
  	 <member> 
  		<name>Joe Kesselman</name> 
  		<affiliation>IBM</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Jonathan Robie</name> 
  		<affiliation>Software AG</affiliation> 
  	 </member> 
  	 <member> 
  		<name>Mike Champion</name> 
  		<affiliation>Software AG</affiliation> 
  	 </member> 
    </orglist><?GENERATE-MINI-TOC?>
  <!--
  
    ******************************************************
  
    | INTRODUCTION                                       |
  
    ******************************************************
  
    -->
    <div2 id="Traversal-overview"> 
  	 <head>Overview</head> 
  	 <p>This chapter describes the optional DOM Level 2 <emph>Traversal</emph>
  		feature. Its <code>TreeWalker</code>, <code>NodeIterator</code>, and
  		<code>NodeFilter</code> interfaces provide easy-to-use, robust, selective
  		traversal of a document's contents.</p>
  
      <p>
        The interfaces found within this section are not mandatory. A DOM
        application may use the <code>hasFeature(feature, version)</code> method
        of the <code>DOMImplementation</code> interface with parameter values
        "Traversal" and "2.0" (respectively) to determine whether or not this module
        is supported by the implementation. In order to fully support this
        module, an implementation must also support the "Core" feature defined
        defined in the DOM Level 2 Core specification <bibref
        ref="DOMCore"/>. Please refer to additional information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance</xspecref>
        in the DOM Level 2 Core specification <bibref ref="DOMCore"/>.
      </p>
  
  	 <p> <code>NodeIterators</code> and <code>TreeWalkers</code> are two
  		different ways of representing the nodes of a document subtree and a position
  		within the nodes they present. A <code>NodeIterator</code> presents a flattened
  		view of the subtree as an ordered sequence of nodes, presented in document
  		order. Because this view is presented without respect to hierarchy, iterators
  		have methods to move forward and backward, but not to move up and down.
  		Conversely, a <code>TreeWalker</code> maintains the hierarchical relationships
  		of the subtree, allowing navigation of this hierarchy. In general,
  		<code>TreeWalkers</code> are better for tasks in which the structure of the
  		document around selected nodes will be manipulated, while
  		<code>NodeIterators</code> are better for tasks that focus on the content of
  		each selected node. </p> 
  	 <p><code>NodeIterators</code> and <code>TreeWalkers</code> each present a
  		view of a document subtree that may not contain all nodes found in the subtree.
  		In this specification, we refer to this as the
  		<term id="Traversal-Logical-View">logical view</term> to distinguish it from
  		the <term>physical view</term>, which corresponds to the document subtree per
  		se. When an iterator or <code>TreeWalker</code> is created, it may be
  		associated with a <code>NodeFilter</code>, which examines each node and
  		determines whether it should appear in the logical view. In addition, flags may
  		be used to specify which node types should occur in the logical view.</p> 
  	 <p><code>NodeIterators</code> and <code>TreeWalkers</code> are dynamic -
  		the logical view changes to reflect changes made to the underlying document.
  		However, they differ in how they respond to those changes.
  		<code>NodeIterators</code>, which present the nodes sequentially, attempt to
  		maintain their location relative to a position in that sequence when the
  		sequence's contents change. <code>TreeWalkers</code>, which present the nodes
  		as a filtered tree, maintain their location relative to their current node and
  		remain attached to that node if it is moved to a new context. We will discuss
  		these behaviors in greater detail below.</p> 
  	 <div3 id="Iterator-overview"> 
  		<head><code>NodeIterators</code></head> 
  		<p>A <code>NodeIterator</code> allows the members of a list of nodes to
  		  be returned sequentially. In the current DOM interfaces, this list will always
  		  consist of the nodes of a subtree, presented in <termref def="dt-documentorder">document order</termref>. When an
  		  iterator is first created, calling its <code>nextNode() </code>method returns
  		  the first node in the logical view of the subtree; in most cases, this is the
  		  root of the subtree. Each successive call advances the
  		  <code></code><code>NodeIterator</code> through the list, returning the next
  		  node available in the logical view. When no more nodes are visible,
  		  <code>nextNode()</code> returns <code>null</code>.</p> 
  		<p><code>NodeIterators</code> are created using the
  		  <code>createNodeIterator</code> method found in the
  		  <code>DocumentTraversal</code> interface. When a <code>NodeIterator</code> is
  		  created, flags can be used to determine which node types will be "visible" and
  		  which nodes will be "invisible" while traversing the tree; these flags can be
  		  combined using the <code>OR</code> operator. Nodes that are "invisible" are
  		  skipped over by the iterator as though they did not exist. </p> 
  		<p>The following code creates an iterator, then calls a function to print
  		  the name of each element:</p> 
  		<eg xml:space="preserve">
  	NodeIterator iter=
       ((DocumentTraversal)document).createNodeIterator(
            root, NodeFilter.SHOW_ELEMENT, null);
  
  	while (Node n = iter.nextNode())
  	    printMe(n);
        </eg> 
  		<div4 id="Iterator-Moving"> 
  		  <head>Moving Forward and Backward</head> 
  		  <p><code>NodeIterators</code> present nodes as an ordered list, and
  			 move forward and backward within this list. The iterator's position is always
  			 either between two nodes, before the first node, or after the last node. When
  			 an iterator is first created, the position is set before the first item. The
  			 following diagram shows the list view that an iterator might provide for a
  			 particular subtree, with the position indicated by an asterisk '*' :</p> 
  		  <eg xml:space="preserve"> * A B C D E F G H I</eg> 
  		  <p>Each call to <code>nextNode()</code> returns the next node and
  			 advances the position. For instance, if we start with the above position, the
  			 first call to <code>nextNode()</code> returns &quot;A&quot; and advances the
  			 iterator:</p> 
  		  <eg xml:space="preserve"> [A] * B C D E F G H I</eg> 
  		  <p>The position of a <code>NodeIterator</code> can best be described
  			 with respect to the last node returned, which we will call the <term>reference
  			 node</term>. When an iterator is created, the first node is the reference node,
  			 and the iterator is positioned before the reference node. In these diagrams, we
  			 use square brackets to indicate the reference node.</p> 
  		  <p>A call to <code>previousNode()</code> returns the previous node and
  			 moves the position backward. For instance, if we start with the
  			 <code>NodeIterator</code> between &quot;A&quot; and &quot;B&quot;, it would
  			 return &quot;A&quot; and move to the position shown below:</p> 
  		  <eg xml:space="preserve"> * [A] B C D E F G H I</eg> 
  		  <p>If <code>nextNode()</code> is called at the end of a list, or
  			 <code>previousNode()</code> is called at the beginning of a list, it returns
  			 <code>null</code> and does not change the position of the iterator. When a
  			 <code>NodeIterator</code> is first created, the reference node is the first
  			 node:</p> 
  		  <eg xml:space="preserve"> * [A] B C D E F G H I</eg> 
  </div4> 
  <div4 id="Iterator-Robustness"> 
  <head>Robustness</head> 
  <p>A <code>NodeIterator</code> may be active while the data structure it
    navigates is being edited, so an iterator must behave gracefully in the face of
    change. Additions and removals in the underlying data structure do not
    invalidate a <code>NodeIterator</code>; in fact, a <code>NodeIterator</code> is
    never invalidated unless its <code>detach()</code> method is invoked. To make
    this possible, the iterator uses the reference node to maintain its position.
    The state of an iterator also depends on whether the iterator is positioned
    before or after the reference node.</p> 
  <p>If changes to the iterated list do not remove the reference node, they do
    not affect the state of the <code>NodeIterator</code>. For instance, the
    iterator's state is not affected by inserting new nodes in the vicinity of the
    iterator or removing nodes other than the reference node. Suppose we start from
    the following position:</p> 
  <eg xml:space="preserve">A B C [D] * E F G H I</eg> 
  <p>Now let's remove "E". The resulting state is:</p> 
  <eg xml:space="preserve">A B C [D] * F G H I</eg> 
  <p>If a new node is inserted, the <code>NodeIterator</code> stays close to the
    reference node, so if a node is inserted between "D" and "F", it will occur
    between the iterator and "F": </p> 
  <eg xml:space="preserve">A B C [D] * X F G H I</eg> 
  <p>Moving a node is equivalent to a removal followed by an insertion. If we
    move "I" to the position before "X" the result is:</p> 
  <eg xml:space="preserve">A B C [D] * I X F G H</eg> 
  <p>If the reference node is removed from the list being iterated over, a
    different node is selected as the reference node. If the reference node's
    position is before that of the <code>NodeIterator</code>, which is usually the
    case after <code>nextNode()</code> has been called, the nearest node before the
    iterator is chosen as the new reference node. Suppose we remove the "D" node,
    starting from the following state:</p> 
  <eg xml:space="preserve">A B C [D] * F G H I</eg> 
  <p>The "C" node becomes the new reference node, since it is the nearest node to
    the <code>NodeIterator</code> that is before the iterator:</p> 
  <eg xml:space="preserve">A B [C] * F G H I</eg> 
  <p>If the reference node is after the <code>NodeIterator</code>, which is
    usually the case after <code>previousNode()</code> has been called, the nearest
    node after the iterator is chosen as the new reference node. Suppose we remove
    "E", starting from the following state:</p> 
  <eg xml:space="preserve">A B C D * [E] F G H I</eg> 
  <p>The "F" node becomes the new reference node, since it is the nearest node to
    the <code>NodeIterator</code> that is after the iterator:</p> 
  <eg xml:space="preserve">A B C D * [F] G H I</eg> 
  <p>As noted above, moving a node is equivalent to a removal followed by an
    insertion. Suppose we wish to move the "D" node to the end of the list,
    starting from the following state:</p> 
  <eg xml:space="preserve">A B C [D] * F G H I C</eg> 
  <p>The resulting state is as follows:</p> 
  <eg xml:space="preserve">A B [C] * F G H I D</eg> 
  <p>One special case arises when the reference node is the last node in the list
    and the reference node is removed. Suppose we remove node "C", starting from
    the following state:</p> 
  <eg xml:space="preserve">A B * [C]</eg> 
  <p>According to the rules we have given, the new reference node should be the
    nearest node after the <code>NodeIterator</code>, but there are no further
    nodes after "C". The same situation can arise when <code>previousNode()</code>
    has just returned the first node in the list, which is then removed. Hence: If
    there is no node in the original direction of the reference node, the nearest
    node in the opposite direction is selected as the reference node:</p> 
  <eg xml:space="preserve">A [B] *</eg> 
  <p>If the <code>NodeIterator</code> is positioned within a block of nodes that
    is removed, the above rules clearly indicate what is to be done. For instance,
  	  suppose "C" is the <termref def="dt-parent">parent</termref> node of "D", "E", and "F", and we remove "C",
    starting with the following state:</p> 
  <eg xml:space="preserve">A B C [D] * E F G H I D</eg> 
  <p>The resulting state is as follows:</p> 
  <eg xml:space="preserve">A [B] * G H I D</eg> 
  <p>Finally, note that removing a <code>NodeIterator</code>'s <code>root</code>
    node from its <termref def="dt-parent">parent</termref> does not alter the list being iterated over, and thus does
    not change the iterator's state.</p> 
  </div4> 
  <div4 id="Iterator-Visibility"> 
  <head>Visibility of Nodes</head> 
  <p>The underlying data structure that is being iterated may contain nodes that
  are not part of the logical view, and therefore will not be returned by the
  <code>NodeIterator</code>. If nodes that are to be excluded because of the
  value of the <code>whatToShow</code> flag, <code>nextNode()</code> returns the
  next visible node, skipping over the excluded "invisible" nodes. If a
  <code>NodeFilter</code> is present, it is applied before returning a node; if
  the filter does not accept the node, the process is repeated until a node is
  accepted by the filter and is returned. If no visible nodes are encountered, a
  <code>null</code> is returned and the iterator is positioned at the end of the
  list. In this case, the reference node is the last node in the list, whether or
  not it is visible. The same approach is taken, in the opposite direction, for
  <code>previousNode()</code>.</p> 
  <p> In the following examples, we will use lowercase letters to represent nodes
  that are in the data structure, but which are not in the logical view. For
  instance, consider the following list:</p> 
  <eg xml:space="preserve">A [B] * c d E F G</eg> 
  <p>A call to <code>nextNode()</code> returns E and advances to the following
  position:</p> 
  <eg xml:space="preserve">A B c d [E] * F G</eg> 
  <p> Nodes that are not visible may nevertheless be used as reference nodes if a
  reference node is removed. Suppose node "E" is removed, started from the state
  given above. The resulting state is:</p> 
  <eg xml:space="preserve">A B c [d] * F G</eg> 
  <p>Suppose a new node "X", which is visible, is inserted before "d". The
  resulting state is:</p> 
  <eg xml:space="preserve">A B c X [d] * F G</eg> 
  <p>Note that a call to <code>previousNode()</code> now returns node X. It is
  important not to skip over invisible nodes when the reference node is removed,
  because there are cases, like the one just given above, where the wrong results
  will be returned. When "E" was removed, if the new reference node had been "B"
  rather than "d", calling <code>previousNode()</code> would not return "X".</p> 
  </div4> 
  </div3> 
  <div3 id="Traversal-Filters"> 
  <head><code>NodeFilters</code></head> 
  <p><code>NodeFilters</code> allow the user to create objects that "filter out"
  nodes. Each filter contains a user-written function that looks at a node and
  determines whether or not it should be presented as part of the traversal's
  logical view of the document. To use a <code>NodeFilter</code>, you create a
  <code>NodeIterator</code> or a <code>TreeWalker</code> that uses the filter.
  The traversal engine applies the filter to each node, and if the filter does
  not accept the node, traversal skips over the node as though it were not
  present in the document. <code>NodeFilters</code> need not know how to navigate
  the structure that contains the nodes on which they operate. </p>
  <!--JKESS 20000305: Traversal has no memory, and no anticipation, 
  	of filters-->
  <p>Filters will be consulted when a traversal operation is performed, or when a
  <code>NodeIterator</code>'s reference node is removed from the subtree being
  iterated over and it must select a new one. However, the exact timing of these
  filter calls may vary from one DOM implementation to another. For that reason,
  <code>NodeFilters</code> should not attempt to maintain state based on the
  history of past invocations; the resulting behavior may not be portable.</p> 
  <p>Similarly, <code>TreeWalkers</code> and <code>NodeIterators</code> should
  behave as if they have no memory of past filter results, and no anticipation of
  future results. If the conditions a <code>NodeFilter</code> is examining have
  changed (e.g., an attribute which it tests has been added or removed) since the
  last time the traversal logic examined this node, this change in visibility
  will be discovered only when the next traversal operation is performed. For
  example: if the filtering for the current node changes from
  <code>FILTER_SHOW</code> to <code>FILTER_SKIP</code>, a <code>TreeWalker</code>
  will be able to navigate off that node in any direction, but not back to it
  unless the filtering conditions change again. <code>NodeFilters</code> which
  change during a traversal can be written, but their behavior may be confusing
  and they should be avoided when possible.</p> 
  <!-- End JKESS 20000305 -->
  <div4 id="Traversal-Filters-Usage"> 
  <head>Using <code>NodeFilters</code></head> 
  <p>A <code>NodeFilter</code> contains one method named
  <code>acceptNode()</code>, which allows a <code>NodeIterator</code> or
  <code>TreeWalker</code> to pass a <code>Node</code> to a filter and ask whether
  it should be present in the logical view. The <code>acceptNode()</code>
  function returns one of three values to state how the <code>Node</code> should
  be treated. If <code>acceptNode()</code> returns <code>FILTER_ACCEPT</code>,
  the <code>Node</code> will be present in the logical view; if it returns
  <code>FILTER_SKIP</code>, the <code>Node</code> will not be present in the
  logical view, but the children of the <code>Node</code> may; if it returns
  	  <code>FILTER_REJECT</code>, neither the <code>Node</code> nor its
  	  <termref def="dt-descendant">descendants</termref>
  will be present in the logical view. Since iterators present nodes as an
  ordered list, without hierarchy, <code>FILTER_REJECT</code> and
  <code>FILTER_SKIP</code> are synonyms for <code>NodeIterators</code>, skipping
  only the single current node.</p> 
  <p>Consider a filter that accepts the named anchors in an HTML document. In
  HTML, an HREF can refer to any A element that has a NAME attribute. Here is a
  <code>NodeFilter</code> in Java that looks at a node and determines whether it
  is a named anchor:</p> 
  <eg xml:space="preserve">
  	class NamedAnchorFilter implements NodeFilter
  	{
  	 short acceptNode(Node n) {
  	  if (n.getNodeType()==Node.ELEMENT_NODE) {
  	   Element e = (Element)n;
  	   if (! e.getNodeName().equals("A"))
  	    return FILTER_SKIP;
   	  if (e.getAttributeNode("NAME") != null)
  	    return FILTER_ACCEPT;
  	   }
  	  	return FILTER_SKIP;
  	  }
  	}</eg> 
  <p>If the above <code>NodeFilter</code> were to be used only with
  <code>NodeIterators</code>, it could have used <code>FILTER_REJECT</code>
  wherever <code>FILTER_SKIP</code> is used, and the behavior would not change.
  For <code>TreeWalker</code>, though, <code>FILTER_REJECT</code> would reject
  the children of any element that is not a named anchor, and since named anchors
  are always contained within other elements, this would have meant that no named
  anchors would be found. <code>FILTER_SKIP</code> rejects the given node, but
  continues to examine the children; therefore, the above filter will work with
  either a <code>NodeIterator</code> or a <code>TreeWalker</code>.</p> 
  <p>To use this filter, the user would create an instance of the
  <code>NodeFilter</code> and create a <code>NodeIterator</code> using it:</p> 
  <eg xml:space="preserve">
  NamedAnchorFilter myFilter = new NamedAnchorFilter(); 
  NodeIterator iter=
       ((DocumentTraversal)document).createNodeIterator(
            node, NodeFilter.SHOW_ELEMENT, myFilter);
  	</eg> 
  <p>Note that the use of the <code>SHOW_ELEMENT</code> flag is not strictly
  necessary in this example, since our sample <code>NodeFilter</code> tests the
  <code>nodeType</code>. However, some implementations of the Traversal
  interfaces may be able to improve <code>whatToShow</code> performance by taking
  advantage of knowledge of the document's structure, which makes the use of
  <code>SHOW_ELEMENT</code> worthwhile. Conversely, while we could remove the
  <code>nodeType</code> test from our filter, that would make it dependent upon
  <code>whatToShow</code> to distinguish between <code>Elements</code>,
  <code>Attr</code>'s, and <code>ProcessingInstructions</code>. </p> 
  </div4> 
  <div4 id="Traversal-Filters-Exceptions"> 
  <head><code>NodeFilters</code> and Exceptions</head> 
  <p>When writing a <code>NodeFilter</code>, users should avoid writing code that
  can throw an exception. However, because a DOM implementation can not prevent
  exceptions from being thrown, it is important that the behavior of filters that
  throw an exception be well-defined. A <code>TreeWalker</code> or
  <code>NodeIterator</code> does not catch or alter an exception thrown by a
  filter, but lets it propagate up to the user's code. The following functions
  may invoke a <code>NodeFilter</code>, and may therefore propagate an exception
  if one is thrown by a filter: 
  <olist> 
  <item> 
  <p><code>NodeIterator</code><code>.nextNode()</code> </p> 
  </item> 
  <item> 
  <p><code>NodeIterator</code><code>.previousNode()</code> </p> 
  </item> 
  <item> 
  <p><code>TreeWalker</code><code>.firstChild()</code> </p> 
  </item> 
  <item> 
  <p><code>TreeWalker</code><code>.lastChild()</code> </p> 
  </item> 
  <item> 
  <p><code>TreeWalker</code><code>.nextSibling()</code> </p> 
  </item> 
  <item> 
  <p><code>TreeWalker</code><code>.previousSibling()</code> </p> 
  </item> 
  <item> 
  <p><code>TreeWalker</code><code>.nextNode()</code> </p> 
  </item> 
  <item> 
  <p><code>TreeWalker</code><code>.previousNode()</code> </p> 
  </item> 
  <item> 
  <p><code>TreeWalker</code><code>.parentNode()</code> </p> 
  </item> 
  </olist> </p> 
  </div4> 
  <div4 id="Traversal-Filters-Mutation"> 
  <head><code>NodeFilters</code> and Document Mutation</head> 
  <p>Well-designed <code>NodeFilters</code> should not have to modify the
  underlying structure of the document. But a DOM implementation can not prevent
  a user from writing filter code that does alter the document structure.
  Traversal does not provide any special processing to handle this case. For
  instance, if a <code>NodeFilter</code> removes a node from a document, it can
  still accept the node, which means that the node may be returned by the
  <code>NodeIterator</code> or <code>TreeWalker</code> even though it is no
  longer in the subtree being traversed. In general, this may lead to
  inconsistent, confusing results, so we encourage users to write
  <code>NodeFilters</code> that make no changes to document structures. Instead,
  do your editing in the loop controlled by the traversal object.</p>
  
  	<!--A second case that was given by Andy was modifications that change
  	the node so that the filter's tests would no longer accept the
  	node. However, since the Filter makes the changes and applies the test,
  	it is the Filter function itself that defines whether a node is
  	accepted or rejected, so if the Filter modifies a node and then accepts
  	it, this is simply the definition of the Filter. We decided to omit the
  	case.-->
  </div4> 
  <div4 id="Traversal-Filters-Flags"> 
  <head><code>NodeFilters</code> and <code>whatToShow</code> flags </head> 
  <p><code>NodeIterator</code> and <code>TreeWalker</code> apply their
  <code>whatToShow</code> flags before applying filters. If a node is 
  <!-- JKESS 20000217: Clarify  whatToShow behavior, 
  	potential interaction with FILTER_REJECT.
   -->
  skipped by the active <code>whatToShow</code> flags, a <code>NodeFilter</code>
  will not be called to evaluate that node. Please note that this behavior is
  similar to that of <code>FILTER_SKIP</code>; children of that node will be
  considered, and filters may be called to evaluate them. Also note that it will
  in fact be a "skip" even if the <code>NodeFilter</code> would have preferred to
  reject the entire subtree; if this would cause a problem in your application,
  consider setting <code>whatToShow</code> to <code>SHOW_ALL</code> and
  performing the <code>nodeType</code> test inside your filter. 
  <!-- End JKESS 20000217 -->
  </p> 
  </div4> 
  </div3> 
  <div3 id="TreeWalker"> 
  <head><code>TreeWalker</code></head> 
  <p>The <code>TreeWalker</code> interface provides many of the same benefits as
  the <code>NodeIterator</code> interface. The main difference between these two
  interfaces is that the <code>TreeWalker</code> presents a tree-oriented view of
  the nodes in a subtree, rather than the iterator's list-oriented view. In other
  words, an iterator allows you to move forward or back, but a
  <code>TreeWalker</code> allows you to also move to the <termref def="dt-parent">parent</termref> of a node, to one
  	of its children, or to a <termref def="dt-sibling">sibling</termref>.</p> 
  <p>Using a <code>TreeWalker</code> is quite similar to navigation using the
  Node directly, and the navigation methods for the two interfaces are analogous.
  For instance, here is a function that recursively walks over a tree of nodes in
  document order, taking separate actions when first entering a node and after
  processing any children:</p> 
  <eg xml:space="preserve">
  processMe(Node n) {
     nodeStartActions(n);
     for (Node child=n.firstChild(); 
          child != null;
          child=child.nextSibling()) {
        processMe(child);
     }
     nodeEndActions(n);
  }</eg> 
  <p>Doing the same thing using a <code>TreeWalker</code> is quite similar. There
  is one difference: since navigation on the <code>TreeWalker</code> changes the
  current position, the position at the end of the function has changed. A
  read/write attribute named <code>currentNode</code> allows the current node for
  a <code>TreeWalker</code> to be both queried and set. We will use this to
  ensure that the position of the <code>TreeWalker</code> is restored when this
  function is completed:</p> 
  <eg xml:space="preserve">
  processMe(TreeWalker tw) {
     Node n = tw.getCurrentNode();
     nodeStartActions(tw);
     for (Node child=tw.firstChild(); 
          child!=null;
          child=tw.nextSibling()) {
        processMe(tw);
     }
  
     tw.setCurrentNode(n);
     nodeEndActions(tw);
  }</eg> 
  <p>The advantage of using a <code>TreeWalker</code> instead of direct
  <code>Node</code> navigation is that the <code>TreeWalker</code> allows the
  user to choose an appropriate view of the tree. Flags may be used to show or
  hide <code>Comments</code> or <code>ProcessingInstructions</code>; entities may
  be expanded or shown as <code>EntityReference</code> nodes. In addition,
  <code>NodeFilters</code> may be used to present a custom view of the tree.
  Suppose a program needs a view of a document that shows which tables occur in
  each chapter, listed by chapter. In this view, only the chapter elements and
  the tables that they contain are seen. The first step is to write an
  appropriate filter:</p> 
  <eg xml:space="preserve">
  class TablesInChapters implements NodeFilter {
  
     short acceptNode(Node n) {
        if (n.getNodeType()==Node.ELEMENT_NODE) {
  	
            if (n.getNodeName().equals("CHAPTER"))
               return FILTER_ACCEPT;
  
            if (n.getNodeName().equals("TABLE"))
               return FILTER_ACCEPT;
  
            if (n.getNodeName().equals("SECT1")
                || n.getNodeName().equals("SECT2")
                || n.getNodeName().equals("SECT3")
                || n.getNodeName().equals("SECT4")
                || n.getNodeName().equals("SECT5")
                || n.getNodeName().equals("SECT6")
                || n.getNodeName().equals("SECT7"))
               return FILTER_SKIP;
  
        }
  
        return FILTER_REJECT;
     	}
  }</eg>
  <p>	</p> 
  <p>This filter assumes that TABLE elements are contained directly in CHAPTER or
  SECTn elements. If another kind of element is encountered, it and its children
  are rejected. If a SECTn element is encountered, it is skipped, but its
  children are explored to see if they contain any TABLE elements.</p> 
  <p>Now the program can create an instance of this <code>NodeFilter</code>,
  create a <code>TreeWalker</code> that uses it, and pass this
  <code>TreeWalker</code> to our ProcessMe() function:</p> 
  <eg>TablesInChapters tablesInChapters  = new TablesInChapters();
  TreeWalker tw  = 
       ((DocumentTraversal)document).createTreeWalker(
            root, NodeFilter.SHOW_ELEMENT, tablesInChapters);
  processMe(tw);</eg> 
  <p>(Again, we've chosen to both test the <code>nodeType</code> in the filter's
  logic and use <code>SHOW_ELEMENT</code>, for the reasons discussed in the
  earlier <code>NodeIterator</code> example.)</p> 
  <p>Without making any changes to the above <code>ProcessMe()</code> function,
  it now processes only the CHAPTER and TABLE elements. The programmer can write
  other filters or set other flags to choose different sets of nodes; if
  functions use <code>TreeWalker</code> to navigate, they will support any view
  of the document defined with a <code>TreeWalker</code>.</p> 
  <p>Note that the structure of a <code>TreeWalker</code>'s filtered view of a
  document may differ significantly from that of the document itself. For
  example, a <code>TreeWalker</code> with only <code>SHOW_TEXT</code> specified
  in its <code>whatToShow</code> parameter would present all the
  <code>Text</code> nodes as if they were <termref def="dt-sibling">siblings</termref> of each other yet had no
  <termref def="dt-parent">parent</termref>.</p> 
  <div4 id="TreeWalker-Robustness"> 
  <head>Robustness</head> 
  <p>As with <code>NodeIterators</code>, a <code>TreeWalker</code> may be active
  while the data structure it navigates is being edited, and must behave
  gracefully in the face of change. Additions and removals in the underlying data
  structure do not invalidate a <code>TreeWalker</code>; in fact, a
  <code>TreeWalker</code> is never invalidated.</p> 
  <p>But a <code>TreeWalker</code>'s response to these changes is quite different
  from that of a <code>NodeIterator</code>. While <code>NodeIterators</code>
  respond to editing by maintaining their position within the list that they are
  iterating over, <code>TreeWalkers</code> will instead remain attached to their
  <code>currentNode</code>. All the <code>TreeWalker</code>'s navigation methods
  operate in terms of the context of the <code>currentNode</code> at the time
  they are invoked, no matter what has happened to, or around, that node since
  the last time the <code>TreeWalker</code> was accessed. This remains true even
  if the <code>currentNode</code> is moved out of its original subtree.</p> 
  <p>As an example, consider the following document fragment:</p> 
  <eg xml:space="preserve">
  	...
  	&lt;subtree&gt;
  		&lt;twRoot&gt;
  			&lt;currentNode/&gt;
  			&lt;anotherNode/&gt;
  		&lt;/twRoot&gt;
  	&lt;/subtree&gt;
  	...
    </eg> 
  <p>Let's say we have created a <code>TreeWalker</code> whose <code>root</code>
  node is the &lt;twRoot/&gt; element and whose <code>currentNode</code> is the
  &lt;currentNode/&gt; element. For this illustration, we will assume that all
  the nodes shown above are accepted by the <code>TreeWalker</code>'s
  <code>whatToShow</code> and filter settings.</p> 
  <p>If we use <code>removeChild()</code> to remove the &lt;currentNode/&gt;
  element from its <termref def="dt-parent">parent</termref>, that element remains the <code>TreeWalker</code>'s
  <code>currentNode</code>, even though it is no longer within the
  <code>root</code> node's subtree. We can still use the <code>TreeWalker</code>
  to navigate through any children that the orphaned <code>currentNode</code> may
  have, but are no longer able to navigate outward from the
  <code>currentNode</code> since there is no <termref def="dt-parent">parent</termref> available.</p> 
  <p>If we use <code>insertBefore()</code> or <code>appendChild()</code> to give
  the &lt;currentNode/&gt; a new <termref def="dt-parent">parent</termref>, then <code>TreeWalker</code> navigation
  will operate from the <code>currentNode</code>'s new location. For example, if
  we inserted the &lt;currentNode/&gt; immediately after the &lt;anotherNode/&gt;
  element, the <code>TreeWalker</code>'s <code>previousSibling()</code> operation
  would move it back to the &lt;anotherNode/&gt;, and calling
  <code>parentNode()</code> would move it up to the &lt;twRoot/&gt;.</p> 
  <p>If we instead insert the <code>currentNode</code> into the &lt;subtree/&gt;
  element, like so:</p> 
  <eg xml:space="preserve">
  	...
  	&lt;subtree&gt;
  		&lt;currentNode/&gt;
  		&lt;twRoot&gt;
  			&lt;anotherNode/&gt;
  		&lt;/twRoot&gt;
  	&lt;/subtree&gt;
  	...</eg> 
  <p>we have moved the <code>currentNode</code> out from under the
  <code>TreeWalker</code>'s <code>root</code> node. This does not invalidate the
  <code>TreeWalker</code>; it may still be used to navigate relative to the
  <code>currentNode</code>. Calling its <code>parentNode()</code> operation, for
  example, would move it to the &lt;subtree/&gt; element, even though that too is
  outside the original <code>root</code> node. However, if the
  <code>TreeWalker</code>'s navigation should take it back into the original
  <code>root</code> node's subtree -- for example, if rather than calling
  <code>parentNode()</code> we called <code>nextNode()</code>, moving the
  <code>TreeWalker</code> to the &lt;twRoot/&gt; element -- the <code>root</code>
  node will "recapture" the <code>TreeWalker</code>, and prevent it from
  traversing back out.</p>
  <!--JKESS 20000301: Miles' "transient sibling" case-->
  <p>This becomes a bit more complicated when filters are in use. Relocation of
  the <code>currentNode</code> -- or explicit selection of a new
  <code>currentNode</code>, or changes in the conditions that the
  <code>NodeFilter</code> is basing its decisions on -- can result in a
  <code>TreeWalker</code> having a <code>currentNode</code> which would not
  otherwise be visible in the filtered (logical) view of the document. This node
  can be thought of as a "transient member" of that view. When you ask the
  <code>TreeWalker</code> to navigate off this node the result will be just as if
  it had been visible, but you may be unable to navigate back to it unless
  conditions change to make it visible again.</p> 
  <p>In particular: If the <code>currentNode</code> becomes part of a subtree
  that would otherwise have been Rejected by the filter, that entire subtree may
  be added as transient members of the logical view. You will be able to navigate
  within that subtree (subject to all the usual filtering) until you move upward
  past the Rejected <termref def="dt-ancestor">ancestor</termref>. The behavior is as if the Rejected node had only
  been Skipped (since we somehow wound up inside its subtree) until we leave it;
  thereafter, standard filtering applies.</p>
  <!--End JKESS 20000301-->
  </div4> 
  </div3> 
  </div2> 
  <div2 id="Traversal-IDLDefinition"> 
  <head>Formal Interface Definition</head> 
  <definitions> 
  <interface name="NodeIterator" id="Traversal-NodeIterator" since="DOM Level 2">
  
  <descr> 
  <p><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
  <code>DocumentTraversal</code><code>.createNodeIterator()</code>.</p> 
  </descr>
  <!-- JKESS: 200000217: New attribute. Approved in 2/16 telecon  -->
  <attribute id="Traversal-NodeIterator-root" name="root" type="Node"
   readonly="yes"> 
  <descr> 
  <p>The root node of the <code>NodeIterator</code>, as specified when it was
  created.</p> 
  </descr> 
  </attribute>
  <!-- End JKESS: 200000217:-->
  <!-- JKESS: 2/2/2000: whatToShow changed from long to unsigned long -->
  <attribute id="Traversal-NodeIterator-whatToShow" name="whatToShow"
   type="unsigned long" readonly="yes"> 
  <descr> 
  <p>This attribute determines which node types are presented via the iterator.
  The available set of constants is defined in the <code>NodeFilter</code>
  interface.
  
  <!--JKESS 20000228: Document interaction -->
  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.
  
  <!--End JKESS 20000228--></p> 
  </descr> 
  </attribute> 
  <attribute id="Traversal-NodeIterator-filter" name="filter" type="NodeFilter"
   readonly="yes"> 
  <descr> 
  <p>The <code>NodeFilter</code> used to screen nodes.</p> 
  </descr> 
  </attribute> 
  <attribute id="Traversal-NodeIterator-expandEntityReferences"
   name="expandEntityReferences" type="boolean" readonly="yes"> 
  <descr> 
  <p> The value of this flag determines whether the children of entity reference
  nodes are visible to the iterator. If false, they
  
  <!--JKESS 20000228: "will be skipped over" should be "rejected"-->
  and their <termref def="dt-descendant">descendants</termref> 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.
  
  <!--end JKESS 20000228--></p> 
  <p></p> 
  <p> To produce a view of the document that has entity references 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.</p> 
  </descr> 
  </attribute> 
  <method name="nextNode" id="Traversal-NodeIterator-nextNode"> 
  <descr> 
  <p>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.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The next <code>Node</code> in the set being iterated over, or
  <code>null</code> if there are no more members in that set.</p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if this method is called after the
  <code>detach</code> method was invoked.</p> 
  </descr> 
  </exception>
  
  
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  <method name="previousNode" id="Traversal-NodeIterator-previousNode"> 
  <descr> 
  <p>Returns the previous node in the set and moves the position of the
  <code>NodeIterator</code> backwards in the set.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The previous <code>Node</code> in the set being iterated over, or
  <code>null</code> if there are no more members in that set. </p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>INVALID_STATE_ERR: Raised if this method is called after the
  <code>detach</code> method was invoked.</p> 
  </descr> 
  </exception>
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  <method name="detach" id="Traversal-NodeIterator-detach"> 
  <descr> 
  <p>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.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="void"> 
  <descr> 
  <p></p> 
  </descr> 
  </returns> 
  <raises>
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  </interface> 
  <interface name="NodeFilter" id="Traversal-NodeFilter"
   since="DOM Level 2" role="special"> 
  <descr> 
  <p>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> 
  <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> 
  <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> 
  </descr> 
  <group name="Constants returned by acceptNode"
   id="Traversal-NodeFilter-acceptNode-constants"> 
  <descr> 
  <p>The following constants are returned by the acceptNode() method:</p> 
  </descr> 
  <constant name="FILTER_ACCEPT" type="short" value="1"> 
  <descr> 
  <p>Accept the node. Navigation methods defined for <code>NodeIterator</code> or
  <code>TreeWalker</code> will return this node.</p> 
  </descr> 
  </constant> 
  <constant name="FILTER_REJECT" type="short" value="2"> 
  <descr> 
  <p>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>.</p> 
  </descr> 
  </constant> 
  <constant name="FILTER_SKIP" type="short" value="3"> 
  <descr> 
  <p>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. </p> 
  </descr> 
  </constant> 
  </group> 
  <group id="Traversal-NodeFilter-whatToShow-constants"
   name="Constants for whatToShow"> 
  <descr> 
  <p>These are the available values for the <code>whatToShow</code> parameter
  used in <code>TreeWalkers</code> and <code>NodeIterators</code>. They are the
  same as the set of possible types for <code>Node</code>, and their values are
  derived by using a bit position corresponding to the value of
  <code>nodeType</code> for the equivalent node type.
  
  <!-- JKESS 20000217: Added behavioral clarifications -->
  If a bit in <code>whatToShow</code> is set false, that will be taken as a
  request to skip over this type of node; the behavior in that case is similar to
  that of <code>FILTER_SKIP</code>. </p> 
  <p> Note that if node types greater than 32 are ever introduced, they may not
  be individually testable via <code>whatToShow</code>. If that need should
  arise, it can be handled by selecting <code>SHOW_ALL</code> together with an
  appropriate <code>NodeFilter</code>.</p> 
  
  <!-- End JKESS 20000217 -->
  </descr> 
  
  <!-- JKESS 20000217: Corrected from erroneous value 0x0000FFFF. Approved in 0216 telecon. -->
  <constant name="SHOW_ALL" type="unsigned long" value="0xFFFFFFFF"> 
  
  <!-- End JKESS 20000217 -->
  <descr> 
  <p>Show all <code>Nodes</code>.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_ELEMENT" type="unsigned long" value="0x00000001"> 
  <descr> 
  <p>Show <code>Element</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_ATTRIBUTE" type="unsigned long" value="0x00000002"> 
  <descr> 
  <p>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.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_TEXT" type="unsigned long" value="0x00000004"> 
  <descr> 
  <p>Show <code>Text</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_CDATA_SECTION" type="unsigned long" value="0x00000008"> 
  <descr> 
  <p>Show <code>CDATASection</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_ENTITY_REFERENCE" type="unsigned long" value="0x00000010">
  
  <descr> 
  <p>Show <code>EntityReference</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_ENTITY" type="unsigned long" value="0x00000020"> 
  <descr> 
  <p>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.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_PROCESSING_INSTRUCTION" type="unsigned long"
   value="0x00000040"> 
  <descr> 
  <p>Show <code>ProcessingInstruction</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_COMMENT" type="unsigned long" value="0x00000080"> 
  <descr> 
  <p>Show <code>Comment</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_DOCUMENT" type="unsigned long" value="0x00000100"> 
  <descr> 
  <p>Show <code>Document</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_DOCUMENT_TYPE" type="unsigned long" value="0x00000200"> 
  <descr> 
  <p>Show <code>DocumentType</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_DOCUMENT_FRAGMENT" type="unsigned long"
   value="0x00000400"> 
  <descr> 
  <p>Show <code>DocumentFragment</code> nodes.</p> 
  </descr> 
  </constant> 
  <constant name="SHOW_NOTATION" type="unsigned long" value="0x00000800"> 
  <descr> 
  <p>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.</p> 
  </descr> 
  </constant> 
  </group> 
  <method name="acceptNode" id="Traversal-NodeFilter-acceptNode"> 
  <descr> 
  <p>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.)</p> 
  </descr> 
  <parameters> 
  <param name="n" type="Node" attr="in"> 
  <descr> 
  <p>The node to check to see if it passes the filter or not.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="short"> 
  <descr> 
  <p>a constant to determine whether the node is accepted, rejected, or skipped,
  as defined 
  <loc href="#Traversal-NodeFilter-acceptNode-constants">above</loc>.</p> 
  </descr> 
  </returns> 
  <raises>
  
  	    <!-- No exceptions -->
  </raises> 
  </method> 
  </interface> 
  <interface name="TreeWalker" id="Traversal-TreeWalker" since="DOM Level 2"> 
  <descr> 
  <p><code>TreeWalker</code> objects are used to navigate a document tree or
  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> 
  <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 <termref def="dt-sibling">siblings</termref> 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 <termref def="dt-sibling">siblings</termref> and appear as direct children of the
  root node, no matter how deeply nested the structure of the original
  document.</p> 
  </descr>
  <!-- JKESS: 200000217: New attribute. Approved in 2/16 telecon  -->
  <attribute id="Traversal-TreeWalker-root" name="root" type="Node"
   readonly="yes"> 
  <descr> 
  <p>The <code>root</code> node of the <code>TreeWalker</code>, as specified when
  it was created.</p> 
  </descr> 
  </attribute>
  <!-- End JKESS: 200000217:-->
  <!-- JKESS: 2/2/2000: whatToShow changed from long to unsigned long -->
  <attribute id="Traversal-TreeWalker-whatToShow" name="whatToShow"
   type="unsigned long" readonly="yes"> 
  <descr> 
  <p>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.
  <!--JKESS 20000228: Document interaction -->
  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.
  <!--End JKESS 20000228--></p> 
  </descr> 
  </attribute> 
  <attribute id="Traversal-TreeWalker-filter" name="filter" type="NodeFilter"
   readonly="yes"> 
  <descr> 
  <p>The filter used to screen nodes.</p> 
  </descr> 
  </attribute> 
  <attribute id="Traversal-TreeWalker-expandEntityReferences"
   name="expandEntityReferences" type="boolean" readonly="yes"> 
  <descr> 
  <p>The value of this flag determines whether the children of entity reference
  nodes are visible to the <code>TreeWalker</code>. If false, they 
  <!--JKESS 20000228: "will be skipped over" should be "rejected"-->
  and their <termref def="dt-descendant">descendants</termref> will be rejected. Note that this rejection takes
  precedence over <code>whatToShow</code> and the filter, if any.
  <!--end JKESS 20000228--></p> 
  <p> To produce a view of the document that has entity references 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.</p> 
  </descr> 
  </attribute> 
  <attribute id="Traversal-TreeWalker-currentNode" name="currentNode" type="Node"
   readonly="no"> 
  <descr> 
  <p>The node at which the <code>TreeWalker</code> is currently positioned.</p> 
  <p>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. </p> 
  </descr> 
  <setraises> 
  <exception name="DOMException"> 
  <descr> 
  <p>NOT_SUPPORTED_ERR: Raised if an attempt is made to set
  <code>currentNode</code> to <code>null</code>.</p> 
  </descr> 
  </exception> 
  </setraises> 
  </attribute> 
  <method name="parentNode" id="Traversal-TreeWalker-parentNode"> 
  <descr> 
  <p>Moves to and returns the closest visible <termref def="dt-ancestor">ancestor</termref> 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 <termref def="dt-ancestor">ancestor</termref> node, this method retains the current position and returns
  <code>null</code>.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The new <termref def="dt-parent">parent</termref> node, or <code>null</code> if the current node has no parent
  
  <!-- JKESS20000217: Added phrase -->
  in the <code>TreeWalker</code>'s logical view.
  
  <!-- End JKESS20000217 -->
  </p> 
  </descr> 
  </returns> 
  <raises> 
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  <method name="firstChild" id="Traversal-TreeWalker-firstChild"> 
  <descr> 
  <p>Moves the <code>TreeWalker</code> to the first visible <termref
  def="dt-child">child</termref> 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 node.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The new node, or <code>null</code> if the current node has no visible
  children
  
  <!-- JKESS20000217: Added phrase -->
  in the <code>TreeWalker</code>'s logical view.
  
  <!-- End JKESS20000217 -->
  </p> 
  </descr> 
  </returns> 
  <raises>
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  <method name="lastChild" id="Traversal-TreeWalker-lastChild"> 
  <descr> 
  <p>Moves the <code>TreeWalker</code> to the last visible <termref
  def="dt-child">child</termref> 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 node.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The new node, or <code>null</code> if the current node has no children 
  
  <!-- JKESS20000217: Added phrase -->
  in the <code>TreeWalker</code>'s logical view.
  
  <!-- End JKESS20000217 -->
  </p> 
  </descr> 
  </returns> 
  <raises>
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  <method name="previousSibling" id="Traversal-TreeWalker-previousSibling"> 
  <descr> 
  <p>Moves the <code>TreeWalker</code> to the previous <termref def="dt-sibling">sibling</termref> of the current
  node, and returns the new node. If the current node has no visible previous
  <termref def="dt-sibling">sibling</termref>, returns <code>null</code>, and retains the current node.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The new node, or <code>null</code> if the current node has no previous
  <termref def="dt-sibling">sibling</termref>.
  
  <!-- JKESS20000217: Added phrase -->
  in the <code>TreeWalker</code>'s logical view.
  
  <!-- End JKESS20000217 -->
  </p> 
  </descr> 
  </returns> 
  <raises> 
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  <method name="nextSibling" id="Traversal-TreeWalker-nextSibling"> 
  <descr> 
  <p>Moves the <code>TreeWalker</code> to the next <termref def="dt-sibling">sibling</termref> of the current node,
  and returns the new node. If the current node has no visible next <termref def="dt-sibling">sibling</termref>,
  returns <code>null</code>, and retains the current node.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The new node, or <code>null</code> if the current node has no next <termref def="dt-sibling">sibling</termref>.
  
  <!-- JKESS20000217: Added phrase -->
  in the <code>TreeWalker</code>'s logical view.
  
  <!-- End JKESS20000217 -->
  </p> 
  </descr> 
  </returns> 
  <raises> 
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  <method name="previousNode" id="Traversal-TreeWalker-previousNode"> 
  <descr> 
  <p>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, 
  
  <!-- JKESS: Since this may involve an upward search...  -->
  or if the search for <code>previousNode</code> attempts to step upward from the
  <code>TreeWalker</code>'s <code>root</code> node,
  
  <!-- END JKESS -->
  returns <code>null</code>, and retains the current node. </p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The new node, or <code>null</code> if the current node has no previous node
  
  <!-- JKESS20000217: Added phrase -->
  in the <code>TreeWalker</code>'s logical view.
  
  <!-- End JKESS20000217 -->
  </p> 
  </descr> 
  </returns> 
  <raises>
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  <method name="nextNode" id="Traversal-TreeWalker-nextNode"> 
  <descr> 
  <p>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
  <code>TreeWalker</code>'s <code>root</code> node, returns <code>null</code>,
  and retains the current node.</p> 
  </descr> 
  <parameters> 
  </parameters> 
  <returns type="Node"> 
  <descr> 
  <p>The new node, or <code>null</code> if the current node has no next node 
  
  <!-- JKESS20000217: Added phrase -->
  in the <code>TreeWalker</code>'s logical view.
  
  <!-- End JKESS20000217 -->
  </p> 
  </descr> 
  </returns> 
  <raises>
  
  <!--
  
  	    <exception name="Exceptions from user code">
  
  	      <descr><p>Any exceptions raised by a user-written Filter will
  
  		  propagate through.</p></descr>
  
  	    </exception>
  
  -->
  </raises> 
  </method> 
  </interface> 
  <interface name="DocumentTraversal" id="Traversal-Document"
  since="DOM Level 2"> 
  <descr> 
  <p><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). In DOMs which support
  the Traversal feature, <code>DocumentTraversal</code> will be implemented by
  the same objects that implement the Document interface.</p> 
  </descr> 
  <method name="createNodeIterator"
  id="Traversal-NodeIteratorFactory-createNodeIterator"> 
  <descr> 
  <p>Create a new <code>NodeIterator</code> over the subtree rooted at the
  specified node.</p> 
  </descr> 
  <parameters> 
  <param name="root" type="Node" attr="in"> 
  <descr> 
  <p>The 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>.</p> 
  </descr> 
  </param> 
  
  <!-- JKESS: 2/2/2000: whatToShow changed from long to unsigned long -->
  <param name="whatToShow" type="unsigned long" attr="in"> 
  <descr> 
  <p>This flag specifies which node types may appear in the logical view of the
  tree presented by the iterator. See the description of <code>NodeFilter</code>
  for the set of possible <code>SHOW_</code> values.</p> 
  <p>These flags can be combined using <code>OR</code>.</p> 
  </descr> 
  </param> 
  <param name="filter" type="NodeFilter" attr="in"> 
  <descr> 
  <p>The <code>NodeFilter</code> to be used with this <code>TreeWalker</code>, or
  <code>null</code> to indicate no filter.</p> 
  </descr> 
  </param> 
  <param name="entityReferenceExpansion" type="boolean" attr="in"> 
  <descr> 
  <p>The value of this flag determines whether entity reference nodes are
  expanded.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="NodeIterator"> 
  <descr> 
  <p>The newly created <code>NodeIterator</code>.</p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p>NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is
  <code>null</code>.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  <method name="createTreeWalker" id="NodeIteratorFactory-createTreeWalker"> 
  <descr> 
  <p>Create a new <code>TreeWalker</code> over the subtree rooted at the
  specified node.</p> 
  </descr> 
  <parameters> 
  <param name="root" type="Node" attr="in"> 
  <descr> 
  <p>The 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>.</p> 
  </descr> 
  </param> 
  
  <!-- JKESS: 2/2/2000: whatToShow changed from long to unsigned long -->
  <param name="whatToShow" type="unsigned long" attr="in"> 
  <descr> 
  <p>This 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.</p> 
  <p>These flags can be combined using <code>OR</code>.</p> 
  </descr> 
  </param> 
  <param name="filter" type="NodeFilter" attr="in"> 
  <descr> 
  <p>The <code>NodeFilter</code> to be used with this <code>TreeWalker</code>, or
  <code>null</code> to indicate no filter.</p> 
  </descr> 
  </param> 
  <param name="entityReferenceExpansion" type="boolean" attr="in"> 
  <descr> 
  <p>If this flag is false, the contents of <code>EntityReference</code> nodes
  are not presented in the logical view.</p> 
  </descr> 
  </param> 
  </parameters> 
  <returns type="TreeWalker"> 
  <descr> 
  <p>The newly created <code>TreeWalker</code>.</p> 
  </descr> 
  </returns> 
  <raises> 
  <exception name="DOMException"> 
  <descr> 
  <p> NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is
  <code>null</code>.</p> 
  </descr> 
  </exception> 
  </raises> 
  </method> 
  </interface> 
  </definitions> 
  </div2> 
  </div1> 
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/views/dom-spec.xml
  
  Index: dom-spec.xml
  ===================================================================
  <?xml version="1.0" ?>
  <!-- $Id: dom-spec.xml,v 1.1 2001/06/01 11:15:36 dims Exp $ -->
  <!DOCTYPE spec PUBLIC
        "-//W3C//DTD Specification V2.1-Based DOM//EN"
        "../../../pubtext/xmlspec-v21-dom.dtd" [
  
  <!ENTITY prefix "Views">
  <!ENTITY % version SYSTEM "../version.xml">
  %version;
  <!ENTITY % links SYSTEM "../link-entities.xml">
  %links;
  <!ENTITY % parts SYSTEM "../part-entities.xml">
  %parts;
  <!ENTITY options SYSTEM "../options.xml">
  ]>
  
  <spec>
    <!--
    *************************************************************************
    * FRONT MATTER                                                          *
    *************************************************************************
    -->
  &options;
  
  <header> 
  <title>Document Object Model (DOM) Level 2 Views Specification</title>
  <version>1.0</version> <w3c-designation>&doc.prefix;-&doc.date;
  </w3c-designation> <w3c-doctype>W3C Recommendation</w3c-doctype> <pubdate> 
  <day>&date.day;</day> <month>&date.month;</month> <year>&date.year;</year> 
  </pubdate> 
  <publoc> <loc href="&this.url;">&this.url;</loc>
  &ps.loc;
  &pdf.loc;
  &txt.loc;
  &zip.loc;
  </publoc>
  <latestloc> <loc href="&latest.url;">&latest.url;</loc> </latestloc> 
  <prevlocs>
  &prev.locs;
  </prevlocs> 
  <authlist> 
  <author role="editor"> <name>Arnaud Le Hors</name> 
  <affiliation>W3C team contact until October 1999, then IBM</affiliation>
  </author> 
  <author role="editor"> <name>Laurence Cable</name> 
  <affiliation>Sun Microsystems</affiliation> </author>
  </authlist>
      <!--
      ******************************************************
      * DOCUMENT ABSTRACT                                  *
      ******************************************************
      -->
  <abstract id="id-abstract"> 
  
  <p>This specification defines the Document Object Model Level 2 Views, a platform-
  and language-neutral interface that allows programs and scripts to dynamically
  access and update the content of a representation of a document. The Document
  Object Model Level 2 Views builds on the Document Object Model Level 2 Core
  <bibref ref='DOMCore'/>.</p> 
  
  </abstract>
  
  &status;
  
  <sourcedesc>
  <p>Created in electronic form.</p>
  </sourcedesc>
  <langusage>
  <language id="en">English</language>
  </langusage>
  <revisiondesc>
  <p>$Revision: 1.1 $</p>
  </revisiondesc>
  <?GENERATE-TOC?>
  </header>
  <front>
    &toc;
    &copyright;
  </front> 
   
  <body>
    &views;
  </body>
    <!--
    *************************************************************************
    * BACK MATTER                                                           *
    *************************************************************************
    -->
  <back> 
  
  <div1 role="idl" id="idl">
    <head>IDL Definitions</head>
  
    <p>This appendix contains the complete OMG IDL <bibref ref='OMGIDL'/> for
    the Level 2 Document Object Model Views definitions.</p>
  
    <p>The IDL files are also available as: <loc
        href="idl.zip">&this.url;/idl.zip</loc></p>
  
      <!--
      ******************************************************
      | Views OMG IDL DEFINITIONS                           |
      ******************************************************
      -->
        <?GENERATE-IDL Views views dom.w3c.org dom?>
  </div1>
  
  <div1 role="java-binding" id="java-binding">
    <head>Java Language Binding</head>
  
    <p>This appendix contains the complete Java Language <bibref ref='Java'/>
    binding for the Level 2 Document Object Model Views.</p>
  
    <p>The Java files are also available as <loc
        href="java-binding.zip">&this.url;/java-binding.zip</loc></p>
  
      <!--
      ******************************************************
      | Views JAVA BINDINGS                                 |
      ******************************************************
      -->
        <?GENERATE-JAVA Views org.w3c.dom views?>
  </div1>
  <div1 role="ecma-binding" id="ecma-binding">
    <head>ECMAScript Language Binding</head>
  
    <p>This appendix contains the complete ECMAScript <bibref
    ref='ECMAScript'/> binding for the Level 2 Document Object Model Views
    definitions.</p>
  
        <note>
  	<p>
  	  Exceptions handling is only supported by ECMAScript implementation
  	  conformant with the Standard ECMA-262 3rd. Edition (<bibref
  	  ref="ECMAScript"/>).
  	</p>
        </note>
  
      <!--
      ******************************************************
      | Views ECMASCRIPT BINDINGS                         |
      ******************************************************
      -->
    <?GENERATE-ECMA Views?>
  </div1>
    &contributors; 
    &references;
    &index; 
  </back>
  </spec> 
  
  
  
  1.1                  xml-commons/java/external/xdocs/dom/xml/views/views.xml
  
  Index: views.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- $Id: views.xml,v 1.1 2001/06/01 11:15:37 dims Exp $ -->
  <div1 id="Views">
    <head>Document Object Model Views</head>
    <orglist role="editors">
      <member>
        <name>Arnaud Le Hors</name>
        <affiliation>IBM</affiliation>
      </member>
      <member>
        <name>Laurence Cable</name>
        <affiliation>Sun Microsystems</affiliation>
      </member>
    </orglist>
    <?GENERATE-MINI-TOC?>
  
    <div2 id='Views-intro'>
      <head>Introduction</head>
  
      <p>A document may have one or more "views" associated with it, e.g., a
        computed view on a document after applying a CSS stylesheet, or multiple
        presentations (e.g., HTML Frame) of the same document in a client. That is, 
        a view is some alternate representation of, or a presentation of, and
        associated with, a source document.</p>
      <p>A view may be static, reflecting the state of the document when
        the view was created, or dynamic, reflecting changes in the target
        document as they occur, subsequent to the view being created. This
        Level of the DOM specification makes no statement about these behaviors.</p>
  
      <p>This section defines an <code>AbstractView</code> interface which
        provides a base interface from which all such views shall derive. It
        defines an attribute which references the target document of the 
        <code>AbstractView</code>. The only semantics of the <code>AbstractView</code>
        defined here create an association between a view and its target document.</p>
  
      <p>There are no subinterfaces of <code>AbstractView</code> defined in the DOM 
        Level 2.</p>
  
      <p>However, <code>AbstractView</code> is defined in and used in this Level 
        in two places:</p>
        <ulist>
         <item><p>A Document may implement a <code>DocumentView</code> that has a default view
          attribute associated with it. This default view is typically dependent on
          the implementation (e.g., the browser frame rendering the document). The 
          default view can be used in order to identify and/or associate a view with 
          its target document (by testing object equality on the
          <code>AbstractView</code> or obtaining the <code>DocumentView</code> 
          attribute).</p></item>
        
         <item><p>A <code>UIEvent</code> typically occurs upon a view of a Document 
          (e.g., a mouse click on a browser frame rendering a particular Document 
          instance). A <code>UIEvent</code> has an <code>AbstractView</code>
          associated with it which identifies both the particular
          (implementation-dependent) view in which the event occurs, and 
          the target document the <code>UIEvent</code> is related to.</p></item></ulist>
  
      <p>
        The interfaces found within this section are not mandatory. A DOM
        application may use the <code>hasFeature(feature, version)</code> method
        of the <code>DOMImplementation</code> interface with parameter values
        "Views" and "2.0" (respectively) to determine whether or not this module
        is supported by the implementation. In order to fully support this
        module, an implementation must also support the "Core" feature defined
        defined in the Document Object Model Level 2 Core specification <bibref
        ref="DOMCore"/>. Please refer to additional information about <xspecref
        href='&core.latest.url;/introduction.html#ID-Conformance'>conformance in
        the DOM Level 2 Core specification</xspecref>.
      </p>
  
    </div2>
  
    <div2 id='Views-Interfaces'>
      <head>Interfaces</head>
  
      <definitions>
        <interface name="AbstractView" id="Views-AbstractView"
  	since="DOM Level 2">
  	<descr>
  	  <p>A base interface that all views shall derive from.</p>
  	</descr>
  	<attribute id="Views-AbstractView-document" type="DocumentView" name="document" readonly="yes">
  	  <descr>
  	    <p>The source <code>DocumentView</code> of which this is an
  	      <code>AbstractView</code>.</p>
  	  </descr>
  	</attribute>
        </interface>
  
        <interface name="DocumentView" id="Views-DocumentView"
  	since="DOM Level 2">
  	<descr>
  	  <p>The <code>DocumentView</code> interface is implemented by
  	    <code>Document</code> objects in DOM implementations supporting DOM
  	    Views. It provides an attribute to retrieve the default view of a
  	    document.</p>
  	</descr>
  	<attribute id="Views-DocumentView-defaultView" type="AbstractView" name="defaultView" readonly="yes">
  	  <descr>
  	    <p>The default <code>AbstractView</code> for this
  	      <code>Document</code>, or <code>null</code> if none
  	      available.</p>
  	  </descr>
  	</attribute>
        </interface>
      </definitions>
    </div2>
  </div1>