Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMNODE_HPP
00024
00025 #include <xercesc/util/XercesDefs.hpp>
00026
00027 XERCES_CPP_NAMESPACE_BEGIN
00028
00029
00030 class DOMDocument;
00031 class DOMNamedNodeMap;
00032 class DOMNodeList;
00033 class DOMUserDataHandler;
00034
00139 class CDOM_EXPORT DOMNode {
00140 protected:
00141
00142
00143
00146 DOMNode() {}
00147 DOMNode(const DOMNode &) {}
00149
00150 private:
00151
00152
00153
00156 DOMNode & operator = (const DOMNode &);
00158
00159 public:
00160
00161
00162
00169 virtual ~DOMNode() {};
00171
00172
00173
00174
00182 enum NodeType {
00183 ELEMENT_NODE = 1,
00184 ATTRIBUTE_NODE = 2,
00185 TEXT_NODE = 3,
00186 CDATA_SECTION_NODE = 4,
00187 ENTITY_REFERENCE_NODE = 5,
00188 ENTITY_NODE = 6,
00189 PROCESSING_INSTRUCTION_NODE = 7,
00190 COMMENT_NODE = 8,
00191 DOCUMENT_NODE = 9,
00192 DOCUMENT_TYPE_NODE = 10,
00193 DOCUMENT_FRAGMENT_NODE = 11,
00194 NOTATION_NODE = 12
00195 };
00196
00215 enum DocumentPosition {
00216 DOCUMENT_POSITION_DISCONNECTED = 0x01,
00217 DOCUMENT_POSITION_PRECEDING = 0x02,
00218 DOCUMENT_POSITION_FOLLOWING = 0x04,
00219 DOCUMENT_POSITION_CONTAINS = 0x08,
00220 DOCUMENT_POSITION_CONTAINED_BY = 0x10,
00221 DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
00222 };
00224
00225
00226
00227
00230
00231
00232
00237 virtual const XMLCh * getNodeName() const = 0;
00238
00246 virtual const XMLCh * getNodeValue() const = 0;
00247
00252 virtual NodeType getNodeType() const = 0;
00253
00264 virtual DOMNode *getParentNode() const = 0;
00265
00280 virtual DOMNodeList *getChildNodes() const = 0;
00287 virtual DOMNode *getFirstChild() const = 0;
00288
00295 virtual DOMNode *getLastChild() const = 0;
00296
00303 virtual DOMNode *getPreviousSibling() const = 0;
00304
00311 virtual DOMNode *getNextSibling() const = 0;
00312
00318 virtual DOMNamedNodeMap *getAttributes() const = 0;
00319
00331 virtual DOMDocument *getOwnerDocument() const = 0;
00332
00333
00334
00335
00355 virtual DOMNode * cloneNode(bool deep) const = 0;
00356
00384 virtual DOMNode *insertBefore(DOMNode *newChild,
00385 DOMNode *refChild) = 0;
00386
00387
00411 virtual DOMNode *replaceChild(DOMNode *newChild,
00412 DOMNode *oldChild) = 0;
00425 virtual DOMNode *removeChild(DOMNode *oldChild) = 0;
00426
00447 virtual DOMNode *appendChild(DOMNode *newChild) = 0;
00448
00449
00450
00451
00460 virtual bool hasChildNodes() const = 0;
00461
00462
00463
00464
00480 virtual void setNodeValue(const XMLCh *nodeValue) = 0;
00482
00505 virtual void normalize() = 0;
00506
00522 virtual bool isSupported(const XMLCh *feature,
00523 const XMLCh *version) const = 0;
00524
00540 virtual const XMLCh * getNamespaceURI() const = 0;
00541
00548 virtual const XMLCh * getPrefix() const = 0;
00549
00559 virtual const XMLCh * getLocalName() const = 0;
00560
00594 virtual void setPrefix(const XMLCh * prefix) = 0;
00595
00602 virtual bool hasAttributes() const = 0;
00604
00622 virtual bool isSameNode(const DOMNode* other) const = 0;
00623
00664 virtual bool isEqualNode(const DOMNode* arg) const = 0;
00665
00666
00692 virtual void* setUserData(const XMLCh* key,
00693 void* data,
00694 DOMUserDataHandler* handler) = 0;
00695
00707 virtual void* getUserData(const XMLCh* key) const = 0;
00708
00709
00726 virtual const XMLCh* getBaseURI() const = 0;
00727
00738 virtual short compareDocumentPosition(const DOMNode* other) const = 0;
00739
00781 virtual const XMLCh* getTextContent() const = 0;
00782
00794 virtual void setTextContent(const XMLCh* textContent) = 0;
00795
00807 virtual const XMLCh* lookupPrefix(const XMLCh* namespaceURI) const = 0;
00808
00818 virtual bool isDefaultNamespace(const XMLCh* namespaceURI) const = 0;
00819
00831 virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
00832
00848 virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
00850
00851
00852
00853
00869 virtual void release() = 0;
00871 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
00872
00873
00874
00884 virtual void decRefCount() {}
00886
00887
00888
00889
00896 virtual void incRefCount() {}
00898 #endif
00899 };
00900
00901
00902
00903
00904 #define GET_OWNER_DOCUMENT(ptr) \
00905 ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
00906
00907 #define GET_DIRECT_MM(ptr) \
00908 (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
00909
00910 #define GET_INDIRECT_MM(ptr) \
00911 (!ptr ? XMLPlatformUtils::fgMemoryManager : \
00912 GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
00913 XMLPlatformUtils::fgMemoryManager)
00914
00915
00916
00917
00918 #define GetDOMNodeMemoryManager GET_INDIRECT_MM(this)
00919
00920 XERCES_CPP_NAMESPACE_END
00921
00922 #endif