The WSDL Analyzer's generated documentation provides recommended mappings between Web service parameters and ABL parameters. These are the mappings that are most semantically useful. Wherever the WSDL file indicates that a parameter of any data type is nillable, this means that on the Web service side the parameter can have the null value and on the ABL side the parameter can pass the ABL Unknown value (?).

The following table lists all the simple XML Schema data types in alphabetical order, showing for each one the suggested ABL data type for mapping it.

Table 1. Suggested XML Schema mappings to ABL data types
XML Schema data type ABL data type Notes
anyURI CHARACTER –
base64Binary RAW You can use the ABL BASE64-ENCODE and BASE64-DECODE functions to convert between Base 64 clear text (CHARACTER or LONGCHAR) and binary data (RAW or MEMPTR).
boolean LOGICAL –
byte INTEGER On INPUT, if the ABL INTEGER value is outside the valid range of the XML Schema byte type, it is a run-time error.
date DATE On OUTPUT, any time zone information is lost. To retain it, use an ABL CHARACTER parameter.
dateTime DATETIME-TZ –
decimal DECIMAL The ABL DECIMAL type might not hold the entire XML Schema decimal value. However, the industry common practice is to map between XML Schema decimal and another decimal data type.

On OUTPUT, if the XML Schema decimal value overflows the ABL DECIMAL type, it is a run-time error.

double CHARACTER –
duration CHARACTER –
ENTITIES CHARACTER –
ENTITY CHARACTER –
float CHARACTER –
gDay CHARACTER –
gMonth CHARACTER –
gMonthDay CHARACTER –
gYear CHARACTER –
gYearMonth CHARACTER –
hexBinary RAW –
ID CHARACTER –
IDREF CHARACTER –
IDREFS CHARACTER –
int INTEGER –
integer DECIMAL The ABL DECIMAL type might not hold the entire XML Schema integer value, but it is a better choice than the ABL INTEGER type.

On INPUT, if the ABL DECIMAL value is outside the valid range of the XML Schema integer type, it is a run-time error.

On OUTPUT, if the value of the XML Schema integer value is outside the valid range of the ABL DECIMAL type, it is a run-time error.

Language CHARACTER –
long INT64 –
Name CHARACTER –
NCName CHARACTER –
negativeInteger DECIMAL The ABL DECIMAL type might not hold the entire XML Schema negativeInteger value, but it is a better choice than the ABL INTEGER type.

On INPUT, if the ABL DECIMAL value is outside the valid range of the XML Schema negativeInteger type, it is a run-time error.

On OUTPUT, if the value of the XML Schema negativeInteger value is outside the valid range of the ABL DECIMAL type, it is a run-time error.

NMTOKEN CHARACTER –
NMTOKENS CHARACTER –
nonNegativeInteger DECIMAL The ABL DECIMAL type might not hold the entire XML Schema nonNegativeInteger value, but it is a better choice than the ABL INTEGER type.

On INPUT, if the ABL DECIMAL value is outside the valid range of the XML Schema nonNegativeInteger type, it is a run-time error.

On OUTPUT, if the value of the XML Schema nonNegativeInteger value is outside the valid range of the ABL DECIMAL type, it is a run-time error.

nonPositiveInteger DECIMAL The ABL DECIMAL type may not hold the entire XML Schema nonPositiveInteger value, but it is a better choice than the ABL INTEGER type.

On INPUT, if the ABL DECIMAL value is outside the valid range of the XML Schema nonPositiveInteger type, it is a run-time error.

On OUTPUT, if the value of the XML Schema nonPositiveInteger value is outside the valid range of the ABL DECIMAL type, it is a run-time error.

normalizedString CHARACTER –
NOTATION CHARACTER –
positiveInteger DECIMAL The ABL DECIMAL type may not hold the entire XML Schema positiveInteger value, but it is a better choice than the ABL INTEGER type.

On INPUT, if the ABL DECIMAL value is outside the valid range of the XML Schema positiveInteger type, it is a run-time error.

On OUTPUT, if the value of the XML Schema positiveInteger value is outside the valid range of the ABL DECIMAL type, it is a run-time error.

qName CHARACTER –
short INTEGER On INPUT, if the ABL INTEGER value is outside the valid range of the XML Schema short type, it is a run-time error.
string CHARACTER –
time INTEGER On INPUT, the value is converted with no time zone information.
token CHARACTER –
unsignedByte INTEGER On INPUT, if the ABL INTEGER value is outside the valid range of the XML Schema unsignedByte type, it is a run-time error.
unsignedInt DECIMAL On INPUT, if the ABL DECIMAL value is outside the valid range of the XML Schema unsignedInt type, it is a run-time error.

On OUTPUT, if the value of the XML Schema unsignedInt value is outside the valid range of the ABL DECIMAL type, it is a run-time error.

unsignedLong DECIMAL On INPUT, if the ABL DECIMAL value is outside the valid range of the XML Schema unsignedLong type, it is a run-time error.

On OUTPUT, if the value of the XML Schema unsignedLong value is outside the valid range of the ABL DECIMAL type, it is a run-time error.

unsignedShort INTEGER On INPUT, if the ABL INTEGER value is outside the valid range of the XML Schema unsignedShort type, it is a run-time error.
Note: OpenEdge supports a set of alternative ABL data types (in addition to a suggested data type) to represent the value for an XML Schema data type in ABL. These alternative data types essentially force the Web service invocation to cast the value between the specified native ABL representation and the corresponding XML Schema data type. The result of this casting might not preserve as much accuracy as the suggested mapping. For more information, see Data Type Conversion Rules for ABL Calls to SOAP Web Services.