Type marshalling refers to the translation of datatypes from an application or
database as it is mapped to a SOAP datatype.When any datatype, object, method,
or string (xml, or a simple string) is passed as a SOAP request or response, it is automatically converted into an XML representation of itself. Since any programming language can use SOAP, SOAP has defined its own set of datatypes.
When data is passed in a SOAP envelope its datatypes are translated or converted to a SOAP equivalent.This enables different languages with different names for similar datatypes to communicate effectively.The datatypes supported when using Web Services include:
Standard primitive types:
String, char, Boolean, byte, single, double,
DateTime, int16, int32, int 64, Uint16, and so on.
string "hello World" is represented as:
Arrays of Primitives or Enums
MyArray[ 5,7 ] is represented as:
Classes and Structs
struct Order( OrderID, Price ) is represented as:
Arrays of Classes (Structs)
MyArray Orders( order1, order2 )
may be represented as:
DataSets: The representation of a DataSet is rather lengthy; it includes
an inline XSD schema defining the structure followed by the XML data.
For an example of a DataSet, see the next section,"Using DataSets."
Arrays of DataSets
Arrays of XmlNodes
It is important to note that when we create and use Web Services in VS.NET,
the marshalling of data is transparent to the developer.This is also true when
using the WSDL.exe command line utility.
While it is important to have some understanding of how data is transported between the Web Service and the Service proxy or client,
this layer is and should be transparent to the developer, just as packet structures for transmitting data over HTTP is transparent to the Web developer.