/*
 * Copyright (c) 2001 World Wide Web Consortium,
 * (Massachusetts Institute of Technology, Institut National de
 * Recherche en Informatique et en Automatique, Keio University). All
 * Rights Reserved. This program is distributed under the W3C's Software
 * Intellectual Property License. This program is distributed in the
 * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE.
 * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
 */

// File: http://www.w3.org/TR/2001/WD-DOM-Level-3-Core-20010126/dom.idl

#ifndef _DOM_IDL_
#define _DOM_IDL_

#pragma prefix "w3c.org"
module dom
{

  typedef   Object DOMKey;


  interface Node3 {
    readonly attribute DOMString        baseURI;

    typedef enum _DocumentOrder {
      DOCUMENT_ORDER_PRECEDING,
      DOCUMENT_ORDER_FOLLOWING,
      DOCUMENT_ORDER_SAME,
      DOCUMENT_ORDER_UNORDERED
    };
 DocumentOrder;
    DocumentOrder      compareDocumentOrder(in Node other)
                                        raises(DOMException);

    typedef enum _TreePosition {
      TREE_POSITION_PRECEDING,
      TREE_POSITION_FOLLOWING,
      TREE_POSITION_ANCESTOR,
      TREE_POSITION_DESCENDANT,
      TREE_POSITION_SAME,
      TREE_POSITION_UNORDERED
    };
 TreePosition;
    TreePosition       compareTreePosition(in Node other)
                                        raises(DOMException);
             attribute DOMString        textContent;
    boolean            isSameNode(in Node other);
    DOMString          lookupNamespacePrefix(in DOMString namespaceURI);
    DOMString          lookupNamespaceURI(in DOMString prefix);
    void               normalizeNS();
    readonly attribute DOMKey           key;
    boolean            equalsNode(in Node arg, 
                                  in boolean deep);
  };

  interface Entity3 : Entity {
             attribute DOMString        actualEncoding;
             attribute DOMString        encoding;
             attribute DOMString        version;
  };

  interface Document3 : Document {
             attribute DOMString        actualEncoding;
             attribute DOMString        encoding;
             attribute boolean          standalone;
             attribute boolean          strictErrorChecking;
             attribute DOMString        version;
    Node               adoptNode(in Node source)
                                        raises(DOMException);
  };

  interface Text3 : Text {
    readonly attribute boolean          isWhitespaceInElementContent;
  };
};

#endif // _DOM_IDL_

