版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ICS25.040.40GB/T16656.14—2023/ISO10303-14:2005工业自动化系统与集成产品数据EXPRESS-X语言参考手册exchange—Part14:Descriptionmethods:TheEXPRESS-Xlanguagereference(ISO10303-14:2005,IDT) 布发71-03-20232023-10-01实施享受河星设会负服务 V 1 1 1 1 23.3其他术语和定义 24基本原则 3 34.2执行模型的基本原则 44.3实施环境 6 75.1EXPRESS-X的一致性类 7 8 97.1概述 9 9 9 98.2视图数据类型 9 9.1概述 9.2绑定 9.3视图声明 9.4映射声明 9.5模式视图声明 9.6模式映射声明 9.7局部声明 9.8常量声明 IⅡ 10.2视图调用 10.3映射调用 10.4部分绑定调用 10.6IF表达式 10.9反向路径操作符 12.2模式视图 12.4视图和从属视图 12.8映射和从属映射 12.10实例化循环 4612.11路径表达式 13.2REFERENCE语言元素 附录A(规范性)信息对象识别 附录B(规范性)EXPRESS-X语言的语法 附录C(规范性)EXPRESS-X到EXPRESS的转换算法 附录D(资料性)实施注意事项 附录E(资料性)路径操作符unnest函数 附录F(资料性)映射表语义 参考文献 Ⅲ本文件按照GB/T1.1—2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定本文件是GB/T16656的第14部分。GB/T16656《工业自动化系统与集成产品数据表达与交 第28部分:实现方法:EXPRESS模式和数据的XML表达(使用XML模式) 第43部分:集成通用资源:表达结构 第45部分:集成通用资源:材料和其他工程特性 第46部分:集成通用资源:可视化显示 第55部分:集成通用资源:过程与混合表达 第102部分:符合GB/T16656一致性规范的视图交换协议 第503部分:应用解释构造:几何有界二维线框: 第505部分:应用解释构造:图样结构与管理 第508部分:应用解释构造:非流形曲面 GB/T16656.14—2023/ISO10303-14:2005本文件等同采用ISO10303-14:2005《工业自动化系统与集成产品数据表达与交换第14部分:本文件做了下列最小限度的编辑性改动:请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由中国机械工业联合会提出。NGB/T16656.14—2023/ISO10303-14:2005GB/T16656是用于计算机解释性表示和交换产品数据的国家标准,其目的是提供一种独立于任GB/T16656《工业自动化系统与集成产品数据表达与交换》是一项由多个部分组成的标准,各部分单独出版。GB/T16656《工业自动化系统与集成产品数据表达与交换》由以下系列组成:——第1至第19部分描述方法;——第20至第29部分实现方法;——第30至第39部分一致性测试方法与框架;——第40至第59部分集成通用资源;——第100至第199部分集成应用资源; 第200至第299部分 第300至第399部分——第400至第499部分——第500至第599部分应用解释构造;——第1000至第1999部分应用模块。本文件属于GB/T16656的描述方法系列。假定使用本文件的读者熟悉ISO10303-11中定义的数据规范语言和ISO10303-21中定义的纯文V1GB/T16656.14—2023/ISO10303-14:2005工业自动化系统与集成产品数据表达与交换第14部分:描述方法:EXPRESS-X语言参考手册1范围本文件规范了用于指定由EXPRESS模式描述的数据间关系的一种语言,以及用于规定由EXPRESS模式描述的数据的可替换视图。该语言称为EXPRESS-X。EXPRESS-X是一种结构化数据映射语言。它由无二义性地规范EXPRESS模式之间关系的语言元素组成。以下内容在本文件范围内: 从一个EXPRESS模式描述的数据向另一个EXPRESS模式描述的数据的映射 从一个EXPRESS模式的一个版本描述的数据向该EXPRESS模式的另一个版本描述的数据 用于数据共享和数据交换应用程序的数据转换器的要求规范; 由EXPRESS模式定义的数据的可替换视图的规范; 应用协议映射表的其他表示法; 数学上可能的双向映射: 可以评估映射产生的数据的约束的规范。以下内容不在本文件范围之内: 使用除EXPRESS之外的方式进行定义的数据映射 标识EXPRESS模式的版本; 用EXPRESS-X语言的结构的图形表示。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于GB/T16656.1--2008工业自动化系统与集成产品数据表达与交换第1部分:概述和基本原理(ISO10303-1:1994,IDT)GB/T16656.11—2010工业自动化系统与集成产品数据表达与交换第11部分:描述方法:EXPRESS语言参考手册(ISO10303-11:2004,IDT)3术语和定义3.1GB/T16656.1—2008中定义的术语GB/T16656.1-2008界定的下列术语适用于本文件。——数据;2GB/T16656.14—2023/ISO10303-3.2GB/T16656.11—2010中定义的术语GB/T16656.11-2010界定的下列术语适用于本文件。 复合实体(数据类型)实例-—常量; -—部分复合实体值; ——子类/超类图;——标记;——值。3.3.1来自源实体数据类型范围和视图范围中的实例所构造的一组绑定实例。3.3.2引用与视图或映射关联的实体数据类型实例和视图数据类型实例的一种集合。3.3.3实体数据类型范围entitydatatypeextent3.3.4能够解析采用EXPRESS-X语言规范表示的工具。3.3.5根据EXPRESS-X语言规定的规范执行结构信息映射的工具。3.3.6一种或多种源实体数据类型或源视图数据类型的数据与一种或多种目标实体数据类型的数据之间3.3.7到多重目标实体实例的映射。3GB/T16656.14—2023/ISO10303-14:20053.3.83.3.9选择准则selectioncriterion3.3.103.3.113.3.12通过映射生成的实体实例的一种集合。3.3.13EXPRESS模式中信息的一种组织方式。3.3.143.3.15视图数据类型实例viewdatatypeinstance通过评估视图而建立的一种命名信息单元。3.3.164基本原则以下原则适用于本文件;GB/T16656.11—2010第5章中描述的概念也适用于本文件。EXPRESS-X给出以下规定:——在模式视图(见9.5)中使用视图声明(见9.3)区分由EXPRESS模式描述的数据的视图;——使用模式映射(见9.6)中的映射声明(见9.4),将由一个或多个源EXPRESS模式描述的数据映射到由一个或多个目标EXPRESS模式描述的数据。4GB/T16656.14—2023/ISO10303-14:2005SCHEMA_VIEWmy_person_org_schema_view;REFERENCEFROMperson_and_org_schema;VIEWperson_org;FROMSELECTp:person;o:organization;-providesorderingname:STRING:=p.last_name;org:STRING:=o.department_name;END_VIEW;END_SCHEMA_VIEW;SCHEMAperson_and_org_schema;ENTITYperson;first_name:STRING;last_name:STRING;END_ENTITY;ENTITYorganization;department_name:STRING;END_ENTITY;END_SCHEMA;#1≠PERSON('James','Smith′);#2=PERSON('Fredrick','Jones');#31=ORGANIZATf(N('Engineering');#32=ORGANIZATION('Sales');此视图和数据的绑定实例可以按如下方式编写。绑定实例的概念在后面的条款中定义,不一定要理解该示例。但值得注意的是,每个绑定实例的第一个元素从person范围提取,第二个元素从organi-zation范围提取。此顺序对应于视图的FROM语言元素中person和organization的描述顺序:4.2执行模型的基本原则本文件定义了一种语言和一种执行模型。执行模型由两个阶段组成:绑定过程和实例化过程。视图和映射的评估共享一个公用的绑定过程,但是在实例化方面有所不同。绑定是一个给变量赋值的过程。绑定实例是一种结构,用于绑定在视图或映射声明的FROM语言元素中声明的变量。FROM语言元素引用源实体范围和视图范围。绑定的值取自这些源范围。每个绑定实例都是作为引用源扩展区的笛卡尔积计算的集的成员。这样计算的绑定实例集是给定源范围的视图或映射的绑定范围。绑定实例的变量绑定为实例化过程中视图或映射主体的求值提供了环境,其中绑定实例中引用的数据与在目标总体中创建的结构有关。因此,每个绑定实例对应于目标总体中的一个视图数据类型实例(视图)或目标实体数据类型实例(映射)。映射和视图的源范围应为实体数据类型范围或视图范围。禁止引用源范围之间的循环。示例1:应用于4.1的示例中定义的视图、数据和模式的绑定过程计算person_org{<#1,#31>,<#1,#32>,<#2,#31>,<#2,#32>}的绑定范围。该范围以表格形式描述如下:5GB/T16656.14—2023/ISO10303-14:2005BindingInstancePersonOrganization#first_namelast_name井department_nameJames'Smith'#31Engineering'James'Smith'#32Sales''FredrickJones'#31'Engineering《#2,井32)Fredrick''Jones'井32Sales'示例2:下面的schema_view是无效的;它包含一个引用循环(视图a引用视图b,视图b引用视图a)。SCHEMA_VIEWinvalid;VIEWa;FROMsome_b:b;attrl:INTEGER:≠some_b.attr2+2;END_VIEW;VIEWb;FROMsome_a:a;attr2:INTEGER:=some_a.attrlEND_SCHEMA_VIEW;4.2.3实例化过程绑定是一个将实例化过程用值赋予变量的过程。每个绑定实例提供一组要绑定到变量的值。视图实例化过程是在绑定范围内为每个绑定实例计算视图主体(见9.3.2)的过程。绑定实例的计算顺序没有进行制定。32>,<#2,#31>,(#2,#32>}。该示例中使用的视图声明和数据在此处重复:VIEWperson_org;FROMp:person;o:organization;--providestheillustratedorderingSELECTname:STRING:=p.last_name;org:STRING:=o.department_name;END_VIEW;#1=PERSON('James','Smith');#2=PERSON('Fredrick','Jones′);#31=ORGANIZATION('Engineering');#32=ORGANIZATION('Sales');绑定实例<#1,#31>对应于实体数据类型实例#1赋值给变量p,#31赋值给变量o。在这个绑定中,对视图主体#100=PERSON_ORG('Smith','Engineering');#101=PERSON_ORG('Smith','Sales');#102=PERSON_ORG('Jones','Engineering');#103=PERSON_ORG('Jones','Sales');/*〈井1,#31>*//*〈#1,#32〉*//*〈#2,#31〉*//*〈#2,#32>*/SCHEMAsimilar_target;ENTITYperson_org;6GB/T16656.14—2023/ISO10303-14:2005name:STRING;REFERENCEFROMperson_and_org_schemaASSOURCE;MAPperson_org_mapASpo:person_org;p:person;对前一个示例的数据进行求值,结果得到以下由模式similar_target描述的实体数据类型实例:#100=PERSON_ORG('Smith','Engineering');井101=PERSON_ORG('Smith','Sales');#102=PERSON_ORG('Jones','Engineering');#103=PERSON_ORG('Jones','Sales');/*〈#1,#31>*/当映射(视图)声明主体赋值右侧的表达式仅包含源实体的属性引用(.),并且引用的属性是显式属性时,该目标实体属性(视图属性)的映射是双向的。示例3:MAPperson_org_mapASpo:person_org;p:person;:=p.last_name;--:=o.department_name;--bi-directionalpo.industry_code:=0.owning_enterprise.industry.code_num;-bi-directionalpo.dept_number:=dept_func(o.department_name);-possiblynotbi-directional属性po.dept_number是否是双向,取决于dept_func函数的性质。4.2仅规定了执行模型的基本方面。有关绑定过程的详细信息,见9.2。9.3描述了视图实例化过程的细节。映射的实例化过程的详细信息在9.4中描述。EXPRESS-X语言不描述实现环境。特别地,EXPRESS-X没有规定以下内容:——如何解析对名称的引用;-—如何对不符合EXPRESS模式的实例执行映射。对视图的求值得到视图范围。对映射的求值可能会在目标数据集中生成实体实例。EXPRESS-X没有明确说明在初始映射之后对源数据的修改可能对视图范围或目标数据集产生的影响。7GB/T16656.14—2023/ISO10303-14:2005EXPRESS-X解析器或映射引擎实现的一致性类由实现所支持的语言的部分所定义。声明按表1中的语言子集分类。声明子集1子集2视图声明映射声明关联映射声明常量声明●功能声明过程声明规则声明EXPRESS-X解析器或映射引擎的使用者应声明关于标识符的数量和长度、处理的数字范围以及5.1.2EXPRESS-X解析器的一致性类EXPRESS-X解析器的实现应能够解析与该实现相关联的一致性类相符的、用EXPRESS-X编写的任何形式化规范。如果EXPRESS-X解析器可以将特定级别的检查(如5.1.4所定义)应用到以EX-PRESS-X编写的形式化规范中,则该解析器可以被认为符合该特定级别(如5.1.4所定义)。符合EXPRESS-X解析器的一致性类1应能解析来自语言子集1的所有声明(见表1)。符合EXPRESS-X解析器的一致性类2应能解析来自语言子集2的所有声明(见表1)。符合EXPRESS-X解析器的一致性类3应能解析可能出现在本文件中的所有声明。5.1.3EXPRESS-X映射引擎的一致性类EXPRESS-X映射引擎的实现应能够执行任何与该实现相关联的一致性类相符的、用EXPRESS-X编写的形式化规范。映射执行针对一个或多个源数据集;这些数据集如何提供给映射引擎的规范不在本文件范围之内。符合EXPRESS-X映射引擎的一致性类1应能执行来自语言子集1的所有声明(见表1)。符合EXPRESS-X映射引擎的一致性类2应能执行来自语言子集2的所有声明(见表1)。符合EXPRESS-X映射引擎的一致性类3应能执行本文件中可能出现的所有声明。5.1.4EXPRESS-X解析器的一致性检查用EXPRESS-X编写的形式化规范应与以下指定的给定检查级别一致。只有在对该规范进行验证GB/T16656.14—2023/ISO10303-14:2005此级别包括检查形式化规范,以确保其在语法和引用上均有效。如果形式化规范符合扩展附录A中提供的主要语法规则(Syntax)所生成的语法,则在语法上有效。如果对EXPRESS-X项的所有引用均与第13章中定义的范围和可见性规则一致,则形式化规范是引用有效的。该级别由第1级检查和形式化规范的检查组成,以确保其符合以下要求:——表达式应符合第10章和GB/T16656.11—2010中第12章规定的规则;——赋值应符合GB/T16656.11—2010中13.3规定的规则。所规定的“A大于B”形式的陈述相一致。这仅限于可以从文字和/或常量同时评估A和B的那些此级别包括形式化规范的检查,以确保其符合本文件中指定的所有规定要求。6语言的规范语法本章规定了EXPRESS-X语言的语法表示标记法。附录B给出了EXPRESS-X语言的完整语法。部分语法规则在不同的条款中出现,以便说明具体语句的语法。这部分语法规则一般是不完整的,有时需要参考附录B查找缺失的语法规则。本文件的语法规则都用矩形方框给出,方框中每条规则的左侧都有一个唯一编号,用于语法规则之间相互引用。EXPRESS-X语言的语法定义采用派生的沃思语法标记法(WirthSyntaxNotation,WSN)。以下给出标记的约定以及WSN本身的定义。syntax={production}.production=identifier'='expression'..expression=term{''term}.term=factor{factor}.literal=''''character{character}''''.group='('expression')'.option='['expression']'.repetition='{'expression'}'.——要素中的标识符表示出现在另一个产生式左边的非终结符号,标识符由字母、数字和下划线组成。该语言中的关键词是用标识符仅由大写字母组成的产生式表示的。——文字一词表示不能进一步扩展的终结符号。文字是括在单引号中的独立的字符序列。当文字89GB/T16656.14—2023/ISO10303-14:2005●花括号′{}′表示零或多次重复;●方括号'[]′表示可选参数;●圆括号′()′表示括号中的这组产生式应作为单一的产生式使用;以下符号用于表示整个字符集和某些难以显——\a代表GB/T16656.1--2008中的任何字符;——\n代表换行符(取决于系统)(见GB/T16656.1—2008第条)。EXPRESS-X的语言元素是在GB/T16656.11—2010的第7章中定义的EXPRESS语言的语言元EXPRESS-X的保留词包括内置常量、函数和过程的关键词和名称。EXPRESS的所有保留词(GB/T16656.11—2010)均为EXPRESS-X的保留词。保留词不得用作标识符。EXPRESS-X的附加保留词在表2中有详细说明。表2其他EXPRESS-X关键词DEPENDENT_MAPEACHEND_SCHEMA_MAPIDENTIFIED_BYPARTITIONTARGETELSIFEND_SCHEMA_VIEWSCHEMA_MAPVIEWEND_DEPENDENT_MAPEND_VIEWMAPSCHEMA_VIEWEND_MAPEXTENTORDEREDSOURCEBY注:如果合法的EXPRESS标识符是EXPRESS-X中的保留词,则可以通过使用REFERENCE语言元素重新命名出现冲突的标识符来映射使用该标识符的模式(见13.2)。此处定义的数据类型以及EXPRESS语言(GB/T16656.11—2010的第8章)中定义的数据类型作一个标识符。该标识符引用了视图数据类型。语法:230view_reference=[(schema_map_ref|schema_view_ref)'.']view_ref.GB/T16656.14—2023/ISO10303-14:2005VIEWcircle;FROMe:ellipse;WHERE(e.major_axis=e.minor_axis);radius:REAL:=e.minor_axis;centre:point:=e.centre;END_VIEW;本章定义EXPRESS-X中的各类声明。EXPRESS-X声明可创建一个新的EXPRESS-X项并将标——view;——map;——dependentmap;——schemamap。—-procedure;—-rule。绑定范围是由源实体数据类型范围和视图范围中的实例构造的一组绑是视图或映射声明的FROM语言元素中引用的范围的笛卡尔积。值的绑定下返回TRUE的那些绑定实例组成。9.2.2绑定范围FROM语言元素在绑定范围中定义绑定实例的元素。FROM语言元素由一个或多个源参数组GB/T16656.14—2023/ISOview_decl=(root_view_decl|dependent_view_decl|subtype_view_decl).map_decl=MAPmap_idAStarget_parameter';'{target_parameter';'}(map_subtype_ofclausesxubtype_binding_headermap_decl_body)|(binding_headermap_decl_body{binding_headermap_decl_body})END_MAP';'.47binding_header=[PARTITIONpartition_id';'][from_clause][local_decl][where_clause][identified_by_clause][ordered_by_clause].90from_clause=FROMsource_parameter';'{source_parameter';'}.source_parameter=source_parameter_id':'extent_reference.83extent_reference=source_entity_reference|view_reference.source_parameter_ids在映射或视图声明的范围内应是唯一的。绑定范围被计算为FROM语言元素中引用范围中实例的笛卡尔积。SCHEMAsource_schema;--Aname:STRING;VIEWitems_and_persons;responsible#1=ITEM(123,'Smith');#2=ITEM(234,'Smith');#33=PERSON('Jones');item_and_person的相应绑定范围是:{<#1,#33>,〈#1,#44>,〈#2,#33>,〈#2,#44>}。9.2.3绑定范围的限定WHERE语言元素定义了绑定范围中绑定实例的选择条件。WHERE语言元素与FROM语言元素中标识的源范围一起定义了限定的绑定范围。绑定是将值赋给变量的过程。将FROM语言元素的源参数绑定到绑定实例。WHERE语言元素的域规则表达式使用此绑定进行计算。如果WHERE语言元素的所有域规则表达式的值都为TRUE,GB/T16656.14—2023/ISO10303-14:2005WHERE语言元素的语法定义在GB/T16656.11—2010的中规定。REFERENCEFROMsource_schema;VIEWitems_and_persons;FROMi:item;p:person;WHERE(='Smith′)OR(='Jones');(i.approved_by=);name:STRING:=;上述示例中数据对应的限定绑定范围为:{<#1,#44>,〈#2,#44>}.不包含identified_by_clause语言元素的映射或视图的绑定实例用FROM语言元素中引用的范围值(实体数据类型实例)进行标识。包含identified_by_clauses语言元素标识的映射或视图的绑定实例用语法规则108中的expression语言元素值进行标识。视图调用(见10.2)和映射调用(见10.3)使用这107identified_by_clause=IDENTIFIED_BYid_parameter';'{id_parameter';'}.108id_parameter=[id_parameter_id':']expression.90from_clause=FROMsource_parameter';'{source_parameter';'}.198source_parameter=source_parameter_id':'extent_reference.用于映射声明时,id_paramete个实例的上下文中计算该表达式会产生实例相等的结果(GB/T16656.11—2程为每个等价类生成一个视图实例(视图)或目标网络(映射)。SCHEMA_VIEWexample;REFERENCEFROMsome_schema;VIEWdepartment;FROMe:employee;IDENTIFIED_BYe.department_name;name:STRING:=e.department_name;END_VIEW;GB/T16656.14—2023/ISO10303-14:2005SCHEMAsome_schema;ENTITYemployee;name:STRING;department_name:STRING;END_ENTITY;END_SCHEMA;#1=EMPLOYEE('Jones','Engineering');#2=EMPLOYEE('Smith','Sales');#3=EMPLOYEE('Doe','Engineering');对于上述给定的视图和实例集,存在两个等价类:{<#1>,<#3>}和{<#2>},分别对应于e.depart-视图属性(见9.3.2)和目标实体属性(见9.4.2)表示相应视图(视图声明)和目标网络实体(映射声明)的属性。通过计算相应的expression(语法规则224)为这些属性赋值。针对限定的绑定范围内的绑type':='expression';'.134map_attribute_declaration=[target_parameter_ref[index_qualifier][group_qualifier]'.!]attribute_ref[index_qualifier]':='expression';'.如果由identified_by_clause语言元素定义的等价类包含多个限定绑定实例,则expression的值计算如下:——如果存在expression(语法规则224)计算为确定值的绑定实例,并且如果所有此类确定值都相——如果对于两个或多个绑定实例,对属性表达式的求值会产生不确定、不相等的值(实例相等),或者如果所有求值都会产生不确定的值,则会为该属性分配不确定的值。(*sourceschema*)(*targetschema*)SCHEMAsrc;SCHEMAtar;ENTITYemployee;ENTITYdepartment;name:STRING;employee:STRING;manager:STRING;manager:STRING;dept:STRING;dept_name:STRING;END_ENTITY;END_ENTITY;END_SCHEMA;END_SCHEMA;(*mappingschema*)SCHEMA_MAPexample;REFERENCEFROMsrcASsOURCE;REFERENCEFROMtarASTARGET;MAPdepartment_mapASd:department;FROMe:src.employee;IDENTIFIED_BYe.dept;SELECTGB/T16656.14—2023/ISO10303-14:2005d.employee:=;d.manager:=e.manager;d.dept_name:=e.dept;END_MAP;END_SCHEMA_MAP;#1=EMPLOYEE('Smith','Jones','Marketing');#2=EMPLOYEE('Doe','Jones','Marketing');给定上面的数据,目标数据集包含一个实体实例,即#1=DEPARTMENT($,'Jones','Market-ing')。属性department.dept_name是不确定的,因为此属性的表达式求值为两个不同的值('SmithORDERED_BY语言元素定义了对限定绑定范围的绑定实例的排序。在相应视图或映射分区上的部分绑定调用(见10.4)根据ORDERED_BY语言元素对聚合求值(如果存在的话)。ORDERED_BY语言元素中的expression应计算为分区中所有绑定的相同order-comparable类型的值。order-comparable类型包括NUMBER、BINARY、STRING以及ENUME的具象化。对绑定范围的结果排序应确保表达式(e<f)的计算结果不为FALSE,其中e和f分别是对绑定范围任意两个连续元素的expression计算(见语法规则148)产生的值,<是EXPRESS的值比较操作符(GB/T16656.11-2010的12.2.1)。如果指定了额外的expression语言元素,则对于每个后续的expression,流程描述将应用于上一个expression的结果。语法:47binding_header=[PARTITIONpartition_id';'][from_clause][local_decl][whereclause][identified_by_clause][ordered_by_clause].148ordered_by_clause=ORDERED_BYexpression{','expression}';'b)子类视图和映射分区不应指定ORDERED_BY语言元素。子类视图和映射分区应该继承定c)与类型层次结构相关的视图分区集合应包含不超过一个ORDERED_BY语言元素。d)通过map_subtype_of_clause(见语法规则141)关联的映射分区集合应包含不超过一个OR-VIEWarm_person_role_in_organization;FROMpao:person_and_organization;ccdpaoa:cc_design_person_and_organization_assignment;WHEREccdpaoa.assigned_person_and_organization:=:pao;SELECTperson:person:=pao.the_person;GB/T16656.14—2023/ISO10303-14:2005org:organization:=pao.the_organization;role:label:=;END_VIEW;语法:228view_decl=(root_view_decljdependent_view_decl|subtype_view_decl)47binding_header=[PARTITIONpartition_id';'][from_clause][local_decl][where_clause][identified_by_clause][ordered_by_clause].90from_clause=FROMsource_parameter';'{source_parameter';'}.198source_parameter=source_parameter_id':'extent_reference.83extent_reference=source_entity_reference|view_reference.视图数据类型的属性表示视图的属性。视图实例的属性值计算为语法规则224的expression的值。视图属性的名称,即语法规则224的view_attribute_id,代表了其关联值在其出现的视图上下文中所扮演的角色。语法:226view_attr_decl_stmt_list={view_attribute_decl}.224view_attribute_decl=view_attribute_id':'[OPTIONAL][source_schema_ref'.']basetype':=′expression';'.a)对语法规则224的执行结果的赋值应与视图属性的base_type兼容。b)在视图声明中声明的每个view_attribute_id在该解码器内应是唯一的。c)OPTIONAL表示属性的值可能是不确定的。OPTIONAL的使用对执行模型没有影响。视图分区是视图范围的子集。视图范围是其分区的并集。视图声明由一个或多个分区声明组成,每个分区声明都有自己的FROM和WHERE语言元素。VIEWarm_organization;PARTITIONa_single_person;FROMp:person;PARTITIONa_single_organization;FROMo;organization;PARTITIONa_person_in_an_organization;FROMpo:person_and_organization;GB/T16656.14—2023/ISO10303-14:2005228view_decl=(root_view_decl|dependent_view_decl|sub67dependent_view_d206subtype_view_decl=VIEWview_idsubtype_declaration';'subtype_binding_header203subtype_binding_header=[PARTITIONpartition_47binding_header=[PARTITIONpartition_id';'][from_clause][local_decl][wherea)如果视图声明中存在多个分区,则应为每个分区提供partition_id。b)视图声明中的每个partition_id应是唯一的。c)一个视图声明的所有分区都应定义相同的属性(包括名称和类型)。d)一个视图声明的属性在其每个分区中应以相同的顺序出现。省略FROM、WHERE和IDENTIFIED_BY语言元素的分区称为常量分区。这样的分区表示与源数据没有对应关系的单个视图实例。VIEWperson:PARTITIONmary;SELECTname:STRING:='Mary'age:INTEGER:=22;PARTITIONjohn;SELECTname:STRING:='John';age:INTEGER:=23;从属视图是未定义属性的视图。从属视图的分区指定RETURNexpression(见语法规则67)。expres-sion的求值不应产生AGGREGATE类型的值。计算出的值应与base_type类型兼容(见语法规则67)。语法:228view_decl=(root_view_decl|dependent_view_decl|subtype_view_decl)67dependent_view_decl=VIEWview_id':'ba{binding_headerRETURNexpression}END_VIEW';'GB/T16656.14—2023/ISO10303-14:2005如果由从属视图的IDENTIFIED_BY语言元素定义的等价类包含多个限定绑定实例,则返回的值——如果对于两个或多个绑定,RETURN表达式(语法规则67)产生不相等的值,则返回不确定WHERErc.colour='red';VIEWowner_name:STRING;FROMpo:petson;RETURN;EXPRESS-X允许将视图指定为其他视图的子类,其中子类视图数据类型是其超类的具象化。这将在视图数据类型之间建立继承关系,其中子类继承其超类的属性和选择条件。如果视图包含SUB-TYPE语言元素,则它是子类视图。子类视图数据类型的范围是由子类子类视图从其超类视图继承属性。属性继承应遵循GB/T16656.11—2010中定义的属性子类视图声明可以重新定义在其一个超类中找到的属性。属性重新定义应遵循GB/T16656.11—2010中定义的属性重新定义规则和约束。择条件及其所有超类视图都求值为TRUE,则该视图实例的类型应与子类视图相对应。228view_decl=(root_view_decl|dependent_view_decl|subtype_view_decl).206subtype_view_decl=VIEWview_idsubtype_declaration';'subtype_binding_header205subtype_declaration=SUBTYPEOF'('view_ref{','view_ref}′)'.203subtype_binding_header=[PARTITIONpartition_id';']where_clause.a)子类视图的一个超类视图应该定义一个FROM语言元素。b)子类视图的分区集应是其超类视图的分区集的子集。GB/T16656.14—2023/ISO10303-14:2005VIEWperson;PARTITIONfirst;WHEREcond9;任何以“k”为超类的子类视图只能包含分区“second”。视图声明可以定义超类约束(见GB/T和视图范围的内容没有影响。16656.11—2010的9.2.5)。是否满足超类约束对执行模型语法:228view_decl=(root_view_decl|dependent_view_decl|subtype_view_decl)207supertype_constraint=abstract_supertype_declaration|supertype_rule.33abstract_supertype_declaration=ABSTRACTSUPERTYPE[subtype_constraint].204subtype_constraint=OF'('supertype_expression')'209supertype_factor=supertype_term{AN211supertype_term=view_ref|one_of|'('supertype_expression′)'147one_of=ONEOF'('supertype_expression{','supertype_expression}')'GB/T16656.14—2023/ISO10303-14:2005如果a的实例由于具有ABSTRACT关键词而具有至少两种类型(a和其他类型),并且由于ONE-OF关键词而具有至少一种类型d或b和c的某种组合,则它是有效的。9.4映射声明映射声明支持两个或多个EXPRESS模式的实体数据类型定义之间的对应关系规范。该声明支持从多个源实体数据类型定义到多个目标实体数据类型定义的映射。_headermap_decl_body})END_MAPclause][identified_by_clause][orde203subtype_binding_header=[PARTITIONpar83extent_reference=source_entity_reference|view_refere语法规则136的map_id命名映射声明。SCHEMAsource_schemaiENTITYpump;id,name:STRING;END_ENTITY;END_SCHEMA;SCHEMAtarget_schemaENTITYproduct;id,name:STRING;END_ENTITY;ENTITYproduct_related_product_category;name:STRING;products:SETOFproduct;END_ENTITY;END_SCHEMA;SCHEMA_MAPpump_mapping;REFERENCEFROMsource_schemaASSOURCE;REFERENCEFROMtarget_schemaASTARGET;MAPnetwork_for_pumpASGB/T16656.14—2023/ISO10303-14:2005pr:product;prpc:product_related_product_category;FROMp:pump;pr,id:=p.id;pr,name:=;:='pump';ducts:=[pr];新创建实例的属性初始值是不确定的。如果没有在映射的主体中分配属性,则该值仍然是不确语法:136map_decl=MAPmap_idAStarget_parameter';'{target_parameter';'}(map_subtype_of_clausedecl_body})END_MAP';'.137map_decl_body=(entity_instantiation_loop{entity_instantiation_loop})|map_projectclauxe|(RETURNexprex-xion';'),tribute_ref[index_qu指定map_attribute_declaration语法元素的map_decl_body应将值分配给目标实体实例的属性。表达式应产生一个与目标实体属性兼容的赋值(见GB/T16656.11--2010的13.3)。指定RETURN的map_decl_body将计算在RETURN关键词之后指定的表达式。求值将导致与目标参数定义的实体数据类型兼容的目标实体实例的实例化。所有目标参数的实体实例应被实例化。9.4.3单个绑定实例下的迭代对映射的求值可能会生成目标实体数据类型实例的聚合。聚合的初始值不确定。instantiation_loop_control和repeat_control提供以下迭代形式: 在EXPRESS聚合的实例集合上进行迭代;——递增数值变量的迭代。77entity_instantiation_loop=FORinstantiation_loop_control';'map_p171repeat_control=[increment_control][while_21GB/T16656.14—2023/ISO10303-14:2a)map_project_clause语言元素(见语法规则了所有循环变量variable_id(见语法规则118)。b)在IN之前由variable_id隐式声明的变量的类型(见语法规则118)是表达式的类型。c)在INDEXING之后(见语法规则118)由variable_id隐式声明的变量的类型为INTEGERINDEXING之后的variable_id(见语法规则118)在第一个迭代周期的开始处初始化为一个,并在repeat_control语法元素允许通过EXPRESS语言repeat_control在单个绑定实例下进行迭代(见GB/T16656.11—2010的13.9)。SCHEMAsrc;SCHEMAtaENTITYparent;ENTITYparent;number_of_children:INTEGER;END_ENTITY;END_ENTITY;ENTITYchild;END_SCHEMA;END_ENTITY;END_SCHEMA;SCHEMA_MAPexample;REFERENCEFROMsrcASSOURCE;REFERENCEFROMtarASTARGET;MAPparent_mapAStp:tar.parent;FROMsp:src.parent;END_MAP;MAPchildren_mapASc:AGGREGATEOFchild;FROMp:src.parent;FORi:=1TOp.number_of_childrenEND_MAP;变量,并且可选地将该元素的索引位置绑定到一个迭代器程序变量。这些变量绑定的范围包括map_project_clause。CHEMAtar;ENTITYitem_version;item_id:INTEGER;version_id:INTEGER;END_ENTITY;END_SCHEMA;ENTITYitem_with_versions;id:INTEGER;id_of_versions:LISTOFINTEGER;END_ENTITY;END_SCHEMA;SCHEMA_MAPmapping_schema;REFERENCEFROMsrcASSOURCE;REFERENCEFROMtarASTARGET;MAPitem_version_mapASiv:AGGREGATEOFitem_version;FROMiwv:item_with_versions;FOREACHversion_iteratorINiwv.id_of_versionsINDEXINGi;SELECTiv[i].item_id:=iwv.id;iv[i].version_id:=version_iterator;END_MAP;END_SCHEMA_MAP;#1=ITEM_WITH_VERSIONS(1,(10,11,12));#1=ITEM_VERSION(1,10);#2=ITEM_VERSION(1,11);#3=ITEM_VERSION(1,12);instantiation_foreach_control语法元素可以使用可选的AND语法指定许多表达式(见语法规则聚合的variable_id。136map_decl=MAPmap_idAStarget_parameter';'{target_parameter_headermap_decl_body})END_MAP';47binding_header=[PARTITIONpartition_id';'][from_clause][local_decl][where_clause][identified_by_clause][ordered_by_clause].a)如果映射声明中存在多个分区,则应为每个分区提供一个partition_id。b)映射声明中的每个partition_id应是唯一的。(*sourceschema*)(*targetschema*)SCHEMAsrc;SCHEMAtar;22GB/T16656.14—2023/ISO10303-14:2005ENTITYstudent;name:STRING;END_ENTITY;ENTITYemployee;name:STRING;END_ENTITY;END_SCHEMA;ENTITYperson;name:STRING;END_ENTITY;END_SCHEMA;(*mappingschema*)SCHEMA_MAPexample;REFERENCEFROMsrcASSOURCE;REFERENCEFROMtarASTARGET;MAPstudent_employee_to_personASp:tar.person;PARTITIONstudent;FROMs:src.student;SELECTPARTITIONemployee;FROMe:src.employee;SELECT:=;END_MAP;END_SCHEMA_MAP;映射声明可以组织成类型/子类层次结构。子类映射声明可以扩展由其超类映射创建的实体实例标属性分配的规范由其子类映射继承。通过这些方法,可以在映射声明中复制目标模式中存在的继承136map_decl=MAPmap_idAStarget_parameter';'{target_parameter_clausesubtype_binding_headermap_decl_body)|(binding_headermap_decl_body{binding_headermap_decl_body})END_MAP';'.141map_subtype_of_clause=SUBTYPEOF'('map_reference)'';'.——如果子类映射声明的WHERE规则及其所有超类映射的WHERE规则求值为TRUE,则应——子类映射声明继承来自其超类映射声明的所有目标参数。——子类映射声明可以重新声明其超类映射的任何目标参数的类型。重新声明的目标参数的类型应是在其超类映射中声明的目标参数的每种类型的具象化。具象化规则是GB/T16656.11—2010中9.2.6定义的规则。——子类映射声明可以通过声明附加target_parameter中的参数不同的参数来添加新的目标参数。的target_parameter_id与其超类映射声明GB/T16656.14—2023/ISO10303-14:2005——如果超类映射声明了目标类型为选择(SELECT)(见GB/T16656.11—2010的8.4.2)、通用(GENERIC)(见GB/T16656.11—2010的)或声明为抽象(ABSTRACT)的实体数据类型的目标参数(见GB/T16656.11—2010的),并且不会执行重新定义此目标参数的于子类映射是否引用在超类映射中声明的target_parameter_id语法元素或是否声明其他的target_pa-rameter_id语法元素。子类映射可能会引入在任何超类映射中均未定义的target_parameter_id。在这子类映射可以引用一个目标属性,该目标属性在其超类之一(可能通过多个继承级别)中被引用以的选择标准。子类映射应仅具有一个直接超类映射。体的类型为t_project,可能是其子类之一in_house_project和external_project。在超类映射(project_map)中使用的SCHEMAsource_schema;ENTITYs_project;name:STRING;project_type:STRING;cost:INTEGER;price:INTEGER;vendor:STRING;END_ENTITY;END_SCHEMA;SCHEMAtarget_schema;ENTITYt_projectSUPERTYPEOF(ONEOF(in_house_project,external_project));name:STRING;cost:INTEGER;management:STRING;END_ENTITY;ENTITYin_house_projectSUBTYPEOF(t_project);END_ENTITY;ENTITYexternal_projectSUBTYPEOF(t_project);price:INTEGER;END_ENTITY;END_SCHEMA;SCHEMA_MAPexample;REFERENCEFROMsource_schemaASSOURCE;REFERENCEFROMtarget_schemaASTARGET;2425GB/T16656.14—2023/ISO10303-14:2005MAPproject_mapAStp:target_schema.t_project;FROMp:source_schema.s_project;tp.costEND_MAP;MAPin_house_mapAStp:target_schema.in_house_project;SUBTYPEOF(project_map);WHERE(ject_type='inhouse');SELECTacctstp.management:=IF(p.cost〈50000)THEN'smallacctsELSE'largeaccts'END_IF;ENDMAP;MAPext_mapAStp:target_schema.external_project;SUBTYPEOF(project_map);WHERE(ject_type='externat);SELECTtp.price:=p.price;tp.management:=p.vendor;END_MAP;END_SCHEMA_MAP;超类映射可以定义实体实例化循环。这种超类映射的子类映射应继承这些实例化循环。实例化循环的主体可以重新定义。使用实例化循环的超类映射主体和子类映射主体之间的对应关系是通过使用相同的索引标识符来完成的。继承循环的子类映射的映射主体应引用其超类映射中定义的相同索引标SCHEMAsource_schema;ENTITYpart;name:STRING;no_of_versions:INTEGER;is_assembly:BOOLEAN;END_ENTITY;END_SCHEMA;SCHEMAtarget_schema;ENTITYproduct;name:STRING;END_ENTITY;ENTITYproduct_version;version_id:INTEGER;of_product:product;END_ENTITY;GB/T16656.14—2023/ISO10303-14:2005ENTITYproduct_definition;name:STRING;of_version:product_veEND_ENTITY;REFERENCEFROMtarget_schemaASTARGET;pvw:AGGREGATEOFproduct_definition;pver:AGGREGATEOFproduct_version;FROMFORi:=1prt:part;TOprt.no_of_versions;pver[i].version_id:=i;pver[i].of_product:=pro;pvw[i].of_version:=pver[i];pvw[i].name:='viewofpart'+;:='part'+prt.,name;SUBTYPEOF(super_map);WHEREprt.is_assembly=TRUE;pvw[i].name:='viewofassembly'+;:='assembly'+;END_MAP;END_SCHEMA_MAP;214target_parameter=target_parameter_id{','target_parameter_i78entity_reference=[(source_schema_ref|target_schema_ref|schema_ref)'.']entity_ref.2627 GB/T16656.14—2023/ISO10303-14:2005a)每个entity_ref应是对在当前范围内可见的实体数据类型定义的引用。b)引用的复杂实体数据类型应描述目标模式内的有效域(见GB/T16656.11—2010附录B)。c)在target_entity_reference中,最多应有一个给定的entity_reference。d)对于在target_entity_reference中声明的每个entity_reference,均不得声明其超类。SCHEMAsource_schema;ENTITYpump;id,name:STRING;END_ENTITY;END_SCHEMA;SCHEMAtarget_schema;ENTITYitemABSTRACTSUPERTYPEOF(ONEOF(product,kitchen_appliance));END_ENTITY;ENTITYproductSUBTYPEOF(item);id,name:STRING;END_ENTITY;ENTITYkitchen_appliance
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论