00001 00002 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 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094
00095
00096 #ifndef DOM_Node_HEADER_GUARD_
00097 #define DOM_Node_HEADER_GUARD_
00098
00099 #include <util/XercesDefs.hpp>
00100 #include <dom/DOMString.hpp>
00101
00102 class DOM_NodeList;
00103 class DOM_NamedNodeMap;
00104 class DOM_Document;
00105 class NodeImpl;
00106
00107 class DOM_NullPtr;
00108
00109
00110
00130 class DOM_Node {
00131
00132 public:
00134
00143 DOM_Node();
00144
00150 DOM_Node(const DOM_Node &other);
00151
00157 DOM_Node & operator = (const DOM_Node &other);
00158
00172 DOM_Node & operator = (const DOM_NullPtr *val);
00173
00174
00176
00182 ~DOM_Node();
00183
00184
00186
00198 bool operator == (const DOM_Node & other)const;
00199
00205 bool operator == (const DOM_NullPtr *other) const;
00206
00211 bool operator != (const DOM_Node & other) const;
00212
00218 bool operator != (const DOM_NullPtr * other) const;
00219
00220
00221 enum NodeType {
00222 ELEMENT_NODE = 1,
00223 ATTRIBUTE_NODE = 2,
00224 TEXT_NODE = 3,
00225 CDATA_SECTION_NODE = 4,
00226 ENTITY_REFERENCE_NODE = 5,
00227 ENTITY_NODE = 6,
00228 PROCESSING_INSTRUCTION_NODE = 7,
00229 COMMENT_NODE = 8,
00230 DOCUMENT_NODE = 9,
00231 DOCUMENT_TYPE_NODE = 10,
00232 DOCUMENT_FRAGMENT_NODE = 11,
00233 NOTATION_NODE = 12,
00234 XML_DECL_NODE = 13
00235 };
00236
00237
00239
00240
00244 DOMString getNodeName() const;
00245
00256 DOMString getNodeValue() const;
00257
00261 short getNodeType() const;
00262
00272 DOM_Node getParentNode() const;
00273
00287 DOM_NodeList getChildNodes() const;
00293 DOM_Node getFirstChild() const;
00294
00300 DOM_Node getLastChild() const;
00301
00307 DOM_Node getPreviousSibling() const;
00308
00314 DOM_Node getNextSibling() const;
00315
00320 DOM_NamedNodeMap getAttributes() const;
00321
00334 DOM_Document getOwnerDocument() const;
00335
00344 void *getUserData() const;
00345
00346
00348
00349
00368 DOM_Node cloneNode(bool deep) const;
00369
00370
00372
00373
00400 DOM_Node insertBefore(const DOM_Node &newChild,
00401 const DOM_Node &refChild);
00402
00403
00426 DOM_Node replaceChild(const DOM_Node &newChild,
00427 const DOM_Node &oldChild);
00439 DOM_Node removeChild(const DOM_Node &oldChild);
00440
00460 DOM_Node appendChild(const DOM_Node &newChild);
00461
00462
00464
00465
00473 bool hasChildNodes() const;
00474
00475
00488 bool isNull() const;
00489
00490
00492
00493
00494
00508 void setNodeValue(const DOMString &nodeValue);
00509
00527 void setUserData(void *p);
00528
00529
00531
00532
00554 void normalize();
00555
00572 bool supports(const DOMString &feature,
00573 const DOMString &version) const;
00574
00591 DOMString getNamespaceURI() const;
00592
00600 DOMString getPrefix() const;
00601
00612 DOMString getLocalName() const;
00613
00647 void setPrefix(const DOMString &prefix);
00648
00649
00650
00651 protected:
00652 NodeImpl *fImpl;
00653
00654 DOM_Node(NodeImpl *);
00655
00656 friend class DOM_Document;
00657 friend class DocumentImpl;
00658 friend class TreeWalkerImpl;
00659 friend class NodeIteratorImpl;
00660 friend class DOM_NamedNodeMap;
00661 friend class DOM_NodeList;
00662 friend class DOMParser;
00663 friend class DOM_Entity;
00664
00665 };
00666
00667
00668 #endif
00669