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 #if !defined(AXIS_COMPLEXELEMENT_H__OF_AXIS_INCLUDED_)
00039 #define AXIS_COMPLEXELEMENT_H__OF_AXIS_INCLUDED_
00040
00041 #ifdef WIN32
00042 #pragma warning (disable : 4786)
00043 #endif
00044
00045 #include <list>
00046 #include <axis/server/BasicNode.h>
00047
00048 using namespace std;
00049
00058 class ComplexElement : public BasicNode
00059 {
00060 public:
00061 ComplexElement(AxisChar* pachLocalName, AxisChar* pachPrefix, AxisChar* pachUri);
00062
00068 int getNoOfChildren();
00069
00076 const BasicNode* getChild(int iChildPosition) const;
00077
00083 const BasicNode* getLastChild() const;
00084
00090 const BasicNode* getFirstChild() const;
00091
00098 int addChild(BasicNode* pBasicNode);
00099
00105 NODE_TYPE getNodeType() const;
00106
00113 int setURI(const AxisChar* pachURI);
00114
00121 int setLocalName(const AxisChar* pachLocalName);
00122
00129 int setPrefix(const AxisChar* pachPrefix);
00130
00131 int serialize(SoapSerializer& pSZ);
00132
00133 int serialize(SoapSerializer& pSZ, list<AxisChar*>& lstTmpNameSpaceStack);
00134
00138 ComplexElement();
00139 ComplexElement(const ComplexElement& rCopy);
00140 BasicNode* clone();
00141
00145 virtual ~ComplexElement();
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157 int setValue(const AxisChar* pachValue) {return AXIS_FAIL;}
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169 const AxisChar* getValue() const {return NULL;}
00170
00171 private:
00172 int iNoOfChildren;
00173 int serializeChildren(SoapSerializer& pSZ);
00174 int serializeChildren(SoapSerializer& pSZ, list<AxisChar*>& lstTmpNameSpaceStack);
00175 bool isSerializable();
00176 list<BasicNode*> m_children;
00177 AxisChar* m_pachPrefix;
00178 AxisChar* m_pachLocalName;
00179 AxisChar* m_pachURI;
00180 };
00181
00182 #endif