首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASN.1 SubType约束解析

ASN.1 SubType约束解析
EN

Stack Overflow用户
提问于 2013-09-17 13:57:04
回答 1查看 322关注 0票数 2

ASN.1允许您声明“子类型”,这基本上会对常规类型施加额外的约束。

因此,一种正常的类型是:

代码语言:javascript
复制
IntType ::= INTEGER

但是您可以通过创建一个只允许在某个范围内的值的“子类型”来约束该类型,例如:

代码语言:javascript
复制
IntType ::= INTEGER (1..100)

这将IntType声明为必须介于1到100之间的INTEGER

我的问题是,一旦一个子类型被声明,ASN.1如何处理子类型上的进一步约束?假设我也说:

代码语言:javascript
复制
AnotherIntType ::= IntType (1..50)

这有效吗?我现在已经创建了第二个SubType,它进一步限制了IntType。但是,如果这些约束相互矛盾,如:

代码语言:javascript
复制
AnotherIntType ::= IntType (1..200)

解决这些矛盾是否有具体的规则?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-17 14:39:57

按照标准

47.4.2 a "ValueRange“指定范围内的值,这些值是通过指定范围的端点的值来指定的。这种表示法只能应用于整数类型、某些受限字符串类型的"PermittedAlphabet“(IA5String、NumericString、PrintableString、VisibleString、BMPString、UniversalString和UTF8String )和实类型。"ValueRange“中指定的所有值都必须位于父类型的根中。

你的第一个例子

代码语言:javascript
复制
AnotherIntType ::= IntType (1..50)

是有效的。允许值是从1到50之间的整数。

第二个例子

代码语言:javascript
复制
AnotherIntType ::= IntType (1..200)

无效,因为不是值范围中的所有值都在父类型中。IntType只包含1到100之间的整数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18851925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档