したがって、公式のXML-RPC標準は64ビット値をサポートしていません。しかし、これらの現代では、64ビット値がますます一般的になっています。
これらをどのように処理しますか?最も一般的なXML-RPC拡張機能は何ですか?どのような言語バインディングがありますか?私は特にPythonとC++に興味がありますが、すべての情報を歓迎します。
実際、一部のライブラリは 64 ビット拡張をサポートしていますが、標準はないようです。たとえば、 xmlrpc-cにはいわゆる i8 がありますが、Python では動作しません (少なくともデフォルトでは動作しません)。
次のいずれかをお勧めします。
データ型として「i8」を使用することがますます一般的になっています。私は最近、Java で書かれたサーバーを操作するためにこれを必要とする大規模なグループからの要求に応えて、これを Perl XML-RPC モジュール ( http://metacpan.org/pod/RPC::XML ) に追加しました。サーバーが使用したツールキットはわかりませんが、すでに i8 をタイプとして受け入れていました。
まだ対処しなければならないと感じていることの 1 つは、"i4" の "int" エイリアスが、現在の i4 のように i8 も受け入れるかどうかです。または、さらに言えば、i8 として型指定されたパラメーターが i4 として型指定された入力を静かに受け入れる必要がある場合。XML-RPC は、SOAP のすべてをカバーする必要がない場合に便利な軽量でオーバーヘッドの少ないプロトコルとして大きな可能性を秘めていますが、REST と SOAP の間の宗教戦争では見過ごされがちです。
XML-RPC は、元の作成者に許可を得ることができれば、更新と改訂が必要です...
XML-RPC.NETは、リリース 2.5.0 (2010 年 9 月 5 日) から <i8> をサポートしています。
XMLRPC を拡張する方法については何も知りませんが、件名に関する次のメールを見つけました。
XML-RPC では、すべてが文字列として送信されるため、明示的な変換関数を呼び出すための追加の不器用さを除いて、選択が実際にそれほど悪いとは思いません。
しかし、いいえ、XML-RPC には 2**32 を超える整数を表現できるデータ型がありません。精度の低下を許容できる場合は、double を使用できます (ただし、送信側で明示的に変換する必要があります)。