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-20011031/idl.zip
// 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;
typedef dom::Element Element;
interface XPathNSResolver;
interface XPathResult;
interface XPathExpression;
interface XPathSetIterator;
interface XPathSetSnapshot;
exception XPathException {
unsigned short code;
};
// XPathExceptionCode
const unsigned short INVALID_EXPRESSION_ERR = 1;
const unsigned short TYPE_ERR = 2;
interface XPathEvaluator {
XPathExpression createExpression(in DOMString expression,
in XPathNSResolver resolver)
raises(XPathException,
dom::DOMException);
XPathResult createResult();
XPathNSResolver createNSResolver(in Node nodeResolver);
XPathResult evaluate(in DOMString expression,
in Node contextNode,
in XPathNSResolver resolver,
in unsigned short type,
in XPathResult result)
raises(XPathException,
dom::DOMException);
};
interface XPathExpression {
XPathResult evaluate(in Node contextNode,
in unsigned short type,
in XPathResult result)
raises(XPathException,
dom::DOMException);
};
interface XPathNSResolver {
DOMString lookupNamespaceURI(in DOMString prefix);
};
interface XPathResult {
// XPathResultType
const unsigned short ANY_TYPE = 0;
const unsigned short NUMBER_TYPE = 1;
const unsigned short STRING_TYPE = 2;
const unsigned short BOOLEAN_TYPE = 3;
const unsigned short NODE_SET_TYPE = 4;
const unsigned short SINGLE_NODE_TYPE = 5;
readonly attribute unsigned short resultType;
readonly attribute double numberValue;
// raises(XPathException) on retrieval
readonly attribute DOMString stringValue;
// raises(XPathException) on retrieval
readonly attribute boolean booleanValue;
// raises(XPathException) on retrieval
readonly attribute Node singleNodeValue;
// raises(XPathException) on retrieval
XPathSetIterator getSetIterator(in boolean ordered)
raises(XPathException,
dom::DOMException);
XPathSetSnapshot getSetSnapshot(in boolean ordered)
raises(XPathException,
dom::DOMException);
};
interface XPathSetIterator {
Node nextNode()
raises(dom::DOMException);
};
interface XPathSetSnapshot {
Node item(in unsigned long index);
readonly attribute unsigned long length;
};
interface XPathNamespace : Node {
// XPathNodeType
const unsigned short XPATH_NAMESPACE_NODE = 13;
readonly attribute Element ownerElement;
};
};
#endif // _XPATH_IDL_