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