1、ICS 35.100.60 L 79 道B中华人民共和国国家标准G/T 16263. 2-2006/ISO/IEC 8825-2: 2002 信息技术ASN.l 编码规则第2部分:紧缩编码规则CPER)规范Information technology-ASN. 1 encoding rules一Part 2: Specification of Packed Encoding RulesCPER) (lSO/IEC 8825-2: 2002 , IDT) 2006-03-14发布中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会2006-07-01实施GB/T 16263. 2一20
2、06/ISO/IEC8825-2 :2002 目次前言.皿引言.w1 范围.2 规范性引用文件.3 术语和定义.,.,3. 1 基本记法规范23.2 信息客体规范.,2 3.3 约束规范.2 3.4 ASN.1规范的参数化23.5 基本编码规则.2 3.6 附加定义24 缩略语.,5 5 记法66 约定.67 本部分定义的编码规则8 一致性.79 PER使用的编码方法.7 9.1 类型记法的使用.7 9.2 使用标签以提供正则次序79.3 PER可视约束9.4 编码使用的类型和值模型.9 9.5 编码的结构.99.6 被编码的类型.10 10 编码过程.10 10.1 完整编码的产生式.10
3、10.2 开放类型宇段.1110.3 非负二进制整数的编码.10.4 2的补码二进制整数的编码10.5 受约束的整个数的编码.12 10.6 正常小非负整个数的编码.13 10. 7 半受约束的整个数的编码.13 10.8 不受约束的整个数的编码.1310. 9 长度决定因子的编码的一般规则.1311 布尔类型的编码.11. 16 12 整数类型的编码.1613 枚举类型的编码.1714 实数类型的编码.1715 位串类型的编码17GB/T 16263. 2一2006/ISO/IEC8825-2: 2002 16 八位位组串类型的编码.18 17 空值类型的编码. . . 19 18 序列类型
4、的编码19 单一序列类型的编码.20 20 集合类型的编码.20 21 单一集合类型的编码. 21 22 选择类型的编码.23 客体标识符类型的编码.22 24 相关客体标识符类型的编码.22 25 嵌人式pdv类型的编码. 22 26 外部类型值的编码.27 受限字符串类型的编码.24 28 不受限字符串类型的编码.25 29 传送语法的客体标识符.26 附录A(资料性附录)编码实例.,.,.27 A.1 不使用子类型约束的记录A.2 使用子类型约束的记录A.3 使用扩展标记的记录.35 A. 4 使用扩展附加组的记录附录B(资料性附录)组合PER可视约束和PER非可视约束.43 B.1 概
5、述. 43 B.2 PER中约束的可扩展性和可视性.uB.3 示例.,.,. 46 附录c(资料性附录)对PER算法的支持48附录D(资料性附录)对可扩展ASN.1规则的支持49附录E(资料性附录)关于PER编码拼接的指导附录.50附录F(资料性附录)客体标识符值的赋值E GBjT 16263. 2-2006jISOjIEC 8825-2: 2002 前言GBjT 16263一2006在信息技术ASN.1编码规则的总标题下,目前包括以下两个部分:一一第1部分(即GB/T16263.1):基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规范;一一第2部分(即GB/T162
6、63.2):紧缩编码规则(PER)规范。本部分为GB/T16263的第2部分,等同采用国际标准ISO/IEC8825-2: 2002(信息技术ASN.1 编码规则紧缩编码规则(PER)规范(英文版)。与该项国际标准等同的文本是ITU-T建议X.691。按照GB/T1. 1-2000的规定,本部分对ISO/IEC8825-2: 2002做了下列编辑性修改:a) 本标准一词改为本部分1b) 在引用的标准中,凡已转化为我国标准的各项标准,均用我国的相应标准编号代替。对规范性引用文件一章中的标准按GB/T1. 1-2000的规定进行了重新排列。本部分的附录A、附录B、附录C、附录D、附录E和附录F是资
7、料性附录。本部分由中华人民共和国信息产业部提出。本部分由中国电子标准化研究所归口。本部分由北京信息工程学院、中国电子技术标准化研究所负责起草。本部分主要起草人:王凌、郑洪仁、张红。皿GB/T 16263. 2-2006/ISO/IEC 8825-2: 2002 51 GB/T 16262.1、GB/T16262. 2、GB/T16262. 3和GB/T 6262. 4共同描述了抽象语法记法一(ASN. l) ,这种记法就对等应用之间交换的报文进行了定义。本部分定义的编码规则适用于使用GB/T16262. 1规定的记法所确定的类型值。应用这些编码规则产生对这些值的传送语法。这些编码规则规范也隐含
8、适用于解码。ASN.1的类型值应用的编码规则可以有多种集合。本部分定义了紧缩编码规则(PER)。之所以称为紧缩编码规则集合,是因为这种编码规则获得了比GB/T16263. 1中描述的基本编码规则(BER)及它派生的编码规则更紧凑的表示,GB/T16263.1是紧缩编码规则规范的某些部分的参考。N GB/T 16263. 2-2006/ISO/IEC 8825-2: 2002 信息技术ASN.l 编码规则第2部分:紧缩编码规则CPER)规范1 范围本部分规定了紧缩编码规则集合,它们可以用来为GB/T16262. 1中定义的类型值派生传送语法。这些紧缩编码规则也适用于解码这样的传送语法,以便标识出
9、被传送的数据值。本部分规定的编码规则:一一在通信时使用;在选择编码规则时主要关心值的最小化表示规模的场合中使用;一一对在GB/T16262. 1中描述的所有扩展形式,在保留现有值的编码时,允许通过增加额外值进行抽象语法的扩展。2 规范性引用文件下列文件中的条款通过GB/T16263的本部分的引用而成为本部分的条款。凡是注目期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。GB/T 1988一1998信息技术信息交换用七位编码字符集(eqvISO/IEC
10、 646: 1991) GB/T 2311一2000信息技术字符码结构和扩展技术CidtISO/IEC 2022: 1994) GB/T 9387. 1-1998信息技术开放系统互连基本参考模型第1部分:基本模型(idtISO/ IEC 7498-1:1994) GB/T 12054-1989 数据处理转义序列登记规程(neqISO 2375 :1 985) GB 13000.1-1993 信息技术通用多八位编码字符集(UCS)第1部分:体系结构与基本多文种平面(idtISO/IEC 10646:2000) GB/T 16262.1-2006信息技术抽象语法记法一(ASN.1)第1部分:基本记
11、法规范CISO/IEC 8824-1: 2002 , IDT) GB/T 16262.2-2006信息技术抽象语法记法一(ASN.1)第2部分:信息客体规范(lSO/IEC 8824-2: 2002 , IDT) GB/T 16262.3一2006信息技术抽象语法记法一(ASN.1) 第3部分:约束规范(ISO/IEC8824-3: 2002 , IDT) GB/T 16262.4-2006 信息技术抽象语法记法一(ASN.1)第4部分:ASN.1规范的参数化CISO/IEC 8824-4: 2002 , IDT) GB/T 16263. 1-2006 信息技术ASN.1编码规则第1部分:基本
12、编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)的规范(lSO/IEC8825-1: 2002 , IDT) S/Z 9047-1987 信息处理信息交换用字符串形式表示数值的方法CidtISO 6093: 1985) 要与转义序列一起使用的编码字符集的ISO国际登记簿3 术语和定义下列术语和定义适用于本部分。1 G/T 16263. 2一2006/ISO/IEC8825-2: 2002 3. 1 基本记法规范GB/ T 16262. 1一2006中的所有术语和定义适用于本部分。3. 2 信息害体规范GB/ T 16262.2-2006中的所有术语和定义适用于本部分。3.3
13、 约束规范本部分使用GB/T16262.3-2006中定义的下列术语和定义:a) 成分关系约束(componentrelation constraint); b) 表约束(tableconstraint)。3.4 ASN.1规范的参数化本部分使用GB/T16262.4- 2006 可变约束(variableconstraint). 基本编码规则、B/、BJ、B/、,/bcde 3.6.1 2的补码的二进l与ASN.l的类型整数(integer)混淆。3. 6)2 抽象语法值abstract syntax Vg 要由PER编码或由PER解码生成注:与抽象语法相关联的单个ASN.l类型由类AR3.
14、 6.3 佳字段bit-fieJd 编码机制某一部分的产物,由有序的位集合构成,这些位不必是8的倍数。N.1类型值的集合)。注:若该术语的使用后面紧跟ALIGNED变体中八位位组对齐,这意味着对PER的对齐变体来说,该位字段要求完整的编码在八位位组边界上开始。3.6. 4 正则编码canonical encoding 抽象语法值的一种完整编码,它通过使用没有实现相关的选项的编码规则获得;这种规则使得在传2 GB/T 16263. 2-2006/ISO/ IEC 8825-2: 2002 送语法中的无歧义且唯一的位串与抽象语法中的值之间产生一对-映射的定义。3. 6.5 复合类型composit
15、e type 集合、序列、单一集合、单一序列、选择、嵌入式pdv、外部或者不受限的字符串类型。3.6.6 复合值composite value 复合类型的值。3. 6.7 受约束的整个数lb和ub的值是允许的值。最大长度的字符、八位束限制为最大成分数数已经被PER可视约范围内的整数类型值;3. 6.8 有效长度约束(受单个有限长度约表示的那些长度。A , = A ,= 3.6. 9 够出现在某个受约束的受限注1:例如,在Ax : : = IA5String (FROM ( A Bx : : = IA5String (SIZE( 1. . 4 I Ax有一个有效允许字母表约束为ABCD;因为没有
16、更小的允许字母表约束能够适用于Bx的所有值。注2:有效允许字母表约束只用来确定字符的编码。3. 6.10 枚举索引enumeration index type) 字母表构成的有效允许字母表约束,与枚举类型中的Enumera tionI tem相关联的非负整个数。枚举索引通过把EnumerationI tem按照枚举值升序的方式进行排序来确定,枚举索引从0开始赋值,0赋值给第1个Enurr阳ationltem, 1 赋值给第2个,依此类推,直到排序表中的最后一个EnumerationI tem。注:RootEnumeration中的EnumerationItem与AdditionalEnumer
17、ation中的Enumerationltem分开来排序。3 GB/T 16263.2一2006/ISO/IEC8825-2 :2002 3.6. 11 PER编码的可扩展extensible for PER encoding 一种类型特性,需要PER把值的编码标识为根值的编码或扩展附加部分的编码。注:根值编码一般比扩展附加部分编码的效率更高。3.6. 12 字段列表field-Jist 位宇段的有序集合,它是把这些编码规则应用于抽象值产生的结果。3.6. 13 不定长度indefinite-Iength 其长度大于64K-1或者其最大长度不能由ASN.l记法确定的一种编码。3.6. 14 固定
18、长度类型fixed-Iength type 一种类型,该类型编码的最外层长度决定因子的值可以由类型记法(仅在应用PER可视约束之后)来确定(使用本部分规定的机制),并且对于该类型的所有可能值而言,该值相同。3.6. 15 固定值fixed value 一个值,它可以确定(用本部分规定的机制)这是支配它的类型的一个唯-允许值(仅在应用PER可视约束之后)。3.6. 16 己知倍数字符串类型known-multiplier character string type 一种受限字符串类型,其中,对所有允许字符串值,编码的八位位组数是字符串中的字符数的已知固定倍数。已知倍数字符串类型是IA5Strin
19、g、PrintableString、VisibleString、NumericString、UniversalString和BMPString。3.6.17 长度决定因子length determinant 确定全部或者部分PER编码长度的(位、八位位组、字符或成分的)计数。3.6. 18 正常小非负整个数normally small non-negative whole number 编码的-部分,它表示一个无边界非负整数的若干值,但是,小值比大值出现的可能性大。3.6. 19 正常小长度normally small length 长度编码,它表示一个无边界长度的若干值,但是,小长度比大长度
20、出现的可能性大。3.6.20 非负二进制整数编码non-negative-binary-integer-encoding 受约束或半受约束的整个数的编码,该整个数可编码到指定长度的位字段中、或编码到指定长度的位字段(ALIGNED变体中的八位位组对齐)中、或者编码到最小数目的八位位组中,该八位位组将容纳非负二进制整数的整个数,而非负二进制整数为10.3规定的大于或等于0的整个数提供了表示。注:2的补码的二进制数的值通过计数内容八位位组中的位得出,计数从最后一个八位位组的位1开始作为位0,到第1个八位位组的位8结束。每位赋予一个俨的数值,这里N是该位在上面计数顺序中的位置。2的补码的二进制数的值
21、为置1的位所赋予数值的和。3.6.21 最外层类型outermost type 一种ASN.1类型,其编码被包含在一个非ASN.l载体中或作为其他ASN.1结构(见10.1. 1) 4 的值。注:最外层类型的PER编码总是八位的整数倍。3.6.22 PER可视约束PER-visible constraint 影响值的PER编码的ASN.1约束记法的使用实例。3.6.23 中继安全编码relay-safe encoding GB/T 16263. 2-2006/ISO/IEC 8825-2: 2002 抽象语法值的一种完整编码,该编码无需知道编码执行环境就可以被解码(包括任何嵌入式编码)。3.6
22、.24 半受约束的整个数semi-constrained whole number 一种受PER可视约束所约束的整个数,以值lb作为允许值,约束超过或等于某个值lb,它是不受约束的整个数。注2半受约束的整个数出现在不受约束的(和某些受约束的情况下的字符、八位位组和位串类型的长度编码中,还出现在不受约束的(和某些受约束的情况下的)单一序列和单一集合类型的成分计数的编码中,以及已经约束为超过某个最小值的整数类型值的编码中。3.6.25 简单类型simple type 不是复合类型的类型。3.6.26 文本依赖textually dependent 用来标识下列情况的一个术语,如果在计算一个元素集合
23、时使用了某个引用名,则该元素集合的值被认为依赖于该引用名,而无论执行的实际集合算术运算结果是元素集合的最终值与赋值给该引用名的实际元素集合值是否有关。注:例如,下面的Foo的定义文本依赖于Bar,即使Bar对Foo的值集没有影响(因此,根据9.3.趴在Foo上的约束不是PER可视的,因为Bar被一个表约束来约束的,而Fo。在文本上依赖于Bar)。MY-CLASS : : = CLASS &.name PrintableString , &.age INTEGER WITH SYNTAX &.name , &.a鸣ge创 MyOb问,jectSe创tMY -CLASS : : = 叮Ja挝ckB
24、ar:门:= MY-CLASS. &.age ( MyOb均Je仅ctSet ) Foo : = INTEGER ( Bar I 1. .100 ) 3.6.27 不受约束的整个数unconstrained whole number 一种不受PER可视约束所约束的整个数。注:不受约束的整个数仅出现在整数类型值的编码中。4 缩畸语下列缩略语适用于本部分:ASN.1 抽象语法记法一BER ASN.1的基本编码规则CER ASN.1的正则编码规则DER ASN.1的非典型编码规则PER ASN.1的紧缩编码规则16K 16384 32K 32768 48K 49152 5 GB/T 16263. 2
25、-2006/ ISO/IEC 8825-2 : 2002 64 K 65536 5 记法本部分引用GB/T16262. 1定义的记法。6 约定6.1 本部分使用术语最高有效位和最低有效位来定义编码中的每个八位位组的值。注:低层规范使用相同的记法来定义串行线上位传输的次序,或者将若干位分配给并行信道。6.2 对于本部分,八位位组的位从8至1编号,其中位8是最高有效位,位1是最低有效位。6. 3 在本部分中频繁使用的术语:沪剧四来代表叭7呻飞使用该术语代替叭个位不带有任何对齐的含义。若打算对齐,在(已知)ASN.1类型7.2 在不知道被特别是,在不知道7.5 本部分IC-PER编码ACTER ST
26、RING 所编码的类型含有级(2). . 和GB13000.1继安全的。被定义为在BAS-C-PER解码一致的实也lBAS1C-PER所允许的PDV、CHARACTERDDED PDV、CHAR如庐CANONICA川R型,则外层编码不再是是正则的。支持GB13000.1的2则的。所有上述字符传送语法都是中7.7 BASIC-PER和CANON1CAL-P苦?制肿营而山NED变体和UNALIGNED变体。在ALIGNED变体中,常常插入填充位来恢复八位位组对齐。在UNALIGNED变体中,则从不插入填充位。7.8 在ALIGNED变体和UNALIGNED变体之间没有互工作的可能性。7. 9 只有
27、知道编码值的类型时,PER编码才是自定界的。编码总是八位的整数倍。当在EXTERNAL类型中携带这些位时,应在OCTETSTRING选择项中携带它们,除非EXTERNAL类型本身用PER进行编码,在这种情况下,该值可以编码为单个ASN.1类型(即,开放类型)。当在OSl表示协议中携带它们时,应使用带有OCTETSTRING选择项的全编码(如GB/T15696. 1定义)。7. 10 除非另有说明,本部分的规则适用于两种算法和两种变体。6 GB/T 16263. 2-2006/ ISO/ IEC 8825-2 : 2002 7. 11 附录C是资料性附录,它就实现PER的组合给出了建议,以使互工
28、作的机会最大化。8 一致性8. 1 动态一致性在第9章中规定。8.2 静态一致性由规定这些紧缩编码规则的应用的那些标准来规定。注:附录C提供了与支持两种编码规则算法的两种变体有关的静态一致性的指南。该指南被设计成能保证互工作,同时认可既不是中继安全、也不是正则的某些编码应用的好处。8.3 本部分中的规则以编码过程形式规定。如果生成的抽象语法值完整编码的位串与本部分为适用传送语法规定的那些位串之一相同,则不要主宣羽II主栩定的过程完全镜像。8.4 执行解码的实现要产生与收如何自相一致的丑安问筐,收到的位串由发送器产生,这些发送器符合与被解码资料相关联GB/ T 16262.1-2006中的9.
29、3 PER可视约束注:对于解码和编码,某些ASN.l活问篮不是阳可视剧所fE以任何方式影响使用这些约束处理解码期间检测到的差错,也不意味着允许违反这些约束的谊和遵守规则的发送器所发送。然而,本部分并不在编码规范中使用这样的约束。9. 3. 1 用人类可读文本表达的或在ASN.1注释中所表示的约束不是PER可视的。9.3.2 可变的约束不是PER可视的(见GB/T16262.4-2006中的10.3和10.4)。9.3.3 表约束不是PER可视的(见GB/T16262.3二2006)。9. 3.4 成分关系约束(见GB/T16262.3-2006中的10.7)不是PER可视的。9.3. 5 计算
30、过程文本依赖于表约束或成分关系约束的约束不是PER可视的(见GB/T16 262.3 2006)。9.3.6 对不是(见GB/T16262. 1-2006中的第37章)已知倍数字符串类型的受限字符串类型的约束,并且只能适用于将9. 1 类型记法酌使9. 1. 1 这些哺15/专门使用G使用该记法规模型中所保持的下、,、,/、,deli-如GB/T 16263. 2-2006/ISO/IEC 8825-2: 2002 不是PER可视的(见3.6.16)。9.3.7 模式约束不是PER可视的。9.3.8 受上述各条制约的所有长度约束都是PER可视的。9.3.9 约束类型的有效长度约束是单个长度约束
31、,因此,当且仅当存在该(允许的)长度的某个约束类型值时,该长度才是允许的。9.3.10 在应用GB/T16262. 1-2006中的48.3到48.5之后,对不可扩展的已知倍数字符串类型的允许字母表约束是PER可视的。可扩展的允许字母表约束不是PER可视的。9.3. 11 当且仅当包含某个字符的受约束类型的某个值,该受约束类型的有效允许字母表约束是允许该字符的单个允许字母表约束。如果受约束类型的所有字符都可以出现在该受约束类型的某个值中,则该有效允许字母表约束是为不受约束的类型而定义的字符集。9.3.12 应用于实数类型的约束不是PER可视的。9.3.13 仅当用来限制syntaxes成分的值
32、为单个值时,或者用来限制identification为替换的fixed标识(见第25章和第28章)时,应用于不受限字符串或者嵌入式pdv类型的内部类型约束才是PER可视的。9.3. 14 对有用类型上的约束不是PER可视的。9.3. 15 应用于字符串类型的单个值子类型约束不是PER可视的。9.3.16 当且仅当所有其他约束适用于整数类型或己知倍数字符串类型时,受上述各条制约的这些约束是PER可视的。9.3. 17 通常,对类型的约束可由各个约束组合而成,组合时使用了某些或全部包含子类型约束和一系列应用约束的集合算法。注:有关组合分别为PER可视或PER不可视约束的效果的进一步讨论参见附录B。
33、9.3. 18 如果约束由约束的一系列应用组成,那么,即使不是PER可视的约束,也不影响PER编码,但能引起可扩展性(和扩展附加部分)出现在任何按GB/T16262. 1-2006中的46.8规定的要被取消的早期约束中。注1:如果在系列应用中的最后约束不是PER可视的,那么,类型对PER编码不是可扩展的,并且编码无扩展位。注2:例如,因为可扩展的允许字母表约束不是PER可视的,那么,A:川:= IA5String (SIZE ( 1. . 4) (FRO岛HABCD就有-个由整个I队A5臼St时r丘m吨g字母组成的有效允许字母表约束o不过,它的有效大小约束为SIZEO. 4)。类似地,B: :
34、 = IA5String (A) 有同样的有效大小约束和同样的有效允许字母表约束。9.3.19 如果一个PER可视约束是INTERSECTION结构的一部分,那么,得到的约束是PER可视的,并由所有PER可视部分(非PER可视部分被忽略不计)的INTERSECTION组成。如果一个不是PER可视的约束是UNION结构的一部分,那么得出的约束也不是可视的。如果-个约束有EXCEPT条款,那么.EXCEPT及随后的值集全部忽略不计,而不管跟在EXCEPT之后的值集是否是PER可视的。注:例如:A : = IA5String (SIZE( 1. 4) INTERSECTION FROM (ABCD
35、,.) 有1.4的有效长度约束,但字母表约束不是可视的,因为它是可扩展的。9.3.20 如果下列情况之一出现,则对于PER编码,类型也是可扩展的:且a) 它是从个ENUMERATED类型派生的(通过划分子类型、指出类型引用或者置标签),而且在Enumerations产生式中有扩展标记;或者b) 它是从一个SEQUENCE类型派生的(通过划分子类型、指出类型引用或者置标签),而且在ComponentType Lists或SequenceType产生式中有扩展标记;或者c) 它是从一个SET类型派生的(通过划分子类型、指出类型引用或者置标签),而且在GB/T 16263. 2-2006/ISO/I
36、EC 8825-2: 2002 nentType Lists或SetType产生式中有扩展标记;或者d) 它是从一个CHOICE类型派生的(通过划分子类型、指出类型引用或者置标签),而且在Al-ternativeType Lists产生式中有扩展标记。9.4 编码使用的类型和值模型9.4.1 ASN.1类型或是简单类型或是用其他类型构造的类型。记法允许使用类型引用和类型置标签。对于这些编码规则,使用类型引用和类型置标签对编码没有影响,而且在模型中这些是不可视的,除非在9.2中说明。记法也允许应用约束和差错规范。PER可视约束在模型中作为类型值的限制出现。其他约束和差错规范不影响编码,并且在PE
37、R类型和值模型中是不可视的。9.4.2 被编码的值可以被视为一个简单值或者一个用结构化机制从简单或复合值的成分构建的复合值,与ASN.1类型定义的结构并行。9.4.3 当约束包括一个在根中出现的扩展附加部分的值时,该值总是编码为根的值,而不是扩展附加部分的值。示例:INTEGER (0.10 , . , 5) 一值5被编码为根值,而不是一个扩展附加部分的值。9.5 编码的结构9.5. 1 这些编码规则规定:a) 简单值到宇段列表的编码;并且b) 复合值到字段列表的编码,使用了由这些编码规则应用到复合值的成分而产生的字段列表;并且c) 最外层值的宇段列表到抽象语法值的完整编码的变换(见10.1)
38、。|叫长度I前导码|长度|内容11叫|长度内容注:前导码、长度及内容都是字段,它们被拼接在一起形成字段列表。除选择类型外,复合类型的字段列表可以由几个值拼接在一起的字段构成。任一前导码、长度和/或任意值的内容都可能没有。圄1复合值到字段列表的编码9.5.2 数据值成分的编码:a) 由3部分构成,如图1所示,它们以下列次序出现:1)前导码(见第18、20和22章); 2)长度决定因子(见10.9); 3)内容。或者b) (若内容很长)由任意个部分构成,如图2所示,其中第1部分是前导码(见第18、20和22章), 随后的各部分是多对位宇段(在ALIGNED变体中八位位组对齐),首先是内容段的长度决
39、定因子,其次是各内容段;各宇段的最后一对由长度决定因子部分来标识,如10.9规定。|前导码| 长度| 内容| 长度| 内容I . I 长度l 时| (可能没有)圄2长数据值的编码9.5.3 在9.5.2中提到的每一部分生成:a) 一个空宇段(无内容);或者b) 一个位宇段(未对齐);或者c) 一个位宇段(ALIGNED变体中八位位组对齐);或者d) 一个宇段列表,它可以包含位字段(未对齐)、位宇段(ALIGNED变体中八位位组对齐)、或者GB/ T 16263. 2-2006/ ISO/ IEC 8825-2: 2002 两者都有。9.6 被编码的类型9.6.1 下列各章规定将以下类型编码到宇
40、段列表中:布尔、整数、枚举、实数、位串、八位位组串、空、序列、单一序列、集合、单一集合、选择、开放、客体标识符、相关客体标识符、嵌入式pdv、外部、受限字符串和不受限字符串的类型。9.6. 2 选择的类型应编码为所选类型的编码。9. 6. 3 除9.2说明外,有标签的类型的编码不包括在本部分中,因为在这些编码规则所使用的类型和值模型中置标签是不可视的。因此,有标签的类型根据已有标签的类型的编码来编码。9. 6. 4 下列有用的类型应进行的编码就好义所取代那样进行编码:一一通用时间;一一世界协调时;一一客体描述符。通用时间和世界协调时9.6.5 用值集赋值所规定的产生式已经定10 编码过程10.
41、 1 完整编码的10. 1. 1 如果AS任何编码规则进行b) ASN. l c) ASN.l外任何不使 / T 16262. 1-2006的第41章中给出的定!且L被用来如下产生这个抽象语端,该位串形成抽象语法值的完附加0位。10. 1. 3 这些编码规则的UNALIGNED变体中,所有宇段应进行拼接,而无需填充。如果最外层值编码的结果是空位串,则该位串应该用所有位置为0的单个八位位组来代替。如果是非空位串,且不是八位的倍数,则应在空位串后面附加(0到7个)0位以产生8位的倍数。10. 1. 4 这些编码规则的ALIGNED变体中,宇段列表中的任意位宇段应进行拼接,而无需填充。在已拼接(0到7个)0位使目前产生的编码长度是8位的整数倍之后,任意八位位组对齐位字段应被拼接。如果最外层值编码的结果是空位串,则用一个所有位置为0的八位位组代替该位串。如果是个非空位串,且不是8位的整数倍,则应在其后面附加(0到7个)0位产生8位的整数倍。注:如果抽象语法值是空类型值或者被约束为单个值的整数型,则最外层值的编码是个空位串。10 GB/ T 16263. 2一2006/ISO/IEC8825-2: 2002 10. 1. 5 所产生的位串是最外层类型的抽象语法值的完整编码。10.2 开放类型字段10.