XML-RPC
表示
XML-RPCとは、遠隔手続き呼出し (RPC) プロトコルの一種であり、エンコード(符号化)にXMLを採用し、転送機構にHTTPを採用している。非常に単純なプロトコルで、少数のデータ型やコマンドだけを定義しているだけであり、その仕様は2枚の紙にまとめられる。これは多くのRPCシステムが膨大な量の規格を規定し、実装に多量のプログラミングを要することに比べると、際立った特徴と言える。
1998年、ユーザーランド・ソフトウェアがマイクロソフトと共同で開発した。その後、これに新たな機能を追加したものがSOAPへと発展した。しかし、SOAP よりも単純で扱いやすいXML-RPCを好む人もいる。
類似の RPCプロトコルとして JSON-RPC がある。
データ型
[編集]名称 | タグ使用例 | 説明 |
---|---|---|
array |
<array> <data> <value><i4>1404</i4></value> <value><string>Something here</string></value> <value><i4>1</i4></value> </data> </array> |
値の配列。キーは格納しない。 |
base64 |
<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> |
Base64でエンコードされたバイナリデータ |
boolean |
<boolean>1</boolean> |
ブーリアン型の論理値(0または1) |
date/time |
<dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> |
日付と時刻 |
double |
<double>-12.53</double> |
倍精度浮動小数点数 |
integer |
<i4>42</i4> または <int>42</int> |
整数 |
string |
<string>Hello world!</string> |
文字列。XMLのエンコード規則に従う。 |
struct |
<struct> <member> <name>foo</name> <value><i4>1</i4></value> </member> <member> <name>bar</name> <value><i4>2</i4></value> </member> </struct> |
キーを含む値の配列。 |
nil |
<nil/> |
NULL値の識別用。XML-RPC の拡張 |
例
[編集]XML-RPC要求の典型例を以下に示す。
<?xml version="1.0"?> <methodCall> <methodName>examples.getStateName</methodName> <params> <param> <value><i4>40</i4></value> </param> </params> </methodCall>
XML-RPC応答の典型例を以下に示す。
<?xml version="1.0"?> <methodResponse> <params> <param> <value><string>South Dakota</string></value> </param> </params> </methodResponse>
XML-RPCフォールトの典型例を以下に示す。
<?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>
関連項目
[編集]外部リンク
[編集]- 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用オープンソースライブラリ