SOAP and XML-RPC are related protocols in that they both attempt to homogenize the passing of parameters to Web services. SOAP is currently a W3C recommendation and is actively being enhanced and developed by Microsoft and other companies. The Microsoft .NET initiative is largely driven by being able to access Web services transparently through SOAP messsages.
XML-RPC is a final specification which is less verbose and easier to implement than SOAP. Both SOAP and XML-RPC work by turning a set of parameters (scalars, strings, dates, arrays, records, and binary data) into XML for transmission. XML-RPC is defined as operating over an HTTP connection, while SOAP describes the envelope format for an RPC request which may be sent over HTTP, SMTP or some other protocol.
SOAP passes parameters by name and XML-RPC passes parameters by position. This is relevant because a routine that depends on the order of parameters in XML-RPC must be called carefully to ensure correct results.
SOAP allows for user record types by extending the XML document using XML Schemas. XML-RPC only allows for the base types defined in the specification. (In reality, any type can be defined using those primitives.)
Both SOAP and XML-RPC support passing binary data in an XML document using Base-64 encoding. XML-RPC has a major flaw, however, in that it defines string parameters as being ASCII text. Some XML-RPC servers will enforce this, forcing the user to pass internationalized text as Base-64 encoded data.
XML-RPC Specification
SOAP 1.1 W3C Note
WSDL Specification
WSDL Schema
Developer Resources
The complete specification is available at
SOAP is transport-agnostic, meaning that it is an envelope format but not the transmission. It has recommendations if you send it over HTTP, such as additional headers that you might add, or how it might deal with the server in terms of what error codes it might return. But the SOAP message format itself is the same.
The specification and schemas are available at
WSDL defines an XML-based grammar for describing network services as a set of endpoints that accept messages containing either document-oriented or procedure-oriented information. The WSDL specification index page links to the WSDL 1.1 specification, related schema, and an overview of the specification.
The specification is available at
The WSDL Framework, SOAP binding, HTTP GET & POST binding, and MIME binding are available at
Apple provides a number of resources available to assist developers. These include
The Apple Developer Networking Documentation at http://developer.apple.com/documentation/Networking/Networking.html
Apple Sample Code which is available at http://developer.apple.com/samplecode/
Last updated: 2005-08-11