XML-RPC

From Seo Wiki - Search Engine Optimization and Programming Languages
Jump to navigationJump to search

XML-RPC is a remote procedure call protocol which uses XML to encode its calls and HTTP as a transport mechanism.[1]

History

XML-RPC was created in 1998 by Dave Winer of UserLand Software and Microsoft[2]. As new functionality was introduced, the standard evolved into what is now SOAP.

XML-RPC was patented by Phillip Merrick, Stewart Allen, and Joseph Lapp in April 2006, claiming benefit to a provisional application filed in March 1998. The patent is assigned to webMethods, located in Fairfax, VA.[3]

Usage

XML-RPC is believed to be simpler to use and understand than SOAP.

JSON-RPC is similar to XML-RPC.

Data types

Common datatypes are converted into their XML equivalents with example values shown below:

Name Tag Example Description
array

<source lang="xml"> <array>

 
   <value><i4>1404</i4></value>
   <value><string>Something here</string></value>
   <value><i4>1</i4></value>
 

</array> </source>

Array of values, storing no keys
base64

<source lang="xml"> <base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> </source>

Base64-encoded binary data
boolean

<source lang="xml"> <boolean>1</boolean> </source>

Boolean logical value (0 or 1)
date/time

<source lang="xml"> <dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> </source>

Date and time in ISO 8601 format
double

<source lang="xml"> <double>-12.53</double> </source>

Double precision floating point number
integer

<source lang="xml"> <i4>42</i4> </source> or <source lang="xml"> <int>42</int> </source>

Whole number, integer
string

<source lang="xml"> <string>Hello world!</string> </source>

String of characters. Must follow XML encoding.
struct

<source lang="xml"> <struct>

 <member>
   <name>foo</name>
   <value><i4>1</i4></value>
 </member>
 <member>
   <name>bar</name>
   <value><i4>2</i4></value>
 </member>

</struct> </source>

Associative array
nil

<source lang="xml"> <nil/> </source>

Discriminated null value; an XML-RPC extension

Examples

An example of a typical XML-RPC request would be: <source lang="xml"> <?xml version="1.0"?> <methodCall>

 <methodName>examples.getStateName</methodName>
 <params>
   <param>
       <value><i4>40</i4></value>
   </param>
 </params>

</methodCall> </source>

An example of a typical XML-RPC response would be: <source lang="xml"> <?xml version="1.0"?> <methodResponse>

 <params>
   <param>
       <value><string>South Dakota</string></value>
   </param>
 </params>

</methodResponse> </source>

A typical XML-RPC fault would be: <source lang="xml"> <?xml version="1.0"?> <methodResponse>

 <fault>
   <value>
     <struct>
       <member>
         <name>faultCode</name>
         <value><int>4</int></value>
       </member>
       <member>
         <name>faultString</name>
         <value><string>Too many parameters.</string></value>
       </member>
     </struct>
   </value>
 </fault>

</methodResponse> </source>

Criticism

Critics of XML-RPC argue that RPC calls can be made with plain XML, and that XML-RPC doesn't add any value over XML. Both XML-RPC and XML require an application level schema, such as how to spell the field names, and neither require any additional schema to define how to automatically serialize language-level objects into XML. Libraries to serialize objects into plain XML are ubiquitous. Furthermore, plain XML is much more concise than XML-RPC. Consider for example:

 <struct>
   <foo>1</foo>
   <bar>2</bar>
 </struct>

versus:

 <struct>
   <member>
     <name>foo</name>
     <value><i4>1</i4></value>
   </member>
   <member>
     <name>bar</name>
     <value><i4>2</i4></value>
   </member>
 </struct>

See: http://stackoverflow.com/questions/1376688/what-is-the-benefit-of-xmlrpc-over-plain-xml

Implementations

C++

Objective-C / GNUstep / Cocoa

Erlang

  • XML-RPC for Erlang: This is an HTTP 1.1 compliant XML-RPC library for Erlang. It is designed to make it easy to write XML-RPC Erlang clients and/or servers. The library is compliant with the XML-RPC specification published by http://www.xmlrpc.org/

Java

XMPP

Other

See also

References

  1. Simon St. Laurent, Joe Johnston, Edd Dumbill. (June 2001) Programming Web Services with XML-RPC. O'Reilly. First Edition.
  2. Box, Don (1 April 2001). [Expression error: Unrecognized punctuation character "{". "A Brief History of SOAP"]. O'Reilly. 
  3. Merrick et al. (11 April 2006). [Expression error: Unrecognized punctuation character "{". "US Patent 7,028,312"]. 

External links

ar:XML-RPC bg:XML-RPC ca:XML-RPC cs:XML-RPC de:XML-RPC es:XML-RPC fr:XML-RPC ko:XML-RPC it:XML-RPC ja:XML-RPC pl:XML-RPC pt:XML-RPC ru:XML-RPC uk:XML-RPC zh:XML-RPC

If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...