Steffen,

I've pasted the modified wsdl below. I'm confident that change item 1 in my previous message (defining <input...> and <output...> elements in the bindings by name vice message attribute) will have no effect on the service. It is only a change in the way the wsdl is represented-- more specifically, in how some wsdl elements reference one another. I believe that change item 2 (changing the value of the type attribute in the <mime:content...> elements from "application/binary" to "application/octetstream") is also only a change in representation. This is an educatd guess, however, as I don't really know the semantics of the type attribute.

I'm also working on a patch for this problem. It will be somewhat of a hack, but it should enable you to build client stubs without changing the wsdl. I say it is a hack for the following reason. Based on some further debugging, it looks like the class WSDLReader is creating a corrupted instance of the Definition class that is used to model the wsdl file. WSDLReader is part of WSDL4J, and I don't have the source code for it (don't know if it is even open source). However, based on what I've seen I think I can quite easily insert some code to fix the Definition instance returned by WSDLReader. I'll send you the patch source when I have it.

Here's the modified wsdl that worked for me.

<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; name="IXMLWSservice" targetNamespace="http://tempuri.org/"; xmlns:tns="http://tempuri.org/"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:ns1="http://www.borland.com/namespaces/Types";>
<types>
<xs:schema targetNamespace="http://www.borland.com/namespaces/Types"; xmlns="http://www.borland.com/namespaces/Types";>
<xs:complexType name="TStringDynArray">
<xs:complexContent>
<xs:restriction base="soapenc:Array">
<xs:sequence/>
<xs:attribute ref="soapenc:arrayType" n1:arrayType="xs:string[]" xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:schema>
</types>
<message name="Register0Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
<part name="RegData" type="ns1:TStringDynArray"/>
</message>
<message name="Register0Response">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
<part name="return" type="xs:int"/>
</message>
<message name="Send1Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
<part name="JobArt" type="xs:int"/>
<part name="EmpfaengerNr" type="xs:string"/>
<part name="EmpfaengerListe" type="xs:base64Binary"/>
<part name="SendText" type="xs:string"/>
<part name="SendFile1" type="xs:base64Binary"/>
<part name="SendFile2" type="xs:base64Binary"/>
<part name="SendFile3" type="xs:base64Binary"/>
<part name="SendeDatumZeit" type="xs:dateTime"/>
<part name="Schalter" type="xs:string"/>
</message>
<message name="Send1Response">
<part name="JobId" type="xs:int"/>
<part name="AnzahlEmpfaenger" type="xs:int"/>
<part name="AnzahlSeiten" type="xs:int"/>
<part name="CheckDocFile" type="xs:base64Binary"/>
<part name="return" type="xs:int"/>
</message>
<message name="FaxReceive2Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
</message>
<message name="FaxReceive2Response">
<part name="FaxFile" type="xs:string"/>
<part name="ReceiveDate" type="xs:dateTime"/>
<part name="FaxImage" type="xs:base64Binary"/>
<part name="return" type="xs:int"/>
</message>
<message name="FaxDelete3Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
<part name="FaxFile" type="xs:string"/>
</message>
<message name="FaxDelete3Response">
<part name="return" type="xs:int"/>
</message>
<message name="Status4Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
<part name="JobId" type="xs:int"/>
</message>
<message name="Status4Response">
<part name="Protokoll" type="xs:base64Binary"/>
<part name="return" type="xs:int"/>
</message>
<message name="Journal5Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
<part name="AnzLines" type="xs:int"/>
<part name="Offset" type="xs:int"/>
</message>
<message name="Journal5Response">
<part name="JournalTab" type="ns1:TStringDynArray"/>
<part name="return" type="xs:int"/>
</message>
<message name="Kundenname6Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
</message>
<message name="Kundenname6Response">
<part name="KdName" type="xs:string"/>
<part name="return" type="xs:int"/>
</message>
<message name="Kundendaten7Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
</message>
<message name="Kundendaten7Response">
<part name="KdDaten" type="ns1:TStringDynArray"/>
<part name="return" type="xs:int"/>
</message>
<message name="KundenAccount8Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
</message>
<message name="KundenAccount8Response">
<part name="AccountData" type="ns1:TStringDynArray"/>
<part name="return" type="xs:int"/>
</message>
<message name="SendWelcomeMail9Request">
<part name="Account" type="xs:string"/>
</message>
<message name="SendWelcomeMail9Response">
<part name="return" type="xs:int"/>
</message>
<message name="SetPassword10Request">
<part name="Account" type="xs:string"/>
<part name="OldPassword" type="xs:string"/>
<part name="NewPassword" type="xs:string"/>
</message>
<message name="SetPassword10Response">
<part name="return" type="xs:int"/>
</message>
<message name="Kontostand11Request">
<part name="Account" type="xs:string"/>
<part name="Password" type="xs:string"/>
</message>
<message name="Kontostand11Response">
<part name="KdKontostand" type="xs:double"/>
<part name="return" type="xs:int"/>
</message>
<message name="CheckPromoCode12Request">
<part name="Account" type="xs:string"/>
<part name="PromoCode" type="xs:string"/>
</message>
<message name="CheckPromoCode12Response">
<part name="return" type="xs:int"/>
</message>
<portType name="IXMLWS">
<operation name="Register">
<input name="RegisterInput" message="tns:Register0Request"/>
<output name="RegisterOutput" message="tns:Register0Response"/>
</operation>
<operation name="Send">
<input name="SendInput" message="tns:Send1Request"/>
<output name="SendOutput" message="tns:Send1Response"/>
</operation>
<operation name="FaxReceive">
<input name="FaxReceiveInput" message="tns:FaxReceive2Request"/>
<output name="FaxReceiveOutput" message="tns:FaxReceive2Response"/>
</operation>
<operation name="FaxDelete">
<input name="FaxDeleteInput" message="tns:FaxDelete3Request"/>
<output name="FaxDeleteOutput" message="tns:FaxDelete3Response"/>
</operation>
<operation name="Status">
<input name="StatusInput" message="tns:Status4Request"/>
<output name="StatusOutput" message="tns:Status4Response"/>
</operation>
<operation name="Journal">
<input name="JournalInput" message="tns:Journal5Request"/>
<output name="JournalOutput" message="tns:Journal5Response"/>
</operation>
<operation name="Kundenname">
<input name="KundennameInput" message="tns:Kundenname6Request"/>
<output name="KundennameOutput" message="tns:Kundenname6Response"/>
</operation>
<operation name="Kundendaten">
<input name="KundendatenInput" message="tns:Kundendaten7Request"/>
<output name="KundendatenOutput" message="tns:Kundendaten7Response"/>
</operation>
<operation name="KundenAccount">
<input name="KundenAccountInput" message="tns:KundenAccount8Request"/>
<output name="KundenAccountOutput" message="tns:KundenAccount8Response"/>
</operation>
<operation name="SendWelcomeMail">
<input name="SendWelcomeMailInput" message="tns:SendWelcomeMail9Request"/>
<output name="SendWelcomeMailOutput" message="tns:SendWelcomeMail9Response"/>
</operation>
<operation name="SetPassword">
<input name="SetPasswordInput" message="tns:SetPassword10Request"/>
<output name="SetPasswordOutput" message="tns:SetPassword10Response"/>
</operation>
<operation name="Kontostand">
<input name="KontostandInput" message="tns:Kontostand11Request"/>
<output name="KontostandOutput" message="tns:Kontostand11Response"/>
</operation>
<operation name="CheckPromoCode">
<input name="CheckPromoCodeInput" message="tns:CheckPromoCode12Request"/>
<output name="CheckPromoCodeOutput" message="tns:CheckPromoCode12Response"/>
</operation>
</portType>
<binding name="IXMLWSbinding" type="tns:IXMLWS">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Register">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#Register" style="rpc"/>
<input name="RegisterInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="RegisterOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="Send">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#Send" style="rpc"/>
<input name="SendInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="SendOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="FaxReceive">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#FaxReceive" style="rpc"/>
<input name="FaxReceiveInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="FaxReceiveOutput">
<mime:multipartRelated>
<mime:part>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</mime:part>
<mime:part>
<mime:content part="FaxImage" type="application/octetstream"/>
</mime:part>
</mime:multipartRelated>
</output>
</operation>
<operation name="FaxDelete">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#FaxDelete" style="rpc"/>
<input name="FaxDeleteInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="FaxDeleteOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="Status">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#Status" style="rpc"/>
<input name="StatusInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="StatusOutput">
<mime:multipartRelated>
<mime:part>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</mime:part>
<mime:part>
<mime:content part="Protokoll" type="application/octetstream"/>
</mime:part>
</mime:multipartRelated>
</output>
</operation>
<operation name="Journal">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#Journal" style="rpc"/>
<input name="JournalInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="JournalOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="Kundenname">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#Kundenname" style="rpc"/>
<input name="KundennameInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="KundennameOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="Kundendaten">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#Kundendaten" style="rpc"/>
<input name="KundendatenInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="KundendatenOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="KundenAccount">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#KundenAccount" style="rpc"/>
<input name="KundenAccountInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="KundenAccountOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="SendWelcomeMail">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#SendWelcomeMail" style="rpc"/>
<input name="SendWelcomeMailInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="SendWelcomeMailOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="SetPassword">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#SetPassword" style="rpc"/>
<input name="SetPasswordInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="SetPasswordOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="Kontostand">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#Kontostand" style="rpc"/>
<input name="KontostandInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="KontostandOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
<operation name="CheckPromoCode">
<soap:operation soapAction="urn:XMLWSIntf-IXMLWS#CheckPromoCode" style="rpc"/>
<input name="CheckPromoCodeInput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</input>
<output name="CheckPromoCodeOutput">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; namespace="urn:XMLWSIntf-IXMLWS"/>
</output>
</operation>
</binding>
<service name="IXMLWSservice">
<port name="IXMLWSPort" binding="tns:IXMLWSbinding">
<soap:address location="http://ccs.fax.de/xmlws.exe/soap/IXMLWS"/>
</port>
</service>
</definitions>



From: "Steffen Heil" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
Subject: RE: Beginners help
Date: Thu, 15 Apr 2004 20:05:30 +0200

Mark,

Once again, thank you so much.
I am far from understanding, what's going on behind the scenes.

> If you want me to send you the modified wsdl that worked for me, let me
know.

It would be very grateful, if you could send it to me.

As I am usure, can you tell me, wether these changes will only change the
representation of the wsdl or will they change the meaning the the wsdl
file? Exspecially, should the modified file work with the existing service?

Regards,
  Steffen


_________________________________________________________________
Persistent heartburn? Check out Digestive Health & Wellness for information and advice. http://gerd.msn.com/default.asp




Reply via email to