データシリアル化形式の比較

これは、複雑なオブジェクトをビット列に変換する様々な方法であるデータシリアル化形式の比較です。文書ファイル形式としてのみ使用されるマークアップ言語は含まれていません

概要

名前作成者兼管理者に基づく標準化されているか?[定義が必要]仕様バイナリ?人間が読める形式ですか?参照をサポートしますか? eスキーマ-IDL ?標準APIゼロコピー操作をサポート
アパッチアローApacheソフトウェア財団事実上の矢印列形式はいいいえはい内蔵C、C++、C#、Go、Java、JavaScript、Julia、Matlab、Python、R、Ruby、Rust、Swiftはい
アパッチ・アブロApacheソフトウェア財団いいえApache Avro™ 仕様はい部分g内蔵C、C#、C++、Java、PHP、Python、Ruby
アパッチパーケットApacheソフトウェア財団いいえアパッチパーケットはいいいえいいえJava、Python、C++いいえ
アパッチ・スリフトFacebook(作成者)
Apache(メンテナー)
いいえオリジナルホワイトペーパーはい部分cいいえ内蔵C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk、OCaml、Delphiなどの言語[1]
ASN.1ISOIECITU-TはいISO/IEC 8824 / ITU-T X.680(構文)およびISO/IEC 8825 / ITU-T X.690(エンコード規則)シリーズ。X.680、X.681、およびX.683は構文とセマンティクスを定義します。BERDERPEROER、またはECN経由のカスタムXERJERGSER、またはECN経由のカスタムはいf内蔵OER
ベンコードBram Cohen(作成者)
BitTorrent, Inc.(メンテナー)
事実上BEPBitTorrentプロトコル仕様の一部数字と区切り文字を除き、ASCIIであるいいえいいえいいえいいえいいえ
BSONモンゴDBJSONいいえBSON仕様はいいいえいいえいいえいいえいいえ
キャプテン・プロトケントン・ヴァルダいいえキャプテンプロトエンコーディング仕様はい部分的なhいいえはいいいえはい
CBORカーステン・ボルマン、P. ホフマンメッセージパック[2]はいRFC 8949はいいいえはい、
タグ付けを通じて
CDDLFIDO2いいえ
カンマ区切り値(CSV)RFC 作成者:
ヤコフ・シャフラノビッチ
無数の非公式な変種RFC 4180
(その他)
いいえはいいいえいいえいいえいいえ
共通データ表現(CDR)オブジェクト管理グループはい一般的なORB間プロトコルはいいいえはいはいAda、C、C++、Java、Cobol、Lisp、Python、Ruby、Smalltalk
D-Busメッセージ プロトコルフリーデスクトップはいD-Bus仕様はいいいえいいえ部分的
(署名文字列)
はい
効率的な XML 交換(EXI)W3CXML、効率的なXMLはい効率的な XML 交換 (EXI) フォーマット 1.0はいXMLXPointerXPathXMLスキーマDOMSAXStAXXQueryXPath
拡張データ表記法(版)Rich Hickey / Clojure コミュニティクロージュアはい公式edn仕様いいえはいいいえいいえClojure、Ruby、Go、C++、Javascript、Java、CLR、ObjC、Python [3]いいえ
フラットバッファグーグルいいえフラットバッファ GitHubはいアパッチアロー部分的
(バッファ内部)
はいC++、Java、C#、Go、Python、Rust、JavaScript、PHP、C、Dart、Lua、TypeScriptはい
ファストインフォセットISOIECITU-TXMLはいITU-T X.891およびISO/IEC 24824-1:2007はいいいえXPointerXPathXMLスキーマDOMSAXXQueryXPath
FHIR健康レベル7RESTの基本はい迅速な医療相互運用性リソースはいはいはいはいHapi for FHIR [4] JSONXMLTurtleいいえ
イオンアマゾンJSONいいえAmazon Ion仕様はいはいいいえイオンスキーマC、C#、Go、Java、JavaScript、Python、Rust
Javaシリアル化オラクル社はいJavaオブジェクトのシリアル化はいいいえはいいいえはい
JSONダグラス・クロックフォードJavaScript構文はいSTD 90/RFC 8259
(補助:
RFC 6901、
RFC 6902)、ECMA-404、ISO/IEC 21778:2017
いいえ、BSONSmileUBJSONを参照してくださいはいJSON ポインタ (RFC 6901)、または JSONPath、JPath、JSPON、json:select();、JSON-LD部分的
(JSONスキーマ提案、ASN.1 with JER、Kwalify、Wayback Machineで2021年8月12日にアーカイブ、Rx、JSON-LD)
部分的
(Clarinet、JSONQuery / RQL、JSONPath)、JSON-LD
いいえ
メッセージパック古橋貞之JSON(緩く)いいえMessagePack フォーマット仕様はいいいえいいえいいえいいえはい
ネットストリングスダン・バーンスタインいいえネットストリングス.txtASCII区切り文字を除くはいいいえいいえいいえはい
OGDLロルフ・ヴィーン?いいえ仕様バイナリ仕様はいパス指定スキーマWD
OPC-UAバイナリOPC財団いいえopcfoundation.orgはいいいえはいいいえいいえ
オープンDDLエリック・レンゲルCPHPいいえOpenDDL.orgいいえはいはいいいえOpenDDLライブラリ
PHPシリアル化フォーマットPHPグループはいいいえはいはいはいいいえはい
ピクルス(パイソン)グイド・ヴァン・ロッサムパイソン事実上PEPPEP 3154 – Pickle プロトコル バージョン 4はいいいえはい[5]いいえはいいいえ
物件リストNeXT(作成者)
Apple(保守者)
?部分的XML形式の公開DTDはいはいbいいえ?Cocoa、CoreFoundation、OpenStep、GnuStepいいえ
プロトコルバッファ(protobuf)グーグルいいえ開発者ガイド: エンコーディング、proto2 仕様、proto3 仕様はいはいdいいえ内蔵C++、Java、C#、Python、Go、Ruby、Objective-C、C、Dart、Perl、PHP、R、Rust、Scala、Swift、Julia、Erlang、D、Haskell、ActionScript、Delphi、Elixir、Elm、Erlang、GopherJS、Haskell、Haxe、JavaScript、Kotlin、Lua、Matlab、Mercurt、OCaml、Prolog、Solidity、TypeScript、Vala、Visual Basicいいえ
S式ジョン・マッカーシー(原文)
ロン・リベスト(インターネット草稿)
Lispネットストリング事実上ほぼ「S式」は2013年10月7日にWayback Machineにアーカイブされました。 インターネットドラフトはい、正規表現はい、高度な輸送表現いいえいいえ
笑顔タトゥ・サロランタJSONいいえスマイルフォーマット仕様はいいいえはい部分的
(JSON スキーマ提案、その他の JSON スキーマ/IDL)
部分的
(Smile バックエンドで実装された JSON API 経由、Jackson、Python)
石鹸W3CXMLはいW3C 勧告:
SOAP/1.1
SOAP/1.2
部分的
(効率的な XML 交換バイナリ XML高速情報セットMTOMXSD base64 データ)
はい組み込みの id/ref、XPointerXPathWSDLXMLスキーマDOMSAXXQueryXPath
構造化データ交換フォーマットマックス・ヴィルドグルーブはいRFC 3072はいいいえいいえいいえ
UBJSONバズメディアLLCJSONBSONいいえubjson.orgはいいいえいいえいいえいいえ
外部データ表現(XDR)Sun Microsystems(作成者)
IETF(保守者)
はい標準67/RFC 4506はいいいえはいはいはい
XMLW3CSGMLはいW3C勧告
1.0(第5版)
1.1(第2版)
部分的
効率的なXML交換バイナリXML高速情報セットXSD base64データ
はいXPointerXPathXMLスキーマRELAX NGDOMSAXXQueryXPath
XML-RPCデイブ・ワイナー[6]XMLいいえXML-RPC仕様いいえはいいいえいいえいいえいいえ
ヤムルクラーク・エヴァンス、
インギー・ドット・ネット、
オーレン・ベン=キキ
CJavaPerlPythonRuby電子メールHTMLMIMEURIXMLSAXSOAPJSON [7]いいえバージョン1.2いいえはいはい部分的
(Kwalify Archived 2021-08-12 at the Wayback Machine、Rx、組み込み言語型定義)
いいえいいえ
名前作成者兼管理者に基づく標準化されていますか?仕様バイナリ?人間が読める形式ですか?参照をサポートしますか? eスキーマ-IDL ?標準APIゼロコピー操作をサポート
  1. ^現在のデフォルト形式はバイナリです。
  2. ^「クラシック」形式はプレーンテキストであり、XML 形式もサポートされています。
  3. ^抽象化により理論的には可能ですが、実装は含まれていません。
  4. ^主な形式はバイナリですが、テキスト形式とJSON形式も利用できます。 [8] [9]
  5. ^汎用ツール/ライブラリが、同じドキュメント内の別のデータへの参照をエンコード、デコード、および逆参照する方法を知っていることを意味します。ツールはIDLファイルを必要とする場合がありますが、それ以上は必要ありません。カスタムの非標準化された参照手法は除外されます。
  6. ^ ASN.1には、X.681(情報オブジェクトシステム)、X.682(制約)、X.683(パラメータ化)があり、値の型を整数やOIDなどで識別できるオープン型の正確な仕様を可能にします。OIDは、グローバルに一意な識別子の標準フォーマットであると同時に、値の構成要素を参照するための標準表記法(「絶対参照」)でもあります。例えば、PKIXはRFC 5912でこのような表記法を使用しています。このような表記法(情報オブジェクトセットを用いたパラメータ化された型の制約)を用いることで、汎用的なASN.1ツール/ライブラリは、ドキュメント内の参照を自動的にエンコード/デコード/解決することができます。
  7. ^主なフォーマットはバイナリですが、JSONエンコーダーも利用可能です。 [10]
  8. ^主な形式はバイナリですが、テキスト形式も利用できます。

人間が読める形式の構文比較

形式ヌルブール値trueブール値false整数浮動小数点配列連想配列/オブジェクト
ASN.1
(XML エンコーディング規則)
<foo /><foo>true</foo><foo>false</foo><foo>685230</foo><foo>6.8523015e+5</foo><foo>A to Z</foo>
<SeqOfUnrelatedDatatypes> <isMarried> true </isMarried> <hobby /> <velocity> -42.1e7 </velocity> <bookname> A to Z </bookname> <bookname>私たちは「いいえ」と言いました。 </bookname> </SeqOfUnrelatedDatatypes>          
オブジェクト(キーはフィールド名):
<person> <isMarried> true </isMarried> <hobby /> <height> 1.85 </height> <name>ボブ・ピーターソン</name> </person>      

データ マッピング (キーはデータ値):

<競争> <測定値> <名前>ジョン</名前> <高さ> 3.14 </高さ> < /測定値> <測定値> <名前>ジェーン</名前> <高さ> 2.718 </高さ> < /測定値> </競争>        

1つの

CSV bnull
または行内の空要素
1ああ
true
0ああ
false
685230
-6852301つの
6.8523015e+51つのA to Z
"We said, ""no""."
true,,-42.1e7,"A to Z"
42,1AからZ、1、2、3
niltruefalse685230
-685230
6.8523015e+5"A to Z""A \"up to\" Z"[true nil -42.1e7 "A to Z"]{:kw 1, "42" true, "A to Z" [1 2 3]}
イオン

null
null.null
null.bool
null.int
null.float
null.decimal
null.timestamp
null.string
null.symbol
null.blob
null.clob
null.struct
null.list
null.sexp

truefalse685230
-685230
0xA74AE
0b111010010101110
6.8523015e5"A to Z"

'''
A
to
Z
'''
[ true , null , -42.1e7 , "AからZ" ]   
{ '42' : true , 'AからZ' : [ 1 , 2 , 3 ]}     
ネットストリングスc0:,ああ
4:null,
1:1,ああ
4:true,
1:0,ああ
5:false,
6:685230,1つの9:6.8523e+5,1つの6:A to Z,29:4:true,0:,7:-42.1e7,6:A to Z,,41:9:2:42,1:1,,25:6:A to Z,12:1:1,1:2,1:3,,,,1つの
JSONnulltruefalse685230
-685230
6.8523015e+5"A to Z"
[ true , null , -42.1e7 , "AからZ" ]   
{ "42" : true , "AからZ" : [ 1 , 2 , 3 ]}     
OGDL [検証が必要]null1つのtrue1つのfalse1つの6852301つの6.8523015e+51つの"A to Z"
'A to Z'
NoSpaces
真実ヌル-42.1e7「AからZ」

(true, null, -42.1e7, "A to Z")

42 真実「AからZ」 1 2 3
42 真実「AからZ」(1、2、3)
オープンDDLref {null}bool {true}bool {false}int32 {685230}
int32 {0x74AE}
int32 {0b111010010101110}
float {6.8523015e+5}string {"A to Z"}

均質配列:

int32 {1, 2, 3, 4, 5}

異種配列:

配列{ ブール値 {true} 参照 {null} 浮動小数点数 {-42.1e7} 文字列 {"AからZ"}}
辞書{ 値 (キー = "42") {bool {true}} 値 (キー = "AからZ") {int32 {1, 2, 3}}}
PHPシリアル化フォーマットN;b:1;b:0;i:685230;
i:-685230;
d:685230.15;d
d:INF;
d:-INF;
d:NAN;
s:6:"A to Z";a:4:{i:0;b:1;i:1;N;i:2;d:-421000000;i:3;s:6:"A to Z";}連想配列:
a:2:{i:42;b:1;s:6:"A to Z";a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}}
オブジェクト:
O:8:"stdClass":2:{s:4:"John";d:3.14;s:4:"Jane";d:2.718;}d
ピクルス(パイソン)N.I01\n.I00\n.I685230\n.F685230.15\n.S'A to Z'\n.(lI01\na(laF-421000000.0\naS'A to Z'\na.(dI42\nI01\nsS'A to Z'\n(lI1\naI2\naI3\nas.
プロパティリスト
(プレーンテキスト形式)[11]
<*BY><*BN><*I685230><*R6.8523015e+5>"A to Z"( <*BY>, <*R-42.1e7>, "A to Z" )
{ "42" = <*BY>; "A から Z" = ( <*I1>, <*I2>, <*I3> );}
プロパティリスト
(XML形式)[12]
<true /><false /><integer>685230</integer><real>6.8523015e+5</real><string>A to Z</string>
<配列> <true /> <実数> -42.1e7 </実数> <文字列> AからZ </文字列> </配列>      
<dict> <key> 42 </key> <true /> <key> AからZ </key> <array> <integer> 1 </integer> <integer> 2 </integer> <integer> 3 </integer> </array> </dict>           
プロトコルバッファtruefalse685230
-685230
20.0855369"A to Z"
"sdfff2 \000\001\002\377\376\375"
"q\tqq<>q2&\001\377"
フィールド1: "値1"フィールド1: "値2"フィールド1: "値3
別のフィールド { フード: 123 バー: 456}別のフィールド { フード: 222 バー: 333}
thing1 : "blahblah" thing2 : 18923743 thing3 : - 44 thing4 { submessage_field1 : "foo" submessage_field2 : false } enumeratedThing : SomeEnumeratedValue thing5 : 123.456 [ extensionFieldFoo ] : "etc" [ extensionFieldThatIsAnEnum ] : EnumValue            
S式NIL
nil
T
#tf
true
NIL
#ff
false
6852306.8523015e+5abc
"abc"
#616263#
3:abc
{MzphYmM=}
|YWJj|
(T NIL -42.1e7 "A to Z")((42 T) ("A to Z" (1 2 3)))
トムルtruefalse685230
+685_230
-685230
0x_0A_74_AE
0b1010_0111_0100_1010_1110
6.8523015e+5
685.230_15e+03
685_230.15
inf
-inf
nan
"A to Z"
'A to Z'
["y", -42.1e7, "A to Z"]
[ 「y」、 -42.1e7、 「AからZ」]
{ John = 3.14, Jane = 2.718 }
42 = y「AからZ」 = [1, 2, 3]
ヤムル~
null
Null
NULL[13]
y
Y
yes
Yes
YES
on
On
ON
true
True
TRUE[14]
n
N
no
No
NO
off
Off
OFF
false
False
FALSE[14]
685230
+685_230
-685230
02472256
0x_0A_74_AE
0b1010_0111_0100_1010_1110
190:20:30[15]
6.8523015e+5
685.230_15e+03
685_230.15
190:20:30.15
.inf
-.inf
.Inf
.INF
.NaN
.nan
.NAN[16]
A to Z
"A to Z"
'A to Z'
[y, ~, -42.1e7, "A to Z"]
- y-- -42.1e7- AからZ
{"John":3.14, "Jane":2.718}
42: ええAからZ: [1, 2, 3]
XMLSOAP<null />1つのtruefalse6852306.8523015e+5A to Z
<item></item> <item xsi:nil= "true" /> <item> -42.1e7 </item> <item> AからZ <item>   
<map> <entry key= "42" > true </entry> <entry key= "A to Z" > <item val= "1" /> <item val= "2" /> <item val= "3" /> </entry> </map>           
XML-RPC<value><boolean>1</boolean></value><value><boolean>0</boolean></value><value><int>685230</int></value><value><double>6.8523015e+5</double></value><value><string>A to Z</string></value>
<値><配列> <データ> <値><ブール値> 1 </ブール値> </値> <値><double> -42.1e7 </double> </値> <値><文字列> AからZ </文字列></値> </データ> </配列></値>        
<値><構造体> <メンバー> <名前> 42 < /名前> <値><ブール値> 1 </ブール値></値> < /メンバー> <メンバー> <名前> AからZ < /名前> <値> <配列> <データ> <値><int> 1 </int></値> <値><int> 2 </int></値> <値><int> 3 </int></値> </データ> </配列> < /値> </メンバー> </構造体>                  
  1. ^省略されたXML要素は、 XMLデータバインディングツールによってNULLとしてデコードされるのが一般的です。ここでは別のエンコーディングを示します。XMLスキーマではこのデータ型のエンコーディングは定義されていません。
  2. ^ RFC CSV 仕様は、区切り文字、改行文字、引用符文字のみを扱います。プログラミングデータ構造のシリアル化は直接扱いません。
  3. ^ netstrings仕様はネストされたバイト文字列のみを扱います。それ以外は仕様の範囲外です。
  4. ^ PHPは浮動小数点数を正しく逆シリアル化しますが、10進数展開でシリアル化します。例えば、3.14は次のようにシリアル化されます。3,140 000 000 000 000 124,344,978,758,017,532,527,446,746,826,171,875 .
  5. ^ XMLデータバインディングSOAPシリアル化ツールは、プログラミングデータ構造をXMLに型安全にシリアル化します。XML要素と属性に配置できるXML値を示します。
  6. ^この構文はインターネット ドラフトとは互換性がありませんが、 Lispのいくつかの方言で使用されています。

バイナリ形式の比較

形式ヌルブール値整数浮動小数点配列連想配列/オブジェクト
ASN.1
( BERPER 、またはOERエンコーディング)
NULLブール値:
  • BER: バイナリ形式で 1 ​​バイトとして。
  • PER: 1 ビットとして;
  • OER: 1バイトとして
整数:
  • BER: 可変長ビッグエンディアンバイナリ表現(最大 2 2 1024ビット)
  • PER 非整列: 整数型の範囲が有限の場合は固定ビット数、それ以外の場合は可変ビット数。
  • PER Aligned: 整数型の範囲が有限で、範囲のサイズが 65536 未満の場合は固定数のビット、それ以外の場合は可変数のオクテット。
  • OER: 整数型の範囲が有限でそのオクテット数に収まる場合は1、2、または4オ​​クテット(符号付きまたは符号なし)。それ以外の場合は可変オクテット数。
本物
  • 10 進実数値は ISO 6093 形式の文字列として表されます。
  • バイナリ実数値は、仮数、基数 (2、8、または 16)、および指数を含むバイナリ形式で表されます。
  • 特殊値NaN、-INF、+INF、負のゼロもサポートされています
複数の有効なタイプ ( VisibleString、PrintableString、GeneralString、UniversalString、UTF8String )データ仕様SET OF (順序なし) とSEQUENCE OF (順序保証)ユーザー定義可能なタイプ
BSON\x0A
(1バイト)
真:\x08\x01
偽: \x08\x00
(2 バイト)
int32: 32ビットリトルエンディアン の2の補数またはint64: 64ビットリトルエンディアン の2の補数Double :リトルエンディアン バイナリ64UTF-8でエンコードされ、先頭に int32 でエンコードされた文字列の長さ(バイト単位)が付きます。数値キーを含むBSON埋め込みドキュメントBSON埋め込みドキュメント
簡潔なバイナリオブジェクト表現(CBOR)\xf6
(1バイト)
  • 真実:\xf5
  • 間違い:\xf4

(1バイト)

  • 小さな正負の\x00\x17& \x20\x37(1 バイト)
  • 8ビット: 正\x18、負\x38(+ 1バイト)
  • 16ビット: 正\x19、負\x39(+ 2バイト)
  • 32ビット: 正\x1A、負\x3A(+ 4バイト)
  • 64ビット: 正\x1B、負\x3B(+ 8バイト)
  • 負のxは(−x − 1)とエンコードされる
  • IEEE ハーフ/シングル/ダブル\xf9\xfb(+ 2~8 バイト)
  • 小数点とbigfloat(4バイト以上)は、\xc4タグ+整数仮数と指数の2項目配列としてエンコードされます。
  • 長さと内容(1~9バイトのオーバーヘッド)
  • バイト文字列\x40\x5f
  • UTF-8 \x60\x7f
  • 不定部分文字列\x5fとが\x7f結合されて、 になります\xff
  • 長さとアイテム\x80\x9e
  • \x9fエントリによって終了した無期限リスト\xff
  • 長さ(ペア)とアイテム\xa0\xbe
  • 不定マップはキー\xbfによって終了されます。\xff
効率的なXML交換(EXI)[a]

(保存されない字句値形式)

xsi:nil はバイナリコンテキストでは許可されません。ブール値として解釈される 1~2 ビットの整数。ブール符号と任意の長さの7ビットオクテットを、最上位ビットが0になるまでリトルエンディアンで解析します。スキーマはゼロ点を任意の数値に設定できます。

Unsigned はブールフラグをスキップします。

  • Float: 整数の仮数部と整数の指数部。
  • 小数: ブール記号、整数の整数値、整数の小数。
長さを表す接頭辞付きの整数エンコードされたUnicode。整数は、列挙型または文字列テーブルエントリを表すこともできます。長さのプレフィックスが付いたアイテムのセット。プロトコルにはありません。
フラットバッファ親オブジェクトにフィールドが存在しないものとしてエンコードされます
  • 真実:\x01
  • 間違い:\x00

(1バイト)

リトルエンディアン 2の補数符号付きおよび符号なし 8/16/32/64 ビットUTF-8でエンコードされ、先頭に 32 ビット整数の文字列の長さ(バイト単位)が付きます。その他の型のベクトル。先頭に要素数の32ビット整数長が付く。テーブル(スキーマ定義型)またはキーでソートされたベクトル(マップ/辞書)
イオン[18]\x0f[b]
  • 真実:\x11
  • 間違い:\x10
  • 肯定的\x2x、否定的\x3x
  • タグ バイトではゼロが常にエンコードされます。
  • 13バイト(104ビット)を超えるBigIntは長さに1バイト以上のオーバーヘッドがある
  • \x44(32ビット浮動小数点数)
  • \x48(64ビット浮動小数点数)
  • タグ バイトではゼロが常にエンコードされます。
  • UTF-8 :\x8x
  • その他の文字列:\x9x
  • 任意の長さとオーバーヘッド
\xbx任意の長さとオーバーヘッド。長さはオクテット単位です。
  • 構造体(番号付きフィールド):\xdx
  • 注釈(名前付きフィールド):\xex
メッセージパック\xc0
  • 真実:\xc3
  • 間違い:\xc2
  • 1バイトの「fixnum」(値-32 – 127
  • またはタイプコード(1バイト)+ビッグエンディアン(u)int8/16/32/64
タイプコード(1バイト)+ IEEEシングル/ダブル
  • タイプコード + 最大15バイト
  • または、タイプコード + 長さ (uint8/16/32 + バイト)

エンコーディングは未指定[19]

  • 「fixarray」(1バイトのプレフィックス + 最大15個の配列項目)
  • または型コード(1バイト)+ 2~4バイトの長さ+配列項目
  • 「fixmap」(1バイトのプレフィックス + 最大15個のキーと値のペア)
  • または型コード(1バイト)+ 2~4バイトの長さ + キーと値のペア
ネットストリングス[c]プロトコルにはありません。プロトコルにはありません。プロトコルにはありません。プロトコルにはありません。長さエンコードされたASCII文字列 + ':' + データ + ','

長さは ':' と ',' の間のオクテットのみをカウントします

プロトコルにはありません。プロトコルにはありません。
OGDLバイナリ
プロパティリスト
(バイナリ形式)
プロトコルバッファ
UTF-8でエンコードされ、先頭に varint でエンコードされた文字列のバイト単位の整数長が付きます。同じタグを持つ繰り返し値、または varint エンコードされた整数の場合のみ、連続してパックされ、タグと合計バイト長がプレフィックスとして付いた値
笑顔\x21
  • 真実:\x23
  • 間違い:\x22
  • 1バイトの「小さい」(値-16 ~ 15は\xc0\xdfとしてエンコードされます
  • ジグザグ符号化されたvarints(1~11データバイト)、またはBigInteger
IEEE シングル/ダブル、BigDecimal長さプレフィックス付きの「短い」文字列(最大64バイト)、マーカーで終了する「長い」文字列、および(オプションの)後方参照エンドマーカー付き任意長異種配列エンドマーカー付きの任意の長さのキー/値のペア
構造化データ交換形式(SDXF)ビッグエンディアン符号付き24ビットまたは32ビット整数ビッグエンディアンIEEE doubleUTF-8またはISO 8859-1でエンコード同一のIDとサイズを持つ要素のリスト。先頭にはint16の長さを持つ配列ヘッダーが付きます。チャンクには任意の深さまで他のチャンクを含めることができます。
倹約
  1. ^ XML ベースの表現はすべて、EXI ( 「Efficient XML Interchange (EXI) Format 1.0 (Second Edition)」)を使用して圧縮または生成できます。[17] – これはXML用の「スキーマ・インフォームド」(スキーマ必須、またはスキーマレスとは対照的)バイナリ圧縮標準です。
  2. ^ すべての基本的なIon型には、0xXfタグとしてnullバリアントが存在します。0x0f以外の0x0Xで始まるタグは、無視されるパディングを定義します。
  3. ^ Netstrings の解釈は完全にアプリケーションまたはスキーマに依存します。

参照

参考文献

  1. ^ アパッチ・スリフト
  2. ^ Bormann, Carsten (2018年12月26日). 「CBORとmsgpackの関係」. GitHub . 2023年8月14日閲覧
  3. ^ 「実装」。GitHub
  4. ^ "HAPI FHIR - Java 用のオープンソース FHIR API".ハピフィル.io
  5. ^ cpython/Lib/pickle.py
  6. ^ 「SOAP の簡潔な歴史」www.xml.com
  7. ^ Ben-Kiki, Oren; Evans, Clark; Net, Ingy döt (2009-10-01). 「YAMLはマークアップ言語ではない (YAML) バージョン1.2」. YAML公式ウェブサイト. 2012年2月10日閲覧。
  8. ^ "text_format.h - プロトコルバッファ". Google Developers .
  9. ^ 「JSONマッピング - プロトコルバッファ」。Google Developers
  10. ^ 「Avro Json フォーマット」。
  11. ^ 「NSPropertyListSerializationクラスのドキュメント」www.gnustep.org . 2011年5月19日時点のオリジナルよりアーカイブ2009年10月28日閲覧。
  12. ^ 「ドキュメントアーカイブ」。developer.apple.com
  13. ^ Oren Ben-Kiki、Clark Evans、Brian Ingerson (2005年1月18日). 「YAMLバージョン1.1のNull言語非依存型」YAML.org . 2009年9月12日閲覧
  14. ^ ab Oren Ben-Kiki; Clark Evans; Brian Ingerson (2005年1月18日). 「YAMLバージョン1.1のブール型言語非依存型」YAML.org . Clark C. Evans . 2009年9月12日閲覧
  15. ^ Oren Ben-Kiki、Clark Evans、Brian Ingerson (2005年2月11日). 「YAMLバージョン1.1向け整数言語非依存型」YAML.org . Clark C. Evans . 2009年9月12日閲覧
  16. ^ Oren Ben-Kiki、Clark Evans、Brian Ingerson (2005年1月18日). 「YAMLバージョン1.1の浮動小数点言語非依存型」YAML.org . Clark C. Evans . 2009年9月12日閲覧
  17. ^ 「効率的な拡張可能な交換」。
  18. ^ イオンバイナリエンコーディング
  19. ^ 「MessagePackは非常に効率的なオブジェクトシリアル化ライブラリです。JSONに似ていますが、非常に高速で小型です。: msgpack/msgpack」。2019年4月2日 – GitHub経由。
  • XMLの利点を議論するXML-QL提案
  • XML をあまり使わない
「https://en.wikipedia.org/w/index.php?title=Comparison_of_data-serialization_formats&oldid=1321169825」より取得