Passa al contenuto principale

2.1.2. Membri Dictionary dei campi strutturati (Dictionary Structured Field Members)

2.1.2. Membri Dictionary dei campi strutturati (Dictionary Structured Field Members)

Se un dato campo è noto all'applicazione come Dictionary Structured Field, un singolo membro nel valore di quel Dictionary è identificato usando il parametro key e la chiave del membro Dictionary come valore String.

Se nel messaggio compaiono più valori di campo, questi valori DEVONO essere combinati in una singola struttura Dictionary prima della serializzazione.

Un singolo valore membro di un Dictionary Structured Field è canonicalizzato applicando l'algoritmo di serializzazione descritto nella Sezione 4.1.2 di [STRUCTURED-FIELDS] su member_value e i suoi parametri, senza includere la chiave Dictionary stessa. In particolare, il valore è serializzato come Item o Inner List (i due possibili valori di un membro Dictionary), con tutti i parametri e possibili sottocampi serializzati usando le regole di serializzazione rigorose definite nella Sezione 4 di [STRUCTURED-FIELDS] (o la sezione applicabile delle sue estensioni o aggiornamenti).

Ogni chiave parametrizzata per un dato campo NON DEVE comparire più di una volta nella base della firma. Le chiavi parametrizzate POSSONO comparire in qualsiasi ordine nella base della firma, indipendentemente dall'ordine in cui compaiono nel Dictionary sorgente.

Se una chiave Dictionary è nominata come componente coperto ma non compare nel Dictionary, ciò DEVE causare un errore nella generazione della base della firma.

Di seguito sono riportati esempi non normativi di valori canonicalizzati per membri Dictionary Structured Field, dato il seguente campo di intestazione di esempio, il cui valore è noto all'applicazione come Dictionary:

Example-Dict: a=1, b=2;x=1;y=2, c=(a b c), d

L'esempio seguente mostra valori canonicalizzati per diversi identificatori di componente di questo campo, presentati nel formato della base della firma discusso nella Sezione 2.5:

"example-dict";key="a": 1 "example-dict";key="d": ?1 "example-dict";key="b": 2;x=1;y=2 "example-dict";key="c": (a b c)

Si noti che il valore per key="c" è stato riserializzato secondo l'algoritmo rigoroso member_value, e il valore per key="d" è stato serializzato come valore Boolean.