Software AG IDL to WSDL Mapping

This document covers the following topics:


Mapping IDL Data Types to WSDL Data Types

In the table below, the following metasymbols and informal terms are used for the IDL.

  • The metasymbols "[" and "]" surround optional lexical entities.

  • The informal term number (or in some cases number1. number2) is a sequence of numeric characters, for example 123.

IDL Data Type Description XMM WSDL
Anumber Alphanumeric string
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:maxLength value="number"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
AV Alphanumeric variable length string
<xsd:element name="name" type="xsd:string"/>
AV[number] Alphanumeric variable length with maximum length string
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:maxLength value=" number "/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
Bnumber Binary binary
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:base64Binary">
   <xsd:length value="base64Length"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>

Note:
base64Length = 4 * rounded up(number /3)

BV Binary variable length binary
<xsd:element name="name" type="xsd:base64Binary"/>
BV[number] Binary variable length with maximum length binary
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:base64Binary">
   <xsd:maxLength value="base64Length"/>
  </xsd:restriction>
  </xsd:simpleType>
</xsd:element>

Note:
base64Length = 4 * rounded up(number /3)

D Date date:yyyy-MM-dd
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:date">
   <xsd:pattern value="[0-9]{4}-((0[1-9])|(1[012]))-((0[1-9])|([12][0-9])|(3[01]))"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
F4 Floating point (small) float
<xsd:element name="name" type="xsd:float"/>
F8 Floating point (large) float
<xsd:element name="name" type="xsd:double"/>
I1 Integer (small) integer
<xsd:element name="name" type="xsd:byte"/>
I2 Integer (medium) integer
<xsd:element name="name" type="xsd:short"/>
I4 Integer (large) integer
<xsd:element name="name" type="xsd:int"/>
Knumber Kanji string
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:maxLength value="number"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
KV Kanji variable length string
<xsd:element name="name" type="xsd:string"/>
KV[number] Kanji variable length with maximum length string
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:maxLength value="number"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
L Logical boolean
<xsd:element name="name" type="xsd:boolean"/>
Nnumber1[.number2] Unpacked decimal numeric
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:decimal">
   <xsd:totalDigits value="number1 + number2"/>
   <xsd:fractionDigits value="number2"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>

Note:
default of number2 is 0.

NUnumber1[.number2] Unpacked decimal unsigned numeric
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:decimal">
   <xsd:totalDigits value="number1 + number2"/>
   <xsd:fractionDigits value="number2"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>

Note:
default of number2 is 0.

Pnumber1[.number2] Packed decimal numeric
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:decimal">
   <xsd:totalDigits value="number1 + number2"/>
   <xsd:fractionDigits value="number2"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>

Note:
default of number2 is 0.

PUnumber1[.number2] Packed decimal unsigned numeric
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:decimal">
   <xsd:totalDigits value="number1 + number2"/>
   <xsd:fractionDigits value="number2"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>

Note:
default of number2 is 0.

T Time dateTime:yyyy-MM-dd'T'H:mm:ss
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:dateTime">
   <xsd:pattern value="[0-9]{4}-((0[1-9])|(1[012]))-((0[1-9])|([12][0-9])|(3[01]))T(([01][0-9])|(2[0-3]))(:[0-5][0-9]){2}"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
Unumber Unicode unicode
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:maxLength value="number"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
UV Unicode variable length unicode
<xsd:element name="name" type="xsd:string"/>
UVnumber Unicode variable length with maximum length unicode
<xsd:element name="name"> 
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:maxLength value="number"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>

Default Namespace

The Default Namespace used by Web Services Wrapper and the XML Mapping Editor is set to "urn:com-softwareag-entirex-rpc:%l-%p",

where %l is replaced by the IDL library name, and
  %p is replaced by the IDL program name

If another namespace is required

  • Change the setting on Preference Page of XML Mapping Editor.

    graphics/idl2wsdl_defaultNamespace-1.png

  • Change the setting on tab Overview in the XML Mapping Editor before generating the XML Mapping File or creating the web service.

    graphics/idl2wsdl_defaultNamespace-2.png

EntireX Header

If you choose Send connection and security parameters with SOAP message in the Web Services Wrapper Wizard, an additional configuration page appears.

graphics/idl2wsdl_header.png

The selected parameters are generated in alphabetical order and are enclosed by xsd:all in the SOAP header section of the generated WSDL file. Example:

<xsd:schema targetNamespace="urn:com.softwareag.entirex.xml.rt">   
 <xsd:element   name="EntireX">  
  <xsd:complexType > 
   <xsd:all >  
    <xsd:element name="exx-brokerID" type="xsd:string"/> 
    <xsd:element name="exx-natural-library" type="xsd:string"/>   
        ...
    <xsd:element name="exx-userID" type="xsd:string"/>
   </xsd:all>  
  </xsd:complexType>  
 </xsd:element> 
</xsd:schema>

A web service client will then be able to set these parameters in the SOAP header of the SOAP message.

Min/Max Occurrence

minOccurs/maxOccurs in WSDL

The attributes for minOccurs and maxOccurs are only present in WSDL if the value is not the default value (default = 1). This means that for disabled null value suppression, the attribute minOccurs does not appear in WSDL.

minOccurs/maxOccurs for Arrays

The value of minOccurs is set to zero (by default) for request and response if null value suppression for arrays is disabled (= "No Suppression"). You can change this setting globally in the Preferences.

graphics/idl2wsdl_minMax.png

Default Service Name

The default of service name is IDL file name. The service name can be changed within Web Service Wrapper Wizard.