Boolcan类型可能只有两个值,要么真、要么假,Boolcan值的率A-XDR编码只包含内容区域,它由一个字节组成,如果被编码值是假,这个字节是0,否则当值为真,这个字节可能任意的非零数值,象一个发送器的选项。例:
P29
6.3 Enumeratcel值的编码
Enumeratcel类型的值范围限定在0—255之间,Enumeratcel值的编码将按照限定整数值(0……255)中,固定长度,无符号整数编码为一个字节。
6.4 位串值编码( )
A- XDR根据位串的ASN.1定义中是否指定位串的大小。为ASN.1位串类型提供了两种编码类型。
当ASN.1定义中指定位串的大小,则按固定长度编码,没有指定大小的位串接可变长度方式编码,在两种情况中,位串值的编码是通过在尾数位添0而排列成字节界限值。 6.4.1指定大小的位串值的固定长度编码
如果位串的大小在ASN.1描述中被指定,则那个位串的A-XDR编码只包含一个内容区域,内容区域的字节数由指定的大小决定,它与传达位串数所要的最小字节数相等。
如…….
在位串的位数,从第一位开始,直到尾数位将放置第一个字节的8—1位,后面依次是第二个字节、第三个字节…..的8—1位,直到最后一个字节所需的位数,从第8位开始。
编码的每个字节,除了最后一个字节,将包括位串的8位,编码的最后一个字节将包括位串中剩下的位数,尾数位添0。
如:
P31
6.4.2没有指定大小的位串值的可变长度编码
当位串值的大小在ASN.1定义中没有指定,则位串值的A-XDR编码包含两个区域,长度区域和内容区域。
长度区域表示的值与位串编码值的位数相等,长度区域编码与可变长度整数编码相似,除了长度整数被编码为二进制数而不是二进制补码(因为长度区域来讲负值没有意义),(它的编码表示可变长度无符号整数的编码)
内容区域传达位串的编码值,包含整数各字节数,这一区域的编码规则跟6.4.1中阐述的固定长度位串值编码相同。
例…….
6.5字节串值编码
A- XDR根据ASN.1定义中是否指定字节串值的大小为ASN.1字节串类型提供了两种编码类型。
当ASN.1定义中指定字节串值的大小用固定长度编码,否则用可变长度方式编码。
P33
6.5.1 指定大小字节串值的固定长度编码
如果在ASN.1描述中指定了字节串值的大小,字节串值的A-XDR编码只包含一个内容区域,内容区域的字节数与指定大小相等。
字节串中的字节,从第一个字节开始直到最后一个字节,特效置在内容区域的字节中。 例:
6.5.2没有指定大小的字节串值的可变长度编码
当在ASN.1定义中没有指定字节串值的大小时,字节串值的A-XDR编码。包含两个区域:长度区域和内容区域。
长度区域表示的值与内容区域的字节数相等,长度区域的编码与可变长度位串的长度区域编码完全相同(见6.4.2)
内容区域传达字节串的编码值,这个区域的编码规则与(6.5.1)中简述的固定长度字节串值的编码相同。 例…….
P35
6.6 Choiq(选择)值编码
A- XDR的主要概念之一是:当一条信息的发送器和接受器操作相同的抽象语法,在多数情况下,BER编码的标识符区域能达多余的信息。在这些情况下,不编码标识符区域不产生模糊编码,因此,A-XDR编码不为ASN.1类型系统地编码标识符。 选择ASN.1类型是根据成分类型的收集定义的。它的选项必须不同选择类型的每个值正好是其中的一个选项,编码规则应保证任何一个选项的编码值能够清晰识别,因此,选择类型值的A-XDR编码将包含一个标识符区域。 为保证清晰,选择类型的成分类型需是显标记类型,没有显标记成分的选择类型不能用A-XDR编码。
选择值的A-XDR编码选择是被选择项类型值的A-XDR编码,在这之前且按照固定长度无符号整数编码为一个字节的标识符(标记) 例…………….
P37
6.7 标记类型(隐、显、ASN.1显标记) 6.8 回到6.6所述的(例子)
表示法(通过在原始类型表示说明加一个在括号数字行列)是标记类型的ASN.1类型表示法,标记用来保证不同。
实际上,每个ASN.1类型都有一个标记,四种不同的标记说明被指定每个标记在它的说明中编号为一个排负整数,四个说明是:一般情况下,特性环期,广泛应用和私人应用,内建ASN.1类型在一般特性说明中,有标记被称为基本类型,除了一般性说明之外,所有说明的标记用于形成标记类型。
每个标记或隐含或显示,在标记类型表示法中通过在“了”和基本类型之间加上关键可作出选择,如果没有出现关键字则缺省的标记格式使用,注意限定标记(否是类型)并只影响编码。
P39P41
在BER中,标记 和数字通过标识符区域传达,当标记是外显的那个值的BER编码执行两个标记:一个新的,在括号中指定,还有一个原始标记,基本类型。编码是由基本类型编码的一个嵌套编码相成。 例……
在A-XDR中,外显和隐含标记的意思有些微差别,假设A-XDR不为无标记类型编码标识符区域,它没有办法说明一个新的标记替换引目标记。因此,在BER含义中的隐含标记在A-XDR中不适应,另一方面,外显标记的两种类型适用于A-XDR;外显标记(以A-XDR方式)和ASN.1外显标记。
在A-XDR中,当标记号在ASN.1详细说明中,外显以确保在ASN.1Choiq或类型中的成分不同时,我们特外显标记表示法。根据他们的所在编码这些标记成分。成分的标记在A-XDR中以可变长度整数编码,表示标记值。另一方面,成分的标记根本不编码。假设这些外显标记类型的A-XDR编码相同,不会在ASN.1详述中关键字是否出现。我们都可以说出A-XDR中,关键字被简单地忽略了。
当在ASN.1详述中等效和标注号被明确指定,如[ ] 。在A-XDR类型表示法是指ASN.1外显标记,这种标记类型只考虑到序列( )类型的成分。
ASN.1外显标记类型值的A-XDR编码同他们的BER编码相同。除非在长度区域,使用正确空格式不允许,标记的目的是迫使长度被编码。例如:为了允许一些结构的简单省略。 6.9 可选择的和缺省成分
任何ASN.1复合类型都可能包含提及到ASN.1关键字(可选择)或(缺省)的成分。在ASN.1详述中,这些关键字可放在一个成分类型的后面,传达一个非常直观的意思,标有的成分可能被省略。——成分值在编码中不总是存在。(没计存应指明这些成分实际省略的环境和必要性)。
建一个成分可选的一个理由是允许他被省略,当它假定一个特殊值时,通常发生地很频繁,通过这种方法,两个值的外显发送可避免。ASN.1关键字为一个成分指定这一个缺省值。
注意:指定一个成分是可选的和指定是缺省的。一般而言是非常不同的(他们在ASN.1中相互独立的)因为即使他们缺省也是用来表示一个特殊值。
一个可选的或缺省成分的A-XDR编码是用另外一个元素的编码值开始的(对ASN.1语法来讲是另外的,它没有指定这个元素)。这个元素叫使用标志。这个使用标志被标为类型,它的值表明可选的或缺省成分的值在编码中是否出现。如下: ? 对可选的成分
使用标志二真 成分在编码中出现 使用标志二假 成分在编码不出现
P43
? 对缺省成分
使用标志二真 成分在编码中出现 使用标志二假 成分在编码不出现
当使用标志指明正在讨论的成分在编码中存在,使用标志后面跟着可选的或缺省成分值的A-XDR编码。另一方面,当使用标志指明,成分在编码中不存在,那个成分的A-XDR编码是用使用标志的编码结束——后面不跟着成分值的编码。
6.9的子条款和附录C编码可选的和缺省成分的例子。 6.99序列)值的编码
象选择类型一样,ASN.1类型也是根据全部不同的成分类型的收集定义的,但与类型相反的是,序列类型的每个值。包含每个成分类型的值,成分值在编码中出现的顺序是固定的。它与成分类型在定义中出现的顺序一样。
序列值的A-XDR编码是类型的ASN.1定义中列出的每种类型的一个数值A-XDR编码,按照他们在定义中出现的顺序,除了非类型被指明为
序列值的外显标记或成分的标志表示了多余的信息,因此不被编码一个外显标记成分值的A-XDR编码是成分值的A-XDR编码。
当一个或数值的编码存在(如6.8中所述编码)它在编码中的位置与ASN.1定义中类型的出现位置一致。
例:
P45
6.10 Sequence of值的编码
ASN.1 Sequence of类型是根据单个的成分类型定义的,它的值是成分类型值的所有缺席的收集。
A- XDR根据Sequence of的ASN.1定义中是否指空Sequence of的大小)为ASN.1的Sequence of类型提供了两种编码类型,当在ASN.1定义中指定了Sequence of的大小。则按固定长度编码,否则按可变长度方式编码。
P47
6.10.1 指定大小的Sequence of值的固定长度编码
如果在ASN.1描述中指定了Sequence of的大小,那个Sequence of值的A-XDR编码只含有一个内容区域,这个区域的字节数由在ASN.1定义中列出的类型的N个数据值的A-XDR编码相成,N是指定的大小,数据值的编码顺序与待编码的Sequence of值中的数据值的顺序相同。
例:…….
6.10.2没有指定大小的Sequence of值的可变长度编码
当在ASN.1定义中没有指定Sequence of的大小时,Sequence of值的A-XDR编码包含两个区:长度区域和内容区域。
长度区域表示的值与Sequence of类型的编码值中的成分个数相等。长度区域的编码与可变长度位串的长度区域编码相同(6.4.2)。
内容区域由ASN.1定义中列出的类型的N个数值的A-XDR编码构成。N是长度区域
表示的值,数值的编码顺序与结构编码的Sequence of值的数值顺序相同。
例:………
6.10.3 特殊的Sequence of choiu(选择序列)类型的编码
选择序列是一种特殊情况,尽管Sequence of类型是根据单个成分类型定义的,选择序列结构的元李可能有不同的类型——选择类型的不同选项。
选择序列类型的编码同(6.10.1)和(6.10.2)中此述的一样,除了Sequence of类型中的每个成分的编码将由选定的选择成分的标记的编码开始。
附录C中的例5是选择序列编码的示例 6.11 可视串类型的编码:
可视串ASN.1类型是一种受限制的字符串类型,受限制的字符串是特殊的字节串,不能包含从受限制的字符组合中抽出的字符,尽管ASN.1指定了,8种这样的类型,只有可视串类型在DLMS谋述中使用(看ZRC61334-4-4) 因此,A-XDR只为这种ASN.1类型提供支持。