<?xml version="1.0" encoding="us-ascii"?>
<!-- $Id: xml-source.xml,v 1.1 2004/02/23 21:49:04 plehegar Exp $ --><!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.2-Based DOM//EN" "http://www.w3.org/2002/08/xmlspec-v22-dom.dtd">
<spec w3c-doctype="other" other-doctype="wg-note" role="public">
  <!--
  *************************************************************************
  * FRONT MATTER                                                          *
  *************************************************************************
  -->
<!-- 
  ****************************************************** 
  | filenames to be used for each section              |
  ******************************************************
-->
<?command-options --map Copyright-Notice copyright-notice
--map Introduction     introduction
--map TOC expanded-toc
--map Core core
--map Events events
--map idl idl-definitions
--map ecma-binding ecma-script-binding
--map java-binding java-binding
--map Index def-index
--map Objects object-index
--map References references
--map Errors errors
--map Level-3-AS abstract-schemas
--map Load-Save load-save
--map XPath xpath
--map KeySet keyset
?>

<?command-options --map -IndexFile-      def-index
--map -OjbectIndexFile-      object-index
--strip-references
--strip-glossary
?>

<?command-options --map-type ECMAScript void void
--map-type ECMAScript "unsigned short" Number
--map-type ECMAScript "unsigned int" Number
--map-type ECMAScript "unsigned long" Number
--map-type ECMAScript short Number
--map-type ECMAScript long Number
--map-type ECMAScript float Number
--map-type ECMAScript double Number
--map-type ECMAScript boolean Boolean
--map-type ECMAScript Object Object
--map-type ECMAScript DOMString String
--map-type ECMAScript DOMTimeStamp Date
--map-type ECMAScript DOMObject Object
--map-type ECMAScript DOMUserData "any type"
--map-type ECMAScript LSInputStream Object
--map-type ECMAScript LSOutputStream Object
--map-type ECMAScript LSReader "this is an error and shouldn't be used."
--map-type ECMAScript LSWriter "this is an error and shouldn't be used."
--map-type ECMAScript DOMSystemException Object

--map-type Java void void
--map-type Java Object Object
--map-type Java DOMString String
--map-type Java "unsigned short" short
--map-type Java "unsigned int" int
--map-type Java "unsigned long" int
--map-type Java long int
--map-type Java short short
--map-type Java float float
--map-type Java double double
--map-type Java boolean boolean
--map-type Java DOMTimeStamp long
--map-type Java DOMObject Object
--map-type Java DOMUserData Object
--map-type Java LSInputStream java.io.InputStream
--map-type Java LSOutputStream java.io.OutputStream
--map-type Java LSReader java.io.Reader
--map-type Java LSWriter java.io.Writer
--map-type Java DOMSystemException Exception
?>

<header> 
<title>Document Object Model (DOM) Level 3 XPath Specification</title>
<version>1.0</version> <w3c-designation>NOTE-DOM-Level-3-XPath-20040226
</w3c-designation> <w3c-doctype>W3C Working Group Note</w3c-doctype> <pubdate> 
<day>26</day> <month>February</month> <year>2004</year> 
</pubdate> 
<publoc> <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226</loc>
</publoc>
<altlocs>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" role="html" href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/xml-source.xml" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">XML file</loc>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" role="plain" href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/DOM3-XPath.txt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">plain text</loc>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" role="postscript" href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/DOM3-XPath.ps" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">PostScript file</loc>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" role="pdf" href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/DOM3-XPath.pdf" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">PDF file</loc>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" role="html" href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/DOM3-XPath.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">single HTML file</loc>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" role="zip" href="http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/DOM3-XPath.zip" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">ZIP file</loc>
    </altlocs>
<latestloc> <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-XPath" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/DOM-Level-3-XPath</loc> </latestloc> 
<prevlocs>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2003/CR-DOM-Level-3-XPath-20030331" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2003/CR-DOM-Level-3-XPath-20030331</loc>
</prevlocs> 
<authlist> 
    <author role="editor">
      <name>Ray Whitmer</name>
      <affiliation>Netscape/AOL, then Invited Expert</affiliation>
    </author>
</authlist>
    <!--
    ******************************************************
    * DOCUMENT ABSTRACT                                  *
    ******************************************************
    -->
<abstract id="id-abstract"> 

<p>This specification defines the Document Object Model Level 3 XPath. It
provides simple functionalities to access a DOM tree using <bibref ref="XPath10"/>.</p>

</abstract>

<status id="Level-3-status"> 

      <p>
	<emph>This section describes the status of this document at the
	time of its publication. Other documents may supersede this
	document. A list of current W3C publications and the latest
	revision of this technical report can be found in the <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">W3C technical reports index</loc>
	at http://www.w3.org/TR/.</emph>
      </p>

      <p>
	This is a <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/Consortium/Process-20010719/tr.html#RecsCR" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Working
	Group Note</loc> of "DOM Level 3 XPath" and is based on the <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/2002/03/DOM-Level-3-XPath-issues" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">feedback
	received</loc> during the Last Call period. The W3C DOM Working
	Group participants do not expect to provide two interoperable
	implementations of this module, <emph>using the same
	binding</emph>. Implementation feedbacks are however welcome and
	have to be sent to the public mailing list <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="mailto:www-dom@w3.org" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">www-dom@w3.org</loc> (public <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://lists.w3.org/Archives/Public/www-dom/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">archive</loc>). Other W3C Working Groups
	may continue the work and provide implementations of this
	document.
      </p>
      <p>
	Individuals or organizations are also invited to send a message
	to the public mailing list if they intend to produce an
	implementation of this module.
      </p>
      <p>
        Publication as a Working Group Note does not imply endorsement
        by the W3C Membership. This is a draft document and may be
        updated, replaced or obsoleted by other documents at any time.
      </p>
      
      <p>
	This document has been produced as part of the <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/DOM/Activity.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">W3C DOM
	Activity</loc>. The authors of this document are the DOM Working
	Group members.
      </p>
      <p>
	An <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/2003/02/19-dom-xpath-implementation.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">implementation
	report</loc> is also available.
      </p>
      <p>
	Patent disclosures relevant to this specification may be found
	on the Working Group's <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/2002/08/02-DOM-Disclosures.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">patent
	disclosure page</loc>.
      </p>
    </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>
  
<!-- $Id: xml-source.xml,v 1.1 2004/02/23 21:49:04 plehegar Exp $ -->
<div1 id="TOC">
  <head>Expanded Table of Contents</head>
  <?GENERATE-EXPANDED-TOC?>	
</div1>

  
<!-- $Id: xml-source.xml,v 1.1 2004/02/23 21:49:04 plehegar Exp $ -->
<!--
 *************************************************************************
 * BEGINNING OF COPYRIGHT NOTICE                                         *
 *************************************************************************
-->
<div1 id="Copyright-Notice">
  <head>W3C Copyright Notices and Licenses</head>

  <p role="important">
    Copyright &#169; 2004 <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">World
    Wide Web Consortium</loc>, (<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.csail.mit.edu/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Massachusetts Institute of
    Technology</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ercim.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">European
    Research Consortium for Informatics and Mathematics</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.keio.ac.jp/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">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<sup>&#174;</sup> Document Copyright Notice and License</head>
    <note>
      <p>
	This section is a copy of the W3C<sup>&#174;</sup> Document
	Notice and License and could be found at <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231</loc>.
      </p>
    </note>
    <p role="important">
      Copyright &#169; 2004 <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">World Wide Web Consortium</loc>, (<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.lcs.mit.edu/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Massachusetts Institute of
      Technology</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ercim.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">European
      Research Consortium for Informatics and Mathematics</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.keio.ac.jp/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Keio University</loc>). All Rights
      Reserved.
    </p>
    <p role="important">      
      http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231
    </p>
    <p>
      Public documents on the W3C site are provided by the copyright
      holders under the following license. 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 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 (hypertext is preferred, but a
	  textual representation is permitted) of the form:
	  "Copyright &#169; [$date-of-document] <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">World Wide Web Consortium</loc>,
	  (<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.lcs.mit.edu/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Massachusetts Institute
	  of Technology</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ercim.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">European Research Consortium for
	  Informatics and Mathematics</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.keio.ac.jp/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Keio University</loc>). All
	  Rights Reserved.  <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231</loc>"
	</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 xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/Consortium/Legal/IPR-FAQ" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">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 "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>
  </div2>
  <div2 id="Copyright-notice-software">
    <head>W3C<sup>&#174;</sup> Software Copyright Notice and License</head>
    <note>
      <p>
	This section is a copy of the W3C<sup>&#174;</sup> Software
	Copyright Notice and License and could be found at <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231</loc>
      </p>
    </note>
    <p role="important">
      Copyright &#169; 2004 <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">World Wide Web Consortium</loc>, (<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.lcs.mit.edu/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Massachusetts Institute of
      Technology</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ercim.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">European
      Research Consortium for Informatics and Mathematics</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.keio.ac.jp/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Keio University</loc>). All Rights
      Reserved.
    </p>
    <p role="important">      
      http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
    </p>
    <p>
      This work (and included software, documentation such as READMEs,
      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 copy, modify, and distribute 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:
    </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, notices,
	  or terms and conditions. If none exist, the <specref ref="Copyright-short-notice"/> should be included (hypertext
	  is preferred, text is permitted) within the body of any
	  redistributed or derivative code.
	</p>
      </item>
      <item>
	<p>
	  Notice of any changes or modifications to the 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>
  <div2 id="Copyright-short-notice">
    <head>W3C<sup>&#174;</sup> Short Software Notice</head>

    <note>
      <p>
	This section is a copy of the W3C<sup>&#174;</sup> Short Software
	Notice and could be found at <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/Consortium/Legal/2002/copyright-software-short-notice-20021231" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/Consortium/Legal/2002/copyright-software-short-notice-20021231</loc>
      </p>
    </note>
    <p role="important">
      Copyright &#169; 2004 <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">World
      Wide Web Consortium</loc>, (<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.lcs.mit.edu/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Massachusetts Institute of
      Technology</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ercim.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">European
      Research Consortium for Informatics and Mathematics</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.keio.ac.jp/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Keio University</loc>). All Rights
      Reserved.
    </p>
    <p>
      Copyright &#169; [$date-of-software] <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">World Wide Web Consortium</loc>, (<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.lcs.mit.edu/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Massachusetts Institute of
      Technology</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ercim.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">European
      Research Consortium for Informatics and Mathematics</loc>, <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.keio.ac.jp/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Keio University</loc>). All Rights
      Reserved. This work is distributed under the W3C<sup>&#174;</sup>
      Software License [1] 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.
    </p>
    <p>
      [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
    </p>
  </div2>
</div1>
<!--
 *************************************************************************
 * END OF COPYRIGHT NOTICE                                               *
 *************************************************************************
-->

  <!-- &introduction; -->
</front> 
 
<body>
 
<!-- $Id: xml-source.xml,v 1.1 2004/02/23 21:49:04 plehegar Exp $ -->
<div1 id="XPath">
  <head>Document Object Model XPath</head>
  <orglist role="editors">
    <member>
      <name>Ray Whitmer</name>
      <affiliation>Netscape/AOL</affiliation>
    </member>
  </orglist>
  <?GENERATE-MINI-TOC?>
  <div2 id="Introduction">
    <head>Introduction</head>
    <p>
      XPath 1.0 <bibref ref="XPath10"/> is becoming an important part of a
      variety of many specifications including XForms, XPointer, XSL, XML
      Query, and so on.  It is also a clear advantage for user applications
      which use DOM to be able to use XPath expressions to locate nodes
      automatically and declaratively. </p>
    <p>
      This specification was created to map between the Document Object
      Model's representation of the W3C Information Set and XPath's
      <termref def="dt-model">model</termref> to permit XPath functions to be 
      supplied and results returned within the framework of DOM 
      <termref def="dt-API">API</termref>s in a standard, interoperable way, 
      allowing also for <termref def="dt-live">liveness</termref> of data,
      which is not addressed by the XPath specification but is present in
      results coming from the DOM hierarchy.
    </p>
  </div2>
  <div2 id="Mapping">
    <head>Mapping DOM to XPath</head>

    <p>This section presents a mapping between the Document Object Model
      <bibref ref="DOM2Core"/> and the XPath 1.0 <bibref ref="XPath10"/>
      model for the purposes of implementing the APIs.</p>

    <div3 id="ElementNodes">
      <head>Element Nodes</head>
      <p>The DOM model uses <code>Element</code> nodes to represent <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.element" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Element Information Items</xspecref>.
        These nodes of a document are directly used to represent the elements of 
        an XPath result.</p>
    </div3>
    <div3 id="AttributeNodes">
      <head>Attribute Nodes</head>
      <p>The DOM model uses <code>Attr</code> nodes to represent <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.attribute" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Attribute Information 
        Items</xspecref> of attribute and namespace attribute
        properties of <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.element" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Element
        Information Item</xspecref>.  These nodes have no parent, but
        have an <code>ownerElement</code> which can be used as XPath
        defines an attribute's parent.</p>
      <p>XPath 1.0 does not make available the namespace attributes of an
        element.  The DOM implementation of XPath 1.0 using these defined 
        interfaces never directly returns <code>Attr</code> nodes of namespace
        attributes, but returned <code>Element</code> nodes still contain them.</p>
    </div3>
    <div3 id="NamespaceNodes">
      <head>Namespace Nodes</head>
      <p>The XPath model expects namespace nodes for each in-scope namespace to
      be attached to each <termref def="dt-element">element</termref>. DOM only
      maintains the namespace attributes instead of replicating in-scope
      namespaces on each <code>Element</code> where they are in-scope.  The DOM
      implementation of XPath produces a new node of type
      <code>XPATH_NAMESPACE_NODE</code>, defined in the
      <code>XPathNamespace</code> interface, to properly preserve identity and
      ordering in a way that is compatible with XPath.  This node type is only 
      visible using the XPath evaluation methods.</p>
      <p>The set of in-scope namespaces of an element is the default xml 
      namespace combined with the contributions of namespace attributes of the 
      current and all ancestor elements.  In addition to explicit namespace 
      attributes, any element has an implicit declaration of its own prefix, 
      if any, or if no prefix then of the default namespace, which is enforced 
      during namespace serialization, fixup, and lookup, which must be added to 
      the set of in-scope namespaces when generating namespace nodes for an
      element.  This causes the set of namespace nodes to be consistent with
      serialization, fixup, and lookup of namespaces in DOM Level 3.
      </p>
    </div3>
    <div3 id="TextNodes">
      <head>Text Nodes</head>

      <p>The XPath model relies on the XML Information Set <bibref ref="InfoSet"/> ands represents <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.character" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Character Information
      Items</xspecref> in a single logical text node where DOM may have
      multiple fragmented <code>Text</code> nodes due to cdata sections, entity
      references, etc. Instead of returning multiple nodes where XPath sees a
      single logical text node, only the first non-empty DOM <code>Text</code>
      or <code>CDATASection</code> node of any logical XPath text will be
      returned in the node set.  Applications using XPath in an environment
      with fragmented text nodes must manually gather the text of a single
      logical text node possibly from multiple nodes beginning with the first
      <code>Text</code> node or <code>CDATASection</code> node returned by the
      implementation.</p>

      <note>
	<p>In an attempt to better implement the XML Information Set, DOM Level
	3 Core <bibref role="informative" ref="DOMCore"/> adds the attribute
	<code>wholeText</code> on the <code>Text</code> interface for
	retrieving the whole text for <termref def="dt-logically-adjacent-text-nodes">logically-adjacent Text
	nodes</termref> and the method <code>replaceWholeText</code> for
	replacing those nodes.</p>
      </note>
    </div3>
    <div3 id="EntityReferences">
      <head>Entity Reference Nodes</head>
      <p>The DOM model may represent <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.rse" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Unexpanded Entity Reference
      Information Items</xspecref> or may provide the position and URI of 
      expanded entity hierarchies by using <code>EntityReference</code> nodes.
      XPath 1.0 does not preserve corresponding information.</p>
      <p>Where the node represents an unexpanded entity reference, it is
      skipped as dictated by the XPath specifications for all infoset items
      besides those specifically processed.</p>
      <p>Where there is a hierarchy underneath the node, these nodes are
      processed as though they were siblings of the entity reference, as
      is consistent with the rest of the DOM specification.</p>
      <p><code>EntityReference</code> nodes found within a DOM hierarchy are 
      never returned as a node of the result, but returned nodes may contain
      or be contained within an <code>EntityReference</code> node.  Text may be 
      split partially inside and partially outside of an 
      <code>EntityReference</code> node, but this is solved by handling 
      <code>Text</code> nodes as described in the previous section.</p>
    </div3>
    <div3 id="CommentNodes">
      <head>Comment Nodes</head>
      <p>The DOM model uses <code>Comment</code> nodes to represent <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.comment" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Comment Information Items</xspecref>.
      These nodes of a document are directly used to represent the comments of 
      an XPath result.</p>
    </div3>
    <div3 id="PINodes">
      <head>Processing Instruction Nodes</head>
      <p>The DOM model uses <code>ProcessingInstruction</code> nodes to 
        represent <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.pi" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Processing Instruction 
        Information Items</xspecref>.  These nodes of a document are directly used 
        to represent the processing instructions of an XPath result.</p>
    </div3>
    <div3 id="DocumentOrder">
      <head>Document order</head>
      <p>The <termref def="dt-document-order">document order</termref> of nodes
      in the DOM Core has been defined to be compatible with the <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#dt-document-order" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XPath document order</xspecref>.
      The XPath DOM extends the document order of the DOM Core to include
      the <code>XPathNamespace</code> nodes. Element nodes occur before their
      children. The attribute nodes and namespace nodes of an element occur
      before the children of the element. The namespace nodes are defined to
      occur before the attribute nodes. The relative order of namespace nodes
      is implementation-dependent. The relative order of attribute nodes is
      implementation-dependent. The <code>compareTreePosition</code> method on
      the <code>Node</code> interface defined in the DOM Core must compare the
      <code>XPathNamespace</code> nodes using this extended document order if
      the XPath DOM module is supported.</p>
    <note>
      <p>It is possible that in future versions of XPath, the order of namespace
      nodes or other aspects of document order may change incompatibly.</p>
    </note>
    </div3>
  </div2>
  <div2 id="Conformance">
    <head>Conformance</head>
    <p>This section explains conformance to DOM Level 3 XPath Module.</p>

    <p>A DOM implementation must not return <code>true</code> to
    <code>hasFeature("xpath", "3.0")</code> unless the implementation
    conforms to that module. As documented in <bibref ref="DOMCore" role="informative"/>, if a <code>null</code> or empty string is
    passed in for the second parameter, then conformance is still
    required to some version of the DOM XPath Module or
    <code>false</code> must be returned.</p> <p>A conformant
    implementation is DOM Level 3 XPath must support all the interfaces
    as specified in that specification.  In addition to implementing the
    interfaces in the DOM XPath Module, a conforming implementation must
    correctly implement each part of the XPath 1.0 specification when
    evaluating expressions including Location Paths, Expressions, the
    Core Function Library, and the mapping between DOM and the XPath 1.0
    data model described in the DOM Level 3 XPath Module.  The XPath
    <code>id()</code>function must return the corresponding element, if
    any, returned by the DOM method
    <code>Document.getElementById</code>.</p> <p>After meeting the
    requirements for conformance, a conforming implementation may
    implement additional functions and variables.  Applications which
    evaluate expressions using these extensions will not necessarily be
    portable to other implementations of the DOM Level 3 XPath
    Module.</p>
  </div2>
  <div2 id="Interfaces">
    <head>Interfaces</head>
    <p>
      An implementation is DOM Level 3 XPath conformant if it supports
      the Core module defined in <bibref ref="DOM2Core"/> and the module
      defined in this specification. An implementation conforms to a DOM
      module if it supports all the interfaces for that module and the
      associated semantics.
    </p>
    <p>
      A DOM application may use the <code>hasFeature(feature,
      version)</code> method of the <code>DOMImplementation</code>
      interface with parameter values "XPath" and "3.0" (respectively)
      to determine whether or not the XPath 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="DOM2Core"/>.
    </p>
    <p>
      A DOM implementation must not return <code>true</code> to the
      <code>hasFeature(feature, version)</code> method of the
      DOMImplementation interface for that feature unless the
      implementation conforms to that module. The version number for the
      feature used in this document is <code>"3.0"</code>.
    </p>
    <definitions>
      <exception id="XPathException" name="XPathException">
	<descr>
          <p>A new exception has been created for exceptions specific 
          to these XPath interfaces.</p>
	</descr>
	<component id="XPathException-code" name="code">
	  <typename>unsigned short</typename>
	</component>
      </exception>
      <group id="XPathExceptionCode" name="XPathExceptionCode">
        <descr>
        </descr>
	<constant id="INVALID_EXPRESSION_ERR" name="INVALID_EXPRESSION_ERR" type="unsigned short" value="51">
	  <descr>
            <p>If the expression has a syntax error or otherwise is not a legal 
            expression according to the rules of the specific 
            <code>XPathEvaluator</code> or contains specialized extension functions
            or variables not supported by this implementation.</p>
	  </descr>
        </constant>
	<constant id="TYPE_ERR" name="TYPE_ERR" type="unsigned short" value="52">
	  <descr>
	    <p>If the expression cannot be converted to return the specified type.</p>
	  </descr>	
        </constant>
      </group>
      <interface id="XPathEvaluator" name="XPathEvaluator">
	<descr>
	  <p>
	    The evaluation of XPath expressions is provided by
            <code>XPathEvaluator</code>.  In a DOM
            implementation which supports the XPath 3.0 feature, as described
            above, the <code>XPathEvaluator</code> interface will be implemented 
            on the same object which implements the <code>Document</code> 
            interface permitting it to be obtained by the usual binding-specific
            method such as casting or by using the DOM Level 3 getInterface method.  
            In this case the implementation obtained from the Document supports the 
            XPath DOM module and is compatible with the XPath 1.0 specification. </p>
          <p>Evaluation of expressions with specialized extension functions or 
            variables may not work in all implementations and is, therefore, not 
            portable.  <code>XPathEvaluator</code> implementations may be available 
            from other sources that could provide specific support for specialized 
            extension functions or variables as would be defined by other 
            specifications.
          </p>
        </descr>
	<method id="XPathEvaluator-createExpression" name="createExpression">
	  <descr>
	    <p>Creates a parsed XPath expression with resolved namespaces.
	    This is useful when an expression will be reused in an application
	    since it makes it possible to compile the expression string into a
	    more efficient internal form and preresolve all <termref def="dt-namespaceprefix">namespace prefixes</termref> which occur
	    within the expression.</p>
	  </descr>
	  <parameters>
	    <param attr="in" name="expression" type="DOMString">
	      <descr>
		<p>The XPath expression string to be parsed.</p>
	      </descr>
	    </param>
	    <param attr="in" name="resolver" type="XPathNSResolver">
	      <descr>
                <p>The <code>resolver</code> permits translation of all 
                prefixes, including the <code>xml</code> namespace prefix,
                within the XPath expression into appropriate <termref def="dt-namespaceURI">namespace URIs</termref>.  If this is
		specified as <code>null</code>, any <termref def="dt-namespaceprefix">namespace prefix</termref> within the
		expression will result in <code>DOMException</code> being
		thrown with the code <code>NAMESPACE_ERR</code>.</p>
	      </descr>
	    </param>
	  </parameters>
	  <returns type="XPathExpression">
	    <descr>
	      <p>The compiled form of the XPath expression.</p>
	    </descr>
	  </returns>
	  <raises>
	    <exception name="XPathException">
	      <descr>
		<p>INVALID_EXPRESSION_ERR: Raised if the expression is not
		legal according to the rules of the 
                <code>XPathEvaluator</code>.</p>
              </descr> 
	    </exception>
	    <exception name="DOMException">
	      <descr>
                <p>NAMESPACE_ERR: Raised if the expression contains
		<termref def="dt-namespaceprefix">namespace prefixes</termref>
                which cannot be resolved by the specified 
                <code>XPathNSResolver</code>.</p>
	      </descr>
	    </exception>
	  </raises>
	</method>
	<method id="XPathEvaluator-createNSResolver" name="createNSResolver">
	  <descr>
	    <p>Adapts any DOM node to resolve namespaces so that an XPath
            expression can be easily evaluated relative to the context of
            the node where it appeared within the document. This adapter
            works like the DOM Level 3 method <code>lookupNamespaceURI</code>
            on nodes in resolving the namespaceURI from a given prefix 
            using the current information available in the node's 
            hierarchy at the time lookupNamespaceURI is called. also 
            correctly resolving the implicit xml prefix.</p>
	  </descr>
	  <parameters>
	    <param attr="in" name="nodeResolver" type="Node">
	      <descr>
	        <p>The node to be used as a context for namespace resolution.</p>
	      </descr>
	    </param>
          </parameters>
          <returns type="XPathNSResolver">
	    <descr>
	      <p><code>XPathNSResolver</code> which resolves namespaces with respect to
	      the definitions in scope for a specified node.</p>
	    </descr>
	  </returns>
	  <raises>
	  </raises>
	</method>
	<method id="XPathEvaluator-evaluate" name="evaluate">
	  <descr>
	    <p>Evaluates an XPath expression string and returns a result of the
	    specified type if possible.</p>
	  </descr>
	  <parameters>
	    <param attr="in" name="expression" type="DOMString">
	      <descr>
		<p>The XPath expression string to be parsed and evaluated.</p>
	      </descr>
	    </param>
	    <param attr="in" name="contextNode" type="Node">
	      <descr>
	      <p>The <code>context</code> is context node for the evaluation 
	       of this XPath expression.  If the XPathEvaluator was obtained
              by casting the <code>Document</code> then this must be owned by
              the same document and must be a <code>Document</code>, 
              <code>Element</code>, <code>Attribute</code>, <code>Text</code>, 
              <code>CDATASection</code>, <code>Comment</code>,
              <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
              node.  If the context node is a <code>Text</code> or a
              <code>CDATASection</code>, then the context is interpreted as the
              whole logical text node as seen by XPath, unless the node is
              empty in which case it may not serve as the XPath context.</p>
	      </descr>
	    </param>
	    <param attr="in" name="resolver" type="XPathNSResolver">
	      <descr>
                <p>The <code>resolver</code> permits translation of all 
                prefixes, including the <code>xml</code> namespace prefix,
                within the XPath expression into appropriate <termref def="dt-namespaceURI">namespace URIs</termref>.  If this is
		specified as <code>null</code>, any <termref def="dt-namespaceprefix">namespace prefix</termref> within the
		expression will result in <code>DOMException</code> being
		thrown with the code <code>NAMESPACE_ERR</code>.</p>
	      </descr>
	    </param>
	    <param attr="in" name="type" type="unsigned short">
	      <descr>
	        <p>If a specific <code>type</code> is specified, then the
                result will be returned as the corresponding type.</p>
                <p>For XPath 1.0 results, this must be one of the codes of the
                <code>XPathResult</code> interface.</p>
	      </descr>
	    </param>
	    <param attr="in" name="result" type="DOMObject">
	      <descr>
                <p>The <code>result</code> specifies a specific result object 
		which may be reused and returned by this method.  If this is specified
                as <code>null</code>or the implementation does not reuse the specified 
                result, a new result object will be constructed and returned.</p>
                <p>For XPath 1.0 results, this object will be of type 
                  <code>XPathResult</code>.</p>
	      </descr>
	    </param>
	  </parameters>
	  <returns type="DOMObject">
	    <descr>
	      <p>The result of the evaluation of the XPath expression.</p>
              <p>For XPath 1.0 results, this object will be of type 
                  <code>XPathResult</code>.</p>
	    </descr>
	  </returns>
	  <raises>
	    <exception name="XPathException">
	      <descr>
		<p>INVALID_EXPRESSION_ERR: Raised if the expression is not
		legal according to the rules of the 
                <code>XPathEvaluator</code>i</p>
		<p>TYPE_ERR: Raised if the result cannot be converted to 
		return the specified type.</p>
              </descr> 
	    </exception>
	    <exception name="DOMException">
	      <descr>
                <p>NAMESPACE_ERR: Raised if the expression contains
		<termref def="dt-namespaceprefix">namespace prefixes</termref>
                which cannot be resolved by the specified 
                <code>XPathNSResolver</code>.</p>
		<p>WRONG_DOCUMENT_ERR:  The Node is from a document that is 
                  not supported by this <code>XPathEvaluator</code>.</p>
                <p>NOT_SUPPORTED_ERR:  The Node is not a type permitted as an
                XPath context node or the request type is not permitted by this
                <code>XPathEvaluator</code>.</p>
	      </descr>
	    </exception>
	  </raises>
        </method>
      </interface>
      <interface id="XPathExpression" name="XPathExpression">
        <descr>
          <p>The <code>XPathExpression</code> interface represents a parsed 
          and resolved XPath expression.</p>
        </descr>
	<method id="XPathExpression-evaluate" name="evaluate">
	  <descr>
	    <p>Evaluates this XPath expression and returns a result.</p>
	  </descr>
          <parameters>
	    <param attr="in" name="contextNode" type="Node">
	      <descr>
	      <p>The <code>context</code> is context node for the evaluation 
	       of this XPath expression.</p>
              <p>If the XPathEvaluator was obtained
              by casting the <code>Document</code> then this must be owned by
              the same document and must be a <code>Document</code>, 
              <code>Element</code>, <code>Attribute</code>, <code>Text</code>, 
              <code>CDATASection</code>, <code>Comment</code>,
              <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
              node.</p>
              <p>If the context node is a <code>Text</code> or a
              <code>CDATASection</code>, then the context is interpreted as the
              whole logical text node as seen by XPath, unless the node is
              empty in which case it may not serve as the XPath context.</p>
	      </descr>
	    </param>
           <param attr="in" name="type" type="unsigned short">
             <descr>
               <p>If a specific <code>type</code> is specified, then the
               result will be coerced to return the specified type relying
                 on XPath conversions and fail if the desired coercion is not 
                 possible.  This must be one of the type codes of
               <code>XPathResult</code>.</p>
             </descr>
           </param>
	    <param attr="in" name="result" type="DOMObject">
	      <descr>
                <p>The <code>result</code> specifies a specific result object 
		which may be reused and returned by this method.  If this is specified
                as <code>null</code>or the implementation does not reuse the specified 
                result, a new result object will be constructed and returned.</p>
                <p>For XPath 1.0 results, this object will be of type 
                  <code>XPathResult</code>.</p>
	      </descr>
	    </param>
	  </parameters>
	  <returns type="DOMObject">
	    <descr>
	      <p>The result of the evaluation of the XPath expression.</p>
              <p>For XPath 1.0 results, this object will be of type 
                <code>XPathResult</code>.</p>
	    </descr>
	  </returns>
	  <raises>
            <exception name="XPathException">
              <descr>
                <p>TYPE_ERR: Raised if the result cannot be converted to 
                return the specified type.</p>
              </descr>
            </exception>
            <exception name="DOMException">
              <descr>
		<p>WRONG_DOCUMENT_ERR:  The Node is from a document that is 
                not supported by the XPathEvaluator that created this
                <code>XPathExpression</code>.</p>
                <p>NOT_SUPPORTED_ERR:  The Node is not a type permitted as an
                XPath context node or the request type is not permitted by this
                <code>XPathExpression</code>.</p>
              </descr>
            </exception>
	  </raises>
        </method>
      </interface>
      <interface id="XPathNSResolver" name="XPathNSResolver">
	<descr>
	  <p>The <code>XPathNSResolver</code> interface permit
	  <code>prefix</code> strings in the expression to be properly bound to
	  <code>namespaceURI</code> strings.  <code>XPathEvaluator</code> can
	  construct an implementation of <code>XPathNSResolver</code> from a 
	  node, or the interface may be implemented by any application.</p>
	</descr>
	<method name="lookupNamespaceURI" id="XPathNSResolver-lookupNamespaceURI">
	  <descr>
	    <p>Look up the <termref def="dt-namespaceURI">namespace
	    URI</termref> associated to the given <termref def="dt-namespaceprefix">namespace prefix</termref>.  The
            XPath evaluator must never call this with a <code>null</code> or
            empty argument, because the result of doing this is undefined.</p>
	  </descr>
	  <parameters>
	    <param attr="in" type="DOMString" name="prefix">
	      <descr>
		<p>The prefix to look for.</p>
	      </descr>
	    </param>
	  </parameters>
	  <returns type="DOMString">
	    <descr>
	      <p>Returns the associated <termref def="dt-namespaceURI">namespace URI</termref> or
	      <code>null</code> if none is found.</p>
	    </descr>
	  </returns>
	  <raises>
	  </raises>
	</method>
      </interface>
      <interface id="XPathResult" name="XPathResult">
	<descr>
	  <p>The <code>XPathResult</code> interface represents the result
          of the evaluation of an XPath 1.0 expression within the context 
          of a particular node.  Since
	  evaluation of an XPath expression can result in various result
	  types, this object makes it possible to discover and manipulate
	  the type and value of the result.</p>
        </descr>
	<group id="XPathResultType" name="XPathResultType"> 
          <descr>
	    <p>An integer indicating what type of result this is.</p> 
	    <p>If a specific <code>type</code> is specified, then the
            result will be returned as the corresponding type, using
            <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#section-Expressions" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XPath type 
            conversions</xspecref> where required and possible.</p>
          </descr> 
          <constant id="XPathResult-ANY-TYPE" name="ANY_TYPE" type="unsigned short" value="0"> 
            <descr>
	      <p>This code does not represent a specific type.  An
	      evaluation of an XPath expression will never produce this
	      type.  If this type is requested, then the evaluation
	      returns whatever type naturally results from evaluation of
	      the expression. </p> <p>If the natural result is a node
	      set when <code>ANY_TYPE</code> was requested, then
	      <code>UNORDERED_NODE_ITERATOR_TYPE</code> is always the
	      resulting type.  Any other representation of a node set
	      must be explicitly requested.</p> </descr> </constant>
	      <constant id="XPathResult-NUMBER-TYPE" name="NUMBER_TYPE" type="unsigned short" value="1">
            <descr>
	      <p>The result is a <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#numbers" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">number</xspecref> as defined by
	      <bibref ref="XPath10"/>. Document modification does not
	      invalidate the number, but may mean that reevaluation
	      would not yield the same number.</p>
	    </descr>
	  </constant>
	  <constant id="XPathResult-STRING-TYPE" name="STRING_TYPE" type="unsigned short" value="2">
           <descr>
	      <p>The result is a <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#strings" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">string</xspecref> as defined by
	      <bibref ref="XPath10"/>.  Document modification does not
	      invalidate the string, but may mean that the string no
	      longer corresponds to the current document.</p>
	    </descr>
	  </constant>
	  <constant id="XPathResult-BOOLEAN-TYPE" name="BOOLEAN_TYPE" type="unsigned short" value="3">
           <descr>
              <p>The result is a <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#booleans" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">boolean</xspecref> as defined
              by <bibref ref="XPath10"/>. Document modification does not
              invalidate the boolean, but may mean that reevaluation
              would not yield the same boolean.</p>
	    </descr>
	  </constant>
	  <constant id="XPathResult-UNORDERED-NODE-ITERATOR-TYPE" name="UNORDERED_NODE_ITERATOR_TYPE" type="unsigned short" value="4">
            <descr>
	      <p>The result is a <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">node set</xspecref> as
	      defined by <bibref ref="XPath10"/> that will be accessed
	      iteratively, which may not produce nodes in a particular
	      order.  Document modification invalidates the
	      iteration.</p>
	      <p>This is the default type returned if the result is a
	      node set and <code>ANY_TYPE</code> is requested.</p>
	    </descr>
	  </constant>
	  <constant id="XPathResult-ORDERED-NODE-ITERATOR-TYPE" name="ORDERED_NODE_ITERATOR_TYPE" type="unsigned short" value="5">
            <descr>
	      <p>The result is a node set as defined by <bibref ref="XPath10"/> that will be accessed iteratively, which
	      will produce document-ordered nodes.  Document
	      modification invalidates the iteration.</p>
	    </descr>
	  </constant>
	  <constant id="XPathResult-UNORDERED-NODE-SNAPSHOT-TYPE" name="UNORDERED_NODE_SNAPSHOT_TYPE" type="unsigned short" value="6">
            <descr>
	      <p>The result is a <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">node set</xspecref> as
	      defined by <bibref ref="XPath10"/> that will be accessed
	      as a snapshot list of nodes that may not be in a
	      particular order.  Document modification does not
	      invalidate the snapshot but may mean that reevaluation
	      would not yield the same snapshot and nodes in the
	      snapshot may have been altered, moved, or removed from the
	      document.</p>
	    </descr>
	  </constant>
	  <constant id="XPathResult-ORDERED-NODE-SNAPSHOT-TYPE" name="ORDERED_NODE_SNAPSHOT_TYPE" type="unsigned short" value="7">
            <descr>
	      <p>The result is a <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">node set</xspecref> as
	      defined by <bibref ref="XPath10"/> that will be accessed
	      as a snapshot list of nodes that will be in original
	      document order.  Document modification does not invalidate
	      the snapshot but may mean that reevaluation would not
	      yield the same snapshot and nodes in the snapshot may have
	      been altered, moved, or removed from the document.</p>
	    </descr>
	  </constant>
	  <constant id="XPathResult-ANY-UNORDERED-NODE-TYPE" name="ANY_UNORDERED_NODE_TYPE" type="unsigned short" value="8">
            <descr>
	    <p>The result is a <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">node set</xspecref> as defined
	    by <bibref ref="XPath10"/> and will be accessed as a single
	    node, which may be <code>null</code>if the node set is empty.  Document
	    modification does not invalidate the node, but may mean that
	    the result node no longer corresponds to the current
	    document.  This is a convenience that permits optimization
	    since the implementation can stop once any node in
	    the resulting set has been found.</p> <p>If there is more
	    than one node in the actual result, the single node returned
	    might not be the first in document order.</p> </descr>
	    </constant>
	    <constant id="XPathResult-FIRST-ORDERED-NODE-TYPE" name="FIRST_ORDERED_NODE_TYPE" type="unsigned short" value="9">
            <descr>
	    <p>The result is a <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">node set</xspecref> as defined
	    by <bibref ref="XPath10"/> and will be accessed as a single
	    node, which may be <code>null</code> if the node set is
	    empty.  Document modification does not invalidate the node,
	    but may mean that the result node no longer corresponds to
	    the current document.  This is a convenience that permits
	    optimization since the implementation can stop once the
	    first node in document order of the resulting set has been
	    found.</p>
	      <p>If there are more than one node in the actual
	    result, the single node returned will be the first in
	    document order.</p>
	    </descr>
	  </constant>
	</group>
	<attribute id="XPathResult-resultType" type="unsigned short" name="resultType" readonly="yes">
          <descr>
            <p>A code representing the type of this result, as defined
            by the type constants.</p>
          </descr> 
        </attribute> 
	<attribute id="XPathResult-numberValue" type="double" name="numberValue" readonly="yes">
          <descr>
            <p>The value of this number result.  If the native double type of the DOM binding does 
            not directly support the exact IEEE 754 result of the XPath expression, then it is up to
            the definition of the binding to specify how the XPath number is converted to the
            native binding number.</p>
          </descr> 
          <getraises> 
            <exception name="XPathException">	
              <descr>
	        <p>TYPE_ERR: raised if <code>resultType</code> is not <code>NUMBER_TYPE</code>.</p>
              </descr> 
            </exception> 
          </getraises> 
        </attribute> 
	<attribute id="XPathResult-stringValue" type="DOMString" name="stringValue" readonly="yes">
          <descr>
	    <p>The value of this string result.</p>
          </descr> 
          <getraises> 
            <exception name="XPathException">	
              <descr>
	        <p>TYPE_ERR: raised if <code>resultType</code> is not <code>STRING_TYPE</code>.</p>
              </descr> 
            </exception> 
          </getraises> 
        </attribute> 
	<attribute id="XPathResult-booleanValue" type="boolean" name="booleanValue" readonly="yes">
          <descr>
	    <p>The value of this boolean result.</p>
          </descr> 
          <getraises> 
            <exception name="XPathException">	
              <descr>
	        <p>TYPE_ERR: raised if <code>resultType</code> is not <code>BOOLEAN_TYPE</code>.</p>
              </descr> 
            </exception> 
          </getraises> 
        </attribute> 
	<attribute id="XPathResult-singleNodeValue" type="Node" name="singleNodeValue" readonly="yes">
          <descr>
	    <p>The value of this single node result, which may be <code>null</code>.</p>
          </descr> 
          <getraises> 
            <exception name="XPathException">	
              <descr>
	        <p>TYPE_ERR: raised if <code>resultType</code> is not 
		<code>ANY_UNORDERED_NODE_TYPE</code> or
		<code>FIRST_ORDERED_NODE_TYPE</code>.</p>
              </descr> 
            </exception> 
          </getraises> 
        </attribute> 
	<attribute type="boolean" readonly="yes" name="invalidIteratorState" id="XPathResult-invalid-iterator-state">
	  <descr>
	    <p>Signifies that the iterator has become invalid.  
	    True if <code>resultType</code> is
	    <code>UNORDERED_NODE_ITERATOR_TYPE</code> or
	    <code>ORDERED_NODE_ITERATOR_TYPE</code> and the
	    document has been modified since this result was
	    returned.</p>
	  </descr>
	</attribute>
	<attribute type="unsigned long" readonly="yes" name="snapshotLength" id="XPathResult-snapshot-length">
	  <descr>
	  <p>The number of nodes in the result snapshot.  Valid values
	    for snapshotItem indices are <code>0</code> to 
            <code>snapshotLength-1</code> inclusive.</p>
	  </descr>
	  <getraises>
            <exception name="XPathException">	
              <descr>
	        <p>TYPE_ERR: raised if <code>resultType</code> is not 
	        <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
	        <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.</p>
              </descr> 
            </exception> 
	  </getraises>
	</attribute>
	<method id="XPathResult-iterateNext" name="iterateNext">
	  <descr>
	    <p>Iterates and returns the next node from the node set
	    or <code>null</code>if there are no more nodes.</p>
	  </descr>
	  <parameters>
	  </parameters>
	  <returns type="Node">
	    <descr>
	      <p>Returns the next node.</p>
	    </descr>
	  </returns>
	  <raises>
            <exception name="XPathException">	
              <descr>
	        <p>TYPE_ERR: raised if <code>resultType</code> is not 
	        <code>UNORDERED_NODE_ITERATOR_TYPE</code> or
	        <code>ORDERED_NODE_ITERATOR_TYPE</code>.</p>
              </descr> 
            </exception> 
	    <exception name="DOMException">
	      <descr>
	        <p>INVALID_STATE_ERR: The document has been mutated since the
	        result was returned.</p>
	      </descr>
	    </exception>
	  </raises>
        </method>
	<method id="XPathResult-snapshotItem" name="snapshotItem">
	  <descr>
	    <p>Returns the <code>index</code>th item in the snapshot collection. 
	    If <code>index</code> is greater than or equal to the number of nodes
	    in the list, this method returns <code>null</code>.  Unlike the
            iterator result, the snapshot does not become invalid, but may
            not correspond to the current document if it is mutated.</p>
	  </descr>
	  <parameters>
	    <param id="XPathResult-snapshot-item-index" name="index" type="unsigned long" attr="in">
	      <descr>
		<p>Index into the snapshot 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>
            <exception name="XPathException">	
              <descr>
	        <p>TYPE_ERR: raised if <code>resultType</code> is not 
	        <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
	        <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.</p>
              </descr> 
            </exception> 
	  </raises>
	</method>
      </interface>
      <interface id="XPathNamespace" name="XPathNamespace" inherits="Node"> 
        <descr>
	  <p>The <code>XPathNamespace</code> interface is returned by 
          <code>XPathResult</code> interfaces to represent 
          the XPath namespace node type that DOM lacks.
          There is no public constructor for this node type.  Attempts to 
          place it into a hierarchy or a NamedNodeMap result in a 
          <code>DOMException</code> with the code 
          <code>HIERARCHY_REQUEST_ERR</code>.  This node is 
	    <termref def="dt-readonly-node">read only</termref>, so methods or setting of attributes that would mutate 
          the node result in a DOMException with the code 
          <code>NO_MODIFICATION_ALLOWED_ERR</code>.</p>
          <p>The core specification describes attributes of the
          <code>Node</code> interface that are different for different
          node types but does not describe <code>XPATH_NAMESPACE_NODE</code>, 
          so here is a description of those attributes for this node type.
          All attributes of <code>Node</code> not described in this section 
          have a <code>null</code> or <code>false</code> value.</p>
          <p><code>ownerDocument</code> matches the <code>ownerDocument</code> of the 
	  <code>ownerElement</code> even if the element is later adopted.</p>
          <p><code>nodeName</code> is always the string "<code>#namespace</code>".</p>
          <p><code>prefix</code> is the prefix of the namespace
	  represented by the node.</p>
          <p><code>localName</code> is the same as <code>prefix</code>.</p>
          <p><code>nodeType</code> is equal to <code>XPATH_NAMESPACE_NODE</code>.</p>
          <p><code>namespaceURI</code> is the namespace URI of the namespace
	  represented by the node.</p>
          <p><code>nodeValue</code> is the same as <code>namespaceURI</code>.</p>
          <p><code>adoptNode</code>, <code>cloneNode</code>, and 
          <code>importNode</code> fail on this node type by raising a
          <code>DOMException</code> with the code <code>NOT_SUPPORTED_ERR</code>.</p>
	  <note>
	    <p>In future versions of the XPath specification, the definition of a 
          namespace node may be changed incomatibly, in which case incompatible 
          changes to field values may be required to implement versions beyond
          XPath 1.0.</p>
	  </note>
	</descr>
        <group id="XPathNodeType" name="XPathNodeType"> 
          <descr>
            <p>An integer indicating which type of node this is.</p> 
            <note>
	      <p>There is currently only one type of node which is specific to 
	      XPath.  The numbers in this list must not collide with the 
	      values assigned to core node types.</p>
            </note> 
          </descr> 
          <constant id="XPATH_NAMESPACE_NODE" name="XPATH_NAMESPACE_NODE" type="unsigned short" value="13"> 
            <descr>
              <p>The node is a <code>Namespace</code>.</p>
            </descr>
          </constant>
        </group>
	<attribute type="Element" readonly="yes" name="ownerElement" id="XPathNamespace-ownerElement">
	  <descr>
	    <p>The <code>Element</code> on which the namespace was in scope
	    when it was requested.  This does not change on a returned
	      namespace node
	    even if the document changes such that the namespace goes out of
	    scope on that <termref def="dt-element">element</termref> and this
              node is no longer found there by XPath.</p>
	  </descr>
	</attribute>
      </interface>
    </definitions>
  </div2>
</div1>

</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 3 Document Object Model XPath definitions.</p>

  <p>The IDL files are also available as: <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="idl.zip" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/idl.zip</loc></p>

    <!--
    ******************************************************
    | XPATH OMG IDL DEFINITIONS                           |
    ******************************************************
    -->
      <?GENERATE-IDL XPath xpath dom.w3c.org dom?>
</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 3 Document Object Model XPath.</p>

  <p>The Java files are also available as <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="java-binding.zip" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/java-binding.zip</loc></p>

  <!--
  ******************************************************
  | XPATH JAVA BINDINGS                                 |
  ******************************************************
  -->

  <div2 id="JavaXPathInterfaces">
    <head>Other XPath interfaces</head>
    <?GENERATE-JAVA XPath org.w3c.dom xpath?>
  </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 3 Document Object Model XPath
  definitions.</p>

    <!--
    ******************************************************
    | XPATH ECMA SCRIPT BINDINGS                         |
    ******************************************************
    -->
  <?GENERATE-ECMA XPath?>

      <note>
	<p>
	  The parameter <code>resolver</code> of the method
	  <code>XPathEvaluator.evaluate</code> is specified as an object
	  that implements the <code>XPathNSResolver</code>
	  interface. ECMAScript users can also pass to this method a
	  function which returns a <code>String</code> and takes a
	  <code>String</code> parameter instead of the
	  <code>resolver</code> parameter.
	</p>
      </note>
</div1>
  
<!-- $Id: xml-source.xml,v 1.1 2004/02/23 21:49:04 plehegar Exp $ -->
<div1 role="acknowledgements" id="contributors"> 
  <head>Acknowledgements</head> 

  <p>Many people contributed to the DOM specifications (Level 1, 2 or 3),
  including participants of the DOM Working Group and the DOM Interest Group. We
  especially thank the following:</p>

  <p>
    Andrew Clover, Andrew Watson (Object Management Group), Andy
    Heninger (IBM), Angel Diaz (IBM), Arnaud Le Hors (W3C and IBM),
    Ashok Malhotra (IBM and Microsoft), Ben Chang (Oracle), Bill Smith
    (Sun), Bill Shea (Merrill Lynch), Bob Sutor (IBM), Chris Lovett
    (Microsoft), Chris Wilson (Microsoft), David Brownell (Sun), David
    Ezell (Hewlett-Packard Company), David Singer (IBM), Dimitris
    Dimitriadis (Improve AB and invited expert), Don Park (invited),
    Elena Litani (IBM), Eric Vasilik (Microsoft), Gavin Nicol (INSO),
    Ian Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared
    Sorensen (Novell), Jeroen van Rotterdam (X-Hive Corporation), Joe
    Kesselman (IBM), Joe Lapp (webMethods), Joe Marini (Macromedia),
    Johnny Stenback (Netscape/AOL), Jon Ferraiolo (Adobe), Jonathan
    Marsh (Microsoft), Jonathan Robie (Texcel Research and Software AG),
    Kim Adamson-Sharpe (SoftQuad Software Inc.), Lauren Wood (SoftQuad
    Software Inc., <emph>former Chair</emph>), Laurence Cable (Sun),
    Mark Davis (IBM), Mark Scardina (Oracle), Martin D&#252;rst (W3C),
    Mary Brady (NIST), 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&#233;garet
    (W3C, <emph>W3C Team Contact and former Chair</emph>), Ramesh
    Lekshmynarayanan (Merrill Lynch), Ray Whitmer (iMall, Excite@Home,
    and Netscape/AOL, <emph>Chair</emph>), Rezaur Rahman (Intel), Rich
    Rollman (Microsoft), Rick Gessner (Netscape), Rick Jelliffe
    (invited), Rob Relyea (Microsoft), Scott Isaacs (Microsoft), Sharon
    Adler (INSO), Steve Byrne (JavaSoft), Tim Bray (invited), Tim Yu
    (Oracle), Tom Pixley (Netscape/AOL), Vidur Apparao (Netscape), Vinod
    Anupam (Lucent).
  </p>

  <p>
    Thanks to all those who have helped to improve this specification by
    sending suggestions and corrections (Please, keep bugging us with your
    issues!).
  </p>

  <p>
    Special thanks to the <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/DOM/Test" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">DOM
    Conformance Test Suites</loc> contributors: Curt Arnold, Fred Drake,
    Mary Brady (NIST), Rick Rivello (NIST), Robert Clary (Netscape).
  </p>

  <div2 id="Productions"><head>Production Systems</head> 
    <p>
      This specification was written in XML. The HTML, OMG IDL, Java and
      ECMAScript bindings were all produced automatically.
    </p>

    <p>
      Thanks to Joe English, author of <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.flightlab.com/cost" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">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&#233;garet maintained the scripts.
    </p>

    <p>
      After DOM Level 1, we used <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://xml.apache.org/xerces-j" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Xerces</loc> as the basis DOM
      implementation and wish to thank the authors. Philippe Le H&#233;garet
      and Arnaud Le Hors wrote the <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Java
      programs</loc> which are the DOM application.
    </p>

    <p>
      Thanks also to Jan K&#228;rrman, author of <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://user.it.uu.se/~jan/html2ps.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">html2ps</loc>, which we use
      in creating the PostScript version of the specification.
    </p>

  </div2>
</div1>

  
<!-- $Id: xml-source.xml,v 1.1 2004/02/23 21:49:04 plehegar Exp $ -->
<!--
 *************************************************************************
 * BEGINNING OF DOM GLOSSARY                                             *
 *************************************************************************
-->
<div1 role="glossary" id="glossary">
  <head>Glossary</head>
  <orglist role="editors">
    <member>
      <name>Arnaud Le Hors</name>
      <affiliation>W3C</affiliation>
    </member>
    <member>
      <name>Robert S. Sutor</name>
      <affiliation>IBM Research (for DOM Level 1)</affiliation>
    </member>
  </orglist>
  <p>Some 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>
      </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, 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 methods used to access some
	  functionality.</p></def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-anonymous">anonymous type name</label>
      <def>
	<p>
          An <term>anonymous type name</term> is an
          implementation-defined, globally unique qualified name
          provided by the processor for every anonymous type declared in
          a <termref def="dt-schema">schema</termref>.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-bubbling-phase">bubbling phase</label>
      <def>
	<p>
	  The process by which an <termref def="dt-event">event</termref> can be handled by one of the
	  target ancestors after being handled by the <termref def="dt-target-node">target node</termref>.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-capture-phase">capture phase</label>
      <def>
	<p>
	  The process by which an <termref def="dt-event">event</termref> can be handled by one of the
	  target ancestors before being handled by the <termref def="dt-target-node">target node</termref>.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-child">child</label>
      <def><p>A <term>child</term> is an immediate descendant 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 role="informative" 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 child elements and the
	  order in which they appear. See <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-20040204#sec-element-content" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Element Content</xspecref>
	  in XML <bibref role="informative" ref="XML"/>.</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 methods 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 xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.omg.org" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">OMG</loc> <bibref role="informative" 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-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, where "below" means "away from the
	  root."</p></def>
    </gitem>

    <!-- ................................................................ -->
    <gitem>
      <label id="dt-document-element">document element</label>
      <def>
	<p>
	  There is only one document element in a <code>Document</code>. This
	  element node is a child of the <code>Document</code> node. See
	  <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-20040204#dt-root" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Well-Formed XML
	  Documents</xspecref> in XML <bibref role="informative" ref="XML"/>.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-document-order">document order</label>

      <def><p>There is an ordering, <term>document order</term>, defined on all
      the nodes in the document corresponding to the order in which the first
      character of the XML representation of each node occurs in the XML
      representation of the document after expansion of general entities. Thus,
      the <termref def="dt-document-element">document element</termref> node
      will be the first node. Element nodes occur before their children. Thus,
      document order orders element nodes in order of the occurrence of their
      start-tag in the XML (after expansion of entities). The attribute nodes
      of an element occur after the element and before its children. The
      relative order of attribute nodes is implementation-dependent.</p></def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-DOM-Level-0">DOM Level 0</label>
      <def><p>The term "DOM Level 0" 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 methods 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 role="informative" ref="ECMAScript"/>. As stated in the standard, the
            originating technology for ECMAScript was JavaScript <bibref role="informative" ref="JavaScript"/>. Note that in the ECMAScript binding, the word
              "property" is used in the same sense as the IDL term
              "attribute."</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 xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-20040204#sec-logical-struct" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Logical
	    Structures</xspecref> in XML <bibref role="informative" ref="XML"/>.
	</p></def>
    </gitem>
    <gitem>
      <label id="dt-event">event</label>
      <def>
	<p>
	  An event is the representation of some asynchronous occurrence
	  (such as a mouse click on the presentation of the element, or
	  the removal of child node from an element, or any of
	  unthinkably many other possibilities) that gets associated
	  with an <termref def="dt-event-target">event target</termref>.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-event-target">event target</label>
      <def>
	<p>
	  The object to which an <termref def="dt-event">event</termref>
	  is targeted.
	</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 then 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>, the child node lists are equivalent are
	  equivalent as <code>NodeList</code> objects, and the pairs of
	  equivalent attributes must in fact be 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 role="informative" ref="InfoSet"/>
            for details.
        </p></def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-logically-adjacent-text-nodes">logically-adjacent text nodes</label>
      <def><p>
        <term>Logically-adjacent text nodes</term> are <code>Text</code>
        or <code>CDATASection</code> nodes that can be visited
        sequentially in <termref def="dt-document-order">document
        order</termref> or in reversed document order without entering,
        exiting, or passing over <code>Element</code>,
        <code>Comment</code>, or <code>ProcessingInstruction</code>
        nodes.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-global-declaration">global declaration</label>
      <def>
	<p>
	  A <term>global declaration</term> is a schema declaration,
	  usually for an element or an attribute, that is available for
	  use in content models throughout the <termref def="dt-schema">schema</termref>, i.e. a declaration that is
	  not bound to a particular context.
	</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 role="informative" 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 role="informative" ref="CORBA"/>, Microsoft's IDL <bibref role="informative" ref="MSIDL"/>, and
	      Sun's Java IDL <bibref role="informative" 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 "initial parse tree" 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
          methods 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-live">live</label>
      <def>
          <p>An object is <term>live</term> if any change to the underlying
          document structure is reflected in the object.</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 xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#dt-localname" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">local
	    part</xtermref> in Namespaces in XML <bibref role="informative" 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 xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#dt-prefix" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">namespace
	    prefix</xtermref> in Namespaces in XML <bibref role="informative" 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 XML
	  namespace. This is called the <xtermref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#dt-NSName" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">namespace name</xtermref> in
	  Namespaces in XML <bibref role="informative" ref="Namespaces"/>. See also sections 1.3.2 "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#baseURIs-Considerations" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">DOM
	  URIs</xspecref>" and 1.3.3 "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML
	  Namespaces</xspecref>" regarding URIs and namespace URIs
	  handling and comparison in the DOM APIs.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-namespace-well-formed">namespace well-formed</label>
      <def>
	<p>
	  A node is a <term>namespace well-formed</term> XML node if it
	  is a <termref def="dt-well-formed">well-formed</termref> node,
	  and follows the productions and namespace constraints. If
	  <bibref ref="XML"/> is used, the constraints are defined in
	  <bibref ref="Namespaces"/>. If <bibref ref="XML11"/> is used,
	  the constraints are defined in <bibref ref="Namespaces11"/>.
	</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 ancestor node of a
	  node.</p></def>
    </gitem>
    <gitem>
      <label id="dt-partially-valid">partially valid</label>
      <def>
	<p>A node in a DOM tree is <term>partially valid</term> if it is
	<termref def="dt-well-formed">well formed</termref> (this part is for
	comments and processing instructions) and its immediate children are
	those expected by the content model. The node may be missing trailing
	required children yet still be considered <term>partially
	valid</term>.
	</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 xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-qualnames" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Qualified Names</xspecref> in
	  Namespaces in XML <bibref role="informative" ref="Namespaces"/>.</p></def>
    </gitem>
    <!-- ................................................................ -->
    <gitem> 
      <label id="dt-readonly-node">read only node</label>
      <def><p>A <term>read only 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 read only node
          can possibly be moved, when it is not itself contained in a read only
          node.</p></def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-root-node">root node</label>
      <def>
	<p>The <term>root node</term> is a node that is not a child of any
	other node. All other nodes are children or other descendants of the
	root node.</p></def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-schema">schema</label>
      <def>
	<p>
	  A <term>schema</term> defines a set of structural and value
	  constraints applicable to XML documents. Schemas can be
	  expressed in schema languages, such as DTD, XML Schema, etc.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-sibling">sibling</label>
      <def><p>Two nodes are <term>siblings</term> if they have the
	  same parent 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 <bibref role="informative" 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-target-node">target node</label>
      <def>
	<p>
	  The target node is the node representing the <termref def="dt-event-target">event target</termref> to which an <termref def="dt-event">event</termref> is targeted using the DOM event
	  flow.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-target-phase">target phase</label>
      <def>
	<p>
	  The process by which an <termref def="dt-event">event</termref> can be handled by the <termref def="dt-event-target">event target</termref>.
	</p>
      </def>
    </gitem>
    <!-- ................................................................ -->
    <gitem><label id="dt-token">token</label><def>
        <p>An information item such as an
          <xtermref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/REC-xml.html#NT-Name" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">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 xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/REC-xml.html#NT-TokenizedType" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">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</label>
      <def>
	<p>
	  A node is a <term>well-formed</term> XML node if its
	  serialized form, without doing any transformation during its
	  serialization, matches its respective production in <bibref ref="XML"/> or <bibref ref="XML11"/> (depending on the XML
	  version in use) with all well-formedness constraints related
	  to that production, and if the entities which are referenced
	  within the node are also well-formed. If namespaces for XML
	  are in use, the node must also be <termref def="dt-namespace-well-formed">namespace
	  well-formed</termref>.
	</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 which is completely
	  described in this document. 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 has been designed
	  for ease of implementation and for interoperability with
	  both SGML and HTML. <bibref role="informative" ref="XML"/></p></def>
    </gitem>
    <!-- ................................................................ -->
    <gitem>
      <label id="dt-XML-name">XML name</label>
      <def><p>See <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2004/REC-xml-20040204#NT-Name" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML name</xspecref> in
	  the XML specification (<bibref role="informative" 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 role="informative" ref="URIRef"/>, which are used
	    in XML documents as element types and attribute names. <bibref role="informative" ref="Namespaces"/></p></def>
    </gitem>
    <!-- ................................................................ -->
  </glist>
</div1>
<!--
 *************************************************************************
 * END OF DOM GLOSSARY                                                   *
 *************************************************************************
-->
 
  
<!-- $Id: xml-source.xml,v 1.1 2004/02/23 21:49:04 plehegar 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 xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">W3C Technical Reports</loc> available at
    http://www.w3.org/TR.
  </p>
  
    <blist>      
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="c14n" href="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" key="Canonical XML" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Canonical XML Version 1.0</titleref>, J. Boyer,
	Editor. World Wide Web Consortium, 15 March 2001. This version
	of the Canonical XML Recommendation is
	http://www.w3.org/TR/2001/REC-xml-c14n-20010315. The <loc href="http://www.w3.org/TR/xml-c14n" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of Canonical
	XML</loc> is available at http://www.w3.org/TR/xml-c14n.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="Charmod" key="CharModel" href="http://www.w3.org/TR/2003/WD-charmod-20030822/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Character Model for the World Wide Web 1.0</titleref>,
	M. D&#252;rst, F. Yergeau, R. Ishida, M. Wolf,
	T. Texin, Editors. World Wide Web Consortium, August 2003.  This
	version of the Character Model for the World Wide Web
	specification is http://www.w3.org/TR/2003/WD-charmod-20030822/. The <loc href="http://www.w3.org/TR/charmod/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of Character
	Model</loc> is available at http://www.w3.org/TR/charmod/.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="COM" key="COM" href="http://www.microsoft.com/com/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">The Microsoft Component Object Model</titleref>,
        Microsoft Corporation. Available at http://www.microsoft.com/com.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="CORBA" key="CORBA" href="http://www.omg.org/technology/documents/formal/corba_2.htm" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">The Common Object Request Broker: Architecture and
	Specification, version 2</titleref>. Object Management
	Group. The latest version of CORBA version  2.0 is available at
        http://www.omg.org/technology/documents/formal/corba_2.htm.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="CSS2" key="CSS2" href="http://www.w3.org/TR/1998/REC-CSS2-19980512" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Cascading Style Sheets, level 2
	Specification</titleref>, B. Bos, H. Wium Lie, C.
	Lilley, and I. Jacobs, Editors. World Wide Web Consortium, 12
	May 1998. This version of the Cascading Style Sheets
	Recommendation is http://www.w3.org/TR/1998/REC-CSS2-19980512. The <loc href="http://www.w3.org/TR/REC-CSS2" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of Cascading
	Style Sheets</loc> is available at
	http://www.w3.org/TR/REC-CSS2.
    </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOM-Level-1" key="DOM Level 1" href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">DOM Level 1 Specification</titleref>, V. Apparao,
	et al., Editors. World Wide Web Consortium, 1 October 1998. This
	version of the DOM Level 1 Recommendation is http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001. The
	<loc href="http://www.w3.org/TR/REC-DOM-Level-1/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version
	of DOM Level 1</loc> is available at
	http://www.w3.org/TR/REC-DOM-Level-1.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOM2Core" key="DOM Level 2 Core" href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 2 Core
	Specification</titleref>, A. Le Hors, et al., Editors. World
	Wide Web Consortium, 13 November 2000. This version of the DOM
	Level 2 Core Recommendation is http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113. The <loc href="http://www.w3.org/TR/DOM-Level-2-Core" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
	DOM Level 2 Core</loc> is available at
	http://www.w3.org/TR/DOM-Level-2-Core.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOMCore" key="DOM Level 3 Core" href="http://www.w3.org/TR/2004/PR-DOM-Level-3-Core-20040205" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 3 Core
        Specification</titleref>, A. Le Hors, et al., Editors. World
        Wide Web Consortium, February 2004. This version of the Document
        Object Model Level 3 Core specification is
        http://www.w3.org/TR/2004/PR-DOM-Level-3-Core-20040205. The <loc href="http://www.w3.org/TR/DOM-Level-3-Core" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
        DOM Level 3 Core</loc> is available at
        http://www.w3.org/TR/DOM-Level-3-Core.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOM2Events" key="DOM Level 2 Events" href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
 	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 2 Events
 	Specification</titleref>, T. Pixley, Editor. World Wide Web
 	Consortium, 13 November 2000. This version of the Document
 	Object Model Level 2 Events Recommendation is http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113.  The
 	<loc href="http://www.w3.org/TR/DOM-Level-2-Events" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest
 	version of Document Object Model Level 2 Events</loc> is
 	available at http://www.w3.org/TR/DOM-Level-2-Events.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOMEvents" key="DOM Level 3 Events" href="http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 3 Events
	Specification</titleref>, P. Le H&#233;garet, T. Pixley,
	Editors.  World Wide Web Consortium, November 2003. This version of
	the Document Object Model Level 3 Events specification is
	http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107.  The <loc href="http://www.w3.org/TR/DOM-Level-3-Events" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
	Document Object Model Level 3 Events</loc> is available at
	http://www.w3.org/TR/DOM-Level-3-Events.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOMLS" key="DOM Level 3 Load and Save" href="http://www.w3.org/TR/2004/PR-DOM-Level-3-LS-20040205" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 3 Load and Save
        Specification</titleref>, J. Stenback, A. Heninger,
        Editors. World Wide Web Consortium, February 2004.  This version
        of the DOM Level 3 Load and Save specification is http://www.w3.org/TR/2004/PR-DOM-Level-3-LS-20040205. The
        <loc href="http://www.w3.org/TR/DOM-Level-3-LS" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of DOM Level 3 Load
        and Save</loc> is available at http://www.w3.org/TR/DOM-Level-3-LS.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOM2HTML" key="DOM Level 2 HTML" href="http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 2 HTML
        Specification</titleref>, J. Stenback, et al., Editors. World
        Wide Web Consortium, 9 January 2003. This version of the Document
        Object Model Level 2 HTML Recommendation is http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109.  The <loc href="http://www.w3.org/TR/DOM-Level-2-HTML" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
        Document Object Model Level 2 HTML</loc> is available at
        http://www.w3.org/TR/DOM-Level-2-HTML.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOM-Level-3-Requirements" key="DOM Level 3 Requirements" href="http://www.w3.org/TR/2001/WD-DOM-Requirements-20010419/#Level3" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">    
       <quote>DOM Requirements for DOM Level 3</quote> in <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">DOM
       Requirements for DOM Level 3</titleref>, B. Chang, et al.,
       Editors.  World Wide Web Consortium, April 2001. This version of
       the DOM Requirements for DOM Level 3 is
       http://www.w3.org/TR/2001/WD-DOM-Requirements-20010419/#Level3.
       The <loc href="http://www.w3.org/TR/DOM-Requirements" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest
       version of DOM Requirements</loc> is available at
       http://www.w3.org/TR/DOM-Requirements.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOM2Style" key="DOM Level 2 Style Sheets and CSS" href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
       <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 2 Style Sheets and CSS
       Specification</titleref>, C. Wilson, P. Le H&#233;garet,
       V. Apparao, Editors.  World Wide Web Consortium, 13 November
       2000. This version of the Document Object Model Level 2 Style
       Sheets and CSS Recommendation is http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113.  The <loc href="http://www.w3.org/TR/DOM-Level-2-Style" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
       Document Object Model Level 2 Style Sheets and CSS</loc> is
       available at http://www.w3.org/TR/DOM-Level-2-Style.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOM2Traversal-Range" key="DOM Level 2 Traversal and      Range" href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 2 Traversal and Range
	Specification</titleref>, J. Kesselman, J. Robie, M.
	Champion, P. Sharpe, V. Apparao, L. Wood,
	Editors. World Wide Web Consortium, 13 November 2000. This
	version of the Document Object Model Level 2 Traversal and Range
	Recommendation is http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113.  The <loc href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest
	version of Document Object Model Level 2 Traversal and
	Range</loc> is available at
	http://www.w3.org/TR/DOM-Level-2-Traversal-Range.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOMVal" key="DOM Level 3 Validation" href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Val-20040127/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 3 Validation
        Specification</titleref>, B. Chang, J. Kesselman, R. Rahman,
        Editors. World Wide Web Consortium, 27 January 2003.  This version of
        the DOM Level 3 Validation Recommendation is
        http://www.w3.org/TR/2004/REC-DOM-Level-3-Val-20040127/. The <loc href="http://www.w3.org/TR/DOM-Level-3-Val" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
        DOM Level 3 Validation</loc> is available at
        http://www.w3.org/TR/DOM-Level-3-Val.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOM2Views" key="DOM Level 2 Views" href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 2 Views
	Specification</titleref>, A. Le Hors, L. Cable, Editors.  World Wide Web
	Consortium, 13 November 2000. This version of the Document Object
	Model Level 2 Views Recommendation is http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113.  The <loc href="http://www.w3.org/TR/DOM-Level-2-Views" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of Document Object Model Level 2
	Views</loc> is available at http://www.w3.org/TR/DOM-Level-2-Views.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DOMXPath" key="DOM Level 3 XPath" href="http://www.w3.org/TR/2003/CR-DOM-Level-3-XPath-20030331/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Document Object Model Level 3 XPath
	Specification</titleref>, R. Whitmer, Editor. World Wide Web
	Consortium, March 2003. This version of the Document Object
	Model Level 3 XPath specification is http://www.w3.org/TR/2003/CR-DOM-Level-3-XPath-20030331.  The
	<loc href="http://www.w3.org/TR/DOM-Level-3-XPath" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest
	version of Document Object Model Level 3 XPath</loc> is
	available at http://www.w3.org/TR/DOM-Level-3-XPath.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="DWW95" key="DWW95" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Developing International Software for Windows 95 and
	Windows NT: A Handbook for International Software
	Design</titleref>, N. Kano, Author. Microsoft Press, 1995. ISBN
	1-55615-840-8.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="ECMAScript" key="ECMAScript" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">ECMAScript Language Specification</titleref>, Third
	Edition. European Computer Manufacturers Association, Standard
	ECMA-262, December 1999. This version of the ECMAScript
	Language is available from http://www.ecma-international.org/.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="HTML40" key="HTML 4.01" href="http://www.w3.org/TR/1999/REC-html401-19991224/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">HTML 4.01 Specification</titleref>, D. Raggett, A. Le
        Hors, and I. Jacobs, Editors. World Wide Web Consortium, 17
        December 1997, revised 24 April 1998, revised 24 December
        1999. This version of the HTML 4.01 Recommendation is
        http://www.w3.org/TR/1999/REC-html401-19991224. The <loc href="http://www.w3.org/TR/html4" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of HTML 4</loc> is
        available at http://www.w3.org/TR/html4.
      </bibl>      
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="IANA-CHARSETS" key="IANA-CHARSETS" href="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Official Names for Character Sets</titleref>,
        K. Simonsen, et al., Editors. Internet Assigned Numbers
        Authority. Available at
        ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="ISO10646" key="ISO/IEC 10646" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">ISO/IEC 10646-2000 (E). Information technology -
        Universal Multiple-Octet Coded Character Set (UCS) - Part 1:
        Architecture and Basic Multilingual Plane</titleref>, as, from
        time to time, amended, replaced by a new edition or expanded by
        the addition of new parts. [Geneva]: International Organization
        for Standardization, 2000. See also <loc href="http://www.iso.ch" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">International Organization for
        Standardization</loc>, available at http://www.iso.ch, for the
        latest version.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="Java" key="Java" href="http://java.sun.com/docs/books/jls" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">The Java Language Specification</titleref>, J.
	Gosling, B. Joy, and G. Steele, Authors. Addison-Wesley,
	September 1996. Available at http://java.sun.com/docs/books/jls
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="JavaIDL" key="Java IDL" href="http://java.sun.com/products/jdk/idl/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Java IDL</titleref>. Sun Microsystems. Available at http://java.sun.com/products/jdk/idl/
      </bibl>      
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="JavaScript" key="JavaScript" href="http://devedge.netscape.com/central/javascript/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">JavaScript Resources</titleref>. Netscape
	Communications Corporation. Available at http://devedge.netscape.com/central/javascript/
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="JAXP" key="JAXP" href="http://java.sun.com/xml/jaxp/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Java API for XML Processing (JAXP)</titleref>. Sun
	Microsystems. Available at
	http://java.sun.com/xml/jaxp/.
	</bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="JScript" key="JScript" href="http://msdn.microsoft.com/library/en-us/script56/html/js56jslrfjscriptlanguagereference.asp" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">JScript Resources</titleref>. Microsoft. Available at
	http://msdn.microsoft.com/library/en-us/script56/html/js56jslrfjscriptlanguagereference.asp
      </bibl>    
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="KeyEvent" key="KeyEvent for Java" href="http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/KeyEvent.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Java 2 Platform, Standard Edition, v. 1.4.2 API
	Specification, Class java.awt.events.KeyEvent</titleref>. Sun
	Microsystems. Available at
	http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/KeyEvent.html.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="Keys" key="Keys enumeration for .Net" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsKeysClassTopic.asp" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">.NET Framework Class Library, Keys
	Enumeration</titleref>. Microsoft. Available at
	http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsKeysClassTopic.asp.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="MathML2" key="MathML 2.0" href="http://www.w3.org/TR/2003/REC-MathML2-20031021" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Mathematical Markup Language (MathML) Version 2.0
	(Second Edition)</titleref>, D. Carlisle, P. Ion, R. Miner,
	N. Poppelier, Editors. World Wide Web Consortium, 21 October
	2001, revised 21 February 2001. This version of the Math 2.0
	Recommendation is http://www.w3.org/TR/2003/REC-MathML2-20031021. The <loc href="http://www.w3.org/TR/MathML2" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of MathML
	2.0</loc> is available at http://www.w3.org/TR/MathML2.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="MSIDL" key="MIDL" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/midl/midl/midl_language_reference.asp" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">MIDL Language
        Reference</titleref>. Microsoft. Available at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/midl/midl/midl_language_reference.asp.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="OMGIDL" key="OMG IDL" href="http://www.omg.org/technology/documents/formal/corba_2.htm" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <quote>OMG IDL Syntax and Semantics</quote> defined in
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">The Common Object Request Broker: Architecture and
        Specification, version 2</titleref>, Object Management
        Group. The latest version of CORBA version 2.0 is available at
        http://www.omg.org/technology/documents/formal/corba_2.htm.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="IRIRef" key="IETF IRIs" href="http://www.w3.org/International/iri-edit/draft-duerst-iri-03.txt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Internationalized Resource Identifiers
	(IRIs)</titleref>, M. D&#252;rst, and M. Suignard, Authors. Internet
	Engineering Task Force, March 2003. Available at
	http://www.w3.org/International/iri-edit/draft-duerst-iri-03.txt.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="URIRef" key="IETF RFC 2396" href="http://www.ietf.org/rfc/rfc2396.txt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Uniform Resource Identifiers (URI): Generic Syntax</titleref>, T. Berners-Lee,
	R. Fielding, L. Masinter, Authors. Internet Engineering Task Force, August 1998. Available at
	http://www.ietf.org/rfc/rfc2396.txt.
      </bibl>      
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="RFC2616" key="IETF RFC 2616" href="http://www.ietf.org/rfc/rfc2616.txt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Hypertext Transfer Protocol -- HTTP/1.1</titleref>,
	R. Fielding, et al., Authors. Internet Engineering Task Force,
	June 1999. Available at http://www.ietf.org/rfc/rfc2616.txt.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="RFC3023" key="IETF RFC 3023" href="http://www.ietf.org/rfc/rfc3023.txt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Media Types</titleref>, M. Murata, S. St.Laurent,
	and D. Kohn, Editors. Internet Engineering Task Force, January
	2001. Available at http://www.ietf.org/rfc/rfc3023.txt.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="SAX" key="SAX" href="http://www.saxproject.org/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Simple API for XML</titleref>, D. Megginson and
        D. Brownell, Maintainers. Available at
        http://www.saxproject.org/.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="SVG1" key="SVG 1.1" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Scalable Vector Graphics (SVG) 1.1
	Specification</titleref>, J. Ferraiolo, &#34276;&#27810;
	&#28147; (FUJISAWA Jun), and D. Jackson, Editors. World Wide Web
	Consortium, 14 January 2003. This version of the SVG 1.1
	Recommendation is http://www.w3.org/TR/2003/REC-SVG11-20030114/. The <loc href="http://www.w3.org/TR/SVG" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of SVG 1.1</loc>
	is available at http://www.w3.org/TR/SVG.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="Unicode" key="Unicode" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">The Unicode Standard, Version 4</titleref>, ISBN
	0-321-18578-1, as updated from time to time by the publication
	of new versions. The Unicode Consortium, 2000. See also <loc href="http://www.unicode.org/unicode/standard/versions" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Versions
	of the Unicode Standard</loc>, available at
	http://www.unicode.org/unicode/standard/versions, for latest
	version and additional information on versions of the standard
	and of the Unicode Character Database.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="UnicodeNormalization" key="UTR #15" href="http://www.unicode.org/unicode/reports/tr15/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Unicode Normalization Forms</titleref>, The Unicode
	Standard Annex #15. The Unicode Consortium, 2003. The latest
	version of this annex is available at
	http://www.unicode.org/unicode/reports/tr15/.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="VoiceXML20" key="VoiceXML 2.0" href="http://www.w3.org/TR/2003/CR-voicexml20-20030220" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Voice Extensible Markup Language (VoiceXML) Version
        2.0</titleref>, S. McGlashan, et al., Editors. World Wide Web
        Consortium, February 2003. This version of the Voice Extensible
        Markup Language Version 2.0 specification is
        http://www.w3.org/TR/2003/CR-voicexml20-20030220. The <loc href="http://www.w3.org/TR/voicexml20/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of Voice
        Extensible Markup Language Version 2.0</loc> is available at
        http://www.w3.org/TR/voicexml20/.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XForms10" key="XForms 1.0" href="http://www.w3.org/TR/2003/REC-xforms-20031014/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XForms 1.0</titleref>, M. Dubinko, et al.,
        Editors. World Wide Web Consortium, 14 October 2003. This
        version of the XForms 1.0 Recommendation is http://www.w3.org/TR/2003/REC-xforms-20031014/. The <loc href="http://www.w3.org/TR/xforms/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XForms
        1.0</loc> is available at http://www.w3.org/TR/xforms/.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XHTML10" key="XHTML 1.0" href="http://www.w3.org/TR/2002/REC-xhtml1-20020801" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XHTML 1.0: The Extensible HyperText Markup
        Language</titleref>, S. Pemberton, et al., Authors. World Wide
        Web Consortium, 26 January 2000, revised 1 August 2002. This
        version of the XHTML 1.0 Recommendation is http://www.w3.org/TR/2002/REC-xhtml1-20020801. The <loc href="http://www.w3.org/TR/xhtml1" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XHTML
        1.0</loc> is available at http://www.w3.org/TR/xhtml1.
      </bibl>
<!--
      <bibl id='XHTML11' key='XHTML 1.1'>
	W3C (World Wide Web Consortium) <loc href='&xhtml11;'>XHTML 1.1 -
	  Module-base XHTML</loc>, May 2001. Available at &xhtml11;
      </bibl>
-->
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XPath20DataModel" key="XQuery 1.0 and XPath 2.0 Data Model" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	W3C (World Wide Web Consortium) <loc href="http://www.w3.org/TR/query-datamodel/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">XQuery
	1.0 and XML Path 2.0 Data Model</loc>, June 2001. Available at
	http://www.w3.org/TR/query-datamodel
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XML" key="XML 1.0" href="http://www.w3.org/TR/2004/REC-xml-20040204" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Extensible Markup Language (XML) 1.0 (Third
	Edition)</titleref>, T. Bray, J. Paoli, C. M. Sperberg-McQueen,
	E. Maler, and F. Yergeau, Editors. World Wide Web Consortium, 4
	February 2004, revised 10 February 1998 and 6 October 2000. This
	version of the XML 1.0 Recommendation is http://www.w3.org/TR/2004/REC-xml-20040204. The <loc href="http://www.w3.org/TR/REC-xml" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML
	1.0</loc> is available at http://www.w3.org/TR/REC-xml.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XML11" key="XML 1.1" href="http://www.w3.org/TR/2004/REC-xml11-20040204/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML 1.1</titleref>, T. Bray, and al., Editors. World
	Wide Web Consortium, 4 February 2004. This version of the XML 1.1
	Recommendation is http://www.w3.org/TR/2004/REC-xml11-20040204. The <loc href="http://www.w3.org/TR/xml11/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML
	1.1</loc> is available at http://www.w3.org/TR/xml11.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XMLBase" key="XML Base" href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Base</titleref>, J. Marsh, Editor. World
	Wide Web Consortium, June 2001.  This version of the XML Base
	Recommendation is http://www.w3.org/TR/2001/REC-xmlbase-20010627. The <loc href="http://www.w3.org/TR/xmlbase/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML
	Base</loc> is available at http://www.w3.org/TR/xmlbase.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="InfoSet" key="XML Information Set" href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Information Set (Second Edition)</titleref>,
        J. Cowan and R. Tobin, Editors. World Wide Web Consortium, 4
        February 2004, revised 24 October 2001.  This version of the XML
        Information Set Recommendation is http://www.w3.org/TR/2004/REC-xml-infoset-20040204. The <loc href="http://www.w3.org/TR/xml-infoset/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML
        Information Set</loc> is available at
        http://www.w3.org/TR/xml-infoset.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XMLEvents" key="XML Events" href="http://www.w3.org/TR/2003/PR-xml-events-20030804/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Events</titleref>, S. McCarron, S. Pemberton,
	and T.V. Raman, Editors. World Wide Web Consortium, August
	2003. This version of the XML Events specification is
	http://www.w3.org/TR/2003/PR-xml-events-20030804. The <loc href="http://www.w3.org/TR/xml-events/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML
	Events</loc> is available at http://www.w3.org/TR/xml-events.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="Namespaces" key="XML Namespaces" href="http://www.w3.org/TR/1999/REC-xml-names-19990114/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Namespaces in XML</titleref>, T. Bray, D.  Hollander,
	and A. Layman, Editors. World Wide Web Consortium, 14 January
	1999. This version of the Namespaces in XML Recommendation is
	http://www.w3.org/TR/1999/REC-xml-names-19990114. The <loc href="http://www.w3.org/TR/REC-xml-names/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
	Namespaces in XML</loc> is available at
	http://www.w3.org/TR/REC-xml-names.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="Namespaces11" key="XML Namespaces 1.1" href="http://www.w3.org/TR/2004/REC-xml-names11-20040204/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Namespaces in XML 1.1</titleref>, T. Bray, D.
	Hollander, A. Layman, and R. Tobin, Editors. World Wide Web
	Consortium, 4 February 2004. This version of the Namespaces in
	XML 1.1 Recommendation is
	http://www.w3.org/TR/2004/REC-xml-names11-20040204. The <loc href="http://www.w3.org/TR/xml-names11/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
	Namespaces in XML 1.1</loc> is available at
	http://www.w3.org/TR/xml-names11/.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XMLSchema0" key="XML Schema Part 0" href="http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Schema Part 0: Primer</titleref>, D. Fallside,
	Editor. World Wide Web Consortium, 2 May 2001.  This version of
	the XML Part 0 Recommendation is http://www.w3.org/TR/2001/REC-xmlschema-0-20010502. The
	<loc href="http://www.w3.org/TR/xmlschema-0/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
	XML Schema Part 0</loc> is available at
	http://www.w3.org/TR/xmlschema-0.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XMLSchema1" key="XML Schema Part 1" href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Schema Part 1: Structures</titleref>, H. Thompson,
	D. Beech, M. Maloney, and N. Mendelsohn, Editors. World Wide Web
	Consortium, 2 May 2001. This version of the XML Part 1
	Recommendation is http://www.w3.org/TR/2001/REC-xmlschema-1-20010502. The <loc href="http://www.w3.org/TR/xmlschema-1/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML
	Schema Part 1</loc> is available at
	http://www.w3.org/TR/xmlschema-1.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XMLSchema2" key="XML Schema Part 2" href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Schema Part 2: Datatypes</titleref>, P. Byron and
	Ashok Malhotra, Editors. World Wide Web Consortium, 2 May 2001.
	This version of the XML Part 2 Recommendation is
	http://www.w3.org/TR/2001/REC-xmlschema-2-20010502. The <loc href="http://www.w3.org/TR/xmlschema-2/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XML
	Schema Part 2</loc> is available at
	http://www.w3.org/TR/xmlschema-2.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XML-StyleSheet" key="XML StyleSheet" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	W3C (World Wide Web Consortium) <loc href="http://www.w3.org/1999/06/REC-xml-stylesheet-19990629" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Associating Style Sheets with XML
	documents Version 1.0</loc>, June 1999. Available at
	http://www.w3.org/1999/06/REC-xml-stylesheet-19990629
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XPath10" href="http://www.w3.org/TR/1999/REC-xpath-19991116" key="XPath 1.0" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Path Language (XPath) Version 1.0</titleref>,
	J. Clark and S. DeRose, Editors. World Wide Web
	Consortium, 16 November 1999. This version of the XPath 1.0
	Recommendation is http://www.w3.org/TR/1999/REC-xpath-19991116. The <loc href="http://www.w3.org/TR/xpath" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of XPath
	1.0</loc> is available at http://www.w3.org/TR/xpath.
      </bibl>
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="XPointer" key="XPointer" href="http://www.w3.org/TR/2003/REC-xptr-framework-20030325/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XPointer Framework</titleref>, P. Grosso, E. Maler,
	J. Marsh, and N. Walsh., Editors. World Wide Web Consortium,
	25 March 2003.  This version of the XPointer Framework
	Recommendation is http://www.w3.org/TR/2003/REC-xptr-framework-20030325/. The <loc href="http://www.w3.org/TR/xptr-framework/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of
	XPointer Framework</loc> is available at
	http://www.w3.org/TR/xptr-framework/.
      </bibl>
    </blist>

</div1>
<!--
 *************************************************************************
 * END OF REFERENCES                                                     *
 *************************************************************************
-->

  
<!-- $Id: xml-source.xml,v 1.1 2004/02/23 21:49:04 plehegar Exp $ -->
<!--
 *************************************************************************
 * BEGINNING OF DOM INDEX                                                * 
 *************************************************************************
-->
<div1 role="index" id="Index">
  <head>Index</head>
  <?GENERATE-DEFINITION-INDEX?>
</div1>
<!--
 *************************************************************************
 * END OF DOM INDEX                                                      *
 *************************************************************************
-->
 
</back> </spec>