WSDL to IDL Mapping


Extracting IDL from WSDL Files

The Software AG IDL Extractor for WSDL produces the IDL file and an XML mapping file. The SOAP-binding information is written into the XML mapping file (XMM), for example, the SOAPAction value and the namespace definitions. The two other bindings (HTTP and MIME) only return the IDL file, but no XML mapping file. In this case, a warning dialog is displayed. WSDL files with mixed bindings, including a SOAP binding, also return an XML mapping file, but display the warning message too. The XML mapping and IDL parameter directions depend on the WSDL source file; INERR and OUTERR mapping trees are possible.

Mapping WSDL XML Schema Data Type to Software AG IDL

WSDL / XML Schema XMM Software AG IDL
binary, base64Binary binary BV (or BVn or Bn(3)
hexBinary (1) binary BV (or BVn or Bn(3)
boolean boolean L
date date:yyyy-MM-dd (2) D
float float F4
double float F8
byte, unsignedByte integer I1
short, unsignedShort integer I2
int, unsignedInt integer I4
integer, positiveInteger, nonPositiveInteger, negativeInteger, nonNegativeInteger number N29.0
decimal, number number N22.7
long, unsignedLong number N19.0
time dateTime:HH:mm:ss (2) T
dateTime dateTime:yyyy-MM-dd'T'HH:mm:ss (2) T
gYearMonth string A8
gDay, gYear string A11
gMonth string A12
gMonthDay string A13
string (and all types not listed here) string AV (or AVn or An(3)

Notes:

  1. The hexBinary format is not supported by the XML/SOAP Runtime.
  2. Edit the date and dateTime patterns manually to match the formats of the original documents.

    Example: <myTime xsi:type="xsd:date">11:08:23+01:00</myTime> --> dateTime:HH:mm:ss' +01:00 ' --> T

    Note:
    The +01:00 is not supported by IDL (EntireX RPC protocol).

  3. Mapped according to specified transformation rules. See Step 6: Specify Options for Target Programming Language.

Extracting the Name for the IDL Library

The IDL library name (see library-definition under Software AG IDL Grammar in the IDL Editor documentation) will be used from the value of the name attribute of the tag <service>, for example:

<definitions ...>
    <service name="LIBRARYNAME">
        <port .../>
    </service>
</definitions>

Extracting the Name for the IDL Program

The RPC program name (see program-definition under Software AG IDL Grammar in the IDL Editor documentation) will be used from the value of the name attribute of the tag <operation> as child of the tag <portType>, for example:

<definitions ...>
    <portType name="...">
        <operation name="PROGRAMNAME">
            <input .../>
            <output .../>
        </operation>
    </portType>
</definitions>