<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Witslog Wiki &#187; Web Services</title>
	<atom:link href="http://witslog.com/wiki/category/technical/web-services/feed" rel="self" type="application/rss+xml" />
	<link>http://witslog.com/wiki</link>
	<description>Technical Log</description>
	<lastBuildDate>Fri, 14 May 2010 06:17:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>What is XML-RPC?</title>
		<link>http://witslog.com/wiki/technical/web-services/what-is-xml-rpc</link>
		<comments>http://witslog.com/wiki/technical/web-services/what-is-xml-rpc#comments</comments>
		<pubDate>Mon, 29 Mar 2010 07:13:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://witslog.com/wiki/?p=133</guid>
		<description><![CDATA[XML-RPC is a remote procedure call protocol which uses XML to encode its calls and HTTP as a transport mechanism.[1]





Contents
 [hide]

1 History
2 Usage
3 Data types
4 Examples
5 Criticism
6 Implementations

6.1 C++
6.2 Objective-C / GNUstep / Cocoa
6.3 Erlang
6.4 Java
6.5 XMPP
6.6 Other


7 See also
8 References
9 External links






//
[edit] History
XML-RPC was...]]></description>
			<content:encoded><![CDATA[<p><b>XML-RPC</b> is a <a href="/wiki/Remote_procedure_call" title="Remote procedure call">remote procedure call</a> protocol which uses <a href="/wiki/XML" title="XML">XML</a> to encode its calls and <a href="/wiki/HTTP" title="HTTP" class="mw-redirect">HTTP</a> as a transport mechanism.<sup id="cite_ref-book1_0-0" class="reference"><a href="#cite_note-book1-0"><span>[</span>1<span>]</span></a></sup></p>
<table id="toc" class="toc">
<tbody>
<tr>
<td>
<div id="toctitle">
<h2>Contents</h2>
<p> <span class="toctoggle">[<a href="javascript:toggleToc()" class="internal" id="togglelink">hide</a>]</span></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#History"><span class="tocnumber">1</span> <span class="toctext">History</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Usage"><span class="tocnumber">2</span> <span class="toctext">Usage</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#Data_types"><span class="tocnumber">3</span> <span class="toctext">Data types</span></a></li>
<li class="toclevel-1 tocsection-4"><a href="#Examples"><span class="tocnumber">4</span> <span class="toctext">Examples</span></a></li>
<li class="toclevel-1 tocsection-5"><a href="#Criticism"><span class="tocnumber">5</span> <span class="toctext">Criticism</span></a></li>
<li class="toclevel-1 tocsection-6"><a href="#Implementations"><span class="tocnumber">6</span> <span class="toctext">Implementations</span></a>
<ul>
<li class="toclevel-2 tocsection-7"><a href="#C.2B.2B"><span class="tocnumber">6.1</span> <span class="toctext">C++</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="#Objective-C_.2F_GNUstep_.2F_Cocoa"><span class="tocnumber">6.2</span> <span class="toctext">Objective-C / GNUstep / Cocoa</span></a></li>
<li class="toclevel-2 tocsection-9"><a href="#Erlang"><span class="tocnumber">6.3</span> <span class="toctext">Erlang</span></a></li>
<li class="toclevel-2 tocsection-10"><a href="#Java"><span class="tocnumber">6.4</span> <span class="toctext">Java</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="#XMPP"><span class="tocnumber">6.5</span> <span class="toctext">XMPP</span></a></li>
<li class="toclevel-2 tocsection-12"><a href="#Other"><span class="tocnumber">6.6</span> <span class="toctext">Other</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-13"><a href="#See_also"><span class="tocnumber">7</span> <span class="toctext">See also</span></a></li>
<li class="toclevel-1 tocsection-14"><a href="#References"><span class="tocnumber">8</span> <span class="toctext">References</span></a></li>
<li class="toclevel-1 tocsection-15"><a href="#External_links"><span class="tocnumber">9</span> <span class="toctext">External links</span></a></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p><script type="text/javascript">
//<![CDATA[
if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } 
//]]&gt;
</script></p>
<h2><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=1" title="Edit section: History">edit</a>]</span> <span class="mw-headline" id="History">History</span></h2>
<p>XML-RPC was created in 1998 by <a href="/wiki/Dave_Winer" title="Dave Winer">Dave Winer</a> of <a href="/wiki/UserLand_Software" title="UserLand Software">UserLand Software</a> and <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span>[</span>2<span>]</span></a></sup>. As new functionality was introduced, the standard evolved into what is now <a href="/wiki/SOAP_%28protocol%29" title="SOAP (protocol)" class="mw-redirect">SOAP</a>.</p>
<p>XML-RPC was patented by <a href="/wiki/Phillip_Merrick" title="Phillip Merrick">Phillip Merrick</a>, Stewart Allen, and Joseph Lapp in April 2006, claiming benefit to a provisional application filed in March 1998. The patent is assigned to <a href="/wiki/WebMethods" title="WebMethods">webMethods</a>, located in <a href="/wiki/Fairfax,_VA" title="Fairfax, VA" class="mw-redirect">Fairfax, VA</a>.<sup id="cite_ref-merrick01_2-0" class="reference"><a href="#cite_note-merrick01-2"><span>[</span>3<span>]</span></a></sup></p>
<h2><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=2" title="Edit section: Usage">edit</a>]</span> <span class="mw-headline" id="Usage">Usage</span></h2>
<p>XML-RPC works by sending a HTTP request to a server implementing the protocol. The client in that case is typically software wanting to call a single method of a remote system. Multiple input parameters can be passed to the remote method, one return value is returned. The parameter types allow nesting of parameters into maps and lists, thus larger structures can be transported. Therefore XML-RPC can be used to transport objects or structures both as input and as output parameters.</p>
<p><i>Identification</i> of clients for authorization purposes can be achieved using popular HTTP security methods. <a href="/wiki/Basic_access_authentication" title="Basic access authentication">Basic access authentication</a> is used for identification, <a href="/wiki/HTTPS" title="HTTPS" class="mw-redirect">HTTPS</a> is used when identification (via certificates) and encrypted messages are needed. Both methods can be combined.</p>
<p>In comparison to <a href="/wiki/REST" title="REST" class="mw-redirect">REST</a>, where <i>resources</i> are transported, XML-RPC is designed to <i>call methods</i>.</p>
<p>XML-RPC is simpler to use and understand than <a href="/wiki/SOAP_%28protocol%29" title="SOAP (protocol)" class="mw-redirect">SOAP</a> because it allows only one method of method serialization, whereas SOAP defines multiple different encodings. Also the security model is simpler, and XML-RPC does not support (nor require) the creation of WSDL service descriptions. <a href="/wiki/JSON-RPC" title="JSON-RPC">JSON-RPC</a> is similar to XML-RPC.</p>
<h2><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=3" title="Edit section: Data types">edit</a>]</span> <span class="mw-headline" id="Data_types">Data types</span></h2>
<p>Common <a href="/wiki/Datatype" title="Datatype" class="mw-redirect">datatypes</a> are converted into their XML equivalents with example values shown below:</p>
<table class="wikitable">
<tbody>
<tr>
<th>Name</th>
<th>Tag Example</th>
<th>Description</th>
</tr>
<tr>
<td>array</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;array<span class="re2">&gt;</span></span></span>

  <span class="sc3"><span class="re1">&lt;data<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;i4<span class="re2">&gt;</span></span></span>1404<span class="sc3"><span class="re1">&lt;/i4<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;string<span class="re2">&gt;</span></span></span>Something here<span class="sc3"><span class="re1">&lt;/string<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>

    <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;i4<span class="re2">&gt;</span></span></span>1<span class="sc3"><span class="re1">&lt;/i4<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/data<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/array<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
</td>
<td><a href="/wiki/Array_data_structure" title="Array data structure">Array</a> of values, storing no keys</td>
</tr>
<tr>
<td>base64</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;base64<span class="re2">&gt;</span></span></span>eW91IGNhbid0IHJlYWQgdGhpcyE=<span class="sc3"><span class="re1">&lt;/base64<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
</td>
<td><a href="/wiki/Base64" title="Base64">Base64</a>-encoded binary data</td>
</tr>
<tr>
<td>boolean</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;boolean<span class="re2">&gt;</span></span></span>1<span class="sc3"><span class="re1">&lt;/boolean<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
</td>
<td><a href="/wiki/Boolean_datatype" title="Boolean datatype" class="mw-redirect">Boolean</a> logical value (0 or 1)</td>
</tr>
<tr>
<td>date/time</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;dateTime.iso8601<span class="re2">&gt;</span></span></span>19980717T14:08:55<span class="sc3"><span class="re1">&lt;/dateTime.iso8601<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
</td>
<td>Date and time in <a href="/wiki/ISO_8601" title="ISO 8601">ISO 8601</a> format</td>
</tr>
<tr>
<td>double</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;double<span class="re2">&gt;</span></span></span>-12.53<span class="sc3"><span class="re1">&lt;/double<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
</td>
<td><a href="/wiki/Double_precision" title="Double precision" class="mw-redirect">Double precision</a> floating point number</td>
</tr>
<tr>
<td>integer</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;i4<span class="re2">&gt;</span></span></span>42<span class="sc3"><span class="re1">&lt;/i4<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
<p>or</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;int<span class="re2">&gt;</span></span></span>42<span class="sc3"><span class="re1">&lt;/int<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
</td>
<td>Whole number, <a href="/wiki/Integer" title="Integer">integer</a></td>
</tr>
<tr>
<td>string</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;string<span class="re2">&gt;</span></span></span>Hello world!<span class="sc3"><span class="re1">&lt;/string<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
</td>
<td>String of characters. Must follow <a href="/wiki/XML#Entity_references" title="XML">XML encoding</a>.</td>
</tr>
<tr>
<td>struct</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;struct<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;member<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;name<span class="re2">&gt;</span></span></span>foo<span class="sc3"><span class="re1">&lt;/name<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;i4<span class="re2">&gt;</span></span></span>1<span class="sc3"><span class="re1">&lt;/i4<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>

  <span class="sc3"><span class="re1">&lt;/member<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;member<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;name<span class="re2">&gt;</span></span></span>bar<span class="sc3"><span class="re1">&lt;/name<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;i4<span class="re2">&gt;</span></span></span>2<span class="sc3"><span class="re1">&lt;/i4<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>

  <span class="sc3"><span class="re1">&lt;/member<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/struct<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
</td>
<td><a href="/wiki/Associative_array" title="Associative array">Associative array</a></td>
</tr>
<tr>
<td>nil</td>
<td>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;nil</span><span class="re2">/&gt;</span></span>
</pre>
</div>
</div>
</td>
<td><a href="/wiki/Nullable_type" title="Nullable type">Discriminated null value</a>; an XML-RPC <a href="http://ontosys.com/xml-rpc/extensions.php" class="external text" rel="nofollow">extension</a></td>
</tr>
</tbody>
</table>
<h2><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=4" title="Edit section: Examples">edit</a>]</span> <span class="mw-headline" id="Examples">Examples</span></h2>
<p>An example of a typical XML-RPC request would be:</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">"1.0"</span><span class="re2">?&gt;</span></span>
<span class="sc3"><span class="re1">&lt;methodCall<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;methodName<span class="re2">&gt;</span></span></span>examples.getStateName<span class="sc3"><span class="re1">&lt;/methodName<span class="re2">&gt;</span></span></span>

  <span class="sc3"><span class="re1">&lt;params<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;param<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;i4<span class="re2">&gt;</span></span></span>40<span class="sc3"><span class="re1">&lt;/i4<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;/param<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/params<span class="re2">&gt;</span></span></span>

<span class="sc3"><span class="re1">&lt;/methodCall<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
<p>An example of a typical XML-RPC response would be:</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">"1.0"</span><span class="re2">?&gt;</span></span>
<span class="sc3"><span class="re1">&lt;methodResponse<span class="re2">&gt;</span></span></span>

  <span class="sc3"><span class="re1">&lt;params<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;param<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;string<span class="re2">&gt;</span></span></span>South Dakota<span class="sc3"><span class="re1">&lt;/string<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;/param<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/params<span class="re2">&gt;</span></span></span>

<span class="sc3"><span class="re1">&lt;/methodResponse<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
<p>A typical XML-RPC fault would be:</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="xml source-xml" style="font-family: monospace;">
<pre class="de1"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">"1.0"</span><span class="re2">?&gt;</span></span>
<span class="sc3"><span class="re1">&lt;methodResponse<span class="re2">&gt;</span></span></span>

  <span class="sc3"><span class="re1">&lt;fault<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;struct<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;member<span class="re2">&gt;</span></span></span>
          <span class="sc3"><span class="re1">&lt;name<span class="re2">&gt;</span></span></span>faultCode<span class="sc3"><span class="re1">&lt;/name<span class="re2">&gt;</span></span></span>

          <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;int<span class="re2">&gt;</span></span></span>4<span class="sc3"><span class="re1">&lt;/int<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;/member<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;member<span class="re2">&gt;</span></span></span>
          <span class="sc3"><span class="re1">&lt;name<span class="re2">&gt;</span></span></span>faultString<span class="sc3"><span class="re1">&lt;/name<span class="re2">&gt;</span></span></span>

          <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span><span class="re1">&lt;string<span class="re2">&gt;</span></span></span>Too many parameters.<span class="sc3"><span class="re1">&lt;/string<span class="re2">&gt;</span></span><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
        <span class="sc3"><span class="re1">&lt;/member<span class="re2">&gt;</span></span></span>
      <span class="sc3"><span class="re1">&lt;/struct<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/fault<span class="re2">&gt;</span></span></span>

<span class="sc3"><span class="re1">&lt;/methodResponse<span class="re2">&gt;</span></span></span>
</pre>
</div>
</div>
<h2><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=5" title="Edit section: Criticism">edit</a>]</span> <span class="mw-headline" id="Criticism">Criticism</span></h2>
<p>Critics of XML-RPC argue that RPC calls can be made with plain XML, and that XML-RPC doesn&#8217;t add any value over XML. Both XML-RPC and XML require an application level data model, such as which field names are defined in the XML schema or the parameter names in XML-RPC <sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span>[</span>4<span>]</span></a></sup>. This criticism is only referenced here in one single StackOverflow post; the advantages of the XML-RPC standard seem to outweigh this criticism.</p>
<h2><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=6" title="Edit section: Implementations">edit</a>]</span> <span class="mw-headline" id="Implementations">Implementations</span></h2>
<h3><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=7" title="Edit section: C++">edit</a>]</span> <span class="mw-headline" id="C.2B.2B">C++</span></h3>
<ul>
<li><a href="http://libiqxmlrpc.sourceforge.net/" class="external text" rel="nofollow">Libiqxmlrpc</a></li>
<li><a href="http://ulxmlrpcpp.sourceforge.net/" class="external text" rel="nofollow">Ultra lightweight XML-RPC library for C++</a></li>
<li><a href="http://xmlrpc-c.sourceforge.net/" class="external text" rel="nofollow">XML-RPC for C and C++</a></li>
<li><a href="http://xmlrpcpp.sourceforge.net/" class="external text" rel="nofollow">XmlRpc++</a></li>
<li><a href="https://sourceforge.net/projects/xmlrpcc4win/" class="external text" rel="nofollow">XmlRpc C++ client for Windows</a></li>
<li><a href="http://www.cs.fsu.edu/%7Eengelen/soap.html" class="external text" rel="nofollow">gSOAP toolkit for C and C++ supporting XML-RPC and more</a></li>
</ul>
<h3><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=8" title="Edit section: Objective-C / GNUstep / Cocoa">edit</a>]</span> <span class="mw-headline" id="Objective-C_.2F_GNUstep_.2F_Cocoa">Objective-C / GNUstep / Cocoa</span></h3>
<ul>
<li><a href="http://www.mulle-kybernetik.com/software/XMLRPC/" class="external text" rel="nofollow">XMLRPC Framework</a></li>
<li><a href="http://divisiblebyzero.com/" class="external text" rel="nofollow">Cocoa XML-RPC Framework</a>: Open Source XML-RPC framework written for use in Mac OS X Cocoa applications.</li>
</ul>
<h3><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=9" title="Edit section: Erlang">edit</a>]</span> <span class="mw-headline" id="Erlang">Erlang</span></h3>
<ul>
<li><a href="http://erlang.stacken.kth.se/contrib/xmlrpc-1.13.tgz" class="external text" rel="nofollow">XML-RPC for Erlang</a>: 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 <a href="http://www.xmlrpc.org/" class="external free" rel="nofollow">http://www.xmlrpc.org/</a></li>
</ul>
<h3><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=10" title="Edit section: Java">edit</a>]</span> <span class="mw-headline" id="Java">Java</span></h3>
<ul>
<li><a href="http://ws.apache.org/xmlrpc/" class="external text" rel="nofollow">Apache XML-RPC</a>: Open source library for Java</li>
<li><a href="http://delight.opendfki.de/" class="external text" rel="nofollow">XML-RPC Delight</a>: Convenient serialisation/deserialisation for Apache XML-RPC using Java Annotations and Beans</li>
<li><a href="http://members.fortunecity.com/neptune42/xmlrpc/index.htm" class="external autonumber" rel="nofollow">[1]</a>: Secure Apache XML-RPC</li>
<li><a href="http://xmlrpc.sourceforge.net/" class="external text" rel="nofollow">Redstone XML-RPC Library</a>: Redstone&#8217;s Open Source Library &#8211; XML-RPC implementation in Java</li>
<li><a href="http://kxmlrpc.sourceforge.net/" class="external text" rel="nofollow">XML-RPC Library for Java ME</a>: Open source client-side library for Java ME</li>
</ul>
<h3><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=11" title="Edit section: XMPP">edit</a>]</span> <span class="mw-headline" id="XMPP">XMPP</span></h3>
<ul>
<li><a href="http://gdr.geekhood.net/gdrwpl/jxmlrpc.php" class="external text" rel="nofollow">pyJabberXMLRPC</a>: Python classes for XMPP</li>
<li><a href="http://xmpp.org/extensions/xep-0009.html" class="external text" rel="nofollow">Jabber-RPC</a>: Over the <a href="/wiki/Extensible_Messaging_and_Presence_Protocol" title="Extensible Messaging and Presence Protocol">Extensible Messaging and Presence Protocol</a> protocol</li>
</ul>
<h3><span class="editsection">[<a href="/w/index.php?title=XML-RPC&amp;action=edit&amp;section=12" title="Edit section: Other">edit</a>]</span> <span class="mw-headline" id="Other">Other</span></h3>
<ul>
<li><a href="http://code.google.com/p/json-xml-rpc/" class="external text" rel="nofollow">JSON/XML-RPC Client and Server</a>: Abstract away the differences between JSON-RPC and XML-RPC</li>
<li><a href="http://www.remobjects.com/ro" class="external text" rel="nofollow">RemObjects SDK</a> Delphi and .NET package for XML-RPC, in addition to <a href="/wiki/SOAP_%28protocol%29" title="SOAP (protocol)" class="mw-redirect">SOAP</a> and others</li>
<li><a href="http://www.realthinclient.com" class="external text" rel="nofollow">RealThinClient SDK</a>: For Delphi/C++</li>
<li><a href="http://search.cpan.org/%7Edaan/XML-RPC-0.5/lib/XML/RPC.pm" class="external text" rel="nofollow">XML::RPC</a>: Perl module implementation</li>
<li><a href="http://docs.python.org/library/xmlrpclib.html" class="external text" rel="nofollow">xmlrpclib</a>: Included in <a href="/wiki/Python_%28programming_language%29" title="Python (programming language)">Python</a>&#8217;s standard library since 2.2
<ul>
<li>Renamed <a href="http://docs.python.org/3.1/library/xmlrpc.client.html" class="external text" rel="nofollow">xmlrpc.client</a> in Python 3.</li>
</ul>
</li>
<li><a href="http://xmlrpcflash.mattism.com" class="external text" rel="nofollow">XML-RPC for ActionScript</a>: For Flash ActionScript 2.0</li>
<li><a href="http://code.google.com/p/as3-rpclib/" class="external text" rel="nofollow">as3-rpclib</a>: For Flex/Actionscript 3</li>
<li><a href="http://www.xml-rpc.net" class="external text" rel="nofollow">XML-RPC.NET</a>: Open source library for .NET clients and servers</li>
<li><a href="http://code.google.com/p/xmlrpc-light/" class="external text" rel="nofollow">XmlRpc-Light</a>: Client and server library for OCaml</li>
<li><a href="http://common-lisp.net/project/s-xml-rpc/" class="external text" rel="nofollow">S-XML-RPC</a>: Client and server library for Common Lisp</li>
<li><a href="http://phpxmlrpc.sourceforge.net/" class="external text" rel="nofollow">PHP-XML-RPC</a>: For PHP</li>
<li><a href="http://www.haskell.org/haxr/" class="external text" rel="nofollow">HaXR</a>: Client and server library for Haskell</li>
<li><a href="http://www.x2ii.info/x2ii/xi/" class="external text" rel="nofollow">xi library with PHP and Javascript XML-RPC</a>: For PHP and Javascript</li>
<li><a href="http://www.ruby-doc.org/stdlib/libdoc/xmlrpc/rdoc/index.html" class="external text" rel="nofollow">Ruby XML-RPC library</a>: For Ruby</li>
<li><a href="http://www.keplerproject.org/luaxmlrpc/" class="external text" rel="nofollow">XML-RPC interface to Lua</a>: For <a href="/wiki/Lua_%28programming_language%29" title="Lua (programming language)">Lua</a></li>
<li><a href="http://code.google.com/p/android-xmlrpc/" class="external text" rel="nofollow">android-xmlrpc</a>: A light XML-RPC client for Google Android</li>
<li><a href="http://sourceforge.net/projects/xmlrpctcl/" class="external text" rel="nofollow">XML-RPC for Tcl</a>: A Tcl implementation of XML-RPC providing client and server support</li>
]]></content:encoded>
			<wfw:commentRss>http://witslog.com/wiki/technical/web-services/what-is-xml-rpc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

