跳到主要内容

2.1.2. Dictionary Structured Field Members (Dictionary Structured Field 成员)

2.1.2. Dictionary Structured Field Members (Dictionary Structured Field 成员)

若应用已知某字段为 Dictionary Structured Field, 则通过使用参数 key 以及作为 String 值的 Dictionary 成员键来标识该 Dictionary 值中的单个成员.

若消息中出现多个字段值, 这些值在序列化之前必须合并为单个 Dictionary 结构.

Dictionary Structured Field 的单个成员值通过对 member_value 及其参数应用 [STRUCTURED-FIELDS] 第 4.1.2 节所述序列化算法进行规范化, 不包含 Dictionary 键本身. 具体地, 值序列化为 Item 或 Inner List (Dictionary 成员的两种可能值), 所有参数与可能的子字段均使用 [STRUCTURED-FIELDS] 第 4 节 (或其扩展/更新中的适用节) 定义的严格序列化规则序列化.

给定字段的每个带参数键在签名基中不得出现超过一次. 带参数键在签名基中可以以任意顺序出现, 无论其在源 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 值.