00001 #ifndef _IT_BUS_PDK_XML_NODE_READER_H_
00002 #define _IT_BUS_PDK_XML_NODE_READER_H_
00003
00004
00005
00006
00007 #include <it_dsa/list.h>
00008 #include <it_bus/deserialization_exception.h>
00009 #include <it_bus/array_coordinate_impl.h>
00010 #include <it_bus_pdk/xml_stream_node.h>
00011 #include <it_bus/soap_enc_array.h>
00012 #include <it_bus/complex_type_reader.h>
00013
00014 namespace IT_Bus
00015 {
00016 class IT_BUS_XML_API XMLNodeReader : public ComplexTypeReader
00017 {
00018 public:
00019
00020 XMLNodeReader(
00021 XMLStreamNode * element,
00022 bool is_literal
00023 );
00024
00025 ~XMLNodeReader();
00026
00027 void
00028 read(
00029 const IT_Bus::QName & name,
00030 String & result
00031 ) throw((DeserializationException));
00032
00033 void
00034 read(
00035 const IT_Bus::QName & name,
00036 Boolean & result
00037 ) throw((DeserializationException));
00038
00039 void
00040 read(
00041 const IT_Bus::QName & name,
00042 Float& result
00043 ) throw((DeserializationException));
00044
00045 void
00046 read(
00047 const IT_Bus::QName & name,
00048 Double & result
00049 ) throw((DeserializationException));
00050
00051 void
00052 read(
00053 const IT_Bus::QName & name,
00054 Int & result
00055 ) throw((DeserializationException));
00056
00057 void
00058 read(
00059 const IT_Bus::QName & name,
00060 Long & result
00061 ) throw((DeserializationException));
00062
00063 void
00064 read(
00065 const IT_Bus::QName & name,
00066 Short & result
00067 ) throw((DeserializationException));
00068
00069 void
00070 read(
00071 const IT_Bus::QName & name,
00072 UInt & result
00073 ) throw((DeserializationException));
00074
00075 void
00076 read(
00077 const IT_Bus::QName & name,
00078 ULong & result
00079 ) throw((DeserializationException));
00080
00081 void
00082 read(
00083 const IT_Bus::QName & name,
00084 UShort & result
00085 ) throw((DeserializationException));
00086
00087 void
00088 read(
00089 const IT_Bus::QName & name,
00090 Byte & result
00091 ) throw((DeserializationException));
00092
00093 void
00094 read(
00095 const IT_Bus::QName & name,
00096 UByte & result
00097 ) throw((DeserializationException));
00098
00099 void
00100 read(
00101 const IT_Bus::QName & name,
00102 DateTime & result
00103 ) throw((DeserializationException));
00104
00105 void
00106 read(
00107 const IT_Bus::QName & name,
00108 Decimal & result
00109 ) throw((DeserializationException));
00110
00111 void
00112 read_simple_content(
00113 const IT_Bus::QName & name,
00114 SimpleContentComplexType & data
00115 ) throw((DeserializationException));
00116
00117 void
00118 read_sequence(
00119 const IT_Bus::QName & name,
00120 SequenceComplexType & data
00121 ) throw((DeserializationException));
00122
00123 void
00124 read_all(
00125 const IT_Bus::QName & name,
00126 AllComplexType & data
00127 ) throw((DeserializationException));
00128
00129 void
00130 read_choice(
00131 const IT_Bus::QName & name,
00132 ChoiceComplexType & data
00133 ) throw((DeserializationException));
00134
00135 void
00136 read_complex_content(
00137 const IT_Bus::QName & name,
00138 ComplexContentComplexType & data
00139 ) throw((DeserializationException));
00140
00141 void
00142 read_soap_enc_array(
00143 const IT_Bus::QName & name,
00144 SoapEncArray & data
00145 ) throw((DeserializationException));
00146
00147 void
00148 read_element_list(
00149 const IT_Bus::QName & name,
00150 ElementList & data
00151 ) throw((DeserializationException));
00152
00153 void
00154 read_type_list(
00155 const IT_Bus::QName & name,
00156 TypeList & data
00157 ) throw((DeserializationException));
00158
00159 void
00160 read_any_simple(
00161 const IT_Bus::QName & name,
00162 AnySimpleType & data
00163 ) throw((DeserializationException));
00164
00165 virtual void
00166 read_simple_type_list(
00167 const QName & name,
00168 SimpleTypeList & data
00169 ) throw((DeserializationException));
00170
00171 virtual void
00172 read_simple_type_union(
00173 const QName & name,
00174 SimpleTypeUnion & data
00175 ) throw((DeserializationException));
00176
00177 void
00178 read(
00179 const IT_Bus::QName & name,
00180 AnyType & data
00181 ) throw((DeserializationException));
00182
00183 virtual void
00184 read_any_holder(
00185 const IT_Bus::QName & name,
00186 AnyHolder & data
00187 ) throw((DeserializationException));
00188
00189 void
00190 read_any(
00191 const IT_Bus::QName& name,
00192 Any& data
00193 ) throw((DeserializationException));
00194
00195 void
00196 read_any_list(
00197 const IT_Bus::QName& name,
00198 TypeList& data
00199 ) throw((DeserializationException));
00200
00201 void
00202 read_substitution(
00203 IT_Bus::UInt id,
00204 ComplexTypeWithSubstitution & data
00205 ) throw((DeserializationException));
00206
00207 void
00208 read_attribute_map(
00209 IT_Bus::QNameHashMap<IT_Bus::String> & map
00210 ) throw((DeserializationException));
00211
00212 void
00213 read(
00214 const IT_Bus::QName & name,
00215 BinaryOutParam& data
00216 ) throw((DeserializationException));
00217
00218 void
00219 read(
00220 const IT_Bus::QName & name,
00221 QName& data
00222 ) throw((DeserializationException));
00223
00224 void
00225 read_nillable(
00226 const IT_Bus::QName & name,
00227 Nillable& data
00228 ) throw((DeserializationException));
00229
00230 void
00231 get_sequence_offset(
00232 String & SoapEncArray,
00233 String & offset
00234 ) throw((DeserializationException));
00235
00236 void
00237 get_sequence_position(
00238 XMLStreamNode * item,
00239 ArrayCoordinateImpl& iterator
00240 );
00241
00242 IT_Bus::QName
00243 get_xsi_type() const;
00244
00245 protected:
00246
00247 XMLStreamNode * m_element;
00248
00249 bool m_is_literal;
00250 };
00251 }
00252
00253 #endif