メインコンテンツまでスキップ

2.1.2. Dictionary Structured Field Members (Dictionary Structured Field のメンバ)

2.1.2. Dictionary Structured Field Members (Dictionary Structured Field のメンバ)

所与のフィールドがアプリケーションにより Dictionary Structured Field であると既知である場合, その Dictionary の値内の個々のメンバは, パラメータ key および Dictionary メンバキーを String 値として用いることで識別される.

メッセージ内に複数のフィールド値が現れる場合, これらの値はシリアル化の前に単一の Dictionary 構造に結合されなければならない.

Dictionary Structured Field の個々のメンバ値は, Dictionary キー自身は含めず, member_value およびそのパラメータに対して [STRUCTURED-FIELDS] のセクション 4.1.2 で記述されるシリアル化アルゴリズムを適用して正規化される. 具体的には, 値は Item または Inner List (Dictionary メンバのとりうる 2 つの値) としてシリアル化され, すべてのパラメータおよび可能なサブフィールドは [STRUCTURED-FIELDS] のセクション 4 (またはその拡張・更新の該当節) で定義される厳密シリアル化規則を用いてシリアル化される.

所与のフィールドについてパラメータ付きキーは署名ベースに 1 回を超えて現れてはならない. パラメータ付きキーはソース Dictionary 内の出現順に関係なく, 署名ベース内では任意の順序で現れてよい.

Dictionary キーが被覆コンポーネントとして名付けられているが Dictionary に存在しない場合, 署名ベース生成においてエラーを起こさなければならない.

次は, アプリケーションにより Dictionary であると既知である値を持つ次の例ヘッダフィールドが与えられたときの, Dictionary Structured Field メンバの正規化済み値の参考例である.

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

次の例は, セクション 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)

key="c" の値は厳密な member_value アルゴリズムに従って再シリアル化され, key="d" の値は Boolean 値としてシリアル化されていることに注意する.