00001 #ifndef _MIME_WSDL_MULTIPART_RELATED_H_
00002 #define _MIME_WSDL_MULTIPART_RELATED_H_
00003
00004
00005 #if !defined(IT_SOAP_API)
00006 #if defined(IT_SOAP_API_EXPORT)
00007 #define IT_SOAP_API IT_DECLSPEC_EXPORT
00008 #else
00009 #define IT_SOAP_API IT_DECLSPEC_IMPORT
00010 #endif
00011 #endif
00012
00013 #include <it_wsdl/wsdl_error_handler.h>
00014 #include <it_wsdl/wsdl_binding_input.h>
00015 #include <it_wsdl/wsdl_binding_output.h>
00016 #include <it_wsdl/wsdl_extension_element.h>
00017 #include <it_bus_config/soap_wsdl_body.h>
00018 #include <it_bus_config/mime_wsdl_part.h>
00019
00020 namespace IT_Bus
00021 {
00022 typedef IT_Vector<MimeWSDLPart*> MimePartsT;
00023
00029 class IT_SOAP_API MimeWSDLMultipartRelated
00030 : public IT_WSDL::WSDLExtensionElement,
00031 public XMLNode
00032 {
00033 public:
00082 static
00083 IT_Bool
00084 is_multipart_related_extension_element(
00085 const QName& element_name
00086 );
00087
00088 MimeWSDLMultipartRelated(
00089 IT_WSDL::WSDLExtensibleNode* parent
00090 );
00091
00092 ~MimeWSDLMultipartRelated();
00093
00094 bool
00095 parse(
00096 const XMLIterator& element_iterator,
00097 const IT_Bus::XMLNode& element,
00098 IT_WSDL::WSDLErrorHandler& error_handler
00099 );
00100
00101 void
00102 read_wsdl_extension(
00103 IT_Bus::ComplexTypeReader&
00104 ) throw((IT_Bus::IOException));
00105
00106 void
00107 write_wsdl_extension(
00108 const IT_Bus::QName& ,
00109 IT_Bus::ComplexTypeWriter&
00110 ) const throw((IT_Bus::IOException));
00111
00112 void
00113 write(
00114 IT_Bus::XMLOutputStream& stream
00115 ) const throw((IT_Bus::IOException));
00116
00117 void
00118 write(
00119 const IT_Bus::QName& ,
00120 IT_Bus::ComplexTypeWriter&
00121 ) const throw((IT_Bus::SerializationException));
00122
00123 bool
00124 accept_element(
00125 const XMLIterator& element_iterator,
00126 const XMLNode& element
00127 );
00128
00132 void
00133 write_attributes(
00134 IT_Bus::XMLOutputStream& stream
00135 ) const throw((IOException));
00136
00182 const IT_Bus::QName&
00183 get_element_name() const;
00184
00191 const IT_Bus::String&
00192 get_target_namespace() const;
00193
00194 IT_WSDL::WSDLExtensionFactory&
00195 get_extension_factory();
00196
00240 const IT_Bus::SoapWSDLBody*
00241 get_soap_body() const;
00242
00293 const char*
00294 get_content_type_in_wsdl(
00295 const QName& part_name
00296 ) const;
00297
00298 const IT_Bus::QName&
00299 get_type() const;
00300
00301 static const IT_Bus::QName&
00302 get_static_type();
00303
00304 protected:
00305 IT_WSDL::WSDLExtensibleNode* m_wsdl_extensible_node;
00306
00307 private:
00308
00309 MimeWSDLMultipartRelated&
00310 operator = (
00311 const MimeWSDLMultipartRelated& rhs
00312 );
00313
00314 MimeWSDLMultipartRelated(
00315 const MimeWSDLMultipartRelated& rhs
00316 );
00317
00318 MimePartsT m_mime_parts;
00319 IT_WSDL::WSDLErrorHandler* m_error_handler;
00320 };
00321 }
00322
00323
00324 #endif
00325
00326