00001 #ifndef IDOM_Document_HEADER_GUARD_
00002 #define IDOM_Document_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 #include "IDOM_Node.hpp"
00066
00067 class IDNodeIteratorImpl;
00068
00069 class IDOM_DocumentType;
00070 class IDOM_Element;
00071 class IDOM_DocumentFragment;
00072 class IDOM_Comment;
00073 class IDOM_CDATASection;
00074 class IDOM_ProcessingInstruction;
00075 class IDOM_Attr;
00076 class IDOM_Entity;
00077 class IDOM_EntityReference;
00078 class IDOM_DOMImplementation;
00079 class IDOM_NodeFilter;
00080 class IDOM_NodeList;
00081 class IDOM_Notation;
00082 class IDOM_Text;
00083 class IDOM_Node;
00084 class IDOM_NodeIterator;
00085 class IDOM_TreeWalker;
00086 class IDOM_Range;
00087
00088
00101 class CDOM_EXPORT IDOM_Document: public IDOM_Node {
00102
00103 protected:
00115 IDOM_Document() {};
00116
00123 IDOM_Document(const IDOM_Document &other) {};
00129 IDOM_Document & operator = (const IDOM_Document &other) {return *this;};
00130
00131
00133
00134 public:
00137
00138 virtual ~IDOM_Document() {};
00139
00141
00143
00151 virtual IDOM_Entity *createEntity(const XMLCh *name) = 0;
00152
00165 virtual IDOM_Element *createElement(const XMLCh *tagName) = 0;
00166
00167
00168
00175 virtual IDOM_DocumentFragment *createDocumentFragment() = 0;
00176
00184 virtual IDOM_Text *createTextNode(const XMLCh *data) = 0;
00185
00193 virtual IDOM_Comment *createComment(const XMLCh *data) = 0;
00194
00204 virtual IDOM_CDATASection *createCDATASection(const XMLCh *data) = 0;
00205
00213 virtual IDOM_DocumentType *createDocumentType(const XMLCh *name) = 0;
00214
00215
00225 virtual IDOM_Notation *createNotation(const XMLCh *name) = 0;
00226
00227
00239 virtual IDOM_ProcessingInstruction *createProcessingInstruction(const XMLCh *target,
00240 const XMLCh *data) = 0;
00241
00242
00259 virtual IDOM_Attr *createAttribute(const XMLCh *name) = 0;
00260
00261
00272 virtual IDOM_EntityReference *createEntityReference(const XMLCh *name) = 0;
00273
00274
00298 virtual IDOM_NodeIterator *createNodeIterator(IDOM_Node *root,
00299 unsigned long whatToShow,
00300 IDOM_NodeFilter* filter,
00301 bool entityReferenceExpansion) = 0;
00331 virtual IDOM_TreeWalker *createTreeWalker(IDOM_Node *root,
00332 unsigned long whatToShow,
00333 IDOM_NodeFilter *filter,
00334 bool entityReferenceExpansion) = 0;
00335
00346 virtual IDOM_Range *createRange() = 0;
00347
00349
00360 virtual IDOM_DocumentType *getDoctype() const = 0;
00361
00362
00363
00367 virtual IDOM_DOMImplementation *getImplementation() const = 0;
00368
00369
00373 virtual IDOM_Element *getDocumentElement() const = 0;
00374
00389 virtual IDOM_NodeList *getElementsByTagName(const XMLCh *tagname) const = 0;
00390
00392
00394
00415 virtual IDOM_Node *importNode(IDOM_Node *importedNode, bool deep) = 0;
00416
00437 virtual IDOM_Element *createElementNS(const XMLCh *namespaceURI,
00438 const XMLCh *qualifiedName) = 0;
00439
00466 virtual IDOM_Attr *createAttributeNS(const XMLCh *namespaceURI,
00467 const XMLCh *qualifiedName) = 0;
00468
00483 virtual IDOM_NodeList *getElementsByTagNameNS(const XMLCh *namespaceURI,
00484 const XMLCh *localName) const = 0;
00485
00499 virtual IDOM_Element * getElementById(const XMLCh *elementId) const = 0;
00500
00502
00503 protected:
00504 friend class IDOM_Node;
00505 friend class DocumentImpl;
00506 friend class NodeIteratorImpl;
00507 friend class IDOM_IDOMImplementation;
00508
00509 };
00510
00511
00512 #endif