ASN.1中可扩展约束的结果集操作是什么

What's the result set operation of extensible constraints in ASN.1

我无法弄清楚哪个是 ASN.1 中可扩展约束的集合操作的结果,如下所示:

A ::= INTEGER ( (1..64, ..., 100..128) INTERSECTION (1..32, ..., 33..120) )
B ::= INTEGER ( (1..64, ..., 100..128) UNION (1..32, ..., 33..120) )
C ::= INTEGER (1..64, ..., 100..128) (1..32, ..., 33..120)

这些类型的结果约束是什么?

感谢任何帮助。

前两个定义无效,因为 ... 只能出现在最顶层,不能嵌套在多个括号内,因此 A 和 B 是无效定义。参见 ITU-T X.680 第 50.1 和 50.5 条。

C 在技术上也是无效的,因为值 120 不在 "parent type" 的 1..64 的基本范围内。如果将120改为64,则有效约束如下:

C ::= 整数 (1..32, ..., 33..64)

ITU-T X.680 第 50.10 条具有以下内容:

50.10 如果子类型约束连续应用于通过应用可扩展约束可扩展的父类型,则其中使用的值表示法不应引用不在父类型的扩展根中的值。第二个(连续应用的)约束的结果被定义为与将约束应用于没有其扩展标记和可能的扩展添加的父类型相同。