   interface Document : Node {
 /* IID: { 0xa6cf9075, 0x15b3, 0x11d2, \
  { 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 } } */

     readonly attribute  DocumentType         doctype;
     readonly attribute  DOMImplementation    implementation;
     readonly attribute  Element              documentElement;
     Element                   createElement(in DOMString tagName)
                                             raises(DOMException);
     DocumentFragment          createDocumentFragment();
     Text                      createTextNode(in DOMString data);
     Comment                   createComment(in DOMString data);
     CDATASection              createCDATASection(in DOMString data)
                                                  raises(DOMException);
     ProcessingInstruction     createProcessingInstruction(in DOMString target, 
                                                           in DOMString data)
                                                           raises(DOMException);
     Attr                      createAttribute(in DOMString name)
                                                 raises(DOMException);
     EntityReference           createEntityReference(in DOMString name)
                                                     raises(DOMException);
     NodeList                  getElementsByTagName(in DOMString tagname);
   };

   interface NSDocument {
/* IID: { 0xa6cf90cd, 0x15b3, 0x11d2, \
  { 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32} } */

     readonly attribute long width;
     readonly attribute long height;
     readonly attribute StyleSheetCollection styleSheets;
     readonly attribute DOMString characterSet;
     Element                   createElementWithNameSpace(in DOMString tagName,
                                                          in DOMString nameSpace)
                                                          raises(DOMException);     Range                     createRange();
   };
