<?xml version="1.0" encoding="us-ascii"?>
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 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="cr" 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 Load
and Save Specification</title>
<version>1.0</version> <w3c-designation>CR-DOM-Level-3-LS-20031107
</w3c-designation> <w3c-doctype>W3C Candidate Recommendation</w3c-doctype> <pubdate> 
<day>07</day> <month>November</month> <year>2003</year> 
</pubdate> 
<publoc> <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2003/CR-DOM-Level-3-LS-20031107" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2003/CR-DOM-Level-3-LS-20031107</loc>
</publoc>
<altlocs>
      <loc xmlns:xlink="http://www.w3.org/1999/xlink" role="html" href="http://www.w3.org/TR/2003/CR-DOM-Level-3-LS-20031107/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/2003/CR-DOM-Level-3-LS-20031107/DOM3-LS.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/2003/CR-DOM-Level-3-LS-20031107/DOM3-LS.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/2003/CR-DOM-Level-3-LS-20031107/DOM3-LS.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/2003/CR-DOM-Level-3-LS-20031107/DOM3-LS.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/2003/CR-DOM-Level-3-LS-20031107/DOM3-LS.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-LS" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/DOM-Level-3-LS</loc> </latestloc> 
<prevlocs>
<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2003/WD-DOM-Level-3-LS-20030619" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2003/WD-DOM-Level-3-LS-20030619</loc>
</prevlocs> 
<authlist> 
<author role="editor"><name>Johnny Stenback</name>
<affiliation>Netscape</affiliation>
</author>
<author role="editor"> <name>Andy Heninger</name>
<affiliation>IBM (until March 2001)</affiliation>
</author> 
</authlist>
    <!--
    ******************************************************
    * DOCUMENT ABSTRACT                                  *
    ******************************************************
    -->
<abstract id="id-abstract"> 

      <p>
	This specification defines the Document Object Model Load and
	Save Level 3, a platform- and language-neutral interface that
	allows programs and scripts to dynamically load the content of
	an XML document into a DOM document and serialize a DOM document
	into an XML document; DOM documents being defined in <bibref ref="DOM2Core"/> or newer, and XML documents being defined in
	<bibref ref="XML"/> or newer.
      </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 document contains the Document Object Model Level 3 Load
	and Save specification and is a <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/2003/06/Process-20030618/tr.html#RecsCR" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Candidate
	Recommendation</loc> Working Draft for review by W3C members and
	other interested parties. It is based on the feedback during the
	<loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/2003/06/19-dom-ls-issues/issues.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Last
	Call</loc> period and the feedback received on the DOM Level 3
	Core specification. The DOM Working Group expects to request
	that the Director advance this specification to Proposed
	Recommendation after the DOM Working Group documents two
	interoperable implementations of at least one normative
	binding. Basic tests of functionalities provided in this
	specification will be produced and used in this effort. The two
	implementations must be produced by different
	organizations. Implementation feedbacks are welcome until 30
	November 2003 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> (<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">public archive</loc>).
      </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. The <loc xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/2003/10/DOM-Level-3-LS-implementations.html" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">implementation
        report</loc> is available.
      </p>
      <p>
	Given the lack of implementation commitments regarding character
	normalization, the DOM Working Group considers it "at
	risk". This affects the "check-character-normalization"
	and "<termref def="parameter-normalize-characters">normalize-characters</termref>"
	parameters defined in the <code>DOMConfiguration</code>
	interface in the <bibref ref="DOMCore"/>. The Working Group may
	remove the parameters before requesting Proposed Recommendation
	status.
      </p>
      <p>
	Publication as a Candidate Recommendation 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. It is inappropriate to cite this document as other than
	work in progress.
      </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>
        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.3 $</p>
</revisiondesc>
<?GENERATE-TOC?>
</header>
<front>
  
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<div1 id="TOC">
  <head>Expanded Table of Contents</head>
  <?GENERATE-EXPANDED-TOC?>	
</div1>

  
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--
 *************************************************************************
 * BEGINNING OF COPYRIGHT NOTICE                                         *
 *************************************************************************
-->
<div1 id="Copyright-Notice">
  <head>W3C Copyright Notices and Licenses</head>

  <p role="important">
    Copyright &#169; 2003 <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>
    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; 2003 <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; 2003 <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; 2003 <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                                               *
 *************************************************************************
-->

</front> 
 
<body>
  
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--
 *************************************************************************
 * BEGINNING OF LOAD-SAVE                                                *
 *************************************************************************
-->
<div1 id="Load-Save">
  <head>Document Object Model Load and Save</head>
  <orglist role="editors">
     <member>
        <name>Johnny Stenback</name>
        <affiliation>Netscape</affiliation>
     </member>
     <member>
        <name>Andy Heninger</name>
        <affiliation>IBM (until March 2001)</affiliation>
     </member>

  </orglist> 

<?GENERATE-MINI-TOC?>

<!--
  ******************************************************
  | INTRODUCTION                                       |
  ******************************************************
  -->


 <!--
  ******************************************************
  | Interfaces                                         |
  ******************************************************
  -->
  <p>
    This section defines a set of interfaces for loading and saving
    document objects as defined in <bibref ref="DOM2Core"/> or
    newer. The functionality specified in this section (the <emph>Load
    and Save</emph> functionality) is sufficient to allow software
    developers and web script authors to load and save XML content
    inside conforming products. The DOM Load and Save <termref def="dt-API">API</termref> also allows filtering of XML content
    using only DOM API calls; access and manipulation of the
    <code>Document</code> is defined in <bibref ref="DOM2Core"/> or
    newer.
  </p>
  <p>
    The proposal for loading is influenced by the Java APIs for XML
    Processing <bibref role="informative" ref="JAXP"/> and by SAX2
    <bibref role="informative" ref="SAX"/>.
  </p>
  <div2 id="Level-3-LS-Interface">
    <head>Overview of the Interfaces</head>
    
    <p>
      The list of interfaces involved with the Loading and Saving XML
      documents is:
    </p>
    
    <ulist>
      <item>
	<p>
	  <code>DOMImplementationLS</code> -- An extended
	  <code>DOMImplementation</code> interface that provides the
	  factory methods for creating the objects required for
	  loading and saving.
	</p>
      </item>
      <item>
	<p>
	  <code>LSParser</code> -- An interface for parsing data into
	  DOM documents.
	</p>
      </item>
      <item>
	<p>
	  <code>LSInput</code> -- Encapsulates information about the
	  data to be loaded.
	</p>
      </item>
      <item>
	<p>
	  <code>LSResourceResolver</code> -- Provides a way for
	  applications to redirect references to external resources
	  when parsing.
	</p>
      </item>
      <item>
	<p>
	  <code>LSParserFilter</code> -- Provides the ability to
	  examine and optionally remove nodes as they are being
	  processed while parsing.
	</p>
      </item>
      <item>
	<p>
	  <code>LSSerializer</code> -- An interface for serializing
	  DOM documents or nodes.
	</p>
      </item>
      <item>
	<p>
	  <code>LSOutput</code> -- Encapsulates information about the
	  destination for the data to be output.
	</p>
      </item>
      <item>
	<p>
	  <code>LSSerializerFilter</code> -- Provides the ability to
	  examine and optionally remove nodes as they are being
	  processed while serializing DOM nodes.
	</p>
      </item>
    </ulist>
  </div2>
  <div2 id="LS-BasicTypes">
    <head>Basic types</head>
    <p>
      To ensure interoperability, this specification specifies the
      following basic types used in various DOM modules. Even though
      the DOM uses the basic types in the interfaces, bindings may
      use different types and normative bindings are only given for Java
      and ECMAScript in this specification. 
    </p>
    <div3 id="LS-LSInputStream">
      <head>The <code>LSInputStream</code> type</head>
      <p>
	This type is used to represent a sequence of input bytes.
      </p>
      <definitions>
        <typedef name="LSInputStream" id="LSInputStream">
          <descr>
            <p>A <code>LSInputStream</code> represents a reference to a
	      byte stream source of an XML input.</p>
          </descr>
          <typename>Object</typename>
        </typedef>
      </definitions>
      <note>
        <p>
	  For Java, <code>LSInputStream</code> is bound to the
	  <code>java.io.InputStream</code> type. For ECMAScript,
	  <code>LSInputStream</code> is bound to <code>Object</code>.
	</p>
      </note>      
    </div3>
    <div3 id="LS-LSOutputStream">
      <head>The <code>LSOutputStream</code> type</head>
      <p>
	This type is used to represent a sequence of output bytes.
      </p>
      <definitions>
        <typedef name="LSOutputStream" id="LSOutputStream">
          <descr>
            <p>A <code>LSOutputStream</code> represents a byte
	      stream destination for the XML output.</p>
          </descr>
          <typename>Object</typename>
        </typedef>
      </definitions>
      <note>
        <p>
	  For Java, <code>LSOutputStream</code> is bound to the
	  <code>java.io.OutputStream</code> type. For ECMAScript,
	  <code>LSOutputStream</code> is bound to <code>Object</code>.
	</p>
      </note>      
    </div3>
    <div3 id="LS-LSReader">
      <head>The <code>LSReader</code> type</head>
      <p>
	This type is used to represent a sequence of input characters
	in <termref def="dt-16-bit-unit">16-bit units</termref>. The
	encoding used for the characters is UTF-16, as defined in
	<bibref ref="Unicode"/> and in <bibref ref="ISO10646"/>).
      </p>
      <definitions>
        <typedef name="LSReader" id="LSReader">
          <descr>
            <p>A <code>LSReader</code> represents a character
	      stream for the XML input.</p>
          </descr>
          <typename>Object</typename>
        </typedef>
      </definitions>
      <note>
        <p>
	  For Java, <code>LSReader</code> is bound to the
	  <code>java.io.Reader</code> type. For ECMAScript,
	  <code>LSReader</code> is <emph>NOT</emph> bound, and
	  therefore as no recommended meaning in ECMAScript.
	</p>
      </note>      
    </div3>

    <div3 id="LS-LSWriter">
      <head>The <code>LSWriter</code> type</head>
      <p>
	This type is used to represent a sequence of output characters
	in <termref def="dt-16-bit-unit">16-bit units</termref>. The
	encoding used for the characters is UTF-16, as defined in
	<bibref ref="Unicode"/> and in <bibref ref="ISO10646"/>).
      </p>
      <definitions>
        <typedef name="LSWriter" id="LSWriter">
          <descr>
            <p>A <code>LSWriter</code> represents a character
	      stream for the XML input.</p>
          </descr>
          <typename>Object</typename>
        </typedef>
      </definitions>
      <note>
        <p>
	  For Java, <code>LSWriter</code> is bound to the
	  <code>java.io.Writer</code> type. For ECMAScript,
	  <code>LSWriter</code> is <emph>NOT</emph> bound, and
	  therefore as no recommended meaning in ECMAScript.
	</p>
      </note>      
    </div3>
  </div2>

  <div2 id="LS-fundamental">
    <head>Fundamental interfaces</head>

      <p>
	The interface within this section is considered fundamental, and must
	be fully implemented by all conforming implementations of the DOM Load
	and Save module.
      </p>
      <p>
	A DOM application may use the <code>hasFeature(feature,
	version)</code> method of the <code>DOMImplementation</code>
	interface with parameter values <code>"LS"</code> (or
	<code>"LS-Async"</code>) and <code>"3.0"</code> (respectively)
	to determine whether or not these interfaces are supported by
	the implementation.  In order to fully support them, an
	implementation must also support the "Core" feature defined in
	<bibref ref="DOM2Core"/>.
      </p>
      
      <p>
	A DOM application may use the <code>hasFeature(feature,
	version)</code> method of the <code>DOMImplementation</code>
	interface with parameter values <code>"LS-Async"</code> and
	<code>"3.0"</code> (respectively) to determine whether or not
	the asynchronous mode is supported by the implementation. In
	order to fully support the asynchronous mode, an
	implementation must also support the <code>"LS"</code> feature
	defined in this section.
      </p>
      <p>
	For additional information about <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/introduction.html#ID-Conformance" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">conformance</xspecref>,
	please see the DOM Level 3 Core specification <bibref ref="DOMCore"/>.
      </p>

      <definitions>
        
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      DOMImplementationLS                                              =
=                                                                       =
======================================================================-->
<interface name="DOMImplementationLS" id="LS-DOMImplementation">
  <descr>
    <p>
      <code>DOMImplementationLS</code> contains the factory methods for
      creating Load and Save objects.
    </p>
    
    <p>
      The expectation is that an instance of the
      <code>DOMImplementationLS</code> interface can be obtained by
      using binding-specific casting methods on an instance of the
      <code>DOMImplementation</code> interface or, if the
      <code>Document</code> supports the feature <code>"Core"</code>
      version <code>"3.0"</code> defined in <bibref role="informative" ref="DOMCore"/>, by using the method
      <code>DOMImplementation.getFeature</code> with parameter values
      <code>"LS"</code> (or <code>"LS-Async"</code>) and
      <code>"3.0"</code> (respectively).
    </p>
  </descr>
  
  <group name="DOMImplementationLSMode" id="LS-DOMImplementationLS-DOMImplementationLSMode">
    <descr>
      <p>Integer parser mode constants.</p> 	    
    </descr>
    <constant name="MODE_SYNCHRONOUS" id="LS-DOMImplementationLS-MODE_SYNC" type="unsigned short" value="1"> 
      <descr>
	<p>Create a synchronous <code>LSParser</code>.</p>
      </descr> 
    </constant> 
    
    <constant name="MODE_ASYNCHRONOUS" id="LS-DOMImplementationLS-MODE_ASYNCH" type="unsigned short" value="2"> 
      <descr>
	<p>Create an asynchronous <code>LSParser</code>.</p>
      </descr> 
    </constant> 
  </group>
  
  <method name="createLSParser" id="LS-DOMImplementationLS-createLSParser">
    <descr>
      <p>Create a new <code>LSParser</code>.  The newly constructed
      parser may then be configured by means of its
      <code>DOMConfiguration</code> object, and used to parse documents by
      means of its <code>parse</code> method.  </p></descr>
    
    <parameters>
      <param name="mode" type="unsigned short" attr="in">
        <descr><p> The <code>mode</code> argument is either
        <code>MODE_SYNCHRONOUS</code> or <code>MODE_ASYNCHRONOUS</code>,
        if <code>mode</code> is <code>MODE_SYNCHRONOUS</code> then the
        <code>LSParser</code> that is created will operate in
        synchronous mode, if it's <code>MODE_ASYNCHRONOUS</code> then
        the <code>LSParser</code> that is created will operate in
        asynchronous mode.  </p></descr>
      </param>
      <param name="schemaType" type="DOMString" attr="in">
	<descr>
	  <p>
	    An absolute URI representing the type of the <termref def="dt-schema">schema</termref> language used during the
	    load of a <code>Document</code> using the newly created
	    <code>LSParser</code>. Note that no lexical checking is
	    done on the absolute URI. In order to create a
	    <code>LSParser</code> for any kind of schema types
	    (i.e. the LSParser will be free to use any schema found),
	    use the value <code>null</code>.
	  </p>
	  <note>
	    <p>
	      For W3C XML Schema <bibref ref="XMLSchema1" role="informative"/>, applications must use the value
	      <code>"http://www.w3.org/2001/XMLSchema"</code>.  For XML
	      DTD <bibref ref="XML" role="informative"/>, applications
	      must use the value
	      <code>"http://www.w3.org/TR/REC-xml"</code>. Other Schema
	      languages are outside the scope of the W3C and therefore
	      should recommend an absolute URI in order to use this
	      method.
	    </p>
	  </note>		    
	</descr>
      </param>
    </parameters>
    
    <returns type="LSParser">
      <descr>
	<p>
	  The newly created <code>LSParser</code> object. This
	  <code>LSParser</code> is either synchronous or asynchronous
	  depending on the value of the <code>mode</code> argument.
	</p>
	<note>
	  <p>
	    By default, the newly created <code>LSParser</code> does
	    not contain a <code>DOMErrorHandler</code>, i.e. the value
	    of the "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">error-handler</xspecref>"
	    configuration parameter is <code>null</code>. However,
	    implementations may provide a default error handler at
	    creation time. In that case, the initial value of the
	    <code>"error-handler"</code> configuration parameter on the
	    new created <code>LSParser</code> contains a reference to
	    the default error handler.
	  </p>
	</note>
      </descr>
    </returns>
    
    <raises>
      <exception name="DOMException">
	<descr>
	  <p>
	    NOT_SUPPORTED_ERR: Raised if the requested mode or schema
	    type is not supported.
	  </p>
	</descr>
      </exception>
    </raises>
  </method>
  
  
  <method name="createLSSerializer" id="LS-DOMImplementationLS-createLSSerializer">
    <descr>
      <p>
        Create a new <code>LSSerializer</code> object.
      </p>
    </descr>
    
    <parameters>
      <!-- no parameters -->
    </parameters>
    
    <returns type="LSSerializer">
      <descr><p>The newly created <code>LSSerializer</code> object.</p>
	<note>
	  <p>
	    By default, the newly created <code>LSSerializer</code>
	    has no <code>DOMErrorHandler</code>, i.e. the value of the
	    <code>"error-handler"</code> configuration parameter is
	    <code>null</code>. However, implementations may provide a
	    default error handler at creation time. In that case, the
	    initial value of the <code>"error-handler"</code>
	    configuration parameter on the new created
	    <code>LSSerializer</code> contains a reference to the
	    default error handler.
	  </p>
	</note>
      </descr>
    </returns>
    
    <raises>
    </raises>
  </method>
  
  
  <!-- gone, unless we decide that DOMOutputStream should be a real interface
  rather than an opaque mapping to a system stream type -->

  <!--
<method name="createDOMOutputStream" id="LS-createDOMOutputStream">
<descr><p>Create a new <code>DOMOutputStream</code> from
  the stream that is given as a parameter.  <code>DOMOutputStream</code>
  provides the destination to which DOM documents are
  written by <code>LSSerializer</code>s.</p>
</descr>
  
<parameters>
<param name="stream" type="OutputStream" attr="in">
<descr><p>A stream of a native system type, not a type defined
  by the DOM.  The exact type depends on the specific
  language binding.  All modern operating systems and/or
  language runtimes provide some form of an abstract
  byte stream to which data can be written; each specific
  DOM binding should choose its most appropriate stream
  type for this parameter.
</p></descr>
</param>
</parameters>

<returns type="DOMOutputStream">
<descr><p>The newly created output stream object.</p>
</descr>
</returns>
  
<raises>
</raises>
</method>
  -->
  
  <method name="createLSInput" id="LS-DOMImplementationLS-createLSInput">
    <descr>
      <p>
        Create a new empty input source object where
        <code>LSInput.characterStream</code>,
        <code>LSInput.byteStream</code>,
        <code>LSInput.stringData</code>
        <code>LSInput.systemId</code>,
        <code>LSInput.publicId</code>, <code>LSInput.baseURI</code>,
        and <code>LSInput.encoding</code> are null, and
        <code>LSInput.certifiedText</code> is false.
      </p>
    </descr>
    
    <parameters>
      <!-- no parameters -->
    </parameters>
    
    <returns type="LSInput">
      <descr>
        <p>
	  The newly created input object.
        </p>
      </descr>
    </returns>
    
    <raises>
      <!-- No exceptions -->
    </raises>
  </method>
    
  <method name="createLSOutput" id="LS-DOMImplementationLS-createLSOutput">
    <descr>
      <p>
        Create a new empty output destination object where
        <code>LSOutput.characterStream</code>,
        <code>LSOutput.byteStream</code>,
        <code>LSOutput.systemId</code>,
        <code>LSOutput.encoding</code> are null.
      </p>
    </descr>
    
    <parameters>
      <!-- no parameters -->
    </parameters>
    
    <returns type="LSOutput">
      <descr>
        <p>
	  The newly created output object.
        </p>
      </descr>
    </returns>
    
    <raises>
      <!-- No exceptions -->
    </raises>
  </method>
    
</interface>


	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSParser                                                       =
=                                                                       =
======================================================================-->
<interface name="LSParser" id="LS-LSParser">
  <descr>
    <p>
      An interface to an object that is able to build, or augment, a
      DOM tree from various input sources.
    </p>

    <p>
      <code>LSParser</code> provides an API for parsing XML and
      building the corresponding DOM document structure. A
      <code>LSParser</code> instance can be obtained by invoking the
      <code>DOMImplementationLS.createLSParser()</code> method.
    </p>

    <p>
      As specified in <bibref ref="DOMCore"/>, when a document is
      first made available via the LSParser:
    </p>
    <ulist>
      <item>
	<p>
	  there will never be two adjacent nodes of type NODE_TEXT,
	  and there will never be empty text nodes.
	</p>
      </item>
      <item>
	<p>
	  it is expected that the <code>value</code> and
	  <code>nodeValue</code> attributes of an <code>Attr</code>
	  node initially return the <xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/2000/REC-xml-20001006#AVNormalize" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML 1.0 normalized
	  value</xspecref>. However, if the parameters "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate-if-schema" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">validate-if-schema</xspecref>"
	  and "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-datatype-normalization" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">datatype-normalization</xspecref>"
	  are set to <code>true</code>, depending on the attribute
	  normalization used, the attribute values may differ from the
	  ones obtained by the XML 1.0 attribute
	  normalization. <termdef id="infoset-attribute" term="[attributes]">If the parameters "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-datatype-normalization" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">datatype-normalization</xspecref>"
	  is set to <code>false</code>, the XML 1.0 attribute
	  normalization is guaranteed to occur, and if the attributes
	  list does not contain namespace declarations, the
	  <code>attributes</code> attribute on <code>Element</code>
	  node represents the property
	  <b>[attributes]</b> defined in <bibref ref="InfoSet"/></termdef>.
	</p>
      </item>
    </ulist>
    
    <p>
      Asynchronous <code>LSParser</code> objects are expected to also
      implement the <code>events::EventTarget</code> interface so that
      event listeners can be registered on asynchronous
      <code>LSParser</code> objects.
    </p>
    
    <p>
      Events supported by asynchronous <code>LSParser</code> objects are:
    </p>
    
    <glist>
      <gitem>
	<label id="event-load">load</label>
	<def>
	  <p>
	    The <code>LSParser</code> finishes to load the
	    document. See also the definition of the
	    <code>LSLoadEvent</code> interface.
	  </p>
	</def>
      </gitem>      
      <gitem>
	<label id="event-progress">progress</label>
	<def>
	  <p>
	    The <code>LSParser</code> signals progress as data is
	    parsed.
	  </p>
	  <p>
	    This specification does not attempt to define exactly when
	    progress events should be dispatched, that is
	    intentionally left as implementation depenedent, but here
	    is one example of how an application might dispatch
	    progress events. Once the parser starts receiving data, a
	    progress event is dispatched to indicate that the parsing
	    starts, then from there on, a progress event is dispatched
	    for every 4096 bytes of data that is received and
	    processed. This is only one example, though, and
	    implementations can choose to dispatch progress events at
	    any time while parsing, or not dispatch them at all.
	  </p>
	  <p>
	    See also the definition of the
	    <code>LSProgressEvent</code> interface.
	  </p>
	</def>
      </gitem>
    </glist>
    <note>
      <p>
	All events defined in this specification use the namespace URI
	<code>"http://www.w3.org/2002/DOMLS"</code>.
      </p>
    </note>

    <p>
      While parsing an input source, errors are reported to the
      application through the error handler
      (<code>LSParser.config</code>'s "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">error-handler</xspecref>"
      parameter). This specification does in no way try to define all
      possible errors that can occur while parsing XML, or any other
      markup, but some common error cases are defined. The types
      (<code>DOMError.type</code>) of errors and warnings defined by
      this specification are:

      <glist>
        <gitem>
          <label>
	    <code>"check-character-normalization-failure" [error]</code>
	  </label>
          <def>
            <p>
              Raised if the paramter "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-check-character-normalization" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">check-character-normalization</xspecref>"
              is set to true and a string is encoutered that fails
              normalization checking.
            </p>
          </def>
        </gitem>
        <gitem>
          <label><code>"doctype-not-allowed" [fatal]</code></label>
          <def>
            <p>
              Raised if the configuration parameter "<termref def="parameter-disallow-doctype">disallow-doctype</termref>"
              is set to <code>true</code> and a doctype is encountered.
            </p>
          </def>
        </gitem>
        <gitem>
          <label><code>"pi-base-uri-not-preserved" [warning]</code></label>
          <def>
            <p>
              Raised if a processing instruction is encoutered in a
              location where the base URI of the processing
              instruction can not be preserved.
            </p>
            <p>
              One example of a case where this warning will be raised is
              if the configuration parameter "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">entities</xspecref>"
              is set to <code>false</code> and the following XML file is
              parsed:
            </p>
            <eg role="code" xml:space="preserve">&lt;!DOCTYPE root [
&lt;!ENTITY e SYSTEM 'subdir/myentity.ent'
]&gt;

&lt;root&gt;
&amp;e;
&lt;/root&gt;</eg>
            <p>
              And <code>subdir/myentity.ent</code> contains:
            </p>
            <eg role="code" xml:space="preserve">&lt;one&gt;
  &lt;two/&gt;
&lt;/one&gt;
&lt;?pi 3.14159?&gt;
&lt;more/&gt;</eg>
          </def>
        </gitem>
        <gitem>
          <label><code>"unbound-prefix-in-entity" [warning]</code></label>
          <def>
            <p>
              An implementation dependent warning that may be raised
              if the configuration parameter "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-namespaces" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">namespaces</xspecref>"
              is set to <code>true</code> and an unbound namespace
              prefix is encountered in an entity's replacement
              text. Raising this warning is not enforced since some
              existing parsers may not recognize unbound namespace
              prefixes in the replacement text of entities.
            </p>
          </def>
        </gitem>
        <gitem>
          <label><code>"unknown-character-denormalization" [fatal]</code></label>
          <def>
            <p>
              Raised if the configuration parameter "<termref def="parameter-ignore-unknown-character-denormalizations">ignore-unknown-character-denormalizations</termref>"
              is set to <code>false</code> and a character is
              encountered for which the processor cannot determine the
              normalization properties.
            </p>
          </def>
        </gitem>
        <gitem>
          <label><code>"unsupported-encoding" [fatal]</code></label>
          <def>
            <p>
              Raised if an unsupported encoding is encountered.
            </p>
          </def>
        </gitem>
        <gitem>
          <label><code>"unsupported-media-type" [fatal]</code></label>
          <def>
            <p>
              Raised if the configuration parameter "<termref def="parameter-supported-media-types-only">supported-media-types-only</termref>"
              is set to <code>true</code> and an unsupported media type
              is encountered.
            </p>
          </def>
        </gitem>
      </glist>
    </p>

    <p>
      In addition to raising the defined errors and warnings,
      implementations are expected to raise implementation specific
      errors and warnings for any other error and warning cases such
      as IO errors (file not found, permission denied,...), XML
      well-formedness errors, and so on.
    </p>
  </descr>

  <attribute type="DOMConfiguration" readonly="yes" name="config" id="LS-LSParser-config">
    <descr>
      <p>
        The <code>DOMConfiguration</code> object used when parsing an
        input source. This <code>DOMConfiguration</code> is specific to
        the parse operation and no parameter values from this
        <code>DOMConfiguration</code> object are passed automatically to
        the <code>DOMConfiguration</code> object on the
        <code>Document</code> that is created, or used, by the parse
        operation. The DOM application is responsible for passing any
        needed parameter values from this <code>DOMConfiguration</code>
        object to the <code>DOMConfiguration</code> object referenced by
        the <code>Document</code> object.
      </p>
      <p>
	In addition to the parameters recognized in <bibref ref="DOMCore"/>, the <code>DOMConfiguration</code> objects for
	<code>LSParser</code> add or modify the following
	parameters:
      </p>
      <glist>
	<gitem>
	  <label id="parameter-charset-overrides-xml-encoding"><code>"charset-overrides-xml-encoding"</code></label>
	  <def>
	    <glist>
	      <gitem>
		<label><code>true</code></label>
		<def>
		  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
		  <p>
		    If a higher level protocol such as HTTP <bibref role="informative" ref="RFC2616"/> provides an
		    indication of the character encoding of the input
		    stream being processed, that will override any
		    encoding specified in the XML declaration or the
		    Text declaration (see also section 4.3.3, "Character
		    Encoding in Entities", in <bibref ref="XML"/>). Explicitly setting an encoding in the
		    <code>LSInput</code> overrides any encoding from
		    the protocol.
		  </p>
		</def>
	      </gitem>
	      <gitem>
		<label><code>false</code></label>
		<def>
		  <p>[<emph>required</emph>]</p>
		  <p>
		    The parser ignores any character set encoding
		    information from higher-level protocols.
		  </p>
		</def>
	      </gitem>
	    </glist>
	  </def>
	</gitem>
	<gitem>
	  <label id="parameter-disallow-doctype"><code>"disallow-doctype"</code></label>
	  <def>
	    <glist>
	      <gitem>
		<label><code>true</code></label>
		<def>
		  <p>[<emph>optional</emph>]</p>
		  <p>
		    Throw a fatal <b>"doctype-not-allowed"</b> error
		    if a doctype node is found while parsing the
		    document. This is useful when dealing with
		    things like SOAP envelopes where doctype nodes are
		    not allowed.
		  </p>
		</def>
	      </gitem>
	      <gitem>
		<label><code>false</code></label>
		<def>
		  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
		  <p>
		    Allow doctype nodes in the document.
		  </p>
		</def>
	      </gitem>
	    </glist>
	  </def>
	</gitem>
	<gitem>
	  <label id="parameter-ignore-unknown-character-denormalizations"><code>"ignore-unknown-character-denormalizations"</code></label>
	  <def>
	    <glist>
	      <gitem>
		<label><code>true</code></label>
		<def>
		  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
		  <p>
		    If, while verifying full normalization when <bibref ref="XML11"/> is supported, a processor encounters
		    characters for which it cannot determine the
		    normalization properties, then the processor will
		    ignore any possible denormalizations caused by these
		    characters.
		  </p>
                  <p>
                    This parameter is ignored for <bibref ref="XML"/>.
                  </p>
		</def>
	      </gitem>
	      <gitem>
		<label><code>false</code></label>
		<def>
		  <p>[<emph>optional</emph>]</p>
		  <p>
		    Report an fatal
		    <b>"unknown-character-denormalization"</b> error if
		    a character is encountered for which the processor
		    cannot determine the normalization properties.
		  </p>
		</def>
	      </gitem>
	    </glist>
	  </def>
	</gitem>
        <gitem>
          <label id="parameter-infoset"><code>"infoset"</code></label>
          <def>
	    <p>
	      See the definition of <code>DOMConfiguration</code> for
	      a description of this parameter. Unlike in <bibref ref="DOMCore"/>, this parameter will default to
	      <code>true</code> for <code>LSParser</code>.
	    </p>
          </def>
        </gitem>
      <gitem>
	<label id="parameter-namespaces"><code>"namespaces"</code></label>
	<def>
	  <glist>
	    <gitem>
	      <label><code>true</code></label>
	      <def>
		<p>[<emph>required</emph>] (<emph>default</emph>)</p>
		<p>
		  Perform the namespace processing as defined in
		  <bibref ref="Namespaces"/> and <bibref ref="Namespaces11"/>.
		</p>
	      </def>
	    </gitem>
	    <gitem>
	      <label><code>false</code></label>
	      <def>
		<p>[<emph>optional</emph>]</p>
		<p>
		  Do not perform the namespace processing.
		</p>
	      </def>
	    </gitem>
	  </glist>
	</def>
      </gitem>
        <gitem>
          <label id="parameter-resource-resolver"><code>"resource-resolver"</code></label>
          <def>
	    <p>[<emph>required</emph>]</p>
	    <p>
	      A reference to a <code>LSResourceResolver</code>
	      object, or null. If the value of this parameter is not
	      null when an external resource (such as an external XML
	      entity or an XML schema location) is encountered, the
	      implementation will request that the
	      <code>LSResourceResolver</code> referenced in this
	      parameter resolves the resource.
	    </p>
          </def>
        </gitem>
	<gitem>
	  <label id="parameter-supported-media-types-only"><code>"supported-media-types-only"</code></label>
	  <def>
	    <glist>
	      <gitem>
		<label><code>true</code></label>
		<def>
		  <p>[<emph>optional</emph>]</p>
		  <p>
                    Check that the media type of the parsed resource
                    is a supported media type. If an unsupported media
                    type is encountered, a fatal error of type
                    <b>"unsupported-media-type"</b> will be
                    raised. The media types defined in <bibref ref="RFC3023"/> must always be accepted.
		  </p>
		</def>
	      </gitem>
	      <gitem>
		<label><code>false</code></label>
		<def>
		  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
		  <p>
		    Accept any media type.
		  </p>
		</def>
	      </gitem>
	    </glist>
	  </def>
	</gitem>
      </glist>
      <p>
	The parameter "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-well-formed" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">well-formed</xspecref>"
	cannot be set to <code>false</code>.
      </p>
    </descr>
  </attribute>

  <attribute type="LSParserFilter" readonly="no" name="filter" id="LS-LSParser-filter">
    <descr>
      <p>
	When a filter is provided, the implementation will call out to
	the filter as it is constructing the DOM tree structure. The
	filter can choose to remove elements from the document being
	constructed, or to terminate the parsing early.
      </p>
      <p>
	The filter is invoked after the operations requested by the
	<code>DOMConfiguration</code> parameters have been applied. For
	example, if "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">validate</xspecref>"
	is set to <code>true</code>, the validation is done before
	invoking the filter.
      </p>
    </descr>
  </attribute>  

  <attribute type="boolean" readonly="yes" name="async" id="LS-LSParser-async">
    <descr>
      <p>
        <code>true</code> if the <code>LSParser</code> is asynchronous,
        <code>false</code> if it is synchronous.
      </p>
    </descr>
  </attribute>  

  <attribute type="boolean" readonly="yes" name="busy" id="LS-LSParser-busy">
    <descr>
      <p>
        <code>true</code> if the <code>LSParser</code> is currently
        busy loading a document, otherwise <code>false</code>.
      </p>
    </descr>
  </attribute>  
  
  <method name="parse" id="LS-LSParser-parse">
    <descr><p>Parse an XML document from a resource identified by a
        <code>LSInput</code>.</p>
    </descr>
    
    <parameters>
      <param name="input" type="LSInput" attr="in">
	<descr>
          <p>
            The <code>LSInput</code> from which the source of
            the document is to be read.
	  </p>
        </descr>
      </param>
    </parameters>
    
    <returns type="Document">
      <descr>
        <p>
          If the <code>LSParser</code> is a synchronous
          <code>LSParser</code>, the newly created and populated
          <code>Document</code> is returned. If the
          <code>LSParser</code> is asynchronous, <code>null</code>
          is returned since the document object may not yet be
          constructed when this method returns.
        </p>
      </descr>
    </returns>
    <raises>
      <exception name="DOMException">
	<descr>
          <p>
            INVALID_STATE_ERR: Raised if the <code>LSParser</code>'s
            <code>LSParser.busy</code> attribute is <code>true</code>.
          </p>
	</descr>
      </exception>
    </raises>
  </method>
  
  <method name="parseURI" id="LS-LSParser-parseURI">
    <descr>
      <p>
	Parse an XML document from a location identified by a
	URI reference <bibref ref="URIRef"/>. If the URI
	contains a fragment identifier (see section 4.1 in
	<bibref ref="URIRef"/>), the behavior is not defined by
	this specification, future versions of this
	specification may define the behavior.
      </p>
    </descr>
    <parameters>
      <param name="uri" type="DOMString" attr="in">
	<descr>
	  <p>The location of the XML document to be read.</p>
	</descr>
      </param>
    </parameters>
    
    <returns type="Document">
      <descr>
        <p>
          If the <code>LSParser</code> is a synchronous
          <code>LSParser</code>, the newly created and populated
          <code>Document</code> is returned. If the
          <code>LSParser</code> is asynchronous, <code>null</code>
          is returned since the document object may not yet be
          constructed when this method returns.
        </p>
      </descr>
    </returns>
    
    <raises>
      <exception name="DOMException">
	<descr>
	  <p>
            INVALID_STATE_ERR: Raised if the <code>LSParser.busy</code>
            attribute is <code>true</code>.
          </p>
	</descr>
      </exception>
    </raises>
  </method>
  
  <group name="ACTION_TYPES" id="LS-LSParser-ACTION_TYPES">
    <descr>
      <p>A set of possible actions for the <code>parseWithContext</code>
	method.</p>
    </descr>

    <constant name="ACTION_APPEND_AS_CHILDREN" id="LS-LSParser-ACTION_APPEND_AS_CHILDREN" type="unsigned short" value="1">
      <descr>
        <p>
          Append the result of the parse operation as children of the
          context node. For this action to work, the context node must
          be an <code>Element</code> or a
          <code>DocumentFragment</code>.
        </p>
      </descr>
    </constant>

    <constant name="ACTION_REPLACE_CHILDREN" id="LS-LSParser-ACTION_REPLACE_CHILDREN" type="unsigned short" value="2">
      <descr>
        <p>
          Replace all the children of the context node with the result
          of the parse operation. For this action to work, the context
          node must be an <code>Element</code>, a
          <code>Document</code>, or a <code>DocumentFragment</code>.
        </p>
      </descr>
    </constant>

    <constant name="ACTION_INSERT_BEFORE" id="LS-LSParser-ACTION_INSERT_BEFORE" type="unsigned short" value="3">
      <descr>
        <p>
          Insert the result of the parse operation as the immediately
          preceding sibling of the context node. For this action to
          work the context node's parent must be an
          <code>Element</code> or a <code>DocumentFragment</code>.
        </p>
      </descr>
    </constant>

    <constant name="ACTION_INSERT_AFTER" id="LS-LSParser-ACTION_INSERT_AFTER" type="unsigned short" value="4">
      <descr>
        <p>
          Insert the result of the parse operation as the immediately
          following sibling of the context node. For this action to
          work the context node's parent must be an
          <code>Element</code> or a <code>DocumentFragment</code>.
        </p>
      </descr>
    </constant>

    <constant name="ACTION_REPLACE" id="LS-LSParser-ACTION_REPLACE" type="unsigned short" value="5">
      <descr>
        <p>
          Replace the context node with the result of the parse
          operation. For this action to work, the context node must
          have a parent, and the parent must be an
          <code>Element</code> or a <code>DocumentFragment</code>.
        </p>
      </descr>
    </constant>
  </group>
  
  <method name="parseWithContext" id="LS-LSParser-parseWithContext">
    <descr>
      <p>
        Parse an XML fragment from a resource identified by a
        <code>LSInput</code> and insert the content into an existing
        document at the position specified with the
        <code>context</code> and <code>action</code> arguments. When
        parsing the input stream, the context node (or its parent,
        depending on where the result will be inserted) is used for
        resolving unbound namespace prefixes. The context node's
        <code>ownerDocument</code> node (or the node itself if the
        node of type <code>DOCUMENT_NODE</code>) is used to resolve
        default attributes and entity references.
      </p>

      <p>
        As the new data is inserted into the document, at least one
        mutation event is fired per new immediate child or sibling of
        the context node.
      </p>

      <p>
        If the context node is a <code>Document</code> node and the
        action is <code>ACTION_REPLACE_CHILDREN</code>, then the
        document that is passed as the context node will be changed
        such that its <code>xmlEncoding</code>,
        <code>documentURI</code>, <code>xmlVersion</code>,
        <code>actualEncoding</code>, <code>xmlStandalone</code>, and all
        other such attributes are set to what they would be set to if
        the input source was parsed using
        <code>LSParser.parse()</code>.
      </p>

      <p>
        If the <code>LSParser</code> is asynchronous then the
        insertion of the resulting DOM structure is atomic, e.g. the
        whole structure is inserted only once the whole input stream
        is completely parsed without errors.
      </p>

      <p>
        If an error occurs while parsing, the caller is notified through
        the <code>ErrorHandler</code> instance associated with the
        "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">error-handler</xspecref>"
        parameter of the <code>DOMConfiguration</code>.
      </p>

      <p>
        When calling <code>parseWithContext</code>, the values of the
        following configuration parameters will be ignored and their
        default values will always be used instead: "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">validate</xspecref>",
        "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate-if-schema" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">validate-if-schema</xspecref>",
        and "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-element-content-whitespace" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">element-content-whitespace</xspecref>". Other
        parameters will be treated normally, and the parser is
        expected to call the <code>LSParserFilter</code> just as if a
        whole document was parsed.
      </p>
    </descr>
    
    <parameters>
      <param name="input" type="LSInput" attr="in">
        <descr>
          <p>
	    The <code>LSInput</code> from which the source document
	    is to be read. The source document must be an XML
	    fragment, i.e. anything except a complete XML document
	    (except in the case where the context node of type
	    <code>DOCUMENT_NODE</code>, and the action is
	    <code>ACTION_REPLACE_CHILDREN</code>), a DOCTYPE (internal
	    subset), entity declaration(s), notation declaration(s),
	    or XML or text declaration(s).
	  </p>
        </descr>
      </param>
      
      <param name="contextArg" type="Node" attr="in">
        <descr>
          <p>
	    The node that is used as the context for the data that is
	    being parsed. This node must be a <code>Document</code>
	    node, a <code>DocumentFragment</code> node, or a node of a
	    type that is allowed as a child of an <code>Element</code>
	    node, e.g. it cannot be an <code>Attribute</code> node.
	  </p>
        </descr>
      </param>
      
      <param name="action" type="unsigned short" attr="in">
        <descr>
	  <p>
            This parameter describes which action should be taken
	    between the new set of nodes being inserted and the
	    existing children of the context node. The set of possible
	    actions is defined in <code>ACTION_TYPES</code> above.
          </p>
        </descr>
      </param>
    </parameters>
    
    <returns type="Node">
      <descr>
        <p>
          Return the node that is the result of the parse
          operation. If the result is more than one top-level node,
          the first one is returned.
        </p>
      </descr>
    </returns>
    
    <raises>
      <exception name="DOMException">
	<descr>
          <p>
            NOT_SUPPORTED_ERR: Raised if the <code>LSParser</code>
            doesn't support this method.
          </p>
          <p>
            NO_MODIFICATION_ALLOWED_ERR: Raised if the context node is a
            <termref def="dt-readonly-node">read only
            node</termref>.</p>
          <p>
            INVALID_STATE_ERR: Raised if the <code>LSParser.busy</code>
            attribute is <code>true</code>.
          </p>
        </descr>
      </exception>
    </raises>
  </method>

  <method name="abort" id="LS-LSParser-abort">
    <descr>
      <p>
        Abort the loading of the document that is currently being
        loaded by the <code>LSParser</code>. If the
        <code>LSParser</code> is currently not busy, a call to this
        method does nothing.
      </p>
    </descr>
    <parameters>
    </parameters>
    <returns type="void">
      <descr>
      </descr>
    </returns>
    <raises>
    </raises>
  </method>
  
</interface>

	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSInput                                                      =
=                                                                       =
======================================================================-->
<interface name="LSInput" id="LS-LSInput">
  <descr>
    <p>
      This interface represents an input source for data.
    </p>

    <p>
      This interface allows an application to encapsulate information
      about an input source in a single object, which may include a
      public identifier, a system identifier, a byte stream (possibly
      with a specified encoding), a base URI, and/or a character
      stream.
    </p>

    <p>
      The exact definitions of a byte stream and a character stream
      are binding dependent.
    </p>

    <p>
      The application is expected to provide objects that implement
      this interface whenever such objects are needed. The application
      can either provide its own objects that implement this
      interface, or it can use the generic factory method
      <code>DOMImplementationLS.createLSInput()</code> to create
      objects that implement this interface.
    </p>

    <p>
      The <code>LSParser</code> will use the <code>LSInput</code>
      object to determine how to read data. The <code>LSParser</code>
      will look at the different inputs specified in the
      <code>LSInput</code> in the following order to know which one
      to read from, the first one that is not null and not an empty
      string will be used:

      <olist>
        <item>
          <p>
            <code>LSInput.characterStream</code>
          </p>
        </item>
        <item>
          <p>
            <code>LSInput.byteStream</code>
          </p>
        </item>
        <item>
          <p>
            <code>LSInput.stringData</code>
          </p>
        </item>
        <item>
          <p>
            <code>LSInput.systemId</code>
          </p>
        </item>
        <item>
          <p>
            <code>LSInput.publicId</code>
          </p>
        </item>
      </olist>
    </p>

    <p>
      <code>LSInput</code> objects belong to the application. The DOM
      implementation will never modify them (though it may make copies
      and modify the copies, if necessary).
    </p>
  </descr>

  <attribute type="LSReader" readonly="no" name="characterStream" id="LS-LSInput-characterStream" role="java-only">
    <descr>
      <p>
        An attribute of a language and binding dependent type that
        represents a stream of <termref def="dt-16-bit-unit">16-bit
        units</termref>. The application must encode the stream using
        UTF-16 (defined in <bibref ref="Unicode"/> and in <bibref ref="ISO10646"/>).
      </p>
    </descr>
  </attribute>

  <attribute type="LSInputStream" readonly="no" name="byteStream" id="LS-LSInput-byteStream">
    <descr>
      <p>
        An attribute of a language and binding dependent type that
        represents a stream of bytes.
      </p>

      <p>
        If the application knows the character encoding of the byte
        stream, it should set the encoding attribute. Setting the
        encoding in this way will override any encoding specified in
        an XML declaration in the data.
      </p>
    </descr>
  </attribute>

  <attribute type="DOMString" readonly="no" name="stringData" id="LS-LSInput-stringData">

    <descr>
      <p>
        String data to parse. If provided, this will always be treated
        as a sequence of <termref def="dt-16-bit-unit">16-bit
        units</termref> (UTF-16 encoded characters).
      </p>
    </descr>
  </attribute>

  <attribute type="DOMString" readonly="no" name="systemId" id="LS-LSInput-systemId">
    <descr>
      <p>
        The system identifier, a URI reference <bibref ref="URIRef"/>,
        for this input source. The system identifier is optional if
        there is a byte stream, a character stream, or string data,
        but it is still useful to provide one, since the application
        will use it to resolve any relative URIs and can include it in
        error messages and warnings (the <code>LSParser</code> will
        only attempt to fetch the resource identified by the URI
        reference only if there is no other input available in the
        input source).
      </p>

      <p>
        If the application knows the character encoding of the object
        pointed to by the system identifier, it can set the encoding
        using the <code>encoding</code> attribute.
      </p>

      <p>
        If the system ID is a relative URI reference (see section 5 in
        <bibref ref="URIRef"/>), the DOM implementation will attempt
        to resolve the relative URI with the <code>baseURI</code> as
        the base, if that fails, the behavior is implementation
        dependent.
      </p>
    </descr>
  </attribute>

  <attribute type="DOMString" readonly="no" name="publicId" id="LS-LSInput-publicId">
    <descr>
      <p>
        The public identifier for this input source. This may be
        mapped to an input source using an implementation dependent
        mechanism (such as catalogues or other mappings). The public
        identifier, if specified, may also be reported as part of the
        location information when errors are reported.
      </p>
    </descr>
  </attribute>

  <attribute type="DOMString" readonly="no" name="baseURI" id="LS-LSInput-baseURI">
    <descr>
      <p>
        The base URI to be used (see section 5.1.4 in <bibref ref="URIRef"/>) for resolving a relative <code>systemId</code>
        to an absolute URI.
      </p>
      <p>
        If, when used, the base URI is itself a relative URI, an empty
        string, or null, the behavior is implementation dependent.
      </p>
    </descr>
  </attribute>

  <attribute type="DOMString" readonly="no" name="encoding" id="LS-LSInput-encoding">
    <descr>
      <p>
        The character encoding, if known. The encoding must be a
        string acceptable for an XML encoding declaration (<bibref ref="XML"/> section 4.3.3 "Character Encoding in Entities").
      </p>

      <p>
        This attribute has no effect when the application provides a
        character stream or string data. For other sources of input, an
        encoding specified by means of this attribute will override
        any encoding specified in the XML declaration or the Text
        declaration, or an encoding obtained from a higher level
        protocol, such as HTTP <bibref role="informative" ref="RFC2616"/>.
      </p>
    </descr>
  </attribute>

  <attribute type="boolean" readonly="no" name="certifiedText" id="LS-LSInput-certifiedText">
    <descr>
      <p>
        If set to true, assume that the input is certified (see
        section 2.13 in <bibref ref="XML11"/>) when parsing <bibref ref="XML11"/>.
      </p>
    </descr>
  </attribute>
</interface>

	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSResourceResolver                                                   =
=                                                                       =
======================================================================-->
<interface name="LSResourceResolver" id="LS-LSResourceResolver">
  <descr>
    <p>
      <code>LSResourceResolver</code> provides a way for applications
      to redirect references to external resources.
    </p>

    <p>
      Applications needing to implement custom handling for external
      resources can implement this interface and register their
      implementation by setting the <code>resourceResolver</code>
      attribute of the <code>LSParser</code>.
    </p>

    <p>
      The <code>LSParser</code> will then allow the application to
      intercept any external entities (including the external DTD
      subset and external parameter entities) before including them.
    </p>

    <p>
      Many DOM applications will not need to implement this interface,
      but it will be especially useful for applications that build XML
      documents from databases or other specialized input sources, or
      for applications that use URN's.
    </p>

    <note>
      <p>
	<code>LSResourceResolver</code> is based on the SAX2 <bibref ref="SAX"/> <code>EntityResolver</code> interface.
      </p>
    </note>
  </descr>
  
  <method name="resolveResource" id="LS-LSResourceResolver-resolveResource">
    <descr>
      <p>
        Allow the application to resolve external resources.
      </p>
      
      <p>
        The <code>LSParser</code> will call this method before
	opening any external resource except the top-level document
	entity (including the external DTD subset, external entities
	referenced within the DTD, and external entities referenced
	within the document element); the application may request that
	the <code>LSParser</code> resolve the resource itself, that
	it use an alternative URI, or that it use an entirely
	different input source.
      </p>

      <p>
        Application writers can use this method to redirect external
	system identifiers to secure and/or local URI's, to look up
	public identifiers in a catalogue, or to read an entity from a
	database or other input source (including, for example, a
	dialog box).
      </p>

      <p>
        If the system identifier is a URI, the <code>LSParser</code>
	must resolve it fully before calling this method.
      </p>
    </descr>
    
    <parameters>
      <param name="type" type="DOMString" attr="in">
	<descr>
	  <p>
            The type of the resource being resolved. For XML <bibref ref="XML" role="informative"/> resources (i.e. entities),
	    applications must use the value
	    <code>"http://www.w3.org/TR/REC-xml"</code>, for XML
	    Schema <bibref ref="XMLSchema1" role="informative"/>,
	    applications must use the value
	    <code>"http://www.w3.org/2001/XMLSchema"</code>. Other
	    types of resources are outside the scope of this
	    specification and therefore should recommend an absolute
	    URI in order to use this method.
          </p>
	</descr>
      </param>

      <param name="namespaceURI" type="DOMString" attr="in">
	<descr>
	  <p>
            The namespace of the resource being resolved, i.e. the
            namespace of the XML Schema <bibref ref="XMLSchema1" role="informative"/> when resolving XML Schema resources.
          </p>
	</descr>
      </param>

      <param name="publicId" type="DOMString" attr="in">
	<descr>
	  <p>
            The public identifier of the external entity being
	    referenced, or <code>null</code> if no public identifier
	    was supplied or if the resource is not an entity.
          </p>
	</descr>
      </param>

      <param name="systemId" type="DOMString" attr="in">
	<descr>
	  <p>
            The system identifier, a URI reference <bibref ref="URIRef"/>, of the external resource being referenced.
	  </p>
	</descr>
      </param>

      <param name="baseURI" type="DOMString" attr="in">
	<descr>
	  <p>
            The absolute base URI of the resource being parsed, or
	    <code>null</code> if there is no base URI.
	  </p>
	</descr>
      </param>
    </parameters>

    <returns type="LSInput">
      <descr>
	<p>
          A <code>LSInput</code> object describing the new input
	  source, or <code>null</code> to request that the parser open
	  a regular URI connection to the system identifier.
	</p>
      </descr>
    </returns>
    
    <raises>
    </raises>
  </method>
  
</interface>

	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSParserFilter                                                 =
=                                                                       =
======================================================================-->
<interface name="LSParserFilter" id="LS-LSParserFilter">
  <descr>
    <p>
      <code>LSParserFilter</code>s provide applications the ability to
      examine nodes as they are being constructed while parsing.
      As each node is examined, it may be modified or removed,
      or the entire parse may be terminated early.
    </p>

    <p>
      At the time any of the filter methods are called by the parser,
      the owner Document and DOMImplementation objects exist and are
      accessible. The document element is never passed to the
      <code>LSParserFilter</code> methods, i.e. it is not possible to
      filter out the document element. <code>Document</code>,
      <code>DocumentType</code>, <code>Notation</code>,
      <code>Entity</code>, and <code>Attr</code> nodes are never
      passed to the <code>acceptNode</code> method on the filter.
    </p>

    <p>
      All validity checking while parsing a document occurs on the
      source document as it appears on the input stream, not on the
      DOM document as it is built in memory.  With filters, the
      document in memory may be a subset of the document on the
      stream, and its validity may have been affected by the
      filtering.
    </p>

    <p>
      All default attributes must be present on elements when the
      elements are passed to the filter methods. All other default
      content must be passed to the filter methods.
    </p>

    <p>
      The <code>LSParser</code> ignores any exception raised in the
      filter.
    </p>
  </descr>
  
  <group name="Constants returned by startElement and acceptNode" id="LS-LSParserFilter-acceptNode-constants"> 
    <descr>
      <p>
	Constants returned by <code>startElement</code> and
	<code>acceptNode</code>.
      </p>
    </descr>

    <constant id="LS-LSParserFilter-FILTER_ACCEPT" name="FILTER_ACCEPT" type="short" value="1"> 
      <descr> 
	<p>Accept the node.</p> 
      </descr> 
    </constant> 
    <constant id="LS-LSParserFilter-FILTER_REJECT" name="FILTER_REJECT" type="short" value="2"> 
      <descr> 
	<p>Reject the node and its children.</p> 
      </descr> 
    </constant> 
    <constant id="LS-LSParserFilter-FILTER_SKIP" name="FILTER_SKIP" type="short" value="3"> 
      <descr> 
	<p>Skip this single node. The children of
	  this node will still be considered. </p> 
      </descr> 
    </constant> 
    <constant id="LS-LSParserFilter-FILTER_INTERRUPT" name="FILTER_INTERRUPT" type="short" value="4">
      <descr>
	<p>
	  Interrupt the normal processing of the document.
	</p>
      </descr>
    </constant>
  </group>
  <method name="startElement" id="LS-LSParserFilter-startElement">
    <descr>
      
      <p>
        The parser will call this method after each
	<code>Element</code> start tag has been scanned, but before
	the remainder of the <code>Element</code> is processed.  The
	intent is to allow the element, including any children, to be
	efficiently skipped. Note that only element nodes are passed
	to the <code>startElement</code> function.
      </p>

      <p>The element node passed to <code>startElement</code> for
	filtering will include all of the Element's attributes,
	but none of the children nodes.  The Element may not yet be
	in place in the document being constructed (it may not have
	a parent node.) </p>
      
      <p>A <code>startElement</code> filter function may access or change the
	attributes for the Element.  Changing Namespace declarations will
	have no effect on namespace resolution by the parser.</p>
      
      <p>For efficiency, the Element node passed to the filter may not
	be the same one as is actually placed in the tree if the node
	is accepted.  And the actual node (node object identity) may
	be reused during the process of reading in and filtering a
	document.</p>
      
    </descr>
    
    <parameters>
      <param name="elementArg" type="Element" attr="in">
	<descr><p>The newly encountered element.  At the time
	    this method is called, the element is incomplete - it
	    will have its attributes, but no children.
	  </p>
	</descr>
      </param>
    </parameters>
    <returns type="unsigned short">
      <descr>	
	<ulist>
	  <item>
	    <p>
	      <code>FILTER_ACCEPT</code> if the <code>Element</code>
	      should be included in the DOM document being built.
	    </p>
	  </item>
	  <item>
	    <p>
	      <code>FILTER_REJECT</code> if the <code>Element</code>
	      and all of its children should be rejected. This return
	      value will be ignored if <code>element</code> is the
	      documentElement, the documentElement cannot be
	      rejected.
	    </p>
	  </item>
	  <item>
	    <p>
	      <code>FILTER_SKIP</code> if the <code>Element</code>
	      should be skipped. All of its children are inserted in
	      place of the skipped <code>Element</code> node. This
	      return value will be ignored if <code>element</code> is
	      the documentElement, the documentElement cannot be
	      skipped.
	    </p>
	  </item>
	  <item>
	    <p>
	      <code>FILTER_INTERRUPT</code> if the filter wants to
	      stop the processing of the document. Interrupting the
	      processing of the document does no longer guarantee that
	      the resulting DOM tree is <termref def="dt-well-formed">XML well-formed</termref>. The
	      <code>Element</code> is rejected.
	    </p>
	  </item>
	</ulist>
	<p>
	  Returning any other values will result in unspecified
	  behavior.
	</p>
      </descr>
    </returns>
    
    <raises>
    </raises>
  </method>
  
  
  <method name="acceptNode" id="LS-LSParserFilter-acceptNode">
    <descr>
      <p>This method will be called by the parser at the
	completion of the parsing of each node. The node and all
	of its descendants will exist and be complete. The parent
	node will also exist, although it may be incomplete,
	i.e. it may have additional children that have not yet
	been parsed. Attribute nodes are never passed to this
	function.</p>
      
      <p>From within this method, the new node may be freely
	modified - children may be added or removed, text nodes
	modified, etc. The state of the rest of the document
	outside this node is not defined, and the affect of any
	attempt to navigate to, or to modify any other part of the
	document is undefined. </p>
      
      <p>For validating parsers, the checks are made on the
	original document, before any modification by the filter.
	No validity checks are made on any document modifications
	made by the filter.</p>
      
      <p>If this new node is rejected, the parser might reuse
	the new node and any of its descendants.</p>
      
    </descr>
    
    <parameters>
      <param name="nodeArg" type="Node" attr="in">
	<descr><p>The newly constructed element.  At the time
	    this method is called, the element is complete - it
	    has all of its children (and their children,
	    recursively) and attributes, and is attached as a
	    child to its parent.
	  </p>
	</descr>
      </param>
    </parameters>
    <returns type="unsigned short">
      <descr>
	<ulist>
	  <item>
	    <p>
	      <code>FILTER_ACCEPT</code> if this
	      <code>Node</code> should be included in the DOM
	      document being built.
	    </p>
	  </item>
	  <item>
	    <p>
	      <code>FILTER_REJECT</code> if the
	      <code>Node</code> and all of its children should
	      be rejected.
	    </p>
	  </item>
	  <item>
	    <p>
	      <code>FILTER_SKIP</code> if the <code>Node</code>
	      should be skipped and the <code>Node</code> should
	      be replaced by all the children of the
	      <code>Node</code>.
	    </p>
	  </item>
	  <item>
	    <p>
	      <code>FILTER_INTERRUPT</code> if the filter wants to
	      stop the processing of the document. Interrupting the
	      processing of the document does no longer guarantee that
	      the resulting DOM tree is <termref def="dt-well-formed">XML well-formed</termref>. The
	      <code>Node</code> is accepted and will be the last
	      completely parsed node.
	    </p>
	  </item>
	</ulist>
      </descr>
    </returns>
    
    <raises/>
  </method>
  
  <attribute type="unsigned long" readonly="yes" name="whatToShow" id="LS-LSParserFilter-whatToShow">
    <descr>
      <p>
	Tells the <code>LSParser</code> what types of nodes to show
	to the filter. See <code>NodeFilter</code> for definition of
	the constants. The constants <code>SHOW_ATTRIBUTE</code>,
	<code>SHOW_DOCUMENT</code>, <code>SHOW_DOCUMENT_TYPE</code>,
	<code>SHOW_NOTATION</code>, <code>SHOW_ENTITY</code>, and
	<code>SHOW_DOCUMENT_FRAGMENT</code> are meaningless here,
	those nodes will never be passed to a
	<code>LSParserFilter</code>.
      </p>

      <p>
        The constants used here are defined in <bibref ref="DOM2Traversal-Range"/>.
      </p>
    </descr>
  </attribute>
  
</interface>

	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSProgressEvent                                                  =
=                                                                       =
======================================================================-->
<interface name="LSProgressEvent" id="LS-LSProgressEvent" inherits="events::Event">

  <descr>

    <p>
	      This interface represents a progress event object that
	      notifies the application about progress as a document is
	      parsed. It extends the <code>Event</code> interface
	      defined in <bibref ref="DOMEvents" role="informative"/>.</p>

  </descr>

  <attribute type="LSInput" readonly="yes" name="input" id="LS-LSProgressEvent-input">

    <descr>
      <p>The input source that is being parsed.</p>
    </descr>
  </attribute>

  <attribute type="unsigned long" readonly="yes" name="position" id="LS-LSProgressEvent-position">

    <descr>
      <p>The current position in the input source, including all
      external entities and other resources that have been read.</p>
    </descr>
  </attribute>

  <attribute type="unsigned long" readonly="yes" name="totalSize" id="LS-LSProgressEvent-totalSize">

    <descr>
      <p>The total size of the document including all external
      resources, this number might change as a document is being
      parsed if references to more external resources are seen.</p>
    </descr>
  </attribute>

</interface>


	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSLoadEvent                                                      =
=                                                                       =
======================================================================-->
<interface name="LSLoadEvent" id="LS-LSLoadEvent" inherits="events::Event">
  
  <descr>
    <p>
      This interface represents a load event object that signals
      the completion of a document load.
    </p>    
    
  </descr>
  
  <attribute type="Document" readonly="yes" name="newDocument" id="LS-LSLoadEvent-document">
    <descr>
      <p>The document that finished loading.</p>
    </descr>
  </attribute>
  
  <attribute type="LSInput" readonly="yes" name="input" id="LS-LSLoadEvent-input">
    
    <descr>
      <p>The input source that was parsed.</p>
    </descr>
  </attribute>
  
</interface>

	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSSerializer                                                        =
=                                                                       =
======================================================================-->
<interface name="LSSerializer" id="LS-LSSerializer">
  <descr>
    <p>
      A <code>LSSerializer</code> provides an API for serializing
      (writing) a DOM document out into XML. The XML data is written to
      a string or an output stream.
    </p>
    <p>
      During serialization of XML data, namespace fixup is done as
      defined in <bibref ref="DOMCore"/>, Appendix B. <bibref ref="DOM2Core"/> allows empty strings as a real namespace
      URI. If the <code>namespaceURI</code> of a <code>Node</code> is
      empty string, the serialization will treat them as
      <code>null</code>, ignoring the prefix if any.
    </p>
    <p>
      <code>LSSerializer</code> accepts any node type for
      serialization.  For nodes of type <code>Document</code> or
      <code>Entity</code>, well-formed XML will be created when
      possible (well-formedness is guaranteed if the document or
      entity comes from a parse operation and is unchanged since it
      was created). The serialized output for these node types is
      either as a XML document or an External XML Entity,
      respectively, and is acceptable input for an XML parser. For all
      other types of nodes the serialized form is implementation
      dependent.
    </p>
    
    <p>Within a <code>Document</code>, <code>DocumentFragment</code>, or
    <code>Entity</code> being serialized, <code>Nodes</code> are
    processed as follows</p>
    <ulist>
      <item>
	<p>
	  <code>Document</code> nodes are written, including the XML
	  declaration (unless the parameter "<termref def="parameter-xml-declaration">xml-declaration</termref>"
	  is set to <code>false</code>) and a DTD subset, if one exists
	  in the DOM. Writing a <code>Document</code> node serializes
	  the entire document.
	</p>
      </item>
      
      <item>
	<p>
	  <code>Entity</code> nodes, when written directly by
	  <code>LSSerializer.write</code>, outputs the entity expansion
	  but no namespace fixup is done. The resulting output will be
	  valid as an external entity.
	</p>
      </item>
      
      <item>
	<p>
	  <code>EntityReference</code> nodes are serialized as an entity
	  reference of the form "<code>&amp;entityName;</code>" in the
	  output. Child nodes (the expansion) of the entity reference
	  are ignored.
	</p>
      </item>
      
      <item>
	<p>
	  CDATA sections containing content characters that cannot be
	  represented in the specified output encoding are handled
	  according to the "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-split-cdata-sections" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">split-cdata-sections</xspecref>"
	  parameter.
	</p>
	
	<p>
	  If the parameter is set to <code>true</code>, CDATA sections
	  are split, and the unrepresentable characters are serialized
	  as numeric character references in ordinary content. The
	  exact position and number of splits is not specified.
	</p>
	
	<p>
	  If the parameter is set to <code>false</code>,
	  unrepresentable characters in a CDATA section are reported
	  as <code>"invalid-data-in-cdata-section"</code> errors. The
	  error is not recoverable - there is no mechanism for
	  supplying alternative characters and continuing with the
	  serialization.
	</p>
      </item>
      
      <item>
	<p>
	  <code>DocumentFragment</code> nodes are serialized by
	  serializing the children of the document fragment in the order
	  they appear in the document fragment.
	</p>
      </item>
      
      <item>
	<p>
	  All other node types (Element, Text, etc.) are serialized to
	  their corresponding XML source form.
	</p>
      </item>      
    </ulist>
    
    <note>
      <p>
	The serialization of a <code>Node</code> does not always
	generate a <termref def="dt-well-formed">well-formed</termref>
	XML document, i.e. a <code>LSParser</code> might throw fatal
	errors when parsing the resulting serialization.
      </p>
    </note>
    
    <p>
      Within the character data of a document (outside of markup), any
      characters that cannot be represented directly are replaced with
      character references.  Occurrences of '&lt;' and '&amp;' are
      replaced by the predefined entities &amp;lt; and &amp;amp;. The
      other predefined entities (&amp;gt;, &amp;apos;, and &amp;quot;)
      might not be used, except where needed (e.g. using &amp;gt; in
      cases such as ']]&gt;'). Any characters that cannot be
      represented directly in the output character encoding are
      serialized as numeric character references (and since character
      encoding standards commonly use hexadecimal representations of
      characters, using the hexadecimal representation when
      serializing character references is encouraged).
    </p>
    
    <p>
      To allow attribute values to contain both single and double
      quotes, the apostrophe or single-quote character (') may be
      represented as "&amp;apos;", and the double-quote character (")
      <!-- silly comment to terminate the previous '"' that makes my
      editor freak out.--> as "&amp;quot;".  New line characters and
      other characters that cannot be represented directly in
      attribute values in the output character encoding are serialized
      as a numeric character reference.
    </p>
    
    <p>
      Within markup, but outside of attributes, any occurrence of a
      character that cannot be represented in the output character
      encoding is reported as a fatal error. An example would be
      serializing the element &lt;LaCa&#241;ada/&gt; with
      <code>encoding="us-ascii"</code>.
    </p>
    
    <p>
      When requested by setting the parameter "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-normalize-characters" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">normalize-characters</xspecref>"
      on <code>LSSerializer</code> to true, character normalization
      is performed according to the rules defined in <bibref ref="Charmod"/> on all data to be serialized, both markup and
      character data. The character normalization process affects only
      the data as it is being written; it does not alter the DOM's
      view of the document after serialization has completed.
    </p>

    <p>
      When outputting unicode data, whether or not a byte order mark
      is serialized, or if the output is big-endian or little-endian,
      is implementation dependent.
    </p>

    <p>
      Namespaces are fixed up during serialization, the serialization
      process will verify that namespace declarations, namespace
      prefixes and the namespace URI's associated with elements and
      attributes are consistent. If inconsistencies are found, the
      serialized form of the document will be altered to remove
      them. The method used for doing the namespace fixup while
      serializing a document is the algorithm defined in Appendix B.1,
      "Namespace normalization", of <bibref ref="DOMCore"/>.
    </p>

    <p>
      Any changes made affect only the namespace prefixes and
      declarations appearing in the serialized data. The DOM's view
      of the document is not altered by the serialization operation,
      and does not reflect any changes made to namespace
      declarations or prefixes in the serialized output.
    </p>

    <issue id="LSSerializer-change-DOM" status="open">
      <p>
	We may take back what we say in the above paragraph depending
	on feedback from implementors, but for now the belief is that
	the DOM's view of the document is not changed during
	serialization.
      </p>
    </issue>

    <p>
      While serializing a document, the parameter "<termref def="parameter-discard-default-content">discard-default-content</termref>"
      controls whether or not non-specified data is serialized.
    </p>

    <p>
      While serializing, errors and warnings are reported to the
      application through the error handler
      (<code>LSSerializer.config</code>'s "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">error-handler</xspecref>"
      parameter). This specification does in no way try to define all
      possible errors and warnings that can occur while serializing a
      DOM node, but some common error and warning cases are
      defined. The types (<code>DOMError.type</code>) of errors and
      warnings defined by this specification are:

      <glist>
        <gitem>
          <label><code>"invalid-data-in-cdata-section" [fatal]</code></label>
          <def>
            <p>
              Raised if the configuration parameter "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-split-cdata-sections" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">split-cdata-sections</xspecref>"
              is set to <code>false</code> and invalid data is
              encountered in a CDATA section.
            </p>
          </def>
        </gitem>
        <gitem>
          <label><code>"no-output-specified" [fatal]</code></label>
          <def>
            <p>
              Raised when writing to a <code>LSOutput</code> if no
              output is specified in the <code>LSOutput</code>.
            </p>
          </def>
        </gitem>
        <gitem>
          <label>
            <code>"unbound-prefix-in-entity-reference" [fatal]</code>
	  </label>
          <def>
            <p>
              Raised if the configuration parameter "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-namespaces" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">namespaces</xspecref>"
              is set to <code>true</code> and an entity whose
              replacement text contains unbound namespace prefixes is
              referenced in a location where there are no bindings for
              the namespace prefixes.
            </p>
          </def>
        </gitem>
        <gitem>
          <label><code>"unsupported-encoding" [fatal]</code></label>
          <def>
            <p>
              Raised if an unsupported encoding is encountered.
            </p>
          </def>
        </gitem>
      </glist>
    </p>

    <p>
      In addition to raising the defined errors and warnings,
      implementations are expected to raise implementation specific
      errors and warnings for any other error and warning cases such
      as IO errors (file not found, permission denied,...) and so on.
    </p>


  </descr>

  <attribute type="DOMConfiguration" readonly="yes" name="config" id="LS-LSSerializer-config">
    <descr>
      <p>
        The <code>DOMConfiguration</code> object used by the
        <code>LSSerializer</code> when serializing a DOM node.
      </p>
      <p>
        In addition to the parameters recognized in the <bibref ref="DOMCore"/>, the <code>DOMConfiguration</code> objects for
        <code>LSSerializer</code> adds, or modifies, the following
        parameters:
      </p>
      <glist>
	<gitem>
	  <label id="parameter-canonical-form"><code>"canonical-form"</code></label>
	  <def>
	    <glist>
	      <gitem>
		<label><code>true</code></label>
		<def>
		  <p>[<emph>optional</emph>]</p>
		  <p>
		    This formatting writes the document according to the
		    rules specified in <bibref role="informative" ref="c14n"/>. Setting this parameter to
		    <code>true</code> will set the parameter "<termref def="parameter-format-pretty-print">format-pretty-print</termref>"
		    to <code>false</code>.
		  </p>
		</def>
	      </gitem>
	      <gitem>
		<label><code>false</code></label>
		<def>
		  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
		  <p>
		    Do not canonicalize the output.
		  </p>
		</def>
	      </gitem>
	    </glist>
	  </def>
	</gitem>
        <gitem>
          <label id="parameter-discard-default-content"><code>"discard-default-content"</code></label>
          <def>
            <glist>
              <gitem>
                <label><code>true</code></label>
                <def>
                  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
                  <p>
                    Use the <code>Attr.specified</code> attribute to
                    decide what attributes should be discarded. Note
                    that some implementations might use whatever
                    information available to the implementation
                    (i.e. XML schema, DTD, the
                    <code>Attr.specified</code> attribute, and so on) to
                    determine what attributes and content to discard if
                    this parameter is set to <code>true</code>.
                  </p>
                </def>
              </gitem>
              <gitem>
                <label><code>false</code></label>
                <def>
                  <p>[<emph>required</emph>]</p>
                  <p>Keep all attributes and all content.</p>
                </def>
              </gitem>
            </glist>
          </def>
        </gitem>
	<gitem>
	  <label id="parameter-format-pretty-print"><code>"format-pretty-print"</code></label>
	  <def>
	    <glist>
	      <gitem>
		<label><code>true</code></label>
		<def>
		  <p>[<emph>optional</emph>]</p>
		  <p>
		    Formatting the output by adding whitespace to
		    produce a pretty-printed, indented, human-readable
		    form. The exact form of the transformations is not
		    specified by this specification. Pretty-printing
		    changes the content of the document and may affect
		    the validity of the document, validating
		    implementations should preserve validity. Setting
		    this parameter to <code>true</code> will set the
		    parameter "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-canonical-form" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">canonical-form</xspecref>"
		    to <code>false</code>.
		  </p>
		</def>
	      </gitem>
	      <gitem>
		<label><code>false</code></label>
		<def>
		  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
		  <p>
		    Don't pretty-print the result.
		  </p>
		</def>
	      </gitem>
	    </glist>
	  </def>
	</gitem>
	<gitem>
	  <label id="parameter-ignore-unknown-character-denormalizations-lsserializer">
            <code>"ignore-unknown-character-denormalizations"</code>
          </label>
	  <def>
	    <glist>
	      <gitem>
		<label><code>true</code></label>
		<def>
		  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
		  <p>
		    If, while verifying full normalization when
		    <bibref ref="XML11"/> is supported, a character is
		    encountered for which the normalization properties
		    cannot be determined, then raise a
		    <code>"unknown-character-denormalization"</code>
		    warning (instead of raising an error, if this
		    parameter is not set) and ignore any possible
		    denormalizations caused by these characters.
		  </p>
		  <issue id="LSSerializer-iucd-issue" role="editorial" status="open">
		    <p>
		      IMO it would make sense to move this parameter
		      into the DOM Level 3 Core spec, and the
		      error/warning should be defined there.
		    </p>
		  </issue>
		</def>
	      </gitem>
	      <gitem>
		<label><code>false</code></label>
		<def>
		  <p>[<emph>optional</emph>]</p>
		  <p>
		    Report an fatal error if a character is encountered
		    for which the processor cannot determine the
		    normalization properties.
		  </p>
		</def>
	      </gitem>
	    </glist>
	  </def>
	</gitem>      
	<gitem>
	  <label id="parameter-normalize-characters"><code>"normalize-characters"</code></label>
	  <def>
	    <p>
	      This parameter is equivalent to the one defined by
	      <code>DOMConfiguration</code> in <bibref ref="DOMCore"/>. Unlike in the Core, the default value for
	      this parameter is <code>true</code>. While DOM
	      implementations are not required to support fully
	      normalizing the characters in the document according to
	      the rules defined in <bibref ref="Charmod"/> supplemented
	      by the definitions of relevant constructs from Section
	      2.13 of <bibref ref="XML11"/>, this parameter must
	      be activated by default if supported.
	    </p>
	  </def>
	</gitem>
	<gitem>
	  <label id="parameter-xml-declaration"><code>"xml-declaration"</code></label>
	  <def>
	    <glist>
	      <gitem>
		<label><code>true</code></label>
		<def>
		  <p>[<emph>required</emph>] (<emph>default</emph>)</p>
		  <p>
		    If a <code>Document</code>, <code>Element</code>,
		    or <code>Entity</code> node is serialized, the XML
		    declaration, or text declaration, should be
		    included. The version
		    (<code>Document.xmlVersion</code> if the document
		    is a Level 3 document and the version is non-null,
		    otherwise use the value "1.0"), and the output
		    encoding (see <code>LSSerializer.write</code> for
		    details on how to find the output encoding) are
		    specified in the serialized XML declaration.
		  </p>
		</def>
	      </gitem>
	      <gitem>
		<label><code>false</code></label>
		<def>
		  <p>[<emph>required</emph>]</p>
		  <p>
		    Do not serialize the XML and text
		    declarations. Report a
		    <code>"xml-declaration-needed"</code> warning if
		    this will cause problems (i.e. the serialized data
		    is of an XML version other than <bibref ref="XML"/>,
		    or an encoding would be needed to be able to
		    re-parse the serialized data).
		  </p>
		</def>
	      </gitem>
	    </glist>
	  </def>
	</gitem>
      </glist>
      <p>
	The parameters "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-well-formed" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">well-formed</xspecref>",
	"<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-namespaces" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">namespaces</xspecref>",
	and "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-namespace-declarations" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">namespace-declarations</xspecref>"
	cannot be set to <code>false</code>.
      </p>
    </descr>
  </attribute>

  <attribute type="DOMString" readonly="no" name="newLine" id="LS-LSSerializer-newLine">
    <descr>
      <p>
	The end-of-line sequence of characters to be used in the
	XML being written out. Any string is supported, but
	these are the recommended end-of-line sequences (using
	other character sequences than these recommended ones
	can result in a document that is either not serializable
	or not well-formed):
      </p>
      <glist>
	<gitem>
	  <label><code>null</code></label>
	  <def>
	    <p>
	      Use a default end-of-line sequence.  DOM implementations
	      should choose the default to match the usual convention
	      for text files in the environment being used.
	      Implementations must choose a default sequence that
	      matches one of those allowed by section 2.11, "End-of-Line
	      Handling" in <bibref ref="XML"/>, if the serialized
	      content is XML 1.0 or section 2.11, "End-of-Line Handling"
	      in <bibref ref="XML11"/>, if the serialized content is XML
	      1.1.
	    </p>
	  </def>
	</gitem>
	<gitem>
	  <label>CR</label>
	  <def>
	    <p>The carriage-return character (#xD).</p>
	  </def>
	</gitem>
	<gitem>
	  <label>CR-LF</label>
	  <def>
	    <p>
	      The carriage-return and line-feed characters (#xD #xA).
	    </p>
	  </def>
	</gitem>
	<gitem>
	  <label>LF</label>
	  <def>
	    <p>
	      The line-feed character (#xA).
	    </p>
	  </def>
	</gitem>
      </glist>
      <p>The default value for this attribute is <code>null</code>.</p>
    </descr>
    
  </attribute>
  
  <attribute type="LSSerializerFilter" readonly="no" name="filter" id="LS-LSSerializer-LSSerializerFilter">
    <descr>
      <p>
	When the application provides a filter, the serializer will call
	out to the filter before serializing each Node. The filter
	implementation can choose to remove the node from the stream or
	to terminate the serialization early.
      </p>
      <p>
	The filter is invoked before the operations requested by the
	<code>DOMConfiguration</code> parameters have been
	applied. For example, CDATA sections are passed to the filter
	even if "<xspecref xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-cdata-sections" xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">cdata-sections</xspecref>"
	is set to <code>false</code>.
      </p>
    </descr>
  </attribute>

  <method name="write" id="LS-LSSerializer-write">
    <descr>
      <p>
        Serialize the specified node as described above in the general
        description of the <code>LSSerializer</code> interface. The
        output is written to the supplied <code>LSOutput</code>.
      </p>

      <p>
        When writing to a <code>LSOutput</code>, the encoding is found
        by looking at the encoding information that is reachable through
        the <code>LSOutput</code> and the item to be written (or its
        owner document) in this order:
      </p>

      <olist>
        <item>
          <p>
            <code>LSOutput.encoding</code>,
          </p>
        </item>
        <item>
          <p>
            <code>Document.actualEncoding</code>,
          </p>
        </item>
        <item>
          <p>
            <code>Document.xmlEncoding</code>.
          </p>
        </item>
      </olist>

      <p>
        If no encoding is reachable through the above properties, a
        default encoding of "UTF-8" will be used.
      </p>

      <p>
	If the specified encoding is not supported an
	"unsupported-encoding" fatal error is raised. When outputting
	XML data, implementations are required to support the
	encodings "UTF-8", "UTF-16BE", and "UTF-16LE" to guarantee
	that data is serializable in all encodings that are required
	to be supported by all XML parsers.
      </p>

      <p>
        If no output is specified in the <code>LSOutput</code>, a
        "no-output-specified" fatal error is raised.
      </p>

      <p>
        The implementation is responsible of associating the
        appropriate media type with the serialized data.
      </p>

      <p>
        When writing to a HTTP URI, a HTTP PUT is performed. When
        writing to other types of URIs, the mechanism for writing the
        data to the URI is implementation dependent.
      </p>
    </descr>
    
    <parameters>
      <param name="nodeArg" type="Node" attr="in">
	<descr>
	  <p>
	    The node to serialize.
	  </p>
	</descr>
      </param>

      <param name="destination" type="LSOutput" attr="in">
	<descr>
	  <p>The destination for the serialized DOM.</p>
	</descr>
      </param>
    </parameters>
    
    <returns type="boolean">
      <descr>
        <p>
	  Returns <code>true</code> if <code>node</code> was
	  successfully serialized and <code>false</code> in case the
	  node couldn't be serialized.
        </p>
      </descr>
    </returns>
    <raises>
    </raises>
  </method>
  
  <method name="writeToURI" id="LS-LSSerializer-writeToURI">
    <descr>
      <p>
        A convenience method that acts as if
        <code>LSSerializer.write</code> was called with a
        <code>LSOutput</code> with no encoding specified and
        <code>LSOutput.systemId</code> set to the <code>uri</code>
        argument.
      </p>
    </descr>
    
    <parameters>
      <param name="nodeArg" type="Node" attr="in">
	<descr>
	  <p>
	    The node to serialize.
	  </p>
	</descr>
      </param>

      <param name="uri" type="DOMString" attr="in">
	<descr>
	  <p>The URI to write to.</p>
	</descr>
      </param>
    </parameters>
    
    <returns type="boolean">
      <descr>
        <p>
	  Returns <code>true</code> if <code>node</code> was
	  successfully serialized and <code>false</code> in case the
	  node couldn't be serialized.
        </p>
      </descr>
    </returns>
    <raises>
    </raises>
  </method>
  
  <method name="writeToString" id="LS-LSSerializer-writeToString">
    <descr>
      <p>
        Serialize the specified node as described above in the general
        description of the <code>LSSerializer</code> interface. The
        output is written to a <code>DOMString</code> that is returned
        to the caller (this method completely ignores all the encoding
        information available).
      </p>
    </descr>

    <parameters>
      <param name="nodeArg" type="Node" attr="in">
        <descr>
          <p>
	    The node to serialize.
	  </p>
        </descr>
      </param>
    </parameters>

    <returns type="DOMString">
      <descr>
        <p>
	  Returns the serialized data, or <code>null</code> in case
	  the node couldn't be serialized.
	</p>
      </descr>
    </returns>
    
    <raises>
      <exception name="DOMException">
        <descr>
          <p>
            DOMSTRING_SIZE_ERR: Raised if the resulting string is too long to
            fit in a <code>DOMString</code>.
          </p>
        </descr>
      </exception>
    </raises>
  </method>
</interface>

	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSOutput                                                      =
=                                                                       =
======================================================================-->
<interface name="LSOutput" id="LS-LSOutput">
  <descr>
    <p>
      This interface represents an output destination for data.
    </p>

    <p>
      This interface allows an application to encapsulate information
      about an output destination in a single object, which may
      include a URI, a byte stream (possibly with a specified
      encoding), a base URI, and/or a character stream.
    </p>

    <p>
      The exact definitions of a byte stream and a character stream
      are binding dependent.
    </p>

    <p>
      The application is expected to provide objects that implement
      this interface whenever such objects are needed. The application
      can either provide its own objects that implement this
      interface, or it can use the generic factory method
      <code>DOMImplementationLS.createLSOutput()</code> to create
      objects that implement this interface.
    </p>

    <p>
      The <code>LSSerializer</code> will use the
      <code>LSOutput</code> object to determine where to serialize
      the output to. The <code>LSSerializer</code> will look at the
      different outputs specified in the <code>LSOutput</code> in the
      following order to know which one to output to, the first one
      that is not null and not an empty string will be used:

      <olist>
        <item>
          <p>
            <code>LSOutput.characterStream</code>
          </p>
        </item>
        <item>
          <p>
            <code>LSOutput.byteStream</code>
          </p>
        </item>
        <item>
          <p>
            <code>LSOutput.systemId</code>
          </p>
        </item>
      </olist>
    </p>

    <p>
      <code>LSOutput</code> objects belong to the application. The
      DOM implementation will never modify them (though it may make
      copies and modify the copies, if necessary).
    </p>
  </descr>

  <attribute type="LSWriter" readonly="no" name="characterStream" id="LS-LSOutput-characterStream" role="java-only">
    <descr>
      <p>
        An attribute of a language and binding dependent type that
        represents a writable stream to which <termref def="dt-16-bit-unit">16-bit units</termref> can be output.
      </p>
    </descr>
  </attribute>

  <attribute type="LSOutputStream" readonly="no" name="byteStream" id="LS-LSOutput-byteStream">
    <descr>
      <p>
        An attribute of a language and binding dependent type that
        represents a writable stream of bytes.
      </p>
    </descr>
  </attribute>

  <attribute type="DOMString" readonly="no" name="systemId" id="LS-LSOutput-systemId">
    <descr>
      <p>
        The system identifier, a URI reference <bibref ref="URIRef"/>,
        for this output destination.
      </p>

      <p>
        If the system ID is a relative URI reference (see section 5 in
        <bibref ref="URIRef"/>), the behavior is implementation
        dependent.
      </p>
    </descr>
  </attribute>

  <attribute type="DOMString" readonly="no" name="encoding" id="LS-LSOutput-encoding">
    <descr>
      <p>
        The character encoding to use for the output. The encoding
        must be a string acceptable for an XML encoding declaration
        (<bibref ref="XML"/> section 4.3.3 "Character Encoding in
        Entities"), it is recommended that character encodings
        registered (as charsets) with the Internet Assigned Numbers
        Authority <bibref ref="IANA-CHARSETS"/> should be referred to
        using their registered names.
      </p>

      <p>
        This attribute has no effect when outputting to a character
        stream.
      </p>
    </descr>
  </attribute>
</interface>

	
<!-- $Id: xml-source.xml,v 1.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--=====================================================================
=                                                                       =
=      LSSerializerFilter                                                  =
=                                                                       =
======================================================================-->
<interface name="LSSerializerFilter" inherits="traversal::NodeFilter" id="LS-LSSerializerFilter">
  <descr>
    <p>
      <code>LSSerializerFilter</code>s provide applications the
      ability to examine nodes as they are being serialized and decide
      what nodes should be serialized or not. The
      <code>LSSerializerFilter</code> interface is based on the
      <code>NodeFilter</code> interface defined in <bibref ref="DOM2Traversal-Range"/>.
    </p>
    <p>
      <code>Document</code>, <code>DocumentType</code>,
      <code>DocumentFragment</code>, <code>Notation</code>, and
      <code>Entity</code> nodes are not passed to the filter.
    </p>
    <p>
      When serializing an <code>Element</code>, the element is passed
      to the filter before any of its attributes are passed to the
      filter. Namespace declaration attributes, and default attributes
      (except in the case when "<termref def="parameter-discard-default-content">discard-default-content</termref>"
      is set to <code>false</code>), are never passed to the filter.
    </p>
    <p>
      The result of any attempt to modify a node passed to a
      <code>LSSerializerFilter</code> is implementation dependent.
    </p>
  </descr>
  
  <attribute type="unsigned long" readonly="yes" name="whatToShow" id="LS-LSSerializerFilter-whatToShow">
    <descr>
      <p>
        Tells the <code>LSSerializer</code> what types of nodes to
        show to the filter. See <code>NodeFilter</code> for definition
        of the constants. The constants <code>SHOW_DOCUMENT</code>,
        <code>SHOW_DOCUMENT_TYPE</code>,
        <code>SHOW_DOCUMENT_FRAGMENT</code>,
        <code>SHOW_NOTATION</code>, and <code>SHOW_ENTITY</code> are
        meaningless here, such nodes will never be passed to a
        <code>LSSerializerFilter</code>.
      </p>
      <p>
        The constants used here are defined in <bibref ref="DOM2Traversal-Range"/>.
      </p>
    </descr>
  </attribute>
  
</interface>

      </definitions>
    </div2>

<!--=====================================================================
=                                                                       =
=      LSOutputStream                                                  =
=                                                                       =
======================================================================-->
<!--
<interface name="LSOutputStream" id="LS-Interfaces-LSOutputStream">
<descr>
     <p>  <code>LSOutputStream</code> is an opaque type that defines the
          destination for the XML output of a <code>LSSerializer</code>.  Each
          language binding will equate it to an appropriate
          native byte stream type.
     </p>


-->
 <!-- <p>  In addition to the predefined types of output streams available
          from the DOM factory interfaces, applications may implement
          this interface in their own classes, thus providing for
          arbitrary capture or redirection of the output of a LSSerializer.
      </p>


  </descr>
  -->


<!--
  <method name="writeBytes" id="LS-LSOutputStream-writeBytes">
    <descr><p>Write the bytes specified by the parameter to the
              destination.  The bytes are not examined or interpreted
              in any way.  In normal use, the bytes will have been
              created by the formatter associated with a LSSerializer.
          </p>
    </descr>

    <parameters>
       <param name="data" type="sequence &amp;lt;octet>" attr="in">
       <descr>
            <p>The data to be written.   <i>What is the right
               type to use here?  Is sequence &amp;lt;octet> the
               right IDL type?  In any event, this will map
               to some native array or pointer type in the
               language bindings.</i></p>
       </descr>

       </param>
    </parameters>

    <returns type="void">
        <descr>
        </descr>
    </returns>

    <raises>
    <exception name="DOMException">
    <descr>
       <p><i>TBD</i></p>
    </descr>
    </exception>
    </raises>
  </method>


  <method name="close" id="LS-LSOutputStream-close">
    <descr><p>Close the LSOutputStream.  Causes any buffered
              data to be flushed, and closes or releases any
              other resource, such as open files, that may
              have been associated with the output stream.
          </p>
          <p>
              A LSOutputStream may not be used after close has
              been called.
          </p>
          <p> Applications must explicitly call close after
              finishing their use of an output stream.
          </p>
    </descr>

    <parameters>
    </parameters>

    <returns type="void">
        <descr>
        </descr>
    </returns>

    <raises>
    <exception name="DOMException">
    <descr>
       <p><i>TBD</i></p>
    </descr>
    </exception>
    </raises>
  </method>
</interface>

-->


</div1><!--
 *************************************************************************
 * END OF LOAD-SAVE                                                      *
 *************************************************************************
-->

</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 Abstract Schemas and Load and Save
    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/2003/CR-DOM-Level-3-LS-20031107/idl.zip</loc></p>

    <!--
    ******************************************************
    | Events OMG IDL DEFINITIONS                           |
    ******************************************************
    -->
      <?GENERATE-IDL Load-Save ls dom.w3c.org dom events traversal?>
</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 Load and Save.</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/2003/CR-DOM-Level-3-LS-20031107/java-binding.zip</loc></p>

    <!--
    ******************************************************
    | Events JAVA BINDINGS                                 |
    ******************************************************
    -->
      <?GENERATE-JAVA Load-Save org.w3c.dom ls?>
</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 Load
  and Save definitions.</p>

    <!--
    ******************************************************
    | Events ECMA SCRIPT BINDINGS                         |
    ******************************************************
    -->
  <?GENERATE-ECMA Load-Save?>
</div1>
    <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 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>
	Many thanks to Elliotte Rusty Harold, Andrew Clover, Anjana
	Manian, Christian Parpart, Mikko Honkala, and Fran&#231;ois
	Yergeau for their review and comments of this document.
      </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: Fred Drake, Mary
	Brady (NIST), Rick Rivello (NIST), Robert Clary (Netscape), with
	a special mention to Curt Arnold.
      </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.3 2003/11/05 20:12:59 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/2000/REC-xml-20001006#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/2000/REC-xml-20001006#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/2000/REC-xml-20001006#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/2000/REC-xml-20001006#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.3 2003/11/05 20:12:59 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/2003/CR-DOM-Level-3-Core-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 Core
        Specification</titleref>, A. Le Hors, et al., Editors. World
        Wide Web Consortium, October 2003. This version of the Document
        Object Model Level 3 Core Specification is
        http://www.w3.org/TR/2003/CR-DOM-Level-3-Core-20031107. 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, October 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/2003/CR-DOM-Level-3-LS-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 Load and Save
        Specification</titleref>, J.  Stenback, A. Heninger,
        Editors. World Wide Web Consortium, October 2003.  This version of
        the DOM Level 3 Load and Save Specification is
        http://www.w3.org/TR/2003/CR-DOM-Level-3-LS-20031107. 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/2003/CR-DOM-Level-3-Val-20030730" 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, July 2003.  This version of
        the DOM Level 3 Validation Specification is
        http://www.w3.org/TR/2003/CR-DOM-Level-3-Val-20030730. 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/1.2/docs/guide/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/1.2/docs/guide/idl
      </bibl>      
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="JavaScript" key="JavaScript" href="http://developer.netscape.com/tech/javascript/resources.html" 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://developer.netscape.com/tech/javascript/resources.html
      </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/scripting/default.htm" 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/scripting/default.htm
      </bibl>    
      <bibl xmlns:xlink="http://www.w3.org/1999/xlink" id="KeyEvent" key="KeyEvent for Java" href="http://java.sun.com/j2se/1.4.1/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 SDK, Standard Edition Documentation, Version
	1.4.1, Class java.awt.events.KeyEvent</titleref>. Sun
	Microsystems. Available at
	http://java.sun.com/j2se/1.4.1/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/2001/REC-MathML2-20010221" 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</titleref>, D. Carlisle, P. Ion, R. Miner, N. Poppelier,
	Editors. World Wide Web Consortium, 21 February 2001. This version
	of the Math 2.0 Recommendation is http://www.w3.org/TR/2001/REC-MathML2-20010221. 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.0" href="http://www.w3.org/TR/2001/REC-SVG-20010904" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
	<titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">Scalable Vector Graphics (SVG) 1.0
	Specification</titleref>, J. Ferraiolo, Editor. World Wide Web
	Consortium, 4 September 2001. This version of the SVG 1.0
	Recommendation is http://www.w3.org/TR/2001/REC-SVG-20010904. The <loc href="http://www.w3.org/TR/SVG" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">latest version of SVG 1.0</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/PR-xforms-20030801/" 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, August 2003. This
        version of the XForms 1.0 specification is http://www.w3.org/TR/2003/PR-xforms-20030801/. 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/2000/REC-xml-20001006" 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 (Second
	Edition)</titleref>, T. Bray, J. Paoli,
	C. M. Sperberg-McQueen, and E. Maler, Editors. World Wide Web
	Consortium, 10 February 1998, revised 6 October 2000. This
	version of the XML 1.0 Recommendation is http://www.w3.org/TR/2000/REC-xml-20001006. 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/2003/PR-xml11-20031105/" 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, November 2003. This version of the XML 1.1
	Specification is http://www.w3.org/TR/2003/PR-xml11-20031105. 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/2001/REC-xml-infoset-20011024/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">
        <titleref xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">XML Information Set</titleref>, J. Cowan and R.
        Tobin, Editors. World Wide Web Consortium, 24 October 2001.
        This version of the XML Information Set Recommendation is
        http://www.w3.org/TR/2001/REC-xml-infoset-20011024. 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 XML
	Information Set 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/2003/PR-xml-names11-20031105/" 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, November 2003. This version of the XML Information
	Set Specification is
	http://www.w3.org/TR/2003/PR-xml-names11-20031105/. 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</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.3 2003/11/05 20:12:59 plehegar Exp $ -->
<!--
 *************************************************************************
 * BEGINNING OF DOM INDEX                                                * 
 *************************************************************************
-->
<div1 role="index" id="Index">
  <head>Index</head>
  <?GENERATE-DEFINITION-INDEX?>
</div1>
<!--
 *************************************************************************
 * END OF DOM INDEX                                                      *
 *************************************************************************
-->
 
</back> </spec>