X680 22 Bitstring类型标识

来源:互联网 发布:淘宝爆吧要多少钱 编辑:程序博客网 时间:2024/04/28 16:23

22 Bitstring类型标识

       22.1 bitstring类型应该使用BitStringType标识引用:

       BitStringType ::=

              BIT STRING

              | BIT STRING “{” NamedBitList “}”

 

       NamedBitList ::=

              NamedBit

              | NamedBitList “,” NamedBit

 

       NamedBit ::=

              identifier “(” number ”)”

              | identifier “(“ DefinedValue ”)”

 

       22.2 比特流的第一个比特被称为首比特,最后一个比特被称为尾比特。

       注- 该专业用语用语值标识和定义编码规则。

 

       22.3 DefinedValue应该引用一个非负的整型值。

 

       22.4 出现在NamedBitList中的每个number或DefinedValue的值应该是不同的,并且是用语定义bitstring值中的关键比特的数量。比特流的首比特根据是不是数字0来识别最后的比特是否包含连续值。

 

       22.5 NamedBitList中的每个identifier应该是不同的。

       注1- NamedBitList中的NamedBit表达式序列的顺序是不重要的。

       注2- 因为NamedBitList中的identifier不能用来定义NamedBit的相关值,所以DefinedValue不会被曲解为整型值。例如:

       a INTEGER ::= 1

       T1 ::= INTEGER {a(2)}

       T2 ::= BIT STRING {a(3), b(a) }

       最后一个a的值是1,它不会引用第二或第三个a发生的事件。

 

       22.6 NamedBitList的出现对该类型的抽象值集合不会产生影响。值包含指定比特之外的比特是允许的。

      

       22.7 当NamedBitList用来定义bitstring类型的ASN.1编码规则时,允许在值进行编码或解码的时候,在值的尾部增加或减少任意多个0比特。应用设计者应该确保不同的应用场景值的区别仅在与尾部的0的个数。

 

       22.8 该类型标签为universal类型,值3。

 

       22.9 bitstring类型的值应该使用BitStringValue标识定义,或当使用XMLValue时,使用XMLBitStringValue标识定义。表达式如下:

       BitStringValue ::=

              bstring

              | hstring

              | “{” IdentifierList “}”

              | “{” “}”

              | CONTAINING VALUE

 

       IdentifierList ::=

              identifier

              | IdentifierList “,” identifier

 

       XMLBitStringValue ::=

              XMLTypedValue

              | xmlbstring

              | XMLIdentifierList

              | empty

 

       XMLIdentifierList ::=

              EmptyElementList

              | TextList

 

       EmptyElementList ::=

              “<” & identifier “/>”

              | EmptyElementList “<” &identifier “/>”

 

       TextList ::=

              identifier

              | TextList identifier

 

       22.10 XMLValueAssignment只能出现EmptyElementList和TextList中的一种。

 

       22.11 XMLTypedValue选项只有在bitstring值的内容与某个ASN.1类型存在约束关系,且没有定义ENCODED BY。如果使用了该选项,XMLTypedValue应该是ASN.1类型约束的值。

 

       22.12 XMLIdentifierList选项只有在bitstring包含一个NamedBitList的值的时候才能被使用。

 

       22.13 BitStringValue或XMLBitStringValue的identifier的值应该和对应的BitStringType表达式序列的值是相等的。

 

       22.14 empty选项表示bitstring不包含比特。

 

       22.15 如果bitstring包含被命名的bit,BitStringValue或XMLBitStringValue标识使用identifier定义的数字指示1的bit流中的位置,其他比特为0。

       注- 对于一个包含NamedBitList的BitStringType,BitStringValue中包含的”{””}”序列和XMLBitStringValue中包含的empty用来表示bitstring不包含任何比特。

 

       22.16 当使用bstring或xmlbstring时,bstring的首比特在左侧,尾比特在右侧。

 

       22.17 当使用hstring标识,每个16进制数字最重要的比特对应bstring中最左侧的比特。

       注- 该标识不是用于约束编码规则把bstring转成字符串用于传输。

 

       22.18 hstring标识只在bstring值包含4的整数倍的比特的时候使用。

例如:

       ‘A98A’ H

       ‘1010100110001010’ B

是相等的比特值。如果类型使用NamedBitList定义,尾数0不是构成值的一部分,所以该值长度是15。如果类型不是使用NamedBitList定义,那么尾数0是值的一部分,该值长度16。

 

       22.19 CONTAINING选项只有在包含CONTAINING选项的bitstring类型内容约束上使用。该值应该是在ContentConstaint中类型的值。(详见X682,第11章)

 

       22.20CONTAINING选项应该在bitstring类型不包含ENCODED BY,并且包含内容约束的时候使用。
原创粉丝点击