<?xml version="1.0" encoding="UTF-8"?>
<!--[ DOMImplementation object description ]-->    
<!-- $Date: 2001/11/26 22:34:22 $ $Revision: 1.1.1.1 $ -->
<interface name="DOMImplementation" id="ID-102161490">
  <descr><p>The <code>DOMImplementation</code> interface provides a
      number of methods for performing operations that are independent
      of any particular instance of the document object model.</p>
  </descr>
  <method name="hasFeature" id="ID-5CED94D7">
	  <descr><p>Test if the DOM implementation implements a
	   specific feature.</p></descr> 
    <parameters>
      <param name="feature" type="DOMString" attr="in">
	<descr><p>The name of the feature to test (case-insensitive). The
	values used by DOM features are defined throughout the DOM Level 2 specifications and listed in
	the <specref ref="ID-Compliance"/> section. The name must be an
	    <termref def="dt-XML-name">XML name</termref>. To avoid possible
	    conflicts, as a convention, names referring to features defined
	    outside the DOM specification should be made unique by reversing the name of
	    the Internet domain name of the person (or the organization that the
	    person belongs to) who defines the feature, component by component,
	    and using this as a prefix. For instance, the W3C SVG Working Group
	    defines the feature "org.w3c.dom.svg".</p></descr>
      </param>
      <param name="version" type="DOMString" attr="in">
	<descr><p>This is the version number of the feature to test. In Level
	    2, the string can be either "2.0" or "1.0". If the version is not
            specified, supporting any version of the feature causes the method
            to return <code>true</code>.</p></descr>
      </param>
    </parameters>
    <returns type="boolean">
      <descr><p><code>true</code> if the feature is implemented in the
	  specified version, <code>false</code> otherwise.</p></descr>
    </returns>
    <raises>
      <!-- Throws no exceptions -->
    </raises>
  </method>

  <!-- ****** DOM Level 2 additions ****** -->
  <method name="createDocumentType" id="Level-2-Core-DOM-createDocType"
    since="DOM Level 2">
    <descr><p>Creates an empty <code>DocumentType</code> node. Entity
	declarations and notations are not made available. Entity reference
	expansions and default attribute additions do not occur. It is expected
	that a future version of the DOM will provide a way for populating a
	<code>DocumentType</code>.</p>
	<p>HTML-only DOM implementations do not need to
	  implement this method.</p>
    </descr>
    <parameters>
      <param name="qualifiedName" type="DOMString" attr="in">
	<descr><p>The <termref def='dt-qualifiedname'>qualified name</termref>
	    of the document type to be created. </p>
	</descr>
      </param>
      <param name="publicId" type="DOMString" attr="in">
	<descr><p>The external subset public identifier.</p>
	</descr>
      </param>
      <param name="systemId" type="DOMString" attr="in">
	<descr><p>The external subset system identifier.</p>
	</descr>
      </param>
    </parameters>
    <returns type="DocumentType">
      <descr><p>A new <code>DocumentType</code> node with
	  <code>Node.ownerDocument</code> set to <code>null</code>.</p></descr>
    </returns>
    <raises>
      <exception name="DOMException">
	<descr><p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
	    contains an illegal character.</p>
	  <p>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
	    malformed.</p>
	</descr>
      </exception>
    </raises>
  </method>

  <method name="createDocument" id="Level-2-Core-DOM-createDocument"
    since="DOM Level 2">
    <descr><p>Creates an XML <code>Document</code> object of the specified type
	with its document element. HTML-only DOM implementations do not need to
	implement this method.</p>
    </descr>
    <parameters>
      <param name="namespaceURI" type="DOMString" attr="in">
	<descr><p>The <termref def='dt-namespaceURI'>namespace URI</termref> of
	    the document element to create.</p>
	</descr>
      </param>
      <param name="qualifiedName" type="DOMString" attr="in">
	<descr><p>The <termref def='dt-qualifiedname'>qualified name</termref>
	    of the document element to be created.</p>
	</descr>
      </param>
      <param name="doctype" type="DocumentType" attr="in">
	<descr><p>The type of document to be created or <code>null</code>.</p>
	  <p>When <code>doctype</code> is not <code>null</code>, its
	    <code>Node.ownerDocument</code> attribute is set to the document
	    being created.</p>
	</descr>
      </param>
    </parameters>
    <returns type="Document">
      <descr><p>A new <code>Document</code> object.</p></descr>
    </returns>
    <raises>
      <exception name="DOMException">
	<descr><p>INVALID_CHARACTER_ERR: Raised if the specified qualified name
	    contains an illegal character.</p>
	  <p>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
	    malformed, if the <code>qualifiedName</code> has a prefix and
	    the <code>namespaceURI</code> is <code>null</code>, or if 
            the <code>qualifiedName</code> has a prefix that
	    is "xml" and the <code>namespaceURI</code> is different
	    from "<loc href='xml-ns;'>xml-ns;</loc>" <bibref
	      ref='Namespaces'/>.</p>
	  <p>WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already
	    been used with a different document or was created from a different
            implementation.</p>
	</descr>
      </exception>
    </raises>
  </method>
</interface>
