Arrays 约束ASN.1中类型序列的索引

Arrays 约束ASN.1中类型序列的索引,arrays,constraints,asn.1,Arrays,Constraints,Asn.1,在ASN.1中,是否可以为类型序列的可用索引添加约束? 类似这样的东西 MyArray ::= SEQUENCE (1..10) OF INTEGER -- MyArray has 10 elments indexed from 1-10 Array2 ::= SEQUENCE (-5..5) OF INTEGER -- Array2 has 11 elments indexed from -5-5 我试图从Dubuisson的ASN.1书中找到它,但我不能完全确定我是否正确理解了语法描述

在ASN.1中,是否可以为类型序列的可用索引添加约束? 类似这样的东西

MyArray ::= SEQUENCE (1..10) OF INTEGER -- MyArray has 10 elments indexed from 1-10
Array2  ::= SEQUENCE (-5..5) OF INTEGER -- Array2 has 11 elments indexed from -5-5
我试图从Dubuisson的ASN.1书中找到它,但我不能完全确定我是否正确理解了语法描述

我目前的理解是,可以对序列的大小创建约束,但不会对索引行为产生任何影响。我假设这由实现语言来定义


这是正确的吗?

在ASN.1中,对于一系列的数据,没有“索引”的概念。你上面的作业都是无效的

可以指定一系列元素的元素数约束。例如,如果你写

A1::=整数的序列(大小(10))

您将元素数限制为10。此序列类型的任何值必须正好有10个元素

如果你写信

A2::=整数的序列(大小(1..10))

此序列类型的任何值都必须至少包含1个元素,最多包含10个元素。在这种情况下,元素的数量限制在一定的大小范围内,而不是固定大小

还可以编写更复杂的约束,如以下所示:

A3::=整数的序列(大小(1 | 4 | 6..MAX))

在这种情况下,此SEQUENCE-of类型的任何值都必须有1、4或6个或更多元素。例如,值{2}和{-5,5,1,-3}是有效值,而{1,2}不是


不能在大小约束中使用负整数,因为使用的整数指定的是元素数,而不是索引值。

是的,这是正确的。感谢您的澄清。我希望我错过了什么,因为语法描述不容易读(至少对我来说)。