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、交换文件结构复合实体实例映射到交换文件结构应该采用两种映射规则之一内部映射或外部映射一种映射规则用于子类型实体的每一个实例注映射的选择依赖于实体实例而不是实体类型对于相同实体类型的不同实例使用不同的映射方法是可能的这依赖于它们是否是子类型的实例以及它们把哪些子类型实例化注本条仅用于复合实体实例这没有必要用于超类型实体的每一个实例具体说它不用于不是任何子类型实例的超类型实例这样的实体是可以存在的超类型不是一个抽象超类型且自己不是某个其他实体的子类型这种实例的映射要按照对于每一个实体实例所使用映射规则的选择取决于实现所采取的一致性级别对于一致性级别的实现映射的选择在中规定对于一致性级别的实现所有复合实体实例应该采用在中规定的外部映射映射的缺省选择一组由子类型和隐式或显式的超类型表达式连接的实体数据类型定义规定了一个复合实体实例结构的集合引用附录的求解集集合求解集的每一个成员规定实体数据类型名的一个表一个实体数据类型的每一个具体实例对应求解集的一个成员可用于具体实例的映射依赖于它对应