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 #ifndef IT_MINIMISE_INCLUDES
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 #endif
00018
00019 #include <it_dsa/vector.h>
00020 #include <it_wsdl/wsdl_extension_element.h>
00021 #include <it_bus_pdk/xml_node.h>
00022
00023
00024 namespace IT_Bus
00025 {
00026 class SoapWSDLBody;
00027 class MimeWSDLContent;
00028 class IT_SOAP_API MimeWSDLPart
00029 : public IT_WSDL::WSDLExtensionElement, public XMLNode
00030 {
00031 public:
00032
00033 MimeWSDLPart(
00034 IT_WSDL::WSDLExtensibleNode* parent
00035 );
00036
00037 ~MimeWSDLPart();
00038
00039 bool
00040 parse(
00041 const XMLIterator& element_iterator,
00042 const IT_Bus::XMLNode& element,
00043 IT_WSDL::WSDLErrorHandler& error_handler
00044 );
00045
00046 bool
00047 accept_element(
00048 const XMLIterator& element_iterator,
00049 const XMLNode& element
00050 );
00051
00052 void
00053 read_wsdl_extension(
00054 IT_Bus::ComplexTypeReader&
00055 ) throw((IT_Bus::IOException));
00056
00057 void
00058 write_wsdl_extension(
00059 const IT_Bus::QName& ,
00060 IT_Bus::ComplexTypeWriter&
00061 ) const throw((IT_Bus::IOException));
00062
00063 void
00064 write(
00065 IT_Bus::XMLOutputStream& stream
00066 ) const throw((IT_Bus::IOException));
00067
00068 void
00069 write(
00070 const IT_Bus::QName& ,
00071 IT_Bus::ComplexTypeWriter&
00072 ) const throw((IT_Bus::SerializationException));
00073
00077 void
00078 write_attributes(
00079 IT_Bus::XMLOutputStream& stream
00080 ) const throw((IOException));
00081
00082 const IT_Bus::QName&
00083 get_element_name() const;
00084
00085 const IT_Bus::String&
00086 get_target_namespace() const;
00087
00088 IT_WSDL::WSDLExtensionFactory&
00089 get_extension_factory();
00090
00091 const SoapWSDLBody*
00092 get_soap_body() const;
00093
00094 const MimeWSDLContent*
00095 get_content(
00096 const String& part_name
00097 ) const;
00098
00099 const IT_Bus::QName&
00100 get_type() const;
00101
00102 static const IT_Bus::QName&
00103 get_static_type();
00104
00105 private:
00106
00107 MimeWSDLPart&
00108 operator = (
00109 const MimeWSDLPart& rhs
00110 );
00111
00112 MimeWSDLPart(
00113 const MimeWSDLPart& rhs
00114 );
00115
00116 IT_WSDL::WSDLExtensibleNode* m_wsdl_extensible_node;
00117 IT_Vector<IT_WSDL::WSDLExtensionElement*> m_extension_elements;
00118 IT_WSDL::WSDLErrorHandler* m_error_handler;
00119 };
00120 }
00121
00122
00123 #endif
00124
00125