Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7984609
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T11:19:47+00:00 2026-06-04T11:19:47+00:00

So I am using a legacy WSDL,and I want to generate some Java code

  • 0

So I am using a legacy WSDL,and I want to generate some Java code from it to get a better idea of what exactly the web service does as I find Java code to be easier to read than a WSDL. However, using the Apache CFX source generator plug in using the below WSDL file is giving me the following error (same one in soapUI):

Encountered illegal extension attribute “soapAction”. Extension attributes must be in a namespace other than WSDL’s.

So basically, I want to change the WSDL so that it still properly describes the web service, but can actually be utilized by the plug in. Any suggestions would be most appreciated. I included the whole WSDL because I did not know what parts could be relevant, so apologies for the huge wall of text.

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:tns="http://api.voiceforge.com/SOAPI" 
targetNamespace="http://api.voiceforge.com/SOAPI"
xmlns:impl="http://api.voiceforge.com/SOAPI"
xmlns:intf="http://api.voiceforge.com/SOAPI"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


<!-- Types -->

  <wsdl:types>
      <xsd:schema elementFormDefault="qualified" targetNamespace="http://api.voiceforge.com/SOAPI">


      <!-- Say -->

      <xsd:complexType name="ComplexTextInfo">
        <xsd:sequence>
          <xsd:element name="SynthString" type="xsd:string" />
          <xsd:element minOccurs="0" maxOccurs="1" name="Encoding" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="ComplexVoiceInfo">
        <xsd:all>
          <xsd:element name="Owner" type="xsd:string" />
          <xsd:element name="Name" type="xsd:string" />
        </xsd:all>
      </xsd:complexType>

      <xsd:complexType name="ComplexAudioInfo">
        <xsd:all>
          <xsd:element name="DeliveryType" type="xsd:string" />
          <xsd:element name="Format" type="xsd:string" />
          <xsd:element name="SignalRate" type="xsd:string" />
        </xsd:all>
      </xsd:complexType>

      <xsd:complexType name="ComplexAudioData">
        <xsd:all>
          <xsd:element name="DeliveryType" type="xsd:string" />
          <xsd:element name="Format" type="xsd:string" />
          <xsd:element name="Data" type="xsd:string" />
        </xsd:all>
      </xsd:complexType>


      <!-- CreateAccount -->

      <xsd:complexType name="ComplexCreateUserInfo">
        <xsd:all>
          <xsd:element name="UserID" type="xsd:string" />
          <xsd:element name="Password" type="xsd:string" />
          <xsd:element name="DOB" type="xsd:string" />
          <xsd:element name="Email" type="xsd:string" />
          <xsd:element name="ZipCode" type="xsd:string" />
          <xsd:element name="Gender" type="xsd:string" />
        </xsd:all>
      </xsd:complexType>


      <!-- Voice Search -->

      <xsd:complexType name="ComplexQuery">
        <xsd:all>
          <xsd:element name="Owner" type="xsd:string" />
          <xsd:element name="Name" type="xsd:string" />
          <xsd:element name="Age" type="xsd:string" />
          <xsd:element name="Gender" type="xsd:string" />
          <xsd:element name="Language" type="xsd:string" />
        </xsd:all>
      </xsd:complexType>

      <xsd:complexType name="ComplexQueryResult">
        <xsd:all>
          <xsd:element name="Owner" type="xsd:string" />
          <xsd:element name="Name" type="xsd:string" />
          <xsd:element name="Age" type="xsd:string" />
          <xsd:element name="Gender" type="xsd:string" />
          <xsd:element name="Language" type="xsd:string" />
          <xsd:element name="Dialect" type="xsd:string" />
        </xsd:all>
      </xsd:complexType>

      <xsd:complexType name="ComplexQueryResultArray">
        <xsd:sequence>
          <xsd:element maxOccurs="unbounded" name="Voice" nillable="true" type="tns:ComplexQueryResult"/>
        </xsd:sequence>
      </xsd:complexType>

    </xsd:schema>
  </wsdl:types>


  <!-- Messages -->

  <wsdl:message name="GetSessionIDSoapIN">
    <wsdl:part name="ApplicationID" type="xsd:string" />
    <wsdl:part name="UserID" type="xsd:string" />
  </wsdl:message>

  <wsdl:message name="GetSessionIDSoapOUT">
    <wsdl:part name="SessionID" type="xsd:string" />
    <wsdl:part name="Error" type="xsd:string" />
  </wsdl:message>

  <wsdl:message name="SaySoapIN">
    <wsdl:part name="SessionID" type="xsd:string" />
    <wsdl:part name="Text" type="tns:ComplexTextInfo" />
    <wsdl:part name="VoiceInfo" type="tns:ComplexVoiceInfo" />
    <wsdl:part name="AudioInfo" type="tns:ComplexAudioInfo" />
  </wsdl:message>

  <wsdl:message name="SaySoapOUT">
    <wsdl:part name="Audio" type="tns:ComplexAudioData" />
    <wsdl:part name="Error" type="xsd:string" />
  </wsdl:message>

  <wsdl:message name="CreateAccountSoapIN">
    <wsdl:part name="ApplicationID" type="xsd:string" />
    <wsdl:part name="UserInfo" type="tns:ComplexCreateUserInfo" />
  </wsdl:message>

  <wsdl:message name="CreateAccountSoapOUT">
    <wsdl:part name="UserID" type="xsd:string" />
    <wsdl:part name="Error" type="xsd:string" />
  </wsdl:message>

  <wsdl:message name="VoiceSearchSoapIN">
    <wsdl:part name="SessionID" type="xsd:string" />
    <wsdl:part name="Query" type="tns:ComplexQuery" />
  </wsdl:message>

  <wsdl:message name="VoiceSearchSoapOUT">
    <wsdl:part name="VoiceList" type="tns:ComplexQueryResultArray" />
    <wsdl:part name="Error" type="xsd:string" />
  </wsdl:message>

  <wsdl:message name="GetAccountInfoSoapIN">
    <wsdl:part name="ApplicationID" type="xsd:string" />
    <wsdl:part name="UserID" type="xsd:string" />
  </wsdl:message>

  <wsdl:message name="GetAccountInfoSoapOUT">
    <wsdl:part name="SynthesesRemaining" type="xsd:int" />
    <wsdl:part name="DefaultVoiceInfo" type="tns:ComplexVoiceInfo" />
    <wsdl:part name="Error" type="xsd:string" />
  </wsdl:message>

  <wsdl:message name="UpdateAccountInfoSoapIN">
    <wsdl:part name="ApplicationID" type="xsd:string" />
    <wsdl:part name="UserID" type="xsd:string" />
    <wsdl:part name="DefaultVoiceInfo" type="tns:ComplexVoiceInfo" />
    <wsdl:part name="ModifySynthesisAmount" type="xsd:int" />
  </wsdl:message>

  <wsdl:message name="UpdateAccountInfoSoapOUT">
    <wsdl:part name="SynthesesRemaining" type="xsd:int" />
    <wsdl:part name="DefaultVoiceInfo" type="tns:ComplexVoiceInfo" />
    <wsdl:part name="Error" type="xsd:string" />
  </wsdl:message>


  <!-- Port Types -->

  <wsdl:portType name="VF-HTTPS-Binding">
    <wsdl:operation name="GetSessionID">
      <wsdl:input message="tns:GetSessionIDSoapIN" />
      <wsdl:output message="tns:GetSessionIDSoapOUT" />
    </wsdl:operation>
    <wsdl:operation name="CreateAccount">
      <wsdl:input message="tns:CreateAccountSoapIN" />
      <wsdl:output message="tns:CreateAccountSoapOUT" />
    </wsdl:operation>
    <wsdl:operation name="GetAccountInfo">
      <wsdl:input message="tns:GetAccountInfoSoapIN" />
      <wsdl:output message="tns:GetAccountInfoSoapOUT" />
    </wsdl:operation>
    <wsdl:operation name="UpdateAccountInfo">
      <wsdl:input message="tns:UpdateAccountInfoSoapIN" />
      <wsdl:output message="tns:UpdateAccountInfoSoapOUT" />
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:portType name="VF-HTTP-Binding">
    <wsdl:operation name="VoiceSearch">
      <wsdl:input message="tns:VoiceSearchSoapIN" />
      <wsdl:output message="tns:VoiceSearchSoapOUT" />
    </wsdl:operation>
    <wsdl:operation name="Say">
      <wsdl:input message="tns:SaySoapIN" />
      <wsdl:output message="tns:SaySoapOUT" />
    </wsdl:operation>
  </wsdl:portType>


  <!-- Bindings -->

  <wsdl:binding name="VF-HTTPS-Binding" type="tns:VF-HTTPS-Binding">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
    <wsdl:operation name="GetSessionID" soapAction="http://api.voiceforge.com/SOAPI#GetSessionID">
      <soap:operation soapAction="https://api.voiceforge.com/SOAPI#GetSessionID" RequestNamespace="https://api.voiceforge.com/SOAPI" ResponseNamespace="https://api.voiceforge.com/SOAPI" style="rpc" />
      <wsdl:input>
        <soap:body use="literal" namespace="https://api.voiceforge.com/SOAPI"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="https://api.voiceforge.com/SOAPI"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="CreateAccount">
      <soap:operation soapAction="https://api.voiceforge.com/SOAPI#CreateAccount" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" />
      <wsdl:input>
        <soap:body use="literal" namespace="https://api.voiceforge.com/SOAPI"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="https://api.voiceforge.com/SOAPI"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetAccountInfo">
      <soap:operation soapAction="https://api.voiceforge.com/SOAPI#GetAccountInfo" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" />
      <wsdl:input>
        <soap:body use="literal" namespace="https://api.voiceforge.com/SOAPI"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="https://api.voiceforge.com/SOAPI"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="UpdateAccountInfo">
      <soap:operation soapAction="https://api.voiceforge.com/SOAPI#UpdateAccountInfo" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" />
      <wsdl:input>
        <soap:body use="literal" namespace="https://api.voiceforge.com/SOAPI"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="https://api.voiceforge.com/SOAPI"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:binding name="VF-HTTP-Binding" type="tns:VF-HTTP-Binding">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
    <wsdl:operation name="VoiceSearch">
      <soap:operation soapAction="http://api.voiceforge.com/SOAPI#VoiceSearch" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" />
      <wsdl:input>
        <soap:body use="literal" namespace="http://api.voiceforge.com/SOAPI"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="http://api.voiceforge.com/SOAPI"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="Say">
      <soap:operation soapAction="http://api.voiceforge.com/SOAPI#Say" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" />
      <wsdl:input>
        <soap:body use="literal" namespace="http://api.voiceforge.com/SOAPI"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace="http://api.voiceforge.com/SOAPI"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>


  <!-- Services -->

  <wsdl:service name="VoiceForgeAPI-S">
    <wsdl:port name="VF-HTTPS" binding="tns:VF-HTTPS-Binding">
      <wsdl:documentation>VoiceForge HTTPS Service</wsdl:documentation>
      <soap:address location="https://api.voiceforge.com/soapi.pl" />
    </wsdl:port>
  </wsdl:service>

  <wsdl:service name="VoiceForgeAPI-I">
    <wsdl:port name="VF-HTTP" binding="tns:VF-HTTP-Binding">
      <wsdl:documentation>VoiceForge HTTP Service</wsdl:documentation>
      <soap:address location="http://api.voiceforge.com/soapi.pl" />
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

Edit with C# code generator:

//—————————————————————
wsdl2 -out:VoiceForgeAPI.cs wsdl/soapi.wsdl
Web Services Description Language Utility
Mono Framework v2.0.50727.1433

There where some warnings while generating the code:

wsdl/soapi.wsdl
   - This web reference does not conform to WS-I Basic Profile v1.1
       R2209: A wsdl:binding in a DESCRIPTION SHOULD bind every wsdl:part of a
       wsdl:message in the wsdl:portType to which it refers to one of
       soapbind:body, soapbind:header, soapbind:fault  or soapbind:headerfault
         * Binding 'VF-HTTPS-Binding', in Service Description
           'http://api.voiceforge.com/SOAPI'
         * Binding 'VF-HTTP-Binding', in Service Description
           'http://api.voiceforge.com/SOAPI'
   - WARNING: At least one operation is of an unsupported type and has been
     ignored

Writing file 'VoiceForgeAPI.cs'
//---------------------------------------------------------------

And resulting file, instead of methods having just commented errors like this:
//---------------------------------------------------------------
// WARNING: Could not generate operation binding GetSessionID. The combination of style=rpc with use=literal is not supported
// WARNING: Could not generate operation binding CreateAccount. The combination of style=rpc with use=literal is not supported
// WARNING: Could not generate operation binding GetAccountInfo. The combination of style=rpc with use=literal is not supported
// WARNING: Could not generate operation binding UpdateAccountInfo. The combination of style=rpc with use=literal is not supported
// WARNING: Could not generate operation binding VoiceSearch. The combination of style=rpc with use=literal is not supported
// WARNING: Could not generate operation binding Say. The combination of style=rpc with use=literal is not supported
//---------------------------------------------------------------
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T11:19:50+00:00Added an answer on June 4, 2026 at 11:19 am

    I can see this WSDL has been created in the very dark ages of WebServices programming…

    Anyway, to be able to execute:

    wsdl2java.bat -all your.wsdl
    

    you need to remove soapAction="http://api.voiceforge.com/SOAPI#GetSessionID" in line 207. Change:

    <wsdl:operation name="GetSessionID" soapAction="http://api.voiceforge.com/SOAPI#GetSessionID">
    

    to

    <wsdl:operation name="GetSessionID">
    

    because specification of soapAction has to be placed in soap:operation extension (WSDL’s Soap 1.1 Binding) element.

    Issuing wsdl2java -all command gives me these files:

    ComplexAudioData.java
    ComplexAudioInfo.java
    ComplexCreateUserInfo.java
    ComplexQuery.java
    ComplexQueryResult.java
    ComplexQueryResultArray.java
    ComplexTextInfo.java
    ComplexVoiceInfo.java
    ObjectFactory.java
    package-info.java
    VFHTTPBinding.java
    VFHTTPBindingImpl.java
    VFHTTPBinding_VFHTTP_Client.java
    VFHTTPBinding_VFHTTP_Server.java
    VFHTTPSBinding.java
    VFHTTPSBindingImpl.java
    VFHTTPSBinding_VFHTTPS_Client.java
    VFHTTPSBinding_VFHTTPS_Server.java
    VoiceForgeAPII.java
    VoiceForgeAPIS.java
    

    in com.voiceforge.api.soapi package.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am modifying some legacy project using SOAP web services. I noticed that some
I've converted some legacy Fortran code to C using the f2c converter ( f2c
After importing content from a legacy website using the Feeds module, I'm left with
I am working on profiling a legacy application using Spring AOP and I want
A legacy web application written using PHP and utilizing MySql database needs to be
When using a legacy VB6 application and opening some specific forms inside that application,
I'm building legacy code using the GNUARM C compiler and trying to resolve all
I have been asked to add some logging to a legacy application using .net
I have some work items pooled using the legacy QueueUserWorkItem function (I need to
I'm using VS2005 (haven't moved to 2008 because I'm still using some legacy tools)

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.