XML-RPC

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用オープンソースライブラリ

Category:XMLベースの技術
Category:遠隔手続き呼出し
Category:アプリケーション層プロトコル