Passa al contenuto principale

1. Introduzione

In questo documento viene definita una convenzione notazionale per esprimere strutture dati di Rappresentazione di Oggetti Binari Concisa (CBOR) [RFC7049].

L'obiettivo principale della convenzione è fornire una notazione unificata che possa essere utilizzata quando si definiscono protocolli che utilizzano CBOR. Chiamiamo questa convenzione "Linguaggio di Definizione Dati Conciso", o CDDL.

La convenzione notazionale CBOR ha i seguenti obiettivi:

(G1) Fornire una descrizione non ambigua della struttura complessiva di un elemento dati CBOR.

(G2) Essere flessibile nell'esprimere i molteplici modi in cui i dati possono essere rappresentati nel formato dati CBOR.

(G3) Essere in grado di esprimere tipi di dati e strutture CBOR comuni.

(G4) Fornire un formato unico che sia sia leggibile e modificabile per gli esseri umani che elaborabile da una macchina.

(G5) Abilitare il controllo automatico degli elementi dati CBOR per la conformità al formato dati.

(G6) Abilitare l'estrazione di elementi specifici dai dati CBOR per ulteriore elaborazione.

Sebbene non sia un obiettivo originale di per sé, un comodo effetto collaterale del fatto che il modello dati generico JSON è un sottoinsieme del modello dati generico CBOR è che CDDL può anche essere utilizzato per descrivere strutture dati JSON (vedere Appendice E).

Questo documento ha la seguente struttura:

La sintassi di CDDL è definita nella Sezione 3. Esempi di CDDL e di un elemento dati CBOR correlato ("istanza"), alcuni dei quali utilizzano la forma JSON, sono descritti nell'Appendice H. La Sezione 4 discute l'utilizzo di CDDL. Gli esempi sono forniti in tutto il testo per illustrare meglio le definizioni dei concetti. Una definizione formale di CDDL utilizzando la grammatica ABNF [RFC5234] è fornita nell'Appendice B. Infine, un preludio di definizioni CDDL standard che viene automaticamente anteposto a, e quindi disponibile in, ogni specifica CDDL è elencato nell'Appendice D.

1.1. Notazione dei Requisiti

Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" e "OPTIONAL" in questo documento devono essere interpretate come descritto in BCP 14 [RFC2119] [RFC8174] quando, e solo quando, appaiono in maiuscolo, come mostrato qui.

1.2. Terminologia

I nuovi termini sono introdotti in corsivo, che viene reso in testo normale come il nuovo termine circondato da trattini bassi. Il testo CDDL nel testo corrente è in "macchina da scrivere", che viene reso in testo normale come il testo CDDL tra virgolette doppie (le virgolette doppie sono anche utilizzate nel senso inglese abituale; il lettore è tenuto a disambiguare questo dal contesto).

In questa specifica, il termine "byte" è utilizzato nel suo senso ormai consueto come sinonimo di "ottetto".