「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[WebAPI]]
--[[その他、開発の色々]]

* 目次 [#f9b64062]
#contents

*概要 [#f489cac1]
CBORとは、

-オブジェクトをバイナリ・シリアライズする仕様
-[[JSON]]データモデルが基礎となる([[JSON]]互換)
-IoT, etc.向け

で、シーボルと読む。

*詳細 [#i12d62d3]

**Format [#q6bb5072]

***型 [#v4669658]
[[Major Type>#j2944dc7]]が1byteで定義

***値 [#kcec16e6]
その後、0-n bytesで実際の値が定義

**型(Major Type) [#j2944dc7]
-[[JSON]]と比べて型が多い。
-[[JSON]]は、数値型(int,float含む)、文字列型、真偽値、配列、オブジェクト、Null
-CBORは、Major Typeと呼ばれ、0から7まで定義されている。

***Major type 0 [#wc4d7439]
-符号なし整数(unsigned integer)
-uint8、uint16、uint32、uint64に分化されるbig-endian

***Major type 1 [#p7fcf3bf]
-マイナス数値(negative integer)
-uint8、uint16、uint32、uint64に分化されるbig-endian

***Major type 2 [#j8306937]
-バイト文字列(byte string)
-長さは無制限(文字列バイトの指定 or break文字指定)

***Major type 3 [#m63daeaf]
-テキスト文字列(text string)
-UTF-8文字列、長さは無制限(文字列バイトの指定 or break文字指定)

***Major type 4 [#x4c7b292]
-配列(array)
-長さは無制限(項目数の指定 or break指定)

***Major type 5 [#h9f2282c]
-マップ(map, JSONだとobject)
-キー・値のペアを列挙、長さは無制限(ペア数の指定 or break指定)

***Major type 6 [#z402f041]
-拡張用のオプション領域、次のものを現状定義
-日時型、多倍長整数、固定小数点、base64、正規表現、MIME message

***Major type 7 [#jf823c85]
-浮動小数点(floating-point numbers)、
-float16、float32、float64、真偽値(Boolean)、Null、Undefinedも定義


**CDDL [#u619feca]
-CDDL : Concise data definition language

-CBORのスキーマ定義の標準
--CBOR表記規則(CBORを表現する表記法)
--[[JSON]]データ構造の記述にも使用できる。

***目的 [#d8ba3d83]
-(G1)CBORデータ構造の全体的な構造の明瞭な記述を提供する。
-(G2)自由度をCBORデータ形式で表現する柔軟性。
-(G3)必要に応じてフォーマットの選択を制限する可能性がある[形式]。
-(G4)共通のCBORデータ型および構造を表現できること。
-(G5)人と機械が読み書き可能であること。
-(G6)データフォーマット準拠の自動チェック。
-(G7)さらなる処理のためにCBORデータから特定の要素を抽出する。

***記載ルール [#n221eb83]

*参考 [#e9206b0f]
-[CWT入門その1] CBORによるオブジェクトのバイナリ表現 - Qiita~
https://qiita.com/ritou/items/f3eafedab038d17e3066

-CBOR — Concise Binary Object Representation | Overview~
http://cbor.io/

-CBOR playground~
http://cbor.me/

**RFC [#cb615961]
-RFC 7049 - Concise Binary Object Representation (CBOR)~
https://tools.ietf.org/html/rfc7049

-ietf-cbor-cddl - Concise data definition language (CDDL):~
a notational convention to express CBOR and JSON data structures~
https://tools.ietf.org/html/draft-ietf-cbor-cddl

**内部リンク [#b30a84ff]
***[[JSON]] [#lf5dd4ad]
***[[CWT]] [#e7b47f5f]
***[[COSE]] [#nea67b7c]
***[[PeterO.Cbor]] [#bb10c850]

----
Tags: [[:IT国際標準]], [[:プログラミング]], [[:通信技術]], [[:.NET開発]], [[:.NET Core]]
Tags: [[:IT国際標準]], [[:プログラミング]], [[:通信技術]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS