跳到主要内容

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 值.