1. はじめに
この文書では、簡潔なバイナリオブジェクト表現 (CBOR) データ構造 [RFC7049] を表現するための表記規則を定義します。
この規則の主な目標は、CBOR を使用するプロトコルを定義する際に使用できる統一された表記法を提供することです。この規則を「簡潔なデータ定義言語」、または CDDL と呼びます。
CBOR 表記規則には以下の目標があります:
(G1) CBOR データ項目の全体構造の明確な記述を提供する。
(G2) データが CBOR データ形式で表現できる複数の方法を柔軟に表現する。
(G3) 一般的な CBOR データ型と構造を表現できる。
(G4) 人間が読み書きでき、機械が処理できる単一の形式を提供する。
(G5) CBOR データ項目のデータ形式準拠の自動チェックを可能にする。
(G6) さらなる処理のために CBOR データから特定の要素を抽出できるようにする。
元々の目標ではありませんが、JSON 汎用データモデルが CBOR 汎用データモデルのサブセットであるという事実の便利な副作用として、CDDL は JSON データ構造の記述にも使用できます(付録 E を参照)。
この文書は以下の構造を持っています:
CDDL の構文は第 3 節で定義されています。CDDL と関連する CBOR データ項目(「インスタンス」)の例(その一部は JSON 形式を使用)は付録 H で説明されています。第 4 節では CDDL の使用について説明します。概念定義をよりよく説明するために、テキスト全体に例が提供されています。ABNF 文法 [RFC5234] を使用した CDDL の正式な定義は付録 B で提供されています。最後に、すべての CDDL 仕様に自動的に前置され、したがって利用可能な標準 CDDL 定義のプレリュードが付録 D にリストされています。
1.1. 要件表記
この文書のキーワード "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"NOT RECOMMENDED"、"MAY"、および "OPTIONAL" は、BCP 14 [RFC2119] [RFC8174] に記載されているように解釈されるものとします。ただし、ここに示すように、すべて大文字で表示される場合に限ります。
1.2. 用語
新しい用語は斜体で導入され、プレーンテキストでは下線で囲まれた新しい用語としてレンダリングされます。本文中の CDDL テキストは「タイプライター」形式であり、プレーンテキストでは二重引用符で囲まれた CDDL テキストとしてレンダリングされます(二重引用符は通常の英語の意味でも使用されます。読者は文脈によってこれを明確にすることが期待されます)。
この仕様では、「バイト」という用語は、「オクテット」の同義語として、現在慣習的な意味で使用されています。