Complex data consists of multiple data values treated as a group. A Web service can exchange complex data with a client using three different SOAP message data elements:
A Web service operation parameter
The entries of a SOAP header
The detail of a SOAP fault
The techniques available for an ABL client to access this complex data depend on the structure and content of the data as determined by the WSDL Analyzer. If the WSDL is for an OpenEdge Web service that uses temp-table or ProDataSet parameters, the WSDL Analyzer indicates that you can access the complex data using an ABL temp-table or ProDataSet and how to define it in your code. If the WSDL Analyzer cannot identify a temp-table or ProDataSet to represent an instance of complex data, it provides an example of the serialized XML SOAP message element, so you can use ABL features to access the XML data as a Document Object Model (DOM) tree or to read and write the data using the Simple API for XML (SAX).
If the WSDL Analyzer identifies an appropriate temp-table or ProDataSet to represent the complex data, you can manage the data in your ABL program more easily than using the ABL DOM or SAX features. Access to such data relies entirely on ABL data types and requires no transformation to and from XML. You always have the option of using the DOM or SAX features to access the XML directly, but you are only required to do this when the WSDL Analyzer cannot identify a temp-table or ProDataSet definition to represent the complex data.
The following figure shows the Operation (internal procedure) detail section of a port type page for a procedure that is passing complex data parameters. The WSDL Analyzer has identified a static temp-table definition that can be used for a parameter. So, it specifies the TABLE parameter for the procedure signature.
Figure 15. WSDL Analyzer port type page (TABLE in signature)