<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML-RPC</anchor></dfn> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> を使った <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RPC</anchor>
の仕様でした。</p><section><h1>応用</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 応用規格として、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XMLStorageSystem</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Blogger</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MetaWeblog</anchor> API, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Pingback</anchor> などがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BEEP</anchor></p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SOAP</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML-RPC</anchor> を置き換えることも狙っていたようですが、
結局置き換えることはできずにどちらも廃れました。</p></section><section><h1>歴史</h1><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <em>XML-RPC Specification</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.xmlrpc.com/spec">http://www.xmlrpc.com/spec</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <em>XML-RPC 仕様書</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lowlife.jp/translation/xmlrpc_spec.html">http://lowlife.jp/translation/xmlrpc_spec.html</anchor-external></li></ul><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 仕様書見たんだけど、使えねぇってオモタ。<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">string</anchor> 要素型は「ASCII 文字列」。 (非 ASCII には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">base64</anchor>
要素型を使えばとか思ってそうで怖い。)</li><li>当然 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Type:</anchor> 欄の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">charset</anchor> パラメーターには言及なし。</li><li>というか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体型</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text/xml</anchor> だ。せめて
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">application/xml</anchor> にしる! と思うんだけど、しつこく
<em><code>text/xml</code> だ!</em> と言ってる以上そうするしかない。</li><li>日付の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">時間帯</anchor>はどうなのだ? という質問に、それはサーバーが勝手に決めるんだ! と答えている。相互運用性について真面目に考えているんだか問詰めたいところだ。</li><li>データ型は名前空間使って拡張できた方が良さそうなもんだが。</li><li>仕様策定は1999年か。当時の状況ではやむを得ないこともあるのかな?</li><li>なんにせよ、喜んで使うのは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML厨</anchor>と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">blogger</anchor> くらいだろう。他に使う香具師がいたとすれば嫌々だろうな。</li></ul></li></ul><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal> 時間帯のは多分、そういう系(謎)の規格によくある、「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報交換の当事者間の合意</anchor>」のことだと思われ。で、その当事者間の合意は、事前にサーバーから仕様書として通知されているものだ、と。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal> どうせ XML-RPC はサーバー‐クライアント通信のためのメタ・プロトコル (実際のプロトコルの一つ下の層。) なだけでその通信内容なんてどうせ好き勝手なんだろうし、時間帯も好き勝手にしろよ、ってことなんだろうなあ。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> でも時間帯という重要なパラメーターを仕様依存にしてしまうと、例えば汎用 XML-RPC モジュールがあったとして、ある言語の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日付型</anchor>を内部で XML-RPC の <code class="XML">dateTime.iso8601</code> 型に変換する時に、どうしたもそのパラメーターを知らないといけない。ちょっと面倒だと思うのね。ちょっとだけど。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite>(開発者さま向け)はてなブックマーク件数取得APIに新しいAPIを追加 - はてなブックマーク日記 - 機能変更、お知らせなど</cite>
(<time>2009-08-12 01:25:42 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://hatena.g.hatena.ne.jp/hatenabookmark/20090811/1249961864">http://hatena.g.hatena.ne.jp/hatenabookmark/20090811/1249961864</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite>Ruby ではてなブックマーク API を叩く - Life like a clown</cite>
( (<time>2011-02-19 10:29:45 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/tt_clown/20110118/1295326025">http://d.hatena.ne.jp/tt_clown/20110118/1295326025</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="en">draft-salzer-xmlplusrpc-01 - XML+RPC - XML marshalled Remote Procedure Calls</cite> (<time>2014-10-20 13:57:59 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/draft-salzer-xmlplusrpc-01">http://tools.ietf.org/html/draft-salzer-xmlplusrpc-01</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite>Specification for Fault Code Interoperability, version 20010516</cite>
( (<time>2015-01-02 18:26:19 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php">http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <cite xml:lang="en">RFC 3529 - Using Extensible Markup Language-Remote Procedure Calling (XML-RPC) in Blocks Extensible Exchange Protocol (BEEP)</cite>
(<time>2016-02-07 17:22:13 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc3529">https://tools.ietf.org/html/rfc3529</anchor-external></p></section></body></html>