I have a WSDL that passes WS-I basic profile validation when run from the latest version of soapUI. I have a partner using .Net to consume the service that gets an error when trying to create a Web Reference to it. I'm trying to debug the problem for him and found that the Microsoft wsdl.exe tool is complaining that the WSDL does not conform to the WS-I Basic Profile 1.1. The errors indicate the operations have no matching binding but I cannot see the errors. Can someone lend a hand? This has me stumped. The WSDL is below.
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions name="imageViewService" targetNamespace="http://ws.myco.com/imageview" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.myco.com/imageview" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://ws.myco.com/imageview" targetNamespace="http://ws.myco.com/imageview"> <!-- Reference all the schemas --> <xsd:include schemaLocation="availableImagesRequest.xsd"/> <xsd:include schemaLocation="availableImagesResponse.xsd"/> <xsd:include schemaLocation="imagesRequest.xsd"/> <xsd:include schemaLocation="imagesResponse.xsd"/> <!-- Define simple types used in SOAP request/response here. --> <xsd:complexType name="AuthenticationType"> <xsd:sequence> <xsd:element name="user" type="tns:UserType" /> <xsd:element name="password" type="tns:PasswordType" /> </xsd:sequence> </xsd:complexType> <xsd:simpleType name="EchoRequestType"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="100" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="PasswordType"> <xsd:restriction base="xsd:string"> <xsd:minLength value="5" /> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="UserType"> <xsd:restriction base="xsd:string"> <xsd:minLength value="5" /> <xsd:maxLength value="10" /> </xsd:restriction> </xsd:simpleType> <!-- Define SOAP message names here. --> <!-- Authentication SOAP Header --> <xsd:element name="auth" type="tns:AuthenticationType" /> <!-- General Fault --> <xsd:element name="generalError" type="xsd:string" /> <!-- Schema Validation Fault --> <xsd:element name="schemaError" type="xsd:string" /> <!-- Echo Request Type --> <xsd:element name="echoRequest" type="tns:EchoRequestType" /> <!-- Echo Response Type --> <xsd:element name="echoResponse" type="xsd:string" /> </xsd:schema> </wsdl:types> <!-- Define SOAP messages here. --> <!-- ============= Authentication SOAP Header ============= --> <wsdl:message name="authenticationMsg"> <wsdl:part element="tns:auth" name="authentication" /> </wsdl:message> <!-- ============= General Fault ============= --> <wsdl:message name="generalErrorMsg"> <wsdl:part element="tns:generalError" name="fault" /> </wsdl:message> <!-- ============= Schema Validation Fault ============= --> <wsdl:message name="schemaErrorMsg"> <wsdl:part element="tns:schemaError" name="fault" /> </wsdl:message> <!-- ============= Echo ============= --> <wsdl:message name="echoRequestMsg"> <wsdl:part element="tns:echoRequest" name="echoRequest" /> </wsdl:message> <wsdl:message name="echoResponseMsg"> <wsdl:part element="tns:echoResponse" name="echoResponse" /> </wsdl:message> <!-- ============= Available Images ============= --> <wsdl:message name="availableRequestMsg"> <wsdl:part element="tns:availRequest" name="availableRequest" /> </wsdl:message> <wsdl:message name="availableResponseMsg"> <wsdl:part element="tns:availResponse" name="availableResponse" /> </wsdl:message> <!-- ============= Document Images ============= --> <wsdl:message name="imagesRequestMsg"> <wsdl:part element="tns:imgRequest" name="imagesRequest" /> </wsdl:message> <wsdl:message name="imagesResponseMsg"> <wsdl:part element="tns:imgResponse" name="imagesResponse" /> </wsdl:message> <!-- Define operations (one way or round-trip) here. --> <wsdl:portType name="imageViewPortType"> <wsdl:operation name="echo"> <wsdl:input name="echoRequest" message="tns:echoRequestMsg" /> <wsdl:output name="echoResponse" message="tns:echoResponseMsg" /> </wsdl:operation> <wsdl:operation name="imageCheck"> <wsdl:input name="availableRequest" message="tns:availableRequestMsg" /> <wsdl:output name="availableResponse" message="tns:availableResponseMsg" /> <wsdl:fault name="generalErrorMessage" message="tns:generalErrorMsg" /> <wsdl:fault name="schemaErrorMessage" message="tns:schemaErrorMsg" /> </wsdl:operation> <wsdl:operation name="imageView"> <wsdl:input name="imagesRequest" message="tns:imagesRequestMsg" /> <wsdl:output name="imagesResponse" message="tns:imagesResponseMsg" /> <wsdl:fault name="generalErrorMessage" message="tns:generalErrorMsg" /> <wsdl:fault name="schemaErrorMessage" message="tns:schemaErrorMsg" /> </wsdl:operation> </wsdl:portType> <!-- Define implementation details. --> <wsdl:binding name="imageViewBinding" type="tns:imageViewPortType"> <wsdl:documentation> <wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.1" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" /> </wsdl:documentation> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="echo"> <soap:operation soapAction="http://ws.myco.com/echo" style="document" /> <wsdl:input> <soap:body parts="echoRequest" use="literal" /> </wsdl:input> <wsdl:output> <soap:body parts="echoResponse" use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="imageCheck"> <soap:operation soapAction="http://ws.myco.com/imagecheck" style="document" /> <wsdl:input> <soap:header message="tns:authenticationMsg" part="authentication" use="literal" /> <soap:body parts="availableRequest" use="literal" /> </wsdl:input> <wsdl:output> <soap:body parts="availableResponse" use="literal" /> </wsdl:output> <wsdl:fault name="generalErrorMessage"> <soap:fault name="generalErrorMessage" use="literal" /> </wsdl:fault> <wsdl:fault name="schemaErrorMessage"> <soap:fault name="schemaErrorMessage" use="literal" /> </wsdl:fault> </wsdl:operation> <wsdl:operation name="imageView"> <soap:operation soapAction="http://ws.myco.com/imageview" style="document" /> <wsdl:input> <soap:header message="tns:authenticationMsg" part="authentication" use="literal" /> <soap:body parts="imagesRequest" use="literal" /> </wsdl:input> <wsdl:output> <soap:body parts="imagesResponse" use="literal" /> </wsdl:output> <wsdl:fault name="generalErrorMessage"> <soap:fault name="generalErrorMessage" use="literal" /> </wsdl:fault> <wsdl:fault name="schemaErrorMessage"> <soap:fault name="schemaErrorMessage" use="literal" /> </wsdl:fault> </wsdl:operation> </wsdl:binding> <!-- Define web service URL here and bind the port to this service. --> <wsdl:service name="ImageViewService"> <wsdl:documentation>Image retrieval service</wsdl:documentation> <wsdl:port binding="tns:imageViewBinding" name="imageViewPort"> <soap:address location="https://www.myco.com/imageretrieval/services/ImageViewService" /> </wsdl:port> </wsdl:service> </wsdl:definitions> Thanks, T --------------------------------- You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.
