C++ Language Binding for DOM Level 3

[Back to Readme] [Go to C++ Language Binding for DOM Level 2]


This document contains the Apache Recommended C++ Language binding for the Document Object Model Level 3.0 Core, and for the Document Object Model Level 3.0 Load and Save, as well as the Document Object Model Level 3.0 XPath Note. 

The definitions are divided into Core, and Load and Save and XPath. The headers are also available in Xerces-C++ distribution.

Note:

  1. Constructor and Destructors are implementation specific
  2. String is represented by "XMLCh*" which is a pointer to unsigned 16 bit type holding utf-16 values, null terminated.
  3. XMLSize_t is an implementation-dependent unsigned integral type
  4. DOMObject is represented as void*
  5. C++ Memory Management:
    1. A member method "release()" is added for releasing any "orphaned" resources that were created through createXXXX factory method.
    2. Memory for any returned object e.g.
      • DOMImplementation* getDOMImplementation(const XMLCh* features)
      • ... etc.
      • are owned by implementation

Change History

Date Description
Xerces-C++ 2.0: July 23, 2002 Created
Xerces-C++ 2.1: August 26, 2002 Modified
- add const modifier to DOMNode::lookupNamespacePrefix
- add const modifier to DOMNode::lookupNamespaceURI
- add const modifier to DOMNode::isDefaultNamespace
Xerces-C++ 2.2: February 7, 2003 Modified
- add DOMElement::getTypeInfo and DOMAttr::getTypeInfo and DOMTypeInfo.hpp
- add const modifier to DOMNode::compareTreePosition, and add DOMTreePosition
- add const modifier to DOMNode::isSameNode
- add const modifier to DOMNode::isEqualNode
- add const modifier to DOMImplementation::hasFeature
- fix typo: "Mode:" -> "Model"
- added DOMAttr::isID
- added DOMElement::setIdAttribute, DOMElement::setIdAttributeNS, DOMElement::setIdAttributeNode
Xerces-C++ 2.3 Modified
- added DOMError::getRelatedData, DOMError::setRelatedData, DOMError::SetType, DOMError::getType
- removed DOMDocument::setFeature, DOMDocument::getFeature, DOMDocument::canSetFeature
- added DOMDocument::getDOMConfiguration
Xerces-C++ 2.4 Modified
- added DOM Level 3 XPath interfaces
Xerces-C++ 3.0 Modified
- Updated to match the final DOM Level 3 Recommendation documents


A: Document Object Model: Core

DOMImplementationRegistry.hpp:

class DOMImplementationRegistry
{
public:
static DOMImplementation* getDOMImplementation(const XMLCh* features);
static DOMImplementationList* getDOMImplementationList(const XMLCh* features);
static void addSource(DOMImplementationSource* source);
};

DOMImplementationSource.hpp:

class DOMImplementationSource
{
public:
virtual DOMImplementation* getDOMImplementation(const XMLCh* features) const = 0;
virtual DOMImplementationList* getDOMImplementationList(const XMLCh* features) const = 0;
};

DOMImplementationList.hpp:

class DOMImplementationList
{
public:
virtual DOMImplementation *item(unsigned int index) const = 0;
virtual unsigned int getLength() const = 0;
virtual void release() = 0;
};

DOMImplementation.hpp:

class DOMImplementation : public DOMImplementationLS
{
public:
virtual bool hasFeature(const XMLCh *feature, const XMLCh *version) const = 0;
virtual DOMDocumentType *createDocumentType(const XMLCh *qualifiedName, const XMLCh *publicId, const XMLCh *systemId) = 0;
virtual DOMDocument *createDocument(const XMLCh *namespaceURI, const XMLCh *qualifiedName, DOMDocumentType *doctype, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
virtual DOMDocument *createDocument(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
static DOMImplementation *getImplementation();
};

DOMConfiguration.hpp:

class DOMConfiguration
{
public:
virtual void setParameter(const XMLCh* name, const void* value) = 0;
virtual void setParameter(const XMLCh* name, bool value) = 0;
virtual const void* getParameter(const XMLCh* name) const = 0;
virtual bool canSetParameter(const XMLCh* name, const void* value) const = 0;
virtual bool canSetParameter(const XMLCh* name, bool value) const = 0;
virtual const DOMStringList* getParameterNames() const = 0;
};

DOMStringList.hpp:

class DOMStringList
{
public:
virtual const XMLCh *item(unsigned int index) const = 0;
virtual unsigned int getLength() const = 0;
virtual bool contains(const XMLCh*) const = 0;
virtual void release() = 0;
};

DOMNamedNodeMap.hpp:

class DOMNamedNodeMap
{
public:
virtual DOMNode *setNamedItem(DOMNode *arg) = 0;
virtual DOMNode *item(unsigned int index) const = 0;
virtual DOMNode *getNamedItem(const XMLCh *name) const = 0;
virtual unsigned int getLength() const = 0;
virtual DOMNode *removeNamedItem(const XMLCh *name) = 0;
virtual DOMNode *getNamedItemNS(const XMLCh *namespaceURI, const XMLCh *localName) const = 0;
virtual DOMNode *setNamedItemNS(DOMNode *arg) = 0;
virtual DOMNode *removeNamedItemNS(const XMLCh *namespaceURI, const XMLCh *localName) = 0;
};

DOMNodeList.hpp:

class DOMNodeList
{
public:
virtual DOMNode *item(unsigned int index) const = 0;
virtual unsigned int getLength() const = 0;
};

DOMError.hpp:

class DOMError
{
public:
virtual short getSeverity() const = 0;
virtual const XMLCh* getMessage() const = 0;
virtual DOMLocator* getLocation() const = 0;
virtual void* getRelatedException() const = 0;
virtual const XMLCh* getType() const = 0;
virtual void* getRelatedData() const = 0;
};

DOMException.hpp:

class DOMException
{
public:
enum ExceptionCode {
INDEX_SIZE_ERR = 1,
DOMSTRING_SIZE_ERR = 2,
HIERARCHY_REQUEST_ERR = 3,
WRONG_DOCUMENT_ERR = 4,
INVALID_CHARACTER_ERR = 5,
NO_DATA_ALLOWED_ERR = 6,
NO_MODIFICATION_ALLOWED_ERR = 7,
NOT_FOUND_ERR = 8,
NOT_SUPPORTED_ERR = 9,
INUSE_ATTRIBUTE_ERR = 10,
INVALID_STATE_ERR = 11,
SYNTAX_ERR = 12,
INVALID_MODIFICATION_ERR = 13,
NAMESPACE_ERR = 14,
INVALID_ACCESS_ERR = 15,
VALIDATION_ERR = 16,
TYPE_MISMATCH_ERR = 17,
};
};

DOMLocator.hpp:

class DOMLocator
{
public:
virtual unsigned long getLineNumber() const = 0;
virtual unsigned long getColumnNumber() const = 0;
virtual XMLFilePos getByteOffset() const = 0;
virtual XMLFilePos getUtf16Offset() const = 0;
virtual DOMNode* getRelatedNode() const = 0;
virtual const XMLCh* getURI() const = 0;
};

DOMNode.hpp:

class DOMNode
{
public:
enum NodeType {
ELEMENT_NODE = 1,
ATTRIBUTE_NODE = 2,
TEXT_NODE = 3,
CDATA_SECTION_NODE = 4,
ENTITY_REFERENCE_NODE = 5,
ENTITY_NODE = 6,
PROCESSING_INSTRUCTION_NODE = 7,
COMMENT_NODE = 8,
DOCUMENT_NODE = 9,
DOCUMENT_TYPE_NODE = 10,
DOCUMENT_FRAGMENT_NODE = 11,
NOTATION_NODE = 12,
};
enum DocumentPosition {
DOCUMENT_POSITION_DISCONNECTED = 0x01,
DOCUMENT_POSITION_PRECEDING = 0x02,
DOCUMENT_POSITION_FOLLOWING = 0x04,
DOCUMENT_POSITION_CONTAINS = 0x08,
DOCUMENT_POSITION_CONTAINED_BY = 0x10,
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20,
};
virtual const XMLCh * getNodeName() const = 0;
virtual const XMLCh * getNodeValue() const = 0;
virtual short getNodeType() const = 0;
virtual DOMNode *getParentNode() const = 0;
virtual DOMNodeList *getChildNodes() const = 0;
virtual DOMNode *getFirstChild() const = 0;
virtual DOMNode *getLastChild() const = 0;
virtual DOMNode *getPreviousSibling() const = 0;
virtual DOMNode *getNextSibling() const = 0;
virtual DOMNamedNodeMap *getAttributes() const = 0;
virtual DOMDocument *getOwnerDocument() const = 0;
virtual DOMNode * cloneNode(bool deep) const = 0;
virtual DOMNode *insertBefore(DOMNode *newChild, DOMNode *refChild) = 0;
virtual DOMNode *replaceChild(DOMNode *newChild, DOMNode *oldChild) = 0;
virtual DOMNode *removeChild(DOMNode *oldChild) = 0;
virtual DOMNode *appendChild(DOMNode *newChild) = 0;
virtual bool hasChildNodes() const = 0;
virtual void setNodeValue(const XMLCh *nodeValue) = 0;
virtual void normalize() = 0;
virtual bool isSupported(const XMLCh *feature, const XMLCh *version) const = 0;
virtual const XMLCh * getNamespaceURI() const = 0;
virtual const XMLCh * getPrefix() const = 0;
virtual const XMLCh * getLocalName() const = 0;
virtual void setPrefix(const XMLCh * prefix) = 0;
virtual bool hasAttributes() const = 0;
virtual bool isSameNode(const DOMNode* other) const = 0;
virtual bool isEqualNode(const DOMNode* arg) const = 0;
virtual void* setUserData(const XMLCh* key, void* data, DOMUserDataHandler* handler) = 0;
virtual void* getUserData(const XMLCh* key) const = 0;
virtual const XMLCh* getBaseURI() const = 0;
virtual short compareDocumentPosition(const DOMNode* other) const = 0;
virtual const XMLCh* getTextContent() const = 0;
virtual void setTextContent(const XMLCh* textContent) = 0;
virtual const XMLCh* lookupPrefix(const XMLCh* namespaceURI) const = 0;
virtual bool isDefaultNamespace(const XMLCh* namespaceURI) const = 0;
virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
virtual void release() = 0;
virtual void decRefCount() {}
virtual void incRefCount() {}
};

DOMAttr.hpp:

class DOMAttr : public DOMNode
{
public:
virtual const XMLCh * getName() const = 0;
virtual bool getSpecified() const = 0;
virtual const XMLCh * getValue() const = 0;
virtual void setValue(const XMLCh *value) = 0;
virtual DOMElement *getOwnerElement() const = 0;
virtual bool isId() const = 0;
virtual const DOMTypeInfo * getSchemaTypeInfo() const = 0;
};

DOMCDATASection.hpp:

class DOMCDATASection : public DOMText
{
public:
};

DOMCharacterData.hpp:

class DOMCharacterData : public DOMNode
{
public:
virtual const XMLCh * getData() const = 0;
virtual XMLSize_t getLength() const = 0;
virtual const XMLCh * substringData(XMLSize_t offset, XMLSize_t count) const = 0;
virtual void appendData(const XMLCh *arg) = 0;
virtual void insertData(XMLSize_t offset, const XMLCh *arg) = 0;
virtual void deleteData(XMLSize_t offset, XMLSize_t count) = 0;
virtual void replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg) = 0;
virtual void setData(const XMLCh *data) = 0;
};

DOMComment.hpp:

class DOMComment : public DOMCharacterData
{
public:
};

DOMDocument.hpp:

class DOMDocument : public DOMNode
{
public:
virtual DOMElement *createElement(const XMLCh *tagName) = 0;
virtual DOMDocumentFragment *createDocumentFragment() = 0;
virtual DOMText *createTextNode(const XMLCh *data) = 0;
virtual DOMComment *createComment(const XMLCh *data) = 0;
virtual DOMCDATASection *createCDATASection(const XMLCh *data) = 0;
virtual DOMProcessingInstruction *createProcessingInstruction(const XMLCh *target, const XMLCh *data) = 0;
virtual DOMAttr *createAttribute(const XMLCh *name) = 0;
virtual DOMEntityReference *createEntityReference(const XMLCh *name) = 0;
virtual DOMDocumentType *getDoctype() const = 0;
virtual DOMImplementation *getImplementation() const = 0;
virtual DOMElement *getDocumentElement() const = 0;
virtual DOMNodeList *getElementsByTagName(const XMLCh *tagname) const = 0;
virtual DOMNode *importNode(const DOMNode *importedNode, bool deep) = 0;
virtual DOMElement *createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName) = 0;
virtual DOMAttr *createAttributeNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName) = 0;
virtual DOMNodeList *getElementsByTagNameNS(const XMLCh *namespaceURI, const XMLCh *localName) const = 0;
virtual DOMElement * getElementById(const XMLCh *elementId) const = 0;
virtual const XMLCh* getInputEncoding() const = 0;
virtual const XMLCh* getXmlEncoding() const = 0;
virtual bool getXmlStandalone() const = 0;
virtual void setXmlStandalone(bool standalone) = 0;
virtual const XMLCh* getXmlVersion() const = 0;
virtual void setXmlVersion(const XMLCh* version) = 0;
virtual const XMLCh* getDocumentURI() const = 0;
virtual void setDocumentURI(const XMLCh* documentURI) = 0;
virtual bool getStrictErrorChecking() const = 0;
virtual void setStrictErrorChecking(bool strictErrorChecking) = 0;
virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const XMLCh* qualifiedName) = 0;
virtual DOMNode* adoptNode(DOMNode* source) = 0;
virtual void normalizeDocument() = 0;
virtual DOMConfiguration* getDOMConfig() const = 0;
virtual DOMEntity *createEntity(const XMLCh *name) = 0;
virtual DOMDocumentType *createDocumentType(const XMLCh *name) = 0;
virtual DOMDocumentType* createDocumentType(const XMLCh *qName, const XMLCh*, //publicId, const XMLCh* //systemId )
virtual DOMNotation *createNotation(const XMLCh *name) = 0;
virtual DOMElement *createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName, const unsigned long lineNum, const unsigned long columnNum) = 0;
};

DOMDocumentFragment.hpp:

class DOMDocumentFragment : public DOMNode
{
public:
};

DOMDocumentType.hpp:

class DOMDocumentType : public DOMNode
{
public:
virtual const XMLCh * getName() const = 0;
virtual DOMNamedNodeMap *getEntities() const = 0;
virtual DOMNamedNodeMap *getNotations() const = 0;
virtual const XMLCh * getPublicId() const = 0;
virtual const XMLCh * getSystemId() const = 0;
virtual const XMLCh * getInternalSubset() const = 0;
};

DOMElement.hpp:

class DOMElement : public DOMNode
{
public:
virtual const XMLCh * getTagName() const = 0;
virtual const XMLCh * getAttribute(const XMLCh *name) const = 0;
virtual DOMAttr * getAttributeNode(const XMLCh *name) const = 0;
virtual DOMNodeList * getElementsByTagName(const XMLCh *name) const = 0;
virtual void setAttribute(const XMLCh *name, const XMLCh *value) = 0;
virtual DOMAttr * setAttributeNode(DOMAttr *newAttr) = 0;
virtual DOMAttr * removeAttributeNode(DOMAttr *oldAttr) = 0;
virtual void removeAttribute(const XMLCh *name) = 0;
virtual const XMLCh * getAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName) const = 0;
virtual void setAttributeNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLCh *value) = 0;
virtual void removeAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName) = 0;
virtual DOMAttr * getAttributeNodeNS(const XMLCh *namespaceURI, const XMLCh *localName) const = 0;
virtual DOMAttr * setAttributeNodeNS(DOMAttr *newAttr) = 0;
virtual DOMNodeList * getElementsByTagNameNS(const XMLCh *namespaceURI, const XMLCh *localName) const = 0;
virtual bool hasAttribute(const XMLCh *name) const = 0;
virtual bool hasAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName) const = 0;
virtual void setIdAttribute(const XMLCh* name, bool isId) = 0;
virtual void setIdAttributeNS(const XMLCh* namespaceURI, const XMLCh* localName, bool isId) = 0;
virtual void setIdAttributeNode(const DOMAttr *idAttr, bool isId) = 0;
virtual const DOMTypeInfo* getSchemaTypeInfo() const = 0;
};

DOMEntity.hpp:

class DOMEntity : public DOMNode
{
public:
virtual const XMLCh * getPublicId() const = 0;
virtual const XMLCh * getSystemId() const = 0;
virtual const XMLCh * getNotationName() const = 0;
virtual const XMLCh* getInputEncoding() const = 0;
virtual const XMLCh* getXmlEncoding() const = 0;
virtual const XMLCh* getXmlVersion() const = 0;
};

DOMEntityReference.hpp:

class DOMEntityReference : public DOMNode
{
public:
};

DOMNotation.hpp:

class DOMNotation : public DOMNode
{
public:
virtual const XMLCh *getPublicId() const = 0;
virtual const XMLCh *getSystemId() const = 0;
};

DOMProcessingInstruction.hpp:

class DOMProcessingInstruction : public DOMNode
{
public:
virtual const XMLCh * getTarget() const = 0;
virtual const XMLCh * getData() const = 0;
virtual void setData(const XMLCh * data) = 0;
};

DOMText.hpp:

class DOMText : public DOMCharacterData
{
public:
virtual DOMText *splitText(XMLSize_t offset) = 0;
virtual bool getIsElementContentWhitespace() const = 0;
virtual const XMLCh* getWholeText() const = 0;
virtual DOMText* replaceWholeText(const XMLCh* content) = 0;
virtual bool isIgnorableWhitespace() const = 0;
};

DOMTypeInfo.hpp:

class DOMTypeInfo
{
public:
enum DerivationMethods {
DERIVATION_RESTRICTION = 0x001,
DERIVATION_EXTENSION = 0x002,
DERIVATION_UNION = 0x004,
DERIVATION_LIST = 0x008,
};
virtual const XMLCh* getTypeName() const = 0;
virtual const XMLCh* getTypeNamespace() const = 0;
virtual bool isDerivedFrom(const XMLCh* typeNamespaceArg, const XMLCh* typeNameArg, unsigned long derivationMethod) const = 0;
};

DOMErrorHandler.hpp:

class DOMErrorHandler
{
public:
virtual bool handleError(const DOMError& domError) = 0;
};

DOMUserDataHandler.hpp:

class DOMUserDataHandler
{
public:
enum DOMOperationType {
NODE_CLONED = 1,
NODE_IMPORTED = 2,
NODE_DELETED = 3,
NODE_RENAMED = 4,
NODE_ADOPTED = 5,
};
virtual void handle(DOMOperationType operation, const XMLCh* const key, void* data, const DOMNode* src, DOMNode* dst) = 0;
};

B: Document Object Model: Load and Save

DOMLSException.hpp:

class DOMLSException : public DOMException
{
public:
enum LSExceptionCode {
PARSE_ERR = 81,
SERIALIZE_ERR = 82,
};
};

DOMImplementationLS.hpp:

class DOMImplementationLS
{
public:
virtual DOMLSParser* createLSParser(const unsigned short mode, const XMLCh* const schemaType, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager, XMLGrammarPool* const gramPool = 0) = 0;
virtual DOMLSSerializer* createLSSerializer(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
virtual DOMLSInput* createLSInput(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
virtual DOMLSOutput* createLSOutput(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
};

DOMLSInput.hpp:

class DOMLSInput
{
public:
virtual const XMLCh* getStringData() const = 0;
virtual InputSource* getByteStream() const = 0;
virtual const XMLCh* getEncoding() const = 0;
virtual const XMLCh* getPublicId() const = 0;
virtual const XMLCh* getSystemId() const = 0;
virtual const XMLCh* getBaseURI() const = 0;
virtual void setStringData(const XMLCh* data) = 0;
virtual void setByteStream(InputSource* stream) = 0;
virtual void setEncoding(const XMLCh* const encodingStr) = 0;
virtual void setPublicId(const XMLCh* const publicId) = 0;
virtual void setSystemId(const XMLCh* const systemId) = 0;
virtual void setBaseURI(const XMLCh* const baseURI) = 0;
virtual void setIssueFatalErrorIfNotFound(bool flag) = 0;
virtual bool getIssueFatalErrorIfNotFound() const = 0;
virtual void release() = 0;
};

DOMLSOutput.hpp:

class DOMLSOutput
{
public:
virtual XMLFormatTarget* getByteStream() const = 0;
virtual const XMLCh* getEncoding() const = 0;
virtual const XMLCh* getSystemId() const = 0;
virtual void setByteStream(XMLFormatTarget* stream) = 0;
virtual void setEncoding(const XMLCh* const encodingStr) = 0;
virtual void setSystemId(const XMLCh* const systemId) = 0;
virtual void release() = 0;
};

DOMLSParser.hpp:

class DOMLSParser
{
public:
virtual DOMConfiguration* getDomConfig() = 0;
virtual const DOMLSParserFilter* getFilter() const = 0;
virtual bool getAsync() const = 0;
virtual bool getBusy() const = 0;
virtual void setFilter(DOMLSParserFilter* const filter) = 0;
virtual DOMDocument* parse(const DOMLSInput* source) = 0;
virtual DOMDocument* parseURI(const XMLCh* const uri) = 0;
virtual DOMDocument* parseURI(const char* const uri) = 0;
virtual void abort() = 0;
virtual void release() = 0;
virtual void resetDocumentPool() = 0;
virtual Grammar* loadGrammar(const DOMLSInput* source, const short grammarType, const bool toCache = false) = 0;
virtual Grammar* loadGrammar(const XMLCh* const systemId, const short grammarType, const bool toCache = false) = 0;
virtual Grammar* loadGrammar(const char* const systemId, const short grammarType, const bool toCache = false) = 0;
virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) const = 0;
virtual Grammar* getRootGrammar() const = 0;
virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
virtual void resetCachedGrammarPool() = 0;
virtual XMLFilePos getSrcOffset() const = 0;
};

DOMLSParserFilter.hpp:

class DOMLSParserFilter
{
public:
enum FilterAction {
FILTER_REJECT = 2,
FILTER_SKIP = 3,
FILTER_INTERRUPT = 4};,
};
virtual short acceptNode(DOMNode* node) = 0;
virtual short startElement(DOMElement* node) = 0;
virtual unsigned long getWhatToShow() const = 0;
};

DOMLSResourceResolver.hpp:

class DOMLSResourceResolver
{
public:
virtual DOMLSInput* resolveResource( const XMLCh* const resourceType , const XMLCh* const namespaceUri , const XMLCh* const publicId , const XMLCh* const systemId , const XMLCh* const baseURI) = 0;
};

DOMLSSerializer.hpp:

class DOMLSSerializer
{
public:
virtual DOMConfiguration* getDomConfig() = 0;
virtual void setNewLine(const XMLCh* const newLine) = 0;
virtual void setFilter(DOMLSSerializerFilter *filter) = 0;
virtual const XMLCh* getNewLine() const = 0;
virtual DOMLSSerializerFilter* getFilter() const = 0;
virtual bool write(const DOMNode* nodeToWrite, DOMLSOutput* const destination) = 0;
virtual bool writeToURI(const DOMNode* nodeToWrite, const XMLCh* uri) = 0;
virtual XMLCh* writeToString(const DOMNode* nodeToWrite, MemoryManager* manager = NULL) = 0;
virtual void release() = 0;
};

DOMLSSerializerFilter.hpp:

class DOMLSSerializerFilter : public DOMNodeFilter
{
public:
virtual short acceptNode(const DOMNode* node) const = 0;
virtual unsigned long getWhatToShow() const =0;
};

C: Document Object Model: XPath

DOMXPathEvaluator.hpp:

class DOMXPathEvaluator
{
public:
virtual const DOMXPathExpression* createExpression(const XMLCh *expression, const DOMXPathNSResolver *resolver) = 0;
virtual const DOMXPathNSResolver* createNSResolver(const DOMNode *nodeResolver) = 0;
virtual void* evaluate(const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, unsigned short type, void* result) = 0;
};

DOMXPathException.hpp:

class DOMXPathException : public DOMException
{
public:
enum ExceptionCode {
INVALID_EXPRESSION_ERR = 51,
TYPE_ERR = 52,
};
};

DOMXPathExpression.hpp:

class DOMXPathExpression
{
public:
virtual void* evaluate(const DOMNode *contextNode, unsigned short type, void* result) const = 0;
virtual void release() const = 0;
};

DOMXPathNamespace.hpp:

class DOMXPathNamespace : public DOMNode
{
public:
enum XPathNodeType {
XPATH_NAMESPACE_NODE = 13,
};
virtual DOMElement *getOwnerElement() const = 0;
};

DOMXPathNSResolver.hpp:

class DOMXPathNSResolver
{
public:
virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
virtual const XMLCh* lookupPrefix(const XMLCh* URI) const = 0;
};

DOMXPathResult.hpp:

class DOMXPathResult
{
public:
enum resultType {
ANY_TYPE = 0,
NUMBER_TYPE = 1,
STRING_TYPE = 2,
BOOLEAN_TYPE = 3,
UNORDERED_NODE_ITERATOR_TYPE = 4,
ORDERED_NODE_ITERATOR_TYPE = 5,
UNORDERED_NODE_SNAPSHOT_TYPE = 6,
ORDERED_NODE_SNAPSHOT_TYPE = 7,
ANY_UNORDERED_NODE_TYPE = 8,
FIRST_ORDERED_NODE_TYPE = 9,
};
virtual bool getBooleanValue() const = 0;
virtual bool getInvalidIteratorState() const = 0;
virtual double getNumberValue() const = 0;
virtual short getResultType() const = 0;
virtual const DOMNode* getSingleNodeValue() const = 0;
virtual unsigned long getSnapshotLength() const = 0;
virtual const XMLCh* getStringValue() const = 0;
virtual const DOMNode* iterateNext() const = 0;
virtual const DOMNode* snapshotItem(unsigned long index) const = 0;
virtual void release() const = 0;
};

Copyright © 1999-2007 The Apache Software Foundation. All Rights Reserved.