it_bus_pdk/xml_node_reader.h

00001 #ifndef _IT_BUS_PDK_XML_NODE_READER_H_
00002 #define _IT_BUS_PDK_XML_NODE_READER_H_
00003 
00004 // @Copyright 2004 IONA Technologies, Plc. All Rights Reserved.
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  

Generated on Tue Mar 20 15:27:53 2007 for Artix by  doxygen 1.5.1-p1