18 June 2001

Appendix A: IDL Definitions

This appendix contains the complete OMG IDL [OMGIDL] for the Level 3 Document Object Model XPath definitions.

The IDL files are also available as: http://www.w3.org/TR/2001/WD-DOM-Level-3-XPath-20010618/idl.zip

xpath.idl:

// File: xpath.idl

#ifndef _XPATH_IDL_
#define _XPATH_IDL_

#include "dom.idl"

#pragma prefix "dom.w3c.org"
module xpath
{

  typedef dom::DOMString DOMString;
  typedef dom::Node Node;

  interface NamespaceResolver;
  interface ActiveNodeSet;

  exception XPathException {
    unsigned short   code;
  };


  interface XPathEvaluator {
    boolean            evaluateAsBoolean(in DOMString expression, 
                                         in Node contextNode, 
                                         in NamespaceResolver resolver)
                                        raises(XPathException);
    double             evaluateAsNumber(in DOMString expression, 
                                        in Node contextNode, 
                                        in NamespaceResolver resolver)
                                        raises(XPathException);
    DOMString          evaluateAsString(in DOMString expression, 
                                        in Node contextNode, 
                                        in NamespaceResolver resolver)
                                        raises(XPathException);
    Node               evaluateAsNode(in DOMString expression, 
                                      in Node contextNode, 
                                      in NamespaceResolver resolver)
                                        raises(XPathException);
    ActiveNodeSet      evaluateAsNodeSet(in DOMString expression, 
                                         in Node contextNode, 
                                         in NamespaceResolver resolver)
                                        raises(XPathException);
  };

  interface StaticNodeSet {
    Node               item(in unsigned long index);
    readonly attribute unsigned long    length;
  };

  interface ActiveNodeSet {
    Node               nextNode()
                                        raises(dom::DOMException);
    void               reset()
                                        raises(dom::DOMException);
    ActiveNodeSet      cloneSet()
                                        raises(dom::DOMException);
    ActiveNodeSet      getDocumentOrderedSet()
                                        raises(dom::DOMException);
    StaticNodeSet      getStaticNodeSet()
                                        raises(dom::DOMException);
  };

  interface NamespaceResolver {
    DOMString          lookupNamespaceURI(in DOMString prefix);
  };
};

#endif // _XPATH_IDL_