00001 #ifndef _MIME_WSDL_PART_H_
00002 #define _MIME_WSDL_PART_H_
00003
00004 #if !defined(IT_SOAP_API)
00005 #if defined(IT_SOAP_API_EXPORT)
00006 #define IT_SOAP_API IT_DECLSPEC_EXPORT
00007 #else
00008 #define IT_SOAP_API IT_DECLSPEC_IMPORT
00009 #endif
00010 #endif
00011
00012 #include <it_dsa/vector.h>
00013 #include <it_wsdl/wsdl_binding_input.h>
00014 #include <it_wsdl/wsdl_binding_output.h>
00015 #include <it_bus_config/mime_wsdl_content.h>
00016 #include <it_bus_config/soap_wsdl_body.h>
00017
00018 namespace IT_Bus
00019 {
00020 class IT_SOAP_API MimeWSDLPart
00021 : public IT_WSDL::WSDLExtensionElement, public XMLNode
00022 {
00023 public:
00024
00025 MimeWSDLPart(
00026 IT_WSDL::WSDLExtensibleNode* parent
00027 );
00028
00029 ~MimeWSDLPart();
00030
00031 bool
00032 parse(
00033 const XMLIterator& element_iterator,
00034 const IT_Bus::XMLNode& element,
00035 IT_WSDL::WSDLErrorHandler& error_handler
00036 );
00037
00038 bool
00039 accept_element(
00040 const XMLIterator& element_iterator,
00041 const XMLNode& element
00042 );
00043
00044 void
00045 read_wsdl_extension(
00046 IT_Bus::ComplexTypeReader&
00047 ) throw((IT_Bus::IOException));
00048
00049 void
00050 write_wsdl_extension(
00051 const IT_Bus::QName& ,
00052 IT_Bus::ComplexTypeWriter&
00053 ) const throw((IT_Bus::IOException));
00054
00055 void
00056 write(
00057 IT_Bus::XMLOutputStream& stream
00058 ) const throw((IT_Bus::IOException));
00059
00060 void
00061 write(
00062 const IT_Bus::QName& ,
00063 IT_Bus::ComplexTypeWriter&
00064 ) const throw((IT_Bus::SerializationException));
00065
00069 void
00070 write_attributes(
00071 IT_Bus::XMLOutputStream& stream
00072 ) const throw((IOException));
00073
00074 const IT_Bus::QName&
00075 get_element_name() const;
00076
00077 const IT_Bus::String&
00078 get_target_namespace() const;
00079
00080 IT_WSDL::WSDLExtensionFactory&
00081 get_extension_factory();
00082
00083 const SoapWSDLBody*
00084 get_soap_body() const;
00085
00086 const MimeWSDLContent*
00087 get_content(
00088 const String& part_name
00089 ) const;
00090
00091 const IT_Bus::QName&
00092 get_type() const;
00093
00094 static const IT_Bus::QName&
00095 get_static_type();
00096
00097 private:
00098
00099 MimeWSDLPart&
00100 operator = (
00101 const MimeWSDLPart& rhs
00102 );
00103
00104 MimeWSDLPart(
00105 const MimeWSDLPart& rhs
00106 );
00107
00108 IT_WSDL::WSDLExtensibleNode* m_wsdl_extensible_node;
00109 IT_Vector<IT_WSDL::WSDLExtensionElement*> m_extension_elements;
00110 IT_WSDL::WSDLErrorHandler* m_error_handler;
00111 };
00112 }
00113
00114
00115 #endif
00116
00117