This appendix contains the complete OMG IDL [OMG IDL] for the Level 3 Document Object Model XPath definitions.
The IDL files are also available as: http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226/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::DOMObject DOMObject;
typedef dom::Element Element;
interface XPathNSResolver;
interface XPathExpression;
exception XPathException {
unsigned short code;
};
// XPathExceptionCode
const unsigned short INVALID_EXPRESSION_ERR = 51;
const unsigned short TYPE_ERR = 52;
interface XPathEvaluator {
XPathExpression createExpression(in DOMString expression,
in XPathNSResolver resolver)
raises(XPathException,
dom::DOMException);
XPathNSResolver createNSResolver(in Node nodeResolver);
DOMObject evaluate(in DOMString expression,
in Node contextNode,
in XPathNSResolver resolver,
in unsigned short type,
in DOMObject result)
raises(XPathException,
dom::DOMException);
};
interface XPathExpression {
DOMObject evaluate(in Node contextNode,
in unsigned short type,
in DOMObject 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 UNORDERED_NODE_ITERATOR_TYPE = 4;
const unsigned short ORDERED_NODE_ITERATOR_TYPE = 5;
const unsigned short UNORDERED_NODE_SNAPSHOT_TYPE = 6;
const unsigned short ORDERED_NODE_SNAPSHOT_TYPE = 7;
const unsigned short ANY_UNORDERED_NODE_TYPE = 8;
const unsigned short FIRST_ORDERED_NODE_TYPE = 9;
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
readonly attribute boolean invalidIteratorState;
readonly attribute unsigned long snapshotLength;
// raises(XPathException) on retrieval
Node iterateNext()
raises(XPathException,
dom::DOMException);
Node snapshotItem(in unsigned long index)
raises(XPathException);
};
interface XPathNamespace : Node {
// XPathNodeType
const unsigned short XPATH_NAMESPACE_NODE = 13;
readonly attribute Element ownerElement;
};
};
#endif // _XPATH_IDL_