「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- オブジェクトをバイナリ・シリアライズする仕様
- JSONデータモデルが基礎となる(JSON互換)
で、シーボルと読む。
特徴 †
経緯 †
MessagePackの後継ということらしく、
MessagePackを置き換える可能性がある。
- 標準がCBORをいろいろなところで使い始めているので、
CBOR vs MessagePackはCBORの勝利ということで落ち着きそう(という話がある)。
詳細 †
Format †
Major Typeが1byteで定義
その後、0-n bytesで実際の値が定義
型(Major Type) †
- JSONと比べて型が多い。
- JSONは、数値型(int,float含む)、文字列型、真偽値、配列、オブジェクト、Null
- CBORは、Major Typeと呼ばれ、0から7まで定義されている。
Major type 0 †
- 符号なし整数(unsigned integer)
- uint8、uint16、uint32、uint64に分化されるbig-endian
Major type 1 †
- マイナス数値(negative integer)
- uint8、uint16、uint32、uint64に分化されるbig-endian
Major type 2 †
- バイト文字列(byte string)
- 長さは無制限(文字列バイトの指定 or break文字指定)
Major type 3 †
- テキスト文字列(text string)
- UTF-8文字列、長さは無制限(文字列バイトの指定 or break文字指定)
Major type 4 †
- 配列(array)
- 長さは無制限(項目数の指定 or break指定)
Major type 5 †
- マップ(map, JSONだとobject)
- キー・値のペアを列挙、長さは無制限(ペア数の指定 or break指定)
Major type 6 †
- 拡張用のオプション領域、次のものを現状定義
- 日時型、多倍長整数、固定小数点、base64、正規表現、MIME message
Major type 7 †
- 浮動小数点(floating-point numbers)、
- float16、float32、float64、真偽値(Boolean)、Null、Undefinedも定義
CDDL †
- CDDL : Concise data definition language
- CBORのスキーマ定義の標準
- CBOR表記規則(CBORを表現する表記法)
- JSONデータ構造の記述にも使用できる。
目的 †
- (G1)CBORデータ構造の全体的な構造の明瞭な記述を提供する。
- (G2)自由度をCBORデータ形式で表現する柔軟性。
- (G3)必要に応じてフォーマットの選択を制限する可能性がある[形式]。
- (G4)共通のCBORデータ型および構造を表現できること。
- (G5)人と機械が読み書き可能であること。
- (G6)データフォーマット準拠の自動チェック。
- (G7)さらなる処理のためにCBORデータから特定の要素を抽出する。
記載ルール †
参考 †
RFC †
内部リンク †
ライブラリ †
Tags: :IT国際標準, :プログラミング, :通信技術