1 Reply Latest reply on Mar 30, 2009 5:41 PM by scottmh

    abstract operation

      Hi. I am trying to wsconsume the following wsdl.
      I am getting the error:
      abstract operation "retrieveFinalTradeSet" binding, part "finalTradeSet_attachment" has multiple binding.

      Can anyone tell me what is wrong? It looks valid and other tools (ie. axis) seem able to consume it.
      Any guidance would be appreciated. Thanks.


      <?xml version="1.0" encoding="utf-8"?>
      <wsdl:definitions
      xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"

      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
      xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

      targetNamespace="http://www.somewhere.com/soa/2008-08-09/retrieveFinalTradeSet.wsdl"
      xmlns:tns="http://www.somewhere.com/soa/2008-08-09/retrieveFinalTradeSet.wsdl"

      xmlns:schemaInfor="http://www.somewhere.com/soa/2008-08-09/FinalTradeSet.xsd"

      xmlns:typeIn="http://www.somewhere.com/soa/2007-02-09/RequestFinalTradeSet.xsd"
      xmlns:typeHeader="http://www.somewhere.com/soa/2006-06-13/StandardAttachmentInfor.xsd"
      xmlns:typeFault="http://www.somewhere.com/soa/2006-06-13/StandardOutput.xsd">

      <wsdl:documentation>
      A web service to retrieve final trade set
      </wsdl:documentation>

      <!-- type elements define data types used in this wsdl document using xml schema -->
      <!-- note the namespaces defined matched up with the typeIn and typeOut defined above -->
      <wsdl:types>
      <xs:schema xmlns:m="http://www.somewhere.com/soa/2006-06-13/StandardAttachmentInfor.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.somewhere.com/soa/2006-06-13/StandardAttachmentInfor.xsd" elementFormDefault="qualified">
      <xs:element name="standardAttachmentInfor" type="m:standardAttachmentInfor"/>
      <xs:complexType name="standardAttachmentInfor">
      <xs:sequence>
      <xs:element name="Attachment" type="m:Attachment" maxOccurs="unbounded"/>
      </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Attachment">
      <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="version" type="xs:string" minOccurs="0"/>
      <xs:element name="sequenceNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="size" type="xs:string" minOccurs="0"/>
      <xs:element name="source" type="xs:string" minOccurs="0"/>
      <xs:element name="tool" type="xs:string" minOccurs="0"/>
      <xs:element name="creationTime" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="compressFlag" type="m:compressFlag" minOccurs="0"/>
      <xs:element name="compressMethod" type="xs:string" minOccurs="0"/>
      <xs:element name="AttributeList" type="m:AttributeList" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="compressFlag">
      <xs:restriction base="xs:string">
      <xs:enumeration value="yes"/>
      <xs:enumeration value="no"/>
      </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="AttributeList">
      <xs:sequence>
      <xs:element name="Sequence" type="xs:string" minOccurs="0"/>
      <xs:element name="Name" type="xs:string" minOccurs="0"/>
      <xs:element name="Value" type="xs:string" minOccurs="0"/>
      </xs:sequence>
      </xs:complexType>
      </xs:schema>
      <xs:schema xmlns="http://www.somewhere.com/soa/2007-02-09/RequestFinalTradeSet.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.somewhere.com/soa/2007-02-09/RequestFinalTradeSet.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
      <xs:element name="RequestFinalTradeSet" type="RequestFinalTradeSet"/>
      <xs:complexType name="RequestFinalTradeSet">
      <xs:choice>
      <xs:element name="Trade_MarketTimeInterval" type="Trade_MarketTimeInterval" minOccurs="0"/>
      <xs:element name="Trade_TradeIDMarketTimeInterval" type="Trade_TradeIDMarketTimeInterval" minOccurs="0"/>
      </xs:choice>
      </xs:complexType>
      <xs:simpleType name="MarketType">
      <xs:restriction base="xs:string">
      <xs:enumeration value="DAM"/>
      <xs:enumeration value="RTM"/>
      </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Trade_MarketTimeInterval">
      <xs:sequence>
      <xs:element name="MarketStartTime" type="xs:dateTime"/>
      <xs:element name="MarketEndTime" type="xs:dateTime"/>
      <xs:element name="marketType" type="MarketType"/>
      </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Trade_TradeIDMarketTimeInterval">
      <xs:sequence>
      <xs:element name="TradeID" type="xs:string" maxOccurs="unbounded"/>
      </xs:sequence>
      </xs:complexType>
      </xs:schema>
      <xs:schema xmlns:m="http://www.somewhere.com/soa/2006-06-13/StandardOutput.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.somewhere.com/soa/2006-06-13/StandardOutput.xsd" elementFormDefault="qualified">
      <xs:element name="outputDataType" type="m:outputDataType"/>
      <xs:complexType name="outputDataType">
      <xs:sequence>
      <xs:element name="EventLog" type="m:EventLog" maxOccurs="unbounded"/>
      </xs:sequence>
      </xs:complexType>
      <xs:complexType name="EventLog">
      <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="creationTime" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="collectionType" type="xs:string" minOccurs="0"/>
      <xs:element name="collectionQuantity" type="xs:string" minOccurs="0"/>
      <xs:element name="Event" type="m:Event" maxOccurs="unbounded"/>
      <xs:element name="Service" type="m:Service" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Event">
      <xs:sequence>
      <xs:element name="result" type="xs:string"/>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="creationTime" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="severity" type="xs:string" minOccurs="0"/>
      <xs:element name="priority" type="xs:string" minOccurs="0"/>
      <xs:element name="sequenceNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="eventType" type="xs:string" minOccurs="0"/>
      </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Service">
      <xs:sequence>
      <xs:element name="id" type="xs:string"/>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="description" type="xs:string"/>
      <xs:element name="comments" type="xs:string"/>
      </xs:sequence>
      </xs:complexType>
      </xs:schema>
      </wsdl:types>

      <!-- message elements define input and output parameters -->
      <!-- a request and response case to use the data type defined in TYPE for payload -->
      <wsdl:message name="retrieveFinalTradeSetHeader">
      <!-- attachment wrapper -->
      <wsdl:part name="standardAttachmentInfor" element="typeHeader:standardAttachmentInfor">
      <wsdl:documentation>attachment information</wsdl:documentation>
      </wsdl:part>
      </wsdl:message>
      <wsdl:message name="retrieveFinalTradeSetRequest">
      <wsdl:part name="requestData" type="typeIn:RequestFinalTradeSet">
      <wsdl:documentation>send request date</wsdl:documentation>
      </wsdl:part>
      </wsdl:message>
      <wsdl:message name="retrieveFinalTradeSetResponse">
      <wsdl:part name="finalTradeSet_attachment" type="xs:base64Binary">
      <wsdl:documentation>return final trade set</wsdl:documentation>
      </wsdl:part>
      </wsdl:message>
      <wsdl:message name="faultReturnType">
      <wsdl:part name="faultReturn" element="typeFault:outputDataType">
      <wsdl:documentation>fault information</wsdl:documentation>
      </wsdl:part>
      </wsdl:message>

      <!-- portType elements define the abstract interface of a web service -->
      <!-- to use the message type defined in message above -->
      <wsdl:portType name="retrieveFinalTradeSet">
      <wsdl:operation name="retrieveFinalTradeSet">
      <wsdl:documentation>retrieve final trade set</wsdl:documentation>
      <wsdl:input message="tns:retrieveFinalTradeSetRequest" />
      <wsdl:output message="tns:retrieveFinalTradeSetResponse" />
      <wsdl:fault name="faultReturn" message="tns:faultReturnType" />
      </wsdl:operation>
      </wsdl:portType>

      <!-- binding elements define protocols and encoding styles -->
      <!-- to bind the operation defined in portType -->
      <wsdl:binding name="retrieveFinalTradeSet_Binding" type="tns:retrieveFinalTradeSet">
      <soap:binding style="rpc"
      transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="retrieveFinalTradeSet">
      <soap:operation style="rpc"
      soapAction="http://www.somewhere.com/soa/2008-08-09/retrieveFinalTradeSet"/>
      <wsdl:input>
      <soap:body use="literal" namespace="http://www.somewhere.com/soa/2008-08-09/retrieveFinalTradeSet"/>
      </wsdl:input>
      <wsdl:output>
      <mime:multipartRelated>
      <mime:part>
      <soap:body use="literal" namespace="http://www.somewhere.com/soa/2008-08-09/retrieveFinalTradeSet"/>
      </mime:part>
      <mime:part>
      <mime:content part="finalTradeSet_attachment"
      type="application/octetstream"/>
      </mime:part>
      </mime:multipartRelated>
      <soap:header message="tns:retrieveFinalTradeSetHeader"
      part="standardAttachmentInfor" use="literal" wsdl:required="true"/>
      </wsdl:output>
      <wsdl:fault name="faultReturn">
      <soap:fault name="faultReturn" use="literal"/>
      </wsdl:fault>
      </wsdl:operation>
      </wsdl:binding>

      <wsdl:service name="retrieveFinalTradeSetService">
      <wsdl:port name="retrieveFinalTradeSetServicePort" binding="tns:retrieveFinalTradeSet_Binding">
      <soap:address location="http://www.somewhere.com/soa/2008-08-09/retrieveFinalTradeSet"/>
      </wsdl:port>
      </wsdl:service>

      </wsdl:definitions>