00001 00002 #ifndef header_wsdl_document 00003 #define header_wsdl_document 00004 00005 #include <vector> 00006 00007 class WSDLTypes; 00008 class WSDLSchema; 00009 class WSDLMessage; 00010 class WSDLPart; 00011 class WSDLPortType; 00012 class WSDLBinding; 00013 class WSDLBindingOperation; 00014 class WSDLPort; 00015 class WSDLService; 00016 class WSDLOperation; 00017 00019 class WSDLDocument 00020 { 00021 public: 00022 00026 CL_DomDocument get_document(); 00027 00031 WSDLTypes get_types(); 00032 00033 std::vector<WSDLMessage> get_messages(); 00034 00035 std::vector<WSDLPortType> get_port_types(); 00036 00037 std::vector<WSDLOperation> get_operations(); 00038 00039 std::vector<WSDLBinding> get_bindings(); 00040 00041 std::vector<WSDLService> get_services(); 00042 }; 00043 00045 class WSDLTypes 00046 { 00047 public: 00048 std::vector<WSDLSchema> get_schemas(); 00049 }; 00050 00052 class WSDLSchema 00053 { 00054 public: 00055 00059 CL_DomString get_target_namespace() const; 00060 00064 CL_DomElement get_element(); 00065 }; 00066 00068 class WSDLMessage 00069 { 00070 public: 00071 00075 CL_DomString get_name() const; 00076 std::vector<WSDLPart> get_parts() const; 00077 }; 00078 00080 class WSDLPart 00081 { 00082 public: 00083 00087 CL_DomString get_name() const; 00088 00092 CL_DomString get_type() const; 00093 }; 00094 00096 class WSDLPortType 00097 { 00098 public: 00099 00103 CL_DomString get_name() const; 00104 std::vector<WSDLOperation> get_operations() const; 00105 }; 00106 00108 class WSDLOperation 00109 { 00110 public: 00111 00115 CL_DomString get_name() const; 00116 std::vector<CL_DomString> get_parameter_order() const; 00117 00121 CL_DomString get_input_name(); 00122 00126 CL_DomString get_input_message(); 00127 00131 CL_DomString get_output_name(); 00132 00136 CL_DomString get_output_message(); 00137 00141 CL_DomString get_fault_name(); 00142 00146 CL_DomString get_fault_message(); 00147 }; 00148 00150 class WSDLBinding 00151 { 00152 public: 00153 00157 CL_DomString get_name() const; 00158 00162 CL_DomString get_soap_style() const; 00163 00167 CL_DomString get_soap_transport() const; 00168 std::vector<WSDLBindingOperation> get_operations() const; 00169 }; 00170 00172 class WSDLBindingOperation 00173 { 00174 public: 00175 00179 CL_DomString get_soap_action() const; 00180 00184 CL_DomString get_input_name() const; 00185 00189 CL_DomString get_input_soap_encoding_style() const; 00190 00194 CL_DomString get_input_namespace() const; 00195 00199 CL_DomString get_input_use() const; 00200 00204 CL_DomString get_output_name() const; 00205 00209 CL_DomString get_output_soap_encoding_style() const; 00210 00214 CL_DomString get_output_namespace() const; 00215 00219 CL_DomString get_output_use() const; 00220 00224 CL_DomString get_fault_name() const; 00225 00229 CL_DomString get_fault_soap_encoding_style() const; 00230 00234 CL_DomString get_fault_namespace() const; 00235 00239 CL_DomString get_fault_use() const; 00240 }; 00241 00243 class WSDLService 00244 { 00245 public: 00246 00250 CL_DomString get_name() const; 00251 std::vector<WSDLPort> get_ports() const; 00252 }; 00253 00255 class WSDLPort 00256 { 00257 public: 00258 00262 CL_DomString get_name() const; 00263 00267 CL_DomString get_binding() const; 00268 00272 CL_DomString get_soap_address_location() const; 00273 }; 00274 00275 /* 00276 definitions 00277 targetNamespace="http:/blablabla" 00278 xmlns="http: 00279 xmlns:namespace="http:/blablabla" 00280 xmlns:wsdlsoap="http: 00283 types 00284 schema targetNamespace="http:/blablabla-standard-types" xmlns="http: 00285 <--XMLSchema here--> 00286 schema targetNamespace="http:/blablabla" xmlns="http: 00287 <--XMLSchema here--> 00288 00289 message name="FuncNameRequest" 00290 part name="ParamName" type="xsd:string" 00291 00292 portType name="PortName" 00293 operation name="FuncName" parameterOrder="params list" 00294 input message="namespace:FuncNameRequest" name="FuncNameRequest" 00295 output message="namespace:FuncNameResposne" name="FuncNameResponse" 00296 fault message="namespace:SomeException" name="SomeException" 00297 fault message="namespace:SomeOtherException" name="SomeOtherException" 00298 00299 binding name="Binding" type="namespace:PortName" 00300 wsdlsoap:binding style="rpc" transport="http: 00301 operation name="FuncName" 00302 wsdlsoap:operation soapAction="" 00303 input name="FuncNameRequest" 00304 wsdlsoap:body encodingStyle="http: 00305 output name="FuncNameResponse" 00306 wsdlsoap:body encodingStyle="http: 00307 fault name="SomeException" 00308 wsdlsoap:body encodingStyle="http: 00309 fault name="SomeOtherException" 00310 wsdlsoap:body encodingStyle="http: 00312 service name="TestWebService" 00313 port binding="namespace:Binding" name="PortName" 00314 wsdlsoap:address location="http: 00315 */ 00316 #endif
1.4.6