Did anyone at SAG ever test the WSDL generator?

Is there anybody out there that successfully generated a valid WSDL for a webservice generated by the EntireX Workbench? :confused:

I am testing a VERY simple service using the following IDL:

  library 'TEST' is
    program 'TESTN1' is
      define data parameter
        1 RESULT
          2 NAME (A10)
          2 ADDRESS (A20)
          2 COUNTRY (A2)
      end-define
</pre><BR><BR>Then I'm performing a SOAP 1.1 mapping that works fine with the XML Tester, but when I generate a WSDL for this service, I get something containing:<BR><BR><pre class="ip-ubbcode-code-pre">
  <schema targetNamespace="http://namespace.softwareag.com/entirex/xml/mapping" xmlns="http://www.w3.org/2001/XMLSchema">
    <xsd:complexType name="RESULT">
      <xsd:sequence>
        <xsd:element name="NAME" type="xsd:NAME"/>
        <xsd:element name="ADDRESS" type="xsd:ADDRESS"/>
        <xsd:element name="COUNTRY" type="xsd:COUNTRY"/>
      </xsd:sequence>
    </xsd:complexType>
  </schema>



To my latest knowledge, xsd:NAME, xsd:ADDRESS and xsd:COUNTRY are no valid W3C Schema types, so I’m not suprised that the first WSDL editor I tried (XMLSPY5) rejects the generated file. :rolleyes:

WSDL generation didn’t work in v6.1.x and still doesn’t work in version 7.1.1.11 we are using now, so actually I’m wondering why SAG adds this feature (read: bug) to the EntireX workbench. It definitely has never been tested (properly) :mad:

Regards,
Michel de Blok

Hi Michel,

I have used the WSDL generator in a number of projects and it worked fine every time. I also did a quick test and generated a WSDL from the Workbench and this is the version that I got:

<?xml version='1.0' encoding='utf-8'?>

<definitions name=‘TEST’ targetNamespace=‘http://namespace.softwareag.com/entirex/xml/mapping
xmlns=‘http://schemas.xmlsoap.org/wsdl/’ xmlns:xsd=‘XML Schema
xmlns:soap=‘http://schemas.xmlsoap.org/wsdl/soap/
xmlns:wsdl=‘http://schemas.xmlsoap.org/wsdl/’ xmlns:SOAP-ENC=‘http://schemas.xmlsoap.org/soap/encoding/
xmlns:tns=‘http://namespace.softwareag.com/entirex/xml/mapping’>


<xsd:complexType name=‘RESULT’>
xsd:sequence
<xsd:element name=‘NAME’ type=‘xsd:string’/>
<xsd:element name=‘ADDRESS’ type=‘xsd:string’/>
<xsd:element name=‘COUNTRY’ type=‘xsd:string’/>
</xsd:sequence>
</xsd:complexType>















<soap:binding style=‘rpc’ transport=‘http://schemas.xmlsoap.org/soap/http’/>

<soap:operation soapAction=‘TESTN1’/>

<soap:body use=‘encoded’ encodingStyle=‘http://schemas.xmlsoap.org/soap/encoding/
namespace=‘urn:com-softwareag-entirex-rpc:TEST’
/>


<soap:body use=‘encoded’ encodingStyle=‘http://schemas.xmlsoap.org/soap/encoding/
namespace=‘urn:com-softwareag-entirex-rpc:TEST’
/>





<soap:address location=‘http://localhost:8080/entirex/xmlrt’/>




I then opened this WSDL in XMLSpy and it verified correctly. So this version of the WSDL is correct.

Is the copy of the WSDL you sent just an extract from the WSDL that you generated (it seems so)? Could you provide more information about the steps you took to generate the WSDL? Could also provide me with a copy of your .idl, .xmm, .wsdl and .properties files. This way we can determine whether it is possible to reproduce the problem you are experiencing.

Regards
Theo

Theo,

the completely generated WSDL is as follows:

<?xml version='1.0' encoding='utf-8'?>
<!-- Generated 7-nov-03 12:42:59 by Software AG SOAP Toolkit Wizard, Version 7.1.1.11 -->
<definitions name='TEST' targetNamespace='http://namespace.softwareag.com/entirex/xml/mapping'
   xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:xsd='http://www.w3.org/2001/XMLSchema'
   xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
   xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'
   xmlns:tns='http://namespace.softwareag.com/entirex/xml/mapping'

>
   <types>
      <schema targetNamespace='http://namespace.softwareag.com/entirex/xml/mapping' xmlns='http://www.w3.org/2001/XMLSchema'>
         <xsd:complexType name='RESULT'>
            <xsd:sequence>
               <xsd:element name='NAME' type='xsd:NAME'/>
               <xsd:element name='ADDRESS' type='xsd:ADDRESS'/>
               <xsd:element name='COUNTRY' type='xsd:COUNTRY'/>
            </xsd:sequence>
         </xsd:complexType>
      </schema>
   </types>
   <message name='TESTN1'>
      <part name='RESULT' type='tns:RESULT'/>
   </message>
   <message name='TESTN1Response'>
      <part name='RESULT' type='tns:RESULT'/>
   </message>
   <portType name='TESTPort'>
      <operation name='TESTN1'>
         <input message='tns:TESTN1'/>
         <output message='tns:TESTN1Response'/>
      </operation>
   </portType>
   <binding name='TESTSoapBinding' type='tns:TESTPort'>
      <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
      <operation name='TESTN1'>
         <soap:operation soapAction='TESTN1'/>
         <input>
            <soap:body use='encoded' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'
               namespace='urn:com-softwareag-entirex-rpc:TEST'
               />
         </input>
         <output>
            <soap:body use='encoded' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'
               namespace='urn:com-softwareag-entirex-rpc:TEST'
               />
         </output>
      </operation>
   </binding>
   <service name='test'>
      <port name='TESTPort' binding='tns:TESTSoapBinding'>
         <soap:address location='http://localhost:8080/entirex/xmlrt'/>
      </port>
   </service>
</definitions>
</pre><BR><BR>as you can see, the schema types are incorrect. I am using a newer version of the SOAP Toolkit Wizard (7.1.1.11) then you did. The IDL is exactly as shown in my previous post, the XMM file is generated using "SOAP 1.1 mapping in all programs" with the following properties file:<BR><BR><pre class="ip-ubbcode-code-pre">
#EntireX Workbench properties
#Fri Nov 07 12:42:47 CET 2003
entirex.ejb.broker=localhost\:1971
entirex.wrapper.xml.default.encoding=UTF-8
entirex.nat3270rec.broker=localhost\:1971
entirex.nat3270rec.userid=
entirex.security.enabled=false
entirex.wrapper.server=RPC/SUNSRV1/CALLNAT
entirex.wrapper.java.xmlFileName=C\:\\test.xmm
entirex.security.userid=
entirex.ejb.user=EjbUserName
entirex.wrapper.xml.errorout.encoding=
entirex.wrapper.usecodepage=false
entirex.ejb.usecodepage=false
entirex.wrapper.xml.use.incoming.encoding=true
entirex.wrapper.broker=ETB172\:18172
entirex.wrapper.java.public=true
entirex.security.encryptionlevel=0
entirex.wrapper.version=7.1.1.11
entirex.natlogon.enabled=false
entirex.ejb.server=RPC/SRV1/CALLNAT
entirex.ejb.rpcuser=
entirex.nat3270rec.server=RPC/SRV1/CALLNAT
entirex.wrapper.compresslevel=no
entirex.ejb.verbose=false
entirex.natlogon.rpcuserid=
entirex.ejb.security=false
entirex.ejb.packageprefix=
entirex.ejb.package=
entirex.ejb.encryption=0
entirex.wrapper.xml.outgoing.encoding=
entirex.ejb.compresslevel=no



I have installed patch 11 and 18, I will try to run patch 10 again, maybe that solves the problem…

Regards,
Michel

Hi Michel,

I don’t think patches 11 & 18 have anything to do with the problem. To verify I also applied these patches and I’m still not able to reproduce the problem.

I did try something different though. Within the XML Mapping Editor, I selected each of the mapped elements and modified the “Default” type from “xsd:string” to “xsd:NAME”, etc. I then regenerated the WSDL file and I got the same result as you. So I’m wondering whether it is possible that the mapping might be incorrect. Can you verify whether this is the case? I don’t have your .xmm file and thus cannot verify what the mapping looks like.

Thanks
Theo

Hi Theo,

I finally found the ‘attach’ function, so here’s my XMM file. Looks to me like they are mapped to ‘xsd:string’, but still the types in my WSDL are ‘xsd:NAME’ etc…

Regards,
Michel
test.xmm (12.8 KB)

Hi Michel,

I now see what the difference is between the mapping file that you generated and the one I generated. It is true that when I use your mapping file to generate a WSDL I get the same result as you did, but when I do a new mapping within my Workbench I get different and the correct results.

The problem is due to a setting you have activated within your mapping profile. Within the Workbench go to “Mapping”“Mapping Parameter”“SOAP Default Mappings”. At the bottom of the window you will see an option called “Do not generate mapping attributes”. You will note that this check box will be selected in your case. That is why the SOAP mappings and WSDL files are generated differently. Unselect this check box and redo your SOAP mappings and then regenerate your WSDL file. It should be correct this time round.

For completeness I’m including my .xmm file so that you can see the difference between the two respective mapping files.

Regards
Theo
test.xmm (11.1 KB)

Theo,

that seems to work. Many thanks for your quick help in solving this problem!

Regards,
Michel