00001 #ifndef DOMNode_HEADER_GUARD_
00002 #define DOMNode_HEADER_GUARD_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 #include <xercesc/util/XercesDefs.hpp>
00065
00066 XERCES_CPP_NAMESPACE_BEGIN
00067
00068
00069 class DOMDocument;
00070 class DOMNamedNodeMap;
00071 class DOMNodeList;
00072 class DOMUserDataHandler;
00073
00185 class DOMNode {
00186 protected:
00187
00188
00189
00192 DOMNode() {};
00193 DOMNode(const DOMNode &) {};
00194 DOMNode & operator = (const DOMNode &) {return *this;};
00196
00197 public:
00198
00199
00200
00207 virtual ~DOMNode() {};
00209
00210
00211
00212
00220 enum NodeType {
00221 ELEMENT_NODE = 1,
00222 ATTRIBUTE_NODE = 2,
00223 TEXT_NODE = 3,
00224 CDATA_SECTION_NODE = 4,
00225 ENTITY_REFERENCE_NODE = 5,
00226 ENTITY_NODE = 6,
00227 PROCESSING_INSTRUCTION_NODE = 7,
00228 COMMENT_NODE = 8,
00229 DOCUMENT_NODE = 9,
00230 DOCUMENT_TYPE_NODE = 10,
00231 DOCUMENT_FRAGMENT_NODE = 11,
00232 NOTATION_NODE = 12
00233 };
00234
00261 enum DOMTreePosition {
00262 TREE_POSITION_PRECEDING = 0x01,
00263 TREE_POSITION_FOLLOWING = 0x02,
00264 TREE_POSITION_ANCESTOR = 0x04,
00265 TREE_POSITION_DESCENDANT = 0x08,
00266 TREE_POSITION_EQUIVALENT = 0x10,
00267 TREE_POSITION_SAME_NODE = 0x20,
00268 TREE_POSITION_DISCONNECTED = 0x00
00269 };
00271
00272
00273
00274
00277
00278
00279
00284 virtual const XMLCh * getNodeName() const = 0;
00285
00293 virtual const XMLCh * getNodeValue() const = 0;
00294
00299 virtual short getNodeType() const = 0;
00300
00311 virtual DOMNode *getParentNode() const = 0;
00312
00327 virtual DOMNodeList *getChildNodes() const = 0;
00334 virtual DOMNode *getFirstChild() const = 0;
00335
00342 virtual DOMNode *getLastChild() const = 0;
00343
00350 virtual DOMNode *getPreviousSibling() const = 0;
00351
00358 virtual DOMNode *getNextSibling() const = 0;
00359
00365 virtual DOMNamedNodeMap *getAttributes() const = 0;
00366
00378 virtual DOMDocument *getOwnerDocument() const = 0;
00379
00380
00381
00382
00402 virtual DOMNode * cloneNode(bool deep) const = 0;
00403
00431 virtual DOMNode *insertBefore(DOMNode *newChild,
00432 DOMNode *refChild) = 0;
00433
00434
00458 virtual DOMNode *replaceChild(DOMNode *newChild,
00459 DOMNode *oldChild) = 0;
00472 virtual DOMNode *removeChild(DOMNode *oldChild) = 0;
00473
00494 virtual DOMNode *appendChild(DOMNode *newChild) = 0;
00495
00496
00497
00498
00507 virtual bool hasChildNodes() const = 0;
00508
00509
00510
00511
00526 virtual void setNodeValue(const XMLCh *nodeValue) = 0;
00528
00551 virtual void normalize() = 0;
00552
00568 virtual bool isSupported(const XMLCh *feature,
00569 const XMLCh *version) const = 0;
00570
00586 virtual const XMLCh * getNamespaceURI() const = 0;
00587
00594 virtual const XMLCh * getPrefix() const = 0;
00595
00605 virtual const XMLCh * getLocalName() const = 0;
00606
00640 virtual void setPrefix(const XMLCh * prefix) = 0;
00641
00648 virtual bool hasAttributes() const = 0;
00650
00670 virtual bool isSameNode(const DOMNode* other) const = 0;
00671
00714 virtual bool isEqualNode(const DOMNode* arg) const = 0;
00715
00716
00744 virtual void* setUserData(const XMLCh* key,
00745 void* data,
00746 DOMUserDataHandler* handler) = 0;
00747
00761 virtual void* getUserData(const XMLCh* key) const = 0;
00762
00763
00782 virtual const XMLCh* getBaseURI() const = 0;
00783
00796 virtual short compareTreePosition(const DOMNode* other) const = 0;
00797
00846 virtual const XMLCh* getTextContent() const = 0;
00847
00896 virtual void setTextContent(const XMLCh* textContent) = 0;
00897
00915 virtual const XMLCh* lookupNamespacePrefix(const XMLCh* namespaceURI,
00916 bool useDefault) const = 0;
00917
00929 virtual bool isDefaultNamespace(const XMLCh* namespaceURI) const = 0;
00930
00944 virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
00945
00962 virtual DOMNode* getInterface(const XMLCh* feature) = 0;
00964
00965
00966
00967
00983 virtual void release() = 0;
00985 };
00986
00987
00988 XERCES_CPP_NAMESPACE_END
00989
00990 #endif
00991