Software AG IDL to WSDL Mapping

This document covers the following topics:


Mapping IDL Data Types to WSDL Data Types

The generation of WSDL depends on the option Generate simple types under Preferences > Software AG > EntireX > Web Services > Web Service Wrapper > Mapping.

graphics/idl2wsdl_types.png

  • If Generate simple types is checked, the description is extended by xsd:simpleType definition if more detailed information such as length or format is available for an element.

  • If this option is not checked, an element is represented with name and type; no further information is available.

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

  • The metasymbols "[" and "]" enclose 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 (Generate simple types Checked) WSDL (Generate simple types not Checked)
Anumber Alphanumeric string
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:maxLength value="number"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
<xsd:element name="name" type="xsd:string"/>
AV Alphanumeric variable length string
<xsd:element name="name" type="xsd: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>
<xsd:element name="name" type="xsd:string"/>
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)

<xsd:element name="name" type="xsd:base64Binary"/>
BV Binary variable length binary
<xsd:element name="name" type="xsd:base64Binary"/>
<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)

<xsd:element name="name" type="xsd:base64Binary"/>
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>
<xsd:element name="name" type="xsd:date"/>
F4 Floating point (small) float
<xsd:element name="name" type="xsd:float"/>
<xsd:element name="name" type="xsd:float"/>
F8 Floating point (large) float
<xsd:element name="name" type="xsd:double"/>
<xsd:element name="name" type="xsd:double"/>
I1 Integer (small) integer
<xsd:element name="name" type="xsd:byte"/>
<xsd:element name="name" type="xsd:byte"/>
I2 Integer (medium) integer
<xsd:element name="name" type="xsd:short"/>
<xsd:element name="name" type="xsd:short"/>
I4 Integer (large) integer
<xsd:element name="name" type="xsd:int"/>
<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>
<xsd:element name="name" type="xsd:string"/>
KV Kanji variable length string
<xsd:element name="name" type="xsd: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>
<xsd:element name="name" type="xsd:string"/>
L Logical boolean
<xsd:element name="name" type="xsd: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.

<xsd:element name="name" type="xsd:decimal"/>
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.

<xsd:element name="name" type="xsd:decimal"/>
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.

<xsd:element name="name" type="xsd:decimal"/>
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.

<xsd:element name="name" type="xsd:decimal"/>
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>
<xsd:element name="name" type="xsd:dateTime"/>
Unumber Unicode unicode
<xsd:element name="name">
 <xsd:simpleType>
  <xsd:restriction base="xsd:string">
   <xsd:maxLength value="number"/>
  </xsd:restriction>
 </xsd:simpleType>
</xsd:element>
<xsd:element name="name" type="xsd:string"/>
UV Unicode variable length unicode
<xsd:element name="name" type="xsd:string"/>
<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>
<xsd:element name="name" type="xsd:string"/>

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 Preferences 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

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 in the Web Services Wrapper Wizard.