00001 #ifndef IDElementImpl_HEADER_GUARD_
00002 #define IDElementImpl_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
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 #include <xercesc/util/XercesDefs.hpp>
00075 #include <xercesc/util/XMLString.hpp>
00076 #include "IDOM_Element.hpp"
00077 #include "IDChildNode.hpp"
00078 #include "IDNodeImpl.hpp"
00079 #include "IDParentNode.hpp"
00080
00081
00082 #include "IDAttrMapImpl.hpp"
00083
00084 class IDOMNodeList;
00085 class IDAttrMapImpl;
00086 class IDOM_Document;
00087
00088
00089
00090
00091 class CDOM_EXPORT IDElementImpl: public IDOM_Element {
00092 public:
00093 IDNodeImpl fNode;
00094 IDParentNode fParent;
00095 IDChildNode fChild;
00096 IDAttrMapImpl *fAttributes;
00097 const XMLCh *fName;
00098
00099 public:
00100 IDElementImpl(IDOM_Document *ownerDoc, const XMLCh *name);
00101
00102 IDElementImpl(const IDElementImpl &other, bool deep=false);
00103 virtual ~IDElementImpl();
00104
00105
00106 IDOM_NODE_FUNCTIONS;
00107
00108
00109 virtual const XMLCh * getAttribute(const XMLCh *name) const;
00110 virtual IDOM_Attr * getAttributeNode(const XMLCh *name) const;
00111 virtual IDOM_NodeList * getElementsByTagName(const XMLCh *tagname) const;
00112 virtual const XMLCh * getTagName() const;
00113 virtual void removeAttribute(const XMLCh *name);
00114 virtual IDOM_Attr * removeAttributeNode(IDOM_Attr * oldAttr);
00115 virtual void setAttribute(const XMLCh *name, const XMLCh *value);
00116 virtual IDOM_Attr * setAttributeNode(IDOM_Attr *newAttr);
00117 virtual void setReadOnly(bool readOnly, bool deep);
00118
00119
00120 virtual const XMLCh * getAttributeNS(const XMLCh *namespaceURI,
00121 const XMLCh *localName) const;
00122 virtual void setAttributeNS(const XMLCh *namespaceURI,
00123 const XMLCh *qualifiedName,
00124 const XMLCh *value);
00125 virtual void removeAttributeNS(const XMLCh *namespaceURI,
00126 const XMLCh *localName);
00127 virtual IDOM_Attr *getAttributeNodeNS(const XMLCh *namespaceURI,
00128 const XMLCh *localName) const;
00129 virtual IDOM_Attr *setAttributeNodeNS(IDOM_Attr *newAttr);
00130 virtual IDOM_NodeList *getElementsByTagNameNS(const XMLCh *namespaceURI,
00131 const XMLCh *localName) const;
00132 virtual bool hasAttribute(const XMLCh *name) const;
00133 virtual bool hasAttributeNS(const XMLCh *namespaceURI,
00134 const XMLCh *localName) const;
00135
00136
00137
00138 #ifdef idom_revisit
00139
00140
00141 virtual NamedNodeMapImpl *NNM_cloneMap(NodeImpl *nnm_ownerNode);
00142 virtual int NNM_findNamePoint(const XMLCh *nnm_name);
00143 virtual unsigned int NNM_getLength();
00144 virtual NodeImpl *NNM_getNamedItem(const XMLCh *nnm_name);
00145 virtual NodeImpl *NNM_item(unsigned int nnm_index);
00146 virtual void NNM_removeAll();
00147 virtual NodeImpl *NNM_removeNamedItem(const XMLCh *nnm_name);
00148 virtual NodeImpl *NNM_setNamedItem(NodeImpl *nnm_arg);
00149 virtual void NNM_setReadOnly(bool nnm_readOnly, bool nnm_deep);
00150
00151 virtual int NNM_findNamePoint(const XMLCh *nnm_namespaceURI, const XMLCh *nnm_localName);
00152 virtual NodeImpl *NNM_getNamedItemNS(const XMLCh *nnm_namespaceURI, const XMLCh *nnm_localName);
00153 virtual NodeImpl *NNM_setNamedItemNS(NodeImpl *nnm_arg);
00154 virtual NodeImpl *NNM_removeNamedItemNS(const XMLCh *nnm_namespaceURI, const XMLCh *nnm_localName);
00155 virtual void NNM_setOwnerDocument(DocumentImpl *nnm_doc);
00156 #endif //idom_revisit
00157
00158
00159
00160 virtual IDAttrMapImpl *getDefaultAttributes();
00161 virtual void setupDefaultAttributes();
00162
00163
00164 };
00165
00166 #endif