XML-RPCとは、遠隔手続き呼出し (RPC) プロトコルの一種であり、エンコード(符号化)にXMLを採用し、転送機構にHTTPを採用している。非常に単純なプロトコルで、少数のデータ型やコマンドだけを定義しているだけであり、その仕様は2枚の紙にまとめられる。これは多くのRPCシステムが膨大な量の規格を規定し、実装に多量のプログラミングを要することに比べると、際立った特徴と言える。

1998年、ユーザーランド・ソフトウェアがマイクロソフトと共同で開発した。その後、これに新たな機能を追加したものがSOAPへと発展した。しかし、SOAP よりも単純で扱いやすいXML-RPCを好む人もいる。

類似の RPCプロトコルとして JSON-RPC がある。

データ型 名称タグ使用例説明array <data> 1404 Something here 1 </data> 値の配列。キーは格納しない。base64 eW91IGNhbid0IHJlYWQgdGhpcyE=Base64でエンコードされたバイナリデータboolean 1ブーリアン型の論理値(0または1)date/time 19980717T14:08:55日付と時刻double -12.53倍精度浮動小数点数integer 42 または 42整数string Hello world!文字列。XMLのエンコード規則に従う。struct foo 1

bar 2

キーを含む値の配列。nil NULL値の識別用。XML-RPC の拡張

例 XML-RPC要求の典型例を以下に示す。

<?xml version="1.0"?> examples.getStateName 40

XML-RPC応答の典型例を以下に示す。

<?xml version="1.0"?> South Dakota

XML-RPCフォールトの典型例を以下に示す。

<?xml version="1.0"?> faultCode 4

faultString Too many parameters.

関連項目 Ajax ソフトウェアコンポーネント OPML Webサービス WDDX

外部リンク XML-RPC Homepage Forum Tutorials Technology Reports Citations from CiteSeer XEP-0009: Jabber-RPC XMPPプロトコル上のXML-RPC pyJabberXMLRPC: Python用(Jabber上のXML-RPC) Secure Apache XML-RPC RemObjects SDK SOAPなどへのXML-RPC対応 RealThinClient SDK: Delphi/C++用 XML-RPC in Flash ActionScript 2.0 XML-RPC.NET: .NET用 Redstone XML-PRC Library Java用オープンソースライブラリ