GB T 16262-1996 信息处理系统 开放系统互连 抽象语法记法--(ASN.1)规范.pdf

上传人:outsidejudge265 文档编号:186137 上传时间:2019-07-14 格式:PDF 页数:58 大小:2.68MB
下载 相关 举报
GB T 16262-1996 信息处理系统 开放系统互连 抽象语法记法--(ASN.1)规范.pdf_第1页
第1页 / 共58页
GB T 16262-1996 信息处理系统 开放系统互连 抽象语法记法--(ASN.1)规范.pdf_第2页
第2页 / 共58页
GB T 16262-1996 信息处理系统 开放系统互连 抽象语法记法--(ASN.1)规范.pdf_第3页
第3页 / 共58页
GB T 16262-1996 信息处理系统 开放系统互连 抽象语法记法--(ASN.1)规范.pdf_第4页
第4页 / 共58页
GB T 16262-1996 信息处理系统 开放系统互连 抽象语法记法--(ASN.1)规范.pdf_第5页
第5页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、中华人民共和国国家标准信息处理系统开放系统互连抽象语法记法一规范发布实施国家技术监督局发布中华人民共和国国家标准信息处理系统开放系统互连抽象语法记法一规范国家技术监督局批准实施本标准等同采用国际标准信息处理系统开放系统互连抽象语法记法一规范引言在基本参考模型的较低层中服务原语的各个用户数据参数都表示为八位位组序列的二进制值在表示层中用户数据参数的性质有变化应用层标准要求表示层服务用户数据见以携带较为复杂的类型值可能包括来自各种字符集的字符串为了规定所携带的值要求一种已定义的记法但该记法不决定值的表示这由一个或多个称作编码规则的算法来补充此编码规则确定携带这种应用层值的会话层八位位组的值称为传送

2、语法表示层协议见可以协商使用何种传送语法确定一个值是为了使它区别于其他可能的值该值与其他要区别的那些值一起的集合称为类型一个特定的实例是该类型的一个值更一般地值或类型常被认为由几个更简单的值或类型以及它们间的关系组成术语数据类型常用作类型的同义词为了正确地解释值所代表的内容纸上的记号或是通信线路中的位必须知道通常从上下文中所表示的值的类型因此类型的标识是本标准的一个重要部分定义复杂类型的非常普通的技术是先定义少量简单类型这些简单类型通过定义它们的所有可能值来获得然后用不同方式组合这些简单类型下面是几种定义新类型的方式给出已有类型的有序表从已有类型中取出每个值这些值的有序序列形成一个值按这种方法

3、得到的所有的值的集合是一个新类型若表中的已有类型都是不同的则允许省略某些值以扩充这个机制给出不同的已有类型的表从已有类型中取出每个值这些值的无序集形成一个值按此法得到的所有可能值的集合是一个新类型通过省略某些值也能扩展该机制给出单个已有类型其值的有序序列或零个一个或几个已有类型的值的无序集形成一个值按此法得到的所有可能值的无限集合是一个新类型给出不同类型的表选择其中任何一个类型的值作为一个值按此法得到的所有可能值的集合是一个新类型给出一个类型通过使用它的值的某些结构和序关系它的一个子集可以形成一个新类型按上述方法定义的类型称为结构类型对每个用本标准的记法定义的类型指派了一个标记这个标记由本标准

4、或者该记法的使用者定义相同的标记指派给不同的类型是常见的这些特定的类型由标记的上下文来识别该记法的使用者可以选择指派不同的标记给某单个类型的两次出现从而产生两个不同的类型如同上述情况下需要区别所作哪一个值选择时这是必要的在该记法中规定了四种类别第一类是通用类通用类标记仅用于本标准中每个标记指派给单个类型或一个构造机制第二类是应用类应用类标记由其他标准指派一些类型在一个特定标准中一个应用类标记只指派给一个类型第三类型是专用类专用类标记不由标准指派其用法由使用者决定最后一个标记类是上下文指定类在该记法的任何使用中自由指派并按照它使用的上下文来解释标记主要为机器使用对于本标准中的与人有关的记法它是不

5、必出现的但是要求区别某些类型时则要使它们有不同的标记因此标记的分配是使用该记法的一个重要部分注本标准的记法中的所有类型都有一个标记给定任何类型该记法的使用者能用不同的标记定义新类型对某类型的值的标记编码规则总是显式或隐式地有该类型的标记该记法的使用上的限制是为了保证在假定适用的类型定义可用时确保标记可无二义地确定实际类型本标准规定的记法既能定义复杂的类型也能规定这些类型的值但并不决定传送时一个实际类型将如何表示通过八位位组的序列具有这样的特性的记法称为用于抽象语法定义的记法本标准的目的是规定一个用于抽象语法定义的记法叫做抽象语法记法一或也用作定义协议的半形式化工具该记法不必预先作无二义的说明该

6、记法的使用者有责任确保它们的规范是无二义的本标准由规定编码规则的标准支持对定义的类型的值使用编码规则后产生该值的表示的完整规范传送语法本标准与建议在技术上是相容的本标准的第章至第章包含这两章定义支持的简单类型并描述用于引用简单类型及定义结构类型的一些记法第章至第章也描述了定义的类型的值的记法本标准的第章定义另外的类型字符集串通过对字符集的应用编码规则该类型可以等同于八位位组串类型本标准的第章至第章包含这两章定义某些结构类型这些类型被认为是通用的但它们不需要另外的编码注希望增加这些章使之包括其他普通数据类型如诊断授权信息计账信息安全参数等值记法和在这些章中定义的类型的语义定义是从使用记法的类型定

7、义导出的此类型定义能被定义编码规则的标准引用对这些类型规定编码本标准的第章至第章定义了一个记法它可以使子类型从双亲类型的值定义得到附录补充件描述一个基本记法的扩展记法称为宏业务附录补充件支持的管理部门对客体标识符树的定义附录补充件支持的管理部门对客体标识符树的定义附录补充件和联合使用对客体标识符树的定义附录补充件提供使用表示的例子和提示附录参考件用第五章的记法给出的提要在本标准的末尾给出了包括关键字类型和主要术语的索引本标准文本特别是附录补充件到附录补充件是以联合的协定为主题的主题内容与适用范围本标准规定一个用于抽象语法的记法叫做抽象语法记法一本标准定义了一些简单类型及其标记并规定引用这些类型

8、和这些类型值的记法本标准定义了从较基本类型构造新类型的机制并规定定义这些结构类型和给它们指派标记以及规定这些类型值的记法本标准通过引用其他的标准定义在范围使用的字符集本标准定义一些有用的类型使用它们可供使用者使用无论何时需要定义信息的抽象语法都可应用记法它尤其用于应用层协议标准但并不仅仅如此记法也被其他表示层标准引用这些标准为简单类型结构类型字符串类型和的其他有用类型定义编码规则引用标准世界各国和地区名称代码数据交换组织标记的结构数据元和交换格式信息交换日期和时间表示法信息处理系统开放系统互连基本参考模型数据处理转义序列的登记规程信息处理系统开放系统互连面向连接的表示服务定义信息处理系统开放系

9、统互连面向连接的表示协议规范信息处理系统开放系统互连用于抽象语法记法一基本编码规则规范抽象语法记法规范公用数据网用的国际编号方案术语本标准使用中的术语值值集合中可区分的成员类型已命名的值集合简单类型通过直接规定类型值集合而定义的类型结构类型通过引用一个或多个其他类型而定义的类型成分类型定义结构类型时所引用的类型之一标记与每个类型关联的类型记号置标记用规定的标记替换某个类型现存的可能是默认的标记字符集在第章中规定的用于记法的字符集项取自字符集的已命名的字符序列用于形成记法在第章中规定类型或值引用名在某个上下文中唯一与一个类型或值相联系的名字注引用名指派给本标准中定义的类型在中这是普遍有效的其他引

10、用名在其他标准中定义并只在定义它的标准的上下文中出现编码规则在传送任何类型值期间规定其表示的规则编码规则使得传送的信息能够被接受者识别为特定类型的特定值字符串类型其值是取自某个已定义字符集的字符串的类型布尔类型具有两个可区分值的简单类型真布尔类型中的可区分值的一个假布尔类型中的可区分值的另一个整数类型具有可区分值的简单类型值是正整数或负整数包括零作为单一值注特定的编码规则限定整数的范围但应使选择的这种范围不致影响的任何用户尽管如此的特定用户可以使用注释表达更严格的限制范围枚举类型一个简单类型其值是做为类型记法一部分的给定不同标识符实数类型一个简单类型其可区分值中规定是实数集合的一个成员位串类型

11、其可区分值是零个一个或多个二进制位的有序序列的简单类型注编码规则不限制位串中的位数但是的特定用户可以使用注释表达位数的上限或下限八位位组串类型其可区分值是零个一个或多个八位位组的有序序列的简单类型每个八位位组是八个二进制位的有序序列注编码规则不限制八位位组串中的八位位组数但的特定用户可以使用注释表达八位位组数的上限或下限空类型由一个单一值组成的简单类型也称为空注空值通常用于有几个可能的候选值但又都不适用的情况序列类型通过引用一个固定的有序的类型表其中某些类型可以申明为可选的而定义的结构类型新类型的每个值是一个有序的值表表中各个值取自相应的成分类型注当一个成分类型申明为可选时新类型的值不必包括该

12、成分类型的值单纯序列类型通过引用单个现存类型而定义的结构类型新类型的每个值是该现存类型的零个一个或多个值的有序成分表注编码规则中不限制单纯序列值中的值的数目但是的特定用户可以使用注释来表达值的数目的上限或下限集合类型通过引用固定的无序的不同类型表其中某些类型可以申明为可选的而定义的结构类型新类型的每个值是一个无序的值表表中各个值取自相应的成分类型注当一个成分类型说明为可选时新类型的值不必包括该成分类型的值单纯集合类型通过引用单个现存类型定义的结构类型新类型的每个值是该现存类型的零个一个或多个值的无序表注编码规则不限制单纯序列类型中的值的数目但是的用户可以使用注释表达值的数目的上限或下限或要求各

13、个值彼此不同已标记类型通过引用单个现存类型和一个标记来定义的类型新类型与该现存类型同构但并不等同值选择类型通过引用固定的无序的不同类型而定义的结构类型新类型的每个值是成分类型之一的值类型选择类型通过引用值选择类型的一个成分类型而定义的结构类型任意类型未规定其成分类型的值选择类型但限定其成分类型为能用定义的类型集合外部类型其可区分值不能从其外部特征导出但能够从这样一个值的编码导出这些值可以但不必用描述因而其编码可以但不必与编码规则一致信息客体信息中定义或规范中已定义的部分为在通信实例中标识其使用而要求有一个名字客体标识符一个与信息客体相联系的值区别于所有其他同类值客体标识符类型其可区分值为按照本

14、标准规则分配的所有客体标识符的集合注本标准的这条规则允许各种机构独立地将客体标识符与信息客体相联系客体描述符类型其可区分值是提供对信息客体简要描述的人可读的文本的类型注客体描述符值通常但不总是与某个单一的信息客体相联系只有客体标识符才无歧义地标识信息客体递归定义的定义的一个集合不能对这些定义重新排序使得构造中使用的所有类型在该定义构造之前定义注允许递归定义本记法的用户有责任确保使用的值或结果类型具有有限的表示模块用于类型定义和值定义的记法的一个或多个使用实例用模块记法见第章定界产生式用来规定形式记法的一部分其中允许的项序列与一个名字相联系该名字可以用来在新的允许的序列集合定义中引用它所代表的那

15、些序列国际协调时国际时间局所保持的时标构成标准频率和时间信号协调传播的基础注此定义来源于国际无线电咨询委员会的建议也用作为世界协调时的缩写也称为格林尼治标准时间并定时地广播适当的时间信号的用户使用定义一段特定信息的抽象语法部分的个人或组织双亲类型的子类型一个类型其值是作为一些其他类型双亲类型的值的子集合规定的子类型的双亲类型用于定义子类型的类型注双亲类型自己本身可能是一些其他类型的子类型子类型规范能与一个类型记法一起用于定义此类型的子类型的记法子类型值集合形成子类型规范规定将包括在子类型中的双亲类型值集合的记法本标准使用定义的下列术语表示数据值一个抽象语法抽象语法名传送语法名本标准也使用中定义

16、的下列术语表示上下文标识符本标准使用中定义的下列术语通行组织组织代码国际代码指示符缩写抽象语法记法一世界协调时国际代码指示符数据国家代码数据网络识别码认识的私用操作机构本标准中使用的记法记法包含一个字符串序列这些字符取自第章规定的字符集每次使用记法包括从字符集中抽出字符并组合为项第章规定组成项的字符串并给每个项命名在第章以及以下几章中记法的规定是通过对组成表示有效实例的项的序列之集的规定及对每个序列语义的规定来实现的为了说明这样的集合本标准使用下面各条中定义的形式记法产生式一个新的或更复杂的序列的集合是通过产生式来定义的它使用本标准中定义的序列集合的名字并通过以下规定之一来形成新的序列集合新序

17、列集由任何原有集合的任何原有序列组成或者新序列由任何这样的序列组成它通过从每个集合中仅取一个序列并按特定的次序组合而成每个产生式由下面几个部分组成占一行或几行次序是新序列集合的名字字符一个或多个中所定义序列的候选集使用下面字符分隔一个序列若在一个或多个候选集中出现则它在新集合中出现在本标准中新集合用上面中的名字引用注若一个序列出现在多个候选中结果表示中任何语义上的二义性由整个序列的其他部分解决候选集在一个或多个候选集中序列的每一个候选集通过一组名字来描述每一个名字或者是一个项名或者是一个本标准中产生式定义序列集合的名字候选集定义的序列集合由所有这样获得的序列组成取任何一个带第一名字的序列或项然

18、后和任何一个带第二个名字的序列或项组合然后和任何一个带第三个名字的序列或者项组合等等直到包括候选集中最后的一个名字或者项产生式的例子位串值串串标识符表是一个产生式它的名字为位串值序列如下任何串单项和任何串单项和任何有标识符表的序列用开始并用结束注和是含有单字符和的项名见第章在这个例子中标识符表由进一步的产生式定义可以在定义位串值的产生式之前或者之后格式在本标准中使用的每个产生式前面和后面都有一个空行产生式中没有空行产生式或者在一行上或者分布在几行上格式是不重要的递归本标准中的产生式通常是递归的在这种情况下只要有新的序列产生产生式就要继续重复注在许多情况下这样的重复导致了容许序列的无界集某些或所

19、有这些序列本身就是无界的这没有错序列集合的引用本标准通过引用产生式的第一个名字在之前来引用一个序列集合表示的一部分这个名字用括起来把它和自然语言文本区分开来否则它就作为产生式的一部分出现项的引用本标准通过引用项名来定义一个项项名用括起来以与自然语言正文区别开来否则它将作为产生式的一部分而出现标记一个标记是通过给出它的类型和类型中的号码来说明的类型是下列中之一通用应用专用上下文规定号码是一个非负整数用十进制记法用户在指派标记时的限制在第章中说明通用类型的标记是这样指派的对结构类型最高层结构可以由标记导出对简单类型类型可由标记导出表总结了在本标准中说明的通用类型中标记的指派表通用类型标记指派通用类

20、型布尔类型通用类型整数类型通用类型位串类型通用类型八位位串类型通用类型空类型通用类型客体标识符类型通用类型客体描述符类型通用类型外部类型通用类型实数类型通用类型枚举类型通用类型为本标准的将来版本保留通用类型序列和单纯序列类型通用类型集合和单纯集合类型通用类型字符串类型通用类型时间类型通用类型为本标准的将来版本保留注通用类型另外的标记保留给本标准以后的增加记法的使用类型定义的表示为类型见类型值的表示为值见注在不知道类型的有关内容时通常不能解释值的记法将类型赋给一个类型引用名的记法为类型赋值见将值赋给一个值引用名的记法为值赋值见类型赋值记法和值赋值记法仅用于模块定义中见字符集除和说明外一个项由表中

21、字符的序列组成表字符集到到到注附加字符和在宏定义中使用见附录补充件等价的有关标准由我国的标准化组织给出附加字符可能在以下的项中出现最后个在附录补充件定义类型引用标识符值引用模块引用宏引用产生式引用局部类型引用局部值引用串当附加字符用在一种大小写无区别的语言时由以上某些项第一个字符的不同情况导致语义的区别将用别的办法处理在用该记法规定字符串类型时记法中可以出现已定义字符集中的所有字符括以双引号见其他的字符可以出现于注释项中见字符的形式大小色彩亮度及其他显示特性无关紧要大写字母和小写字母是有区别的项一般规则下列各条规定项中的字符在每种情况下都给出项名和形成项的字符序列的定义注附录补充件给出用于宏记

22、法的项下列各条规定的每个项要出现在一行上没有空格除掉注释项和列在表中的以外每行的长度没有限制本标准记法规定的序列的项可以出现在一行或者几行上可由一个或多个间隔或空行分隔若后续项的起始字符或多个字符是前项的末尾字符集包括的容许字符或多个字符时项和后续项间要用空格分隔或写在不同行内类型引用项名类型引用类型引用由任意个一个或多个字母数字或连字符组成以大写字母开头不可用连字符结尾一个连字符不能紧接另一个连字符注有关连字符的规定是为了避免与可能后随的注释混淆类型引用不应是表中列出的保留字符串中之一表保留字符序列续表注规定了宏定义中的保留字符序列标识符项名标识符一个标识符由任意个一个或多个字母数字和连字符

23、组成以小写字母开头不能以连字符结尾一个连字符不能紧接另一个连接号注有关连接号的规则是为避免与可能有的注释混淆值引用项名值引用值引用由上述中规定为标识符的字符序列组成分析记法的实例时值引用由其出现的上下文与标识符区别模块引用项名模块引用模块引用由中规定为类型引用的字符序列组成分析记法的使用实例时模块引用通过出现的上下文与标识符区别注释项名注释记法的定义中不引用注释但它可以在任意时候出现在别的项中无关紧要注释是从两个相连的连字符开始并以下一对相连的连字符或行尾为结束不论哪一个在前面注释除了开始的一对连字符及结尾的一对连字符若有的话外不能有两个相连连字符注释中可以包括不在字符集中的字符见空项项名空空

24、不包含任何字符该记法第五章中用它来规定候选序列集以指示所有的候选都缺省是可能的数项项名数数是由一个或多个数字组成除非数是单个数字否则其第一位数字不能是二进制数串项项名串串由任意个和组成在它之前放置后随一对字符例十六进制数串项项名串串由下列字符中任意个组成可以零个前置单个后随例代表十六进制的每个字符表示位的值字符串项项名串串由任意个可以为零个字符组成前后置这些字符来自某个字符集类型所用的字符集若字符集中包含则该字符要由一对来表示采用的字符不限于表列出的字符而由以串为值见的类型决定例宛姐蛇怡赋值项项名该项由序列组成注该项不包含任何空格字符见单字符项项名连字符具有上述列出的任意一个名字的项由形成名字

25、的单字符组成注项在中定义项在中定义关键字项项名有上述名字的项应由名字中字符序列组成注这些序列中无空格对以上字符序列中不在中的保留字符序列中列出的几个它们由上下文区别于包含同样字符的项变化范围分隔符项名此项应由字符序列组成注此序列不包含任何空格符省略号项名此项应由字符序列组成注此序列不包含任何空格符模块定义模块定义由下列产生式规定模块定义模块标识符标记缺省模块体模块标识符模块引用已赋值标识符已赋值标识符客体标识符值空值标记缺省空值模块体外部内部赋值表空值外部外部符号空值外部符号符号表空值内部内部符号空值外部符号来自模块表的符号空值来自模块表的符号来自模块的符号来自模块表的符号来自模块的符号来自模

26、块表的符号符号表模块标识符符号表符号符号表符号符号类型引用值引用赋值表赋值赋值表赋值赋值类型赋值值赋值注附录补充件规定一个也可以出现在赋值表中的宏定义序列由宏定义产生的记法可以在同一模块中的其他地方出现在个别情况下但不赞成这样对于例子和通用类标记的定义模块体可以在模块定义之外使用类型定义和值赋值产生式在第章中规定将数据类型组成模块时不必为表示上下文定义将表示数据信息变为命名抽象语法模块定义的标记缺省值只影响那些在模块中显式定义的类型它并不影响内部类型的表示一个宏引用见附录也可作为一个符号如果标记缺省是空值它取出现在模块定义产生式中的模块引用称为模块名模块名的选择用来保证在具有这个模块名的所有模

27、块定义序列的模块体中出现的所有序列的相容性和完整性如果对其中出现的每个类型引用和值引用只有一个类型赋值或值赋值相应的与类型或值的名字相应的相关连则赋值序列的集合是相容和完整的模块名在模块定义的应用范围内只能使用一次除中说明以外注建议在标准中定义的模块有如下形式的模块名其中是标准序号是标准内的首字母缩写如或在其他标准中可使用类似的约定类型引用和值引用在某个模块中被引用这个模块不同于使用外部类似引用或外部值引用定义的类型引用和值引用的模块后一种模块由下列产生式规定外部类型引用模块引用类型引用外部值引用模块引用值引用如果已赋值的标识符包括一个客体标识符值后者无二义地并唯一地标识此模块注建议指派客体标

28、识符使其他模块能无二义的引用这个模块在一个来自模块的符号中的模块标识符应出现在另一个模块的模块定义中除非是它包含一个客体标识符值使此模块引用在两种情况下可以不同注当符号从两个具有相同名称的模块模块命名与不符输入时只可使用一个与其他模块所使用的不同的模块引用使用替换区别名使得这些名在模块的体中使用成为有效当一个模块引用和一个客体标识符值都用于引用模块时后者应视为明确的当选择出口符号代替出口时出口符号中的每个符号应在构造模块中定义并且每个从模块外面引用的符号应恰当地被包含在出口符号中并且只有这些符号可以从模块外面引用并且如果没有这样的符号那么应选择空值代替出口符号不是代替出口注包含空值代替出口是为

29、了向后兼容在出口是空值的模块中定义的每个符号可以由其他模块引用当选择入口符号代替入口时来自模块的符号中的每个符号应在由来自模块的符号中的模块标识符所注释的模块中定义并且可在由来自模块的符号中的模块标识符所注释的模块定义中选择出口符号代替出口此符号应出现在其出口符号中并且只有那些出现在来自模块的符号的符号表之中的符号可以作为任何外部类型引用中的类型引用或任何外部值引用中的值引用出现此外部类型引用才具有由来自模块的符号的模块标识符所注释的模块引用并且如果没有这样的符号那么应选择空值代替入口符号而不是代替入口注包含空值代替入口是为了向后兼容入口是空的模块可以引用其他模块中定义的符号一个在来自模块的符

30、号的符号可以出现在已定义类型的模块体中如果它是类型引用或已定义值的模块体中如果它是值引用与符号相关的含义是由响应模块标识符注释的模块中的符号若此符号也出现在一个赋值表中反对的或出现在一个或多个来自模块的符号其他事例中它应只用于外部类型引用或外部值引用其模块引用是在来自模块的符号中见若此符号不这样出现它可以直接的用于已定义类型或已定义值除中规定的以外一个类型引用或值引用在一个模块中引用应不同于在使用外部类型引用或外部值引用定义的模块中引用按下述产生式规定外部类型引用模块引用类型引用外部值引用模块引用值引用引用类型和值定义产生式有定义类型外部类型引用类型引用有定义值外部值引用值引用描述将用于引用类

31、型和值定义的序列除规定的以外除非引用发生在一个已赋予类型和值给类型引用和值引用的模块当中见和否则类型引用和值引用候选将不使用除非相应的类型引用或值引用在相应的模块参量中被赋与一个类型或相应的值见和否则不使用外部类型引用和外部值引用类型和值的赋值通过由类型赋值产生式规定的记法类型引用被赋与一个类型类型赋值类型引用类型类型引用不能是用来引用在第章中定义的字符串类型的名字也不能是用来引用第章中定义的类型的名字通过值赋值产生式规定的记法值引用被赋与一个值值赋值值引用类型值赋与值引用的值是关于由类型定义的类型中的值的有效记法见类型和值的定义一个类型由下列类型之一形成类型固有类型有定义类型子类型见固有类型

32、布尔类型整数类型位串类型八位位组串类型空值类型序列类型单纯序列类型集合类型单纯集合类型值选择类型类型选择类型有标记类型任意类型客体标识符类型字符串类型有用类型枚举类型实数类型注在宏中定义的类型记法也可用于类型的定义见附录补充件此外的固有类型由本标准的补篇定义固有类型记法由以下各章规定子类型记法在第章中规定被引用的类型是由固有类型或赋与定义类型的子类型定义的类型在某些被引用类型的记法中这个类型可以有名字这种情况下本标准规定了有名类型记法的使用有名类型标识符类型类型类型选择类型类型选择类型的记法和相应的值记法在第章规定注当类型选择类型用作有名类型时记法类型选择类型包含一个作为值记法的一部分的标识符

33、见标识符不是类型的一部分对类型无影响由有名类型序列引用的类型即是由包含在其中的类型序列引用的类型类型的值由一个序列值描述值固有值定义值固有值布尔值整数值位串值八位位组串值空值序列值单纯序列值集合值单纯集合值值选择值类型选择值有标记值任意值客体标识符值字符串值枚举值实数值注在宏中定义的值记法也可用作值序列见附录补充件若类型用下面左边的记法之一来定义则值用下面右边的记法来规定类型记法值记法布尔类型布尔值整数类型整数值位串类型位串值八位位组串类型八位位组串值空类型空值序列类型序列值单纯序列类型单纯序列值集合类型集合值单纯集合类型单纯集合值值选择类型选择值有标记类型有标记值任意类型任意值客体标识符类型

34、客体标识符值字符串类型字符串值枚举类型枚举值实数类型实数值注另外的值记法由本标准的补篇定义若类型是一个有定义类型则值记法是用于产生有定义类型的类型记法用有用类型记法定义的类型的值记法由第章规定固有值记法由下面各章说明用有名类型记法定义的类型的值由记法有名值引用有名值标识符值值其中标识符若有与有名类型记法中使用的相同当有名类型是类型选择类型时进一步规定对有名值的限制注标识符是记法的一部分但不是值的一部分标识符当且仅当它出现在有名类型中时出现在有名值中注标识符总是出现在类型选择类型中布尔类型的记法布尔类型见由布尔类型记法引用布尔类型该类型的标记是通用类编号为布尔类型的值见和由记法布尔值定义布尔值整

35、数类型的记法整数类型见由记法整数类型引用整数类型有名数表有名数表有名数有名数表有名数有名数标识符有符号数标识符有定义值有符号数数数有符号数的第二候选在数为零时不用有名数表在类型定义中不重要它仅用于说明的值记法有定义值是引用整数类型值或由标记从整数导出的类型的值在有名数表中出现的每个有符号数或有定义值的值应是不同的表示整数类型的可区分值出现在有名数表中的每个标识符都是不同的有名数表中的有名数序列的顺序不重要该记法类型的标记是通用类的编号为整数类型的值由记法整数值定义整数值有符号数标识符整数值中的标识符与相应的整数类型中的标识符相同且序列与其值相关并表示对应的号注已定义了标识符的整数值时应该优先使

36、用整数值的标识符形式枚举类型的记法枚举类型见应由记法枚举类型引用枚举类型枚举枚举有名数枚举有名数注每个值有一个相关标识符在本记法中是一个可区分的整数这提供值表示的控制为了方便兼容扩充在枚举中的有名数之中的数字值不必有序或相邻对每个有名数标识符和有符号数应与所有在枚举中的其他标识符和有符号数区分开来枚举类型的标记是通用类编号为枚举类型的值应由记法枚举值定义枚举值标识符枚举值中的标识符应等于与此值相关的枚举类型序列中的一个标识符实数类型记法实数类型见应由实数类型记法引用实数类型实数类型的值是值和以及同能由包括了整数和的下述公式规定的实数其中叫做尾数叫基数叫指数和可以取任何整数值正或负而取值或和的所

37、有组合都允许注此类型能够承担存储在典型浮点硬件中的任何数的精确表示和具有有限字符十进制表示的精确表示中规定的此类型的编码允许用实数值的二进制表示法使用基数以及用字符表示法使用基数对此选择是发送者的事实数类型有通用类标记编号为定义实数类型值的记法应是实数值实数值数字实数值特定实数值数字实数值尾数基数指数尾数有符号数基数指数有符号数特定实数值格式应用于零值并且数字实数值的替换形式应不用于零值位串类型的记法位串类型见由记法位串类型定义位串类型有名位表有名位表有名位有名位表有名位有名位标识符数标识符有定义值有名位表在类型定义时不重要它仅用于规定的值记法中位串中的第一位是数零最后一位称为结束位注该术语用

38、于值记法和编码规则的说明中有定义值是整数类型的非负值或由标记从整数导出的类型的值出现于有名位表中的每个数或有定义值的值都是不同的它们是位串值中的可区别位的号出现于有名位表中的每个标识符都不同注有名位表中的有名位序列的顺序不重要该类型的标记是通用类的编号为位串类型的值由记法位串值定义位串值串串标识符表标识符表标识符标识符表标识符位串值中的每个标识符与位串类型中相应的标识符是相同的由记法的使用者决定或由注释说明是否需要有表示或缺省值为零的结束位注编码规则允许传送任意模式任意长度的位串若零结束位的有无是重要的则不使用关于位串值的标识符表和表示该记法用来表示一个位串值其中位串相应于标识符的序号所指出的

39、位置为而所有其他位为零注序列用来表示包含的位均为的位串值规定位串的编码规则时使用前面定义的术语第一位和结束位使用串记法时第一位在左边结束位在右边使用串记法时每个十六进制数字的最高有效位对应位串中的较前的值最左注该记法完全不限制传送时编码规则将位串组织为八位位组的方式除下面情况以外不使用串记法位串值由多个位组成结束零位的有无是不重要的例子和是同一位串值的不同记法八位位组串类型的记法八位位组串类型见由记法八位位组串类型引用八位位组串类型该类型的标记是普通的记为八位位组串类型的值由八位位组串值记法定义八位位组串值串串规定对八位位组串的编码规则时使用术语第一八位位组和结束八位位组且对八位位组中的位使用

40、术语最高有效位和最低有效位使用串记法时最左位应是第一位位组的最高有效位若串不是八位的倍数时则在其后补加另外的一些零结束位以形成下一个八位的倍数使用串记法时最左十六进制是第一位位组的最高有效半串若串包括的十六进制数字不是偶数个则补加它的最后一个数值为零的十六进制数空类型的记法空类型见由记法空类型引用空类型该类型的标记是通用类记为空类型的值由记法空值引用空值序列类型的记法从其他类型定义序列类型见的记法是序列类型序列类型元素类型表元素类型表元素类型元素类型表元素类型元素类型有名类型有名类型有名类型值类型元素类型的第四候选中的类型是序列类型在元素类型表中类型记法用来定义出现在被引用的序列类型重点所有的

41、元素类型的组合注在满足下面各条的要求之前该条的变换中逻辑上是可行的除非元素类型表中的类型都有不同的标记否则不使用和见第章在和出现时则相应的值可以从新类型的值以及由编码规则传送的信息中省略注值记法这时可能有二义性除非每个有名类型中都有标识符序列编码规则保证省去和元素值的序列值编码与省略相应元素而定义出的序列类型的序列值的编码相同这个特点对定义子集有用若有则该类型的值的省略与由某值定义的值的插入是等效的这个值是有名类型序列中相应类型的映像的值定义元素类型表序列的所有有名类型中的标识符若有都是不同的所有的序列的标记都是通用类的编号为注单纯序列集有着相同的标记见用于定义序列类型的值的记法是序列值序列值

42、元素值表元素值表有名值元素值表有名值表示仅用于下列情形之一序列类型中的所有的有名类型序列被标记为或且所有的值都省略类型记法是对没有标记或的序列类型中的每个有名类型有一个有名值这些值的排列顺序与相应的有名类型的序列的次序相同注不带有标识符的有名类型的使用是允许的但若有了或时会导致值记法的二义性单纯序列类型的记法由其他类型定义单纯序列类型见的记法是单纯序列类型单纯序列类型类型记法与记法见第章是同义的所有单纯序列类型的标记是通用类编号为注序列类型有着相同的标记见用于定义单纯序列值的记法是单纯序列值单纯序列值值表值表值值表值记法当单纯序列值中无组成值时使用值表中的每个值序列是单纯序列类型中说明的相应类

43、型的值的记法注语义可能按照这些值的次序给出集合类型的记法由其他类型定义的集合类型见的记法是集合类型集合类型元素类型表元素类型表在中已说明元素类型见的第四候选中的类型是集合类型类型记法用于定义出现在被引用类型中的所有元素类型序列的组合注在满足下列各条的要求之前该条的变换在逻辑上是可行的集合类型中的各个元素类型都有不同的标记见第章和三条也适用于集合类型所有集合类型的标记是通用类编号为注单纯集合类型有着相同的标记见集合类型中值的顺序无任何意义集合类型的值由记法集合值定义集合值元素值表元素值表在中已规定集合值只为如果集合类型中的所有元素类型序列都标记为或且所有的值都被省略或相应的类型记法是集合类型中未

44、标有或的每个有名类型有一个有名值注这些有名值可以有任意顺序允许使用不带标识符的有名类型但可能导致值记法的二义性单纯集合类型的记法由其他类型定义单纯集合类型见的记法是单纯集合类型单纯集合类型类型记法与记法见第章是同义的单纯集合类型的标记是通用类记为注集合类型有着相同的标记见定义单纯集合类型的值的记法是单纯集合值单纯集合值值表值表在中已说明当单纯集合值中无任何组成值时使用记法值表中的每个值序列是单纯集合类型中描述的相应类型的值的记法注这些值的顺序无任何意义编码规则不要求保持这些值的顺序值选择类型的记法由其他类型定义值选择类型见的记法是值选择类型值选择类型候选类型表候选类型表有名类型候选类型表有名类

45、型注编码规则给出被选择到的候选类型编码的方法与该候选类型中组成类型的编码方法是相同的在候选类型表中只用单个有名类型而定义的值选择类型等同于直接使用有名类型中的类型的值候选类型表中定义的每个类型都有不同的标记见第章值选择类型的标记是可变的当选到某一个值时标记等于取得该值的候选类型表中有名类型中的某类型的标记当该类型用于按本标准要求使用不同标记类型之处时见和则候选类型表中定义的所有类型的标记都应与其他类型的标记不同见第章下面的例子说明了这一要求例和例是这个记法的正确使用例是不正确的其中类型的标记是不同的例子不正确候选类型表的所有有名类型序列的标识符若有都是不同的当该类型用在按本标准要求需使用带有不

46、同标识符的类型之处时则候选类型表中的所有有名类型的标识符若有都应该与其他有名类型的标识符不同定义选择类型值的记法是值选择值值选择值有名值若有名值含有标识符则它应是候选类型表中带有同一标识符的类型的值的记法若有名值不含有标识符则它是候选类型表中不带标识符的那些类型之一的值记法注误用有名类型中的标识符会产生值记法的二义性类型选择类型的记法出现在类型选择类型的候选类型表中的有名类型可被记法类型选择类型引用类型选择类型标识符类型其中类型是由类型选择类型定义的记法标识符是有名类型中的标识符注类型选择类型能作为有名类型或有名类型中的类型来使用在作为有名类型使用的情况标识符用值表记使用在作为有名类型的类型使

47、用时标识符不用类型选择类型的值的记法是类型选择值类型选择值有名值其中若类型选择类型用作有名类型时则有名值含有出现在相应的类型选择类型中的标识符但其他情况下没有有标记类型的记法有标记类型见是个新类型它与某个旧类型同形但有不同的标记在任何编码机制里新类型的值与旧类型的值是不同的有标记类型主要用于标准要求类型的使用具有不同标记之处见和注当协议要随时立即传输来自几个数据类型的值时就需要使用不同的标记来保证接收者正确地对这些值解码有标记类型的记法是有标记类型有标记类型标记类型标记类型标记类型标记标记类类号类号数有定义值标记类空有定义值是整数连续的非负值或者是从整数类型置标记得出的类型的值新类型与旧类型同

48、形但带有以标记类为类别和以类号为序号的新标记除非标记类是空当标记是上下文规定类时则只带有新的类号除本标准中定义的类型以外标记类不是注对通用类标记的使用和会经常协商若类是时在同一模块中同样的标记不可再次使用若类是标记在使用者定义的基础上可使用如果下述任何一条成立标记构造规定显式标记使用标记类型替换项使用标记类型替换项并且模块的默认标记值是使用标记类型并且模块的默认标记值是但由类型定义的类型是值选择类型或任意类型否则标记的构造规定隐式标记若类是空标记的使用无任何限制与由各条中使用相异标记的要求所不同隐式标记指明对于提供该候选项的编码规则有标记类型中的类型的标记的显式标识在传送时是不必要的注若是通用

49、类保留旧标记是有用的因此可以不用新类型定义的知识而无二义地标识该类型但是所传送的八位位组的最小数目通常是使用得到的在中给出一个用编码的例子若由类型定义的类型是选择类型或任意类型时则不用候选有标记类型的值的记法是有标记值有标记值值其中值是有标记值中相应类型的值的记法注标记在这个记法中不出现任意类型的记法任意类型的记法见是任意类型任意类型标识符注除非别的规范补充在标准或建议中使用产生一个不完整规范结构提供了一个通信事例中规定填充的类型的方法以及一个指向其语义的指针如果下述使用规则予以遵守可以提供一个完整规范而不赞成使用而不带结构仅当任意类型或通过标记从上导出的一个类型是序列类型或集合类型包含类型的部件类型之一时才使用候选项在候选项中的标识符应出现在规定另一个非选择性的包含类型的部件的有名类型中此有名类型应是整型或客体标识符类型当有名类型是一个整数类型时使用记法的文件应包含或显式引用一单个表此表规定了承担的类型对整数类型每一个允许的值应有一个这样精确的表包括所有包含类型的通信事例当有名类型是一个客体标识符类型时对每一个分配的客体标识符值需要具有与承担的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国家标准

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1