When no alternative datatype is assigned, the WSDL generator and
SOAP server will use the default mapping described below:
Table 17.1. Default datatype
mappings in SOAP
any other type
The REAL SQL type is mapped to the xsd:float SOAP datatype by
default and so loss of precision can occur. To improve the
precision, the SOAP server will map the xsd:float to the PL double
precision datatype instead, but only if the SOAP type is specified.
The explicit declaration of __soap_type 'xsd:float' is required to
instruct Virtuoso to use the mapping to double precision.
All strings from a SOAP request declared with the SOAP datatype
xsd:string will be treated as NVARCHARs on input. All string data
such a CHAR, VARCHAR, or NVARCHAR will be encoded as UTF-8 in a
SOAP response. This makes processing of wide character sets in SOAP
If a User Defined Type (UDT) is used as a type of parameter and
no explicit XML Schema datatype given (see special syntax for PL
procedures) then in WSDL will be included as a struct definition.
Further upon SOAP processing the input struct will be encoded as a
UDT instance and passed to the given PL procedure.
The parameters which are declared as an array (see PL procedure
syntax) and having no explicit XML Schema datatype given will be
exposed as array by means of SOAP encoding rules (see also 'Use'
SOAP option to the virtual directory).
Some SOAP applications need a void return as opposed to an empty
return, from SOAP operations. To distinguish the empty return from
the void return a special SOAP datatype '__VOID__' has been
introduced. This will cause the SOAP server to omit the procedure
return value when responding to a SOAP request. Also, the return
message will be discarded from the WSDL description file.