00001
00002
00003
00004
00005
00006
00007 #ifndef skNODE_H
00008 #define skNODE_H
00009
00010 #include "skAlist.h"
00011
00015 class CLASSEXPORT skNode
00016 {
00017 public:
00021 enum NodeType {ELEMENT_NODE,CDATA_SECTION_NODE, TEXT_NODE};
00026 virtual skString getNodeValue() const;
00031 virtual void setNodeValue(const skString& s);
00036 virtual NodeType getNodeType() const=0;
00041 virtual skNode * clone()=0;
00046 virtual void write(ostream& out) const=0;
00050 static skString escapeXMLDelimiters(const skString& text);
00051 protected:
00053 skNode();
00054 private:
00056 skNode(const skNode&);
00057 skNode& operator=(const skNode& other);
00058 };
00059 EXTERN_TEMPLATE template class CLASSEXPORT skTAList<skNode>;
00060
00064 class CLASSEXPORT skNodeList : public skTAList<skNode>{
00065 };
00066
00072 CLASSEXPORT ostream& operator<<(ostream& out,const skNode& node);
00073 #endif