- 7.90 MB
- 2022-04-22 13:49:32 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'ICS25040.40L67鳕亘中华人民共T-n国国家标准GB/T16656.28—201O/ISO10303—28:2007工业自动化系统与集成产品数据表达与交换第28部分:实现方法:EXPRESS模式和数据的XML表达(使用XML模式)IndustrialautomationsystemsandintegrationIProductdatarepresentationandexchangemPart28:Implementationmethods:XMLrepresentationsofEXPRESSschemasanddata,usingXMLschemas2011—01—14发布(ISO10303—28:2007,IDT)2011-06—01实施丰瞀粥紫瓣訾雠瞥霎发布中国国家标准化管理委员会“”。
标准分享网www.bzfxw.com免费下载目次GB/T16656.28—2010/ISO10303-28:2007前言⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·引言⋯⋯⋯⋯⋯---⋯⋯⋯⋯--⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··1范围⋯---⋯⋯⋯⋯-⋯⋯⋯---⋯--⋯⋯⋯⋯⋯⋯⋯⋯⋯.2规范性引用文件⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.-3术语、定义、缩略语和约定⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3.11S()103031中定义的术语⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3.2GB/T16656.11中定义的术语⋯⋯--⋯⋯⋯⋯⋯-⋯⋯⋯3.3XMI,标准中定义的术语⋯⋯⋯--⋯⋯⋯--⋯⋯⋯⋯⋯3.4其他的术语和定义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3.5不一致的术语⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·3.6缩略语⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·3.7约定⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4一致性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4.1XMI。文档的一致性⋯⋯⋯⋯⋯⋯··⋯⋯-⋯⋯⋯⋯---4.2导出的XML模式文档的一致性⋯⋯---⋯⋯⋯⋯⋯4.3配置文件的一致性⋯⋯⋯⋯⋯⋯--⋯⋯⋯⋯⋯⋯⋯4.4前置处理器的一致性⋯⋯⋯⋯⋯⋯⋯---⋯⋯⋯⋯⋯⋯⋯4.5后置处理器的一致性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·4.6XMI.模式生成器的一致性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5文档级元素-----⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··5.1iso1030328文档⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5.2文档和UOS头信息---⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯5.3schemapopulation元素⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··5.4express元素⋯⋯⋯⋯---⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5.5configuration元素⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··5.6unitofserialization元素⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··5.7UOS文档⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯··5.8配置文档⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯··5.9企业数据对象⋯⋯⋯⋯⋯---⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··6导出XMI,模式-··⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··6.1前提条件⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--⋯⋯⋯⋯⋯⋯⋯⋯··6.2没有映射的EXPRESS概念⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··6.3抽象实体数据类型⋯-⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯⋯⋯⋯-7默认XML模式联编-·⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯--7.1命名约定⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7.2与EXPRESS数据类型对应的XML模式数据类型⋯⋯··7.3用于EXPRESS自定义数据类型的XML模式定义和声明7.4对应于EXPRESS数据类型的实例元素⋯⋯---⋯⋯⋯··ⅢV●●000,,00m如¨地坞MM¨MMM¨¨¨¨""卵帖●
GB/T16656.28—2010/ISO10303—28:20077.5EXPRESS实体数据类型的XML模式定义和声明⋯⋯⋯7.6EXPRESS属性的XMI。模式声明⋯⋯⋯-⋯⋯⋯⋯⋯⋯··7.7EXPRESS模式的XML模式和命名空间⋯⋯⋯⋯⋯⋯7.8特定序列化单元的相关语境模式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8已配置的XMI,模式联编⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8.1命名规则(namingconvention)⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8.2与EXPRESS数据类型对应的XML模式数据类型⋯⋯⋯8.3EXPRESS自定义数据类型的XML模式定义及声明⋯一8.4与EXPRESS数据类型相对应的实例元素⋯⋯··-⋯⋯⋯--8.5EXPRESS实体数据类型的XML模式定义及声明⋯⋯⋯·8.6EXPRESS属性的XML模式声明⋯⋯⋯⋯⋯⋯⋯⋯⋯·8.7EXPRESS模式的XMI.模式和命名空间⋯⋯··⋯⋯⋯·⋯·8.8语境模式中特定的序列化单元---⋯⋯⋯⋯-⋯⋯⋯⋯·9XMI.文档创建⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·9.1前提条件⋯⋯⋯⋯⋯⋯-⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·9.2一般xML文档结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·9.3EXPRESS实体实例的表达⋯⋯⋯⋯--⋯⋯⋯-⋯⋯⋯⋯9.4EXPRESS属性的表达⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·9.5简单值的表达⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·9.6枚举项的表达⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·9.7SEI。ECT类型值的表达⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯⋯⋯⋯⋯9.8聚合值的表达⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·9.9自定义数据类型值的表达⋯⋯⋯⋯⋯⋯⋯---⋯⋯⋯⋯⋯9.10实例元素中值的表达⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10配置语言-⋯--⋯------⋯⋯⋯⋯⋯⋯⋯---⋯⋯⋯---⋯⋯⋯⋯一10.1配置元素⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·10.2配置选项⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一10.3范围元素⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10.4配置属性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·10.5配置指令的使用范围⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·⋯·⋯⋯·附录A(规范性附录)用于联编EXPRESS模式的统一资源名附录B(规范性附录)配置语言的XMI.模式⋯⋯⋯⋯⋯⋯⋯附录c(规范性附录)基本XML模式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯附录D(规范性附录)文档模式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯附录E(规范性附录)EXPRESS实体实例的有效群⋯⋯⋯⋯附录F(规范性附录)信息对象注册⋯-⋯⋯⋯⋯⋯⋯附录G(资料性附录)配置语言示例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯---⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯弱∞记孔%%”∞%MⅢmⅢmmm邶mm瑚m啪m研姗ⅢmⅢ猢|萋l萎娜狮
标准分享网www.bzfxw.com免费下载刖吾GB/T16656.28—2010/1SO10303-28:2007G13/T16656((工业自动化系统与集成产品数据表达与交换》是由多部分组成的标准,各部分单独出版。GB/T16656的所属各部分又组成多个子系列,即:一一第1部分至第19部分规定了描述方法;第20部分至第29部分规定了实现方法;一第30部分至第39部分规定了一致性测试方法与框架;一第40部分至第59部分规定了集成通用资源;第100部分至第1§9部分规定了集成应用资源;第200部分至第299部分规定了应用协议;一第300部分至第399部分规定了抽象测试套件;一第400部分至第499部分规定了应用模块;一第500部分至第599部分规定了应用解释构造;一第1000部分至第1999部分规定了应用模块。GB/T16656《工业自动化系统与集成产品数据表达与交换》现已发布和即将发布的包括以下部分:第1部分:概述与基本原理;第11部分:描述方法:EXPRESS语言引用手册;一第21部分:实现方法:交换文件结构的纯正文编码;一一第28部分:实现方法:EXPRESS模式和数据的XMI。表达(使用XML模式);一一第31部分:一致性测试方法论与框架:基本概念;~第32部分:一致性测试方法论与框架:对测试实验室与客户的要求;一第34部分:一致性测试方法论与框架:应用协议实现的抽象测试方法;一第41部分:集成通用资源:产品描述与支持原理;——第42部分:集成通用资源:几何与拓扑表达;一第43部分:集成通用资源:表达结构;一第44部分:集成通用资源:产品结构配置;一第45部分:集成通用资源:材料;一第46部分:集成通用资源:可视化显示;一第47部分:集成通用资源:形状变化公差;第49部分:集成通用资源:工艺过程结构和特性;一第51部分:集成通用资源:数学表达;第54部分:集成通用资源:分类和集合论;第s5部分:集成通用资源:过程与混合表达;第56部分:集成通用资源:状态;第101部分:集成应用资源:绘图;——第105部分:集成应用资源:运动学;——第20l部分:应用协议:显式绘图;一第202部分:应用协议:相关绘图;第203部分:应用协议:配置控制设计;Ⅲ
GB/T16656.28—2010/iso10303-28:2007——第238部分:应用协议:计算机数值控制器用的应用解释模型;一一第50】部分:应用解释构造:基于边的线框;——第502部分:应用解释构造:基于壳的线框;——第503部分,应用解释构造:几何有界二维线框;——第504部分:应用解释构造:绘图注释;——第505部分:应用解释构造:图样结构与管理;——第506部分:应用解释构造:绘图元素;——第507部分:应用解释构造:几何有界曲面;——第508部分:应用解释构造:非流形曲面;——第509部分:应用解释构造:流形曲面;——第513部分应用解释构造:基本边界表达;——第520部分:应用解释构造:相关绘图元素;——第l001部分:应用模块:外观赋值;——第1002部分:应用模块:颜色;——第1003部分:应用模块:曲线外观;——第1004部分:应用模块:基本几何形状;——第1005部分:应用模块:基本拓扑;——第1006部分:应用模块:基础表达;——第1007部分:应用模块:通用曲面外观;——第1008部分:应用模块:层赋值;——第1009部分:应用模块:形状外观和层。本部分是GB/T16656的第28部分。16656的本部分等同采用ISO10303—28:2007{(工业自动化系统与集成产品数据表达与交换第28部分实现方法:EXPRESS模式和数据的XMI。表达(使用XMI,模式)》,其技术内容和结构与1SO10303—28:2007保持一致。为便于使用,做了如下编辑性修改:a)删去了Is()前言;b)对于带下划线的用于EXPRESS语言描述的各黑体英文实体名、属性名和函数名等,为了维护其英文原意,在本部分中,都使用其英文原名,仅当其作为标题时,我们在该英文名前增加了其归属的类型说明。本部分的附录A、附录B、附录c、附录D、附录E、附录F为规范性附录,附录G为资料性附录。本部分由中国机械工业联合会提出。本部分由全国自动化系统与集成标准化技术委员会(SAC/TCl59)归口。本部分主要起草单位:中国标准化研究院。本部分主要起草人:詹俊峰、李文武、杨青海、刘守华、周歆华、柳青。Ⅳ
标准分享网www.bzfxw.com免费下载引言GB/T16656.28—2010/iso10303—2812007GB/T16656是一个计算机可解释的用于产品信息表达和产品数据交换的技术标准。其目的是对产品全生命周期提供一种独立于任何特定系统、能够描述产品数据的中性机制。其描述功能不仅适合于中性文件的交换,而且也是实现和共享产品数据库及存档的基础。GB/T16656的本部分属于实现方法系列。GB/T16656的本部分规定了将EXPRESS语言(GB/T16656.11定义的)描述的模式和符合EXPRESS模式的数据表达为XMI。文档的方法,这样就可以使用XMI。以及各类支持XMI.技术的软件工具交换EXPRESS描述的产品数据,同时也便于将这些产品数据集应用于XMI,表达的“电子商务”交易业务中。为了理解GB/T16656本部分的技术内容,用户应了解EXPRESS语言、XMI,模式语言、XMI。以及XMI。相关的标准。对于与EXPRESS模式相应的数据表达,GB/T16656的本部分使用XML模式语言形式化地规定了符合此模式的交换文档的结构。有些文档的元素表达了符合EXPRESS模式的数据集,GB/T16656的本部分使用XML模式的类型定义和由EXPRESS模式说明导出的元素声明来描述这些元素的结构。GB/T16656的本部分还规定了与导出的XMI。模式匹配的XMI.数据编码规则。为了满足使用符合交换文档产生的各种矛盾需求.(IB/T16656的本部分还定义了特定的配置指令,用于说明导出的XMI。模式中可选的结构以及可选的编码规则。注意:GB/T16656的本部分目的是为了软件实现,当软件开发是基于翻译成非ISO官方语言的本部分时,将会导致计算机通信之间的不兼容。建议任何软件实现的开发应基于ISO官方语言的文字。
1范围GB/T16656.28—2010/Iso10303-28:2007工业自动化系统与集成产品数据表达与交换第28部分:实现方法:EXPRESS模式和数据的XML表达(使用XML模式)GB/T16656的本部分规定了如何使用可扩展置标语言(XMI.)表达用EXPRESS数据描述语言(GB/T16656.11)描述的模式以及符合该模式的数据。GB/‘T16656的本部分通过规定交换文件的完整XML模式和对应于描述交换数据集的EXPRESS模式的附加XML模式,形式化地规定了XML表达。本部分适用于:——包含EXPRESS模式及符合该模式的数据的XML文档的格式描述(见第5章);——对于任意一个EXPRESS模式,描述与该模式对应的XMI。模式,并形式化地描述符合该模式的数据的XMI。表达(见第6章);——ExPREss数据类型的取值表达为XMI.元素内容和XML属性值的描述(见第9章);—~描述可用于说明符合EXPRESS模式的数据集的XML表达的结构选项的配置指令集(见第10章)。本部分不适用于:——描述依赖于任何特定EXPRESS模式语义目的的XML模式声明或定义,以区别于EXPRESS语言声明;——描述从XML模式语言到EXPRESS语言的映射;——描述从一个EXPRESS模式导出的XML模式到另一个EXPRESS模式的映射。2规范性引用文件下列文件中的条款通过GB/T16656的本部分的引用而成为GB/T16656本部分的条款。凡是注H期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。GB/T16262.1—2006信息技术抽象语法记法一(ASN.1)第1部分:基本记法规范(ISO/1EC8824—1:2002,IDT)GB/T16656.112010工业自动化系统与集成产品数据表达与交换第11部分:描述方法:EXPRESS语言引用手册(ISO10303一ll:2004,rDT)IsO6391:2002语种名称代码第1部分:2字母代码IsO10303—1:1994工业自动化系统与集成产品数据表达与交换第1部分:概述与基本原理ISO1030322:1998工业自动化系统与集成产品数据表达与交换第22部分:实现方法:标准数据访问接口ISO31661:2006世界各国和地区名称代码第1部分:国家代码统一资源标识符(URI):通用语法。IETFRFC2396,1998年8月。可从以下网址获得:XML模式第2部分:数据类型。W3C建议,2001年5月2日。可从以下网址获得:(http://www.w3.org/TR/xmlschema一2/)Xpointer框架V1.0。W3C建议,2003年3月25日。可从以下网址获得:(http://www.w3.org/TR/xptrframework/)注:IE’FF表示InternetEngineeringTaskForce互联网工程任务组,W3C表示WorldWideWebConsortium万维网联盟:3术语、定义、缩略语和约定下列术语和定义适用于GB/T16656的本部分。3.1ISO10303—1中定义的术语ISO103031中确立的下列术语和定义适用于本部分。——数据Data;——信息in{ormation。3.216656.11中定义的术语16656.11中定义的下列术语适用于本部分。3.2.1数据类型datatype值域。注:由于GB/T16656的本部分使用了两种数据类型标准的术语,因此该术语数据类型(datatype)前通常加上前缀“EXPRESS”或“XMI。模式”,以区分不同的使用语境。3.2.2EXPRESS属性EXPRESSattributeEXPRESS实体实例的特性,用EXPRESS数据类型的值和表明该值在实例中作用的名称来表达。3.2.3EXPRESS数据类型EXPRESSdatatypeEXPRESS语言语法中规定的数据类型。3.2.4EXPRESS实体实例EXPRESSentityinstance实体实例entityinstance命名的数据单元,表达实体数据类型定义的域中的~个信息单元。3.2.5EXPRESS语言元素EXPRESSlanguageelementEXPRESS语言中的概念,以及从广义而言的句法表达。注:GB/T16656的本部分中使用术语“元素”通常是指XML数据结构的基本句法部分。3.2.6基本类型fundamentaltypeEXPRESS数据类型,用于确定自定义数据类型的值的表达。注:由于自定义数据类型可以由另一个自定义数据类型来定义,所以“基本类型”形式化的递归定义是:“自定义类型的基本类型是基础类型的基本类型,非自定义类型的数据类型的基本类型是该数据类型自身。’’2
GB/T16656.28—2010/iso10303—28:20073.2.7广义数据类型generalizeddatatypeEXI’RESS数据类型,用于描述特定数据类型的泛化,仅适用于非常特殊的语境中。3.2.8独立实体实例independententityinstanceEXPRESS实体实例,出现在一个模式实例中,且不需用于对模式实例中其他实体实例的特征表达。注:非独立实体实例(dependententityinstance)在模式实例中出现是因为它是某些其他实体实例的属性值(的组成部分)。独立实体实例(independententityinstance)尽管也可以发挥类似作用,但不符合基本原理。32.9模式实例schemainstanceEXPRESS实体实例的集合,这些实例是为了某些目的而成组的,该集合取决于单一的EXPRE.%S模式。3.2.10基础类型underlyingtype自定义数据类型的值域,由自定义数据类型(例如基本类型)的EXPRESS类型声明中的语法对象underlying—type描述。注:来自GB/T16656.11。3.3XML标准中定义的术语下列术语和定义适用于GB/T16656的本部分。为方便用户,本部分复制了万维网联盟(W3C)和互联网工程任务组(IETF)的推荐标准中定义的术语。注:对于完全从其他标准中复制的定义,其后用方括号来说明所引用的来源。对于所采用的其他标准的定义,其后附加解释性注释。3.3.1元素element‘XML元素XMLelementXMI。文档逻辑结构的有限组成部分,它有类型且可能有XMI.属性和内容。XML1.03.3.2信息集infoset抽象数据集,它提供定义的一致集,在需要引用XML文档信息的描述中使用。[XML模式第1部分:结构]。3.33合格名qualifiednameXMI.元素、属性或数据类型的完整名称,包括局部名称和标识该局部名称被定义/声明的命名空间的前缀。[xMI.中的命名空间]3.3.4统一资源标识符UniformResourceIdentifier;URI标识一个抽象或物理资源的简洁字符串。EIETFRFC2396:统一资源标识符(URI):通用语法]3.3.5XML属性XMLattribute与一个XMI,元素关联的名称/取值对。EXMI。1.ol3
GB/T16656.28—2010/ISO10303—28120073.3.6XML文档XMLdocument(文本)数据对象,符合XMI。良好格式要求。[XMI。1.O]3.3.7XML模式XMLschemaXMI。模式语言中用于说明XML文档的类结构的声明和定义主体。EXMI,模式第1部分:结构]注:XML模式中术语“模式”是指一组声明和定义,但为了区分XML模式和EXPRESS中的术语“模式”,16656的本部分在XML模式的术语前增加前缀“XMI。”(见35)。不过这也意味着只有“模式”这个词首字母的大写才能区分XMI。模式语言的名称和“模式”概念。GB/T16656的本部分对两个XMI。模式进行了特别处理,分别用特定的术语“导出的XMI。模式”和“基本的XML模式”来引用它们。3.3.8XML模式组件XMLSchemacomponentXML模式语言中的概念,也包括概念的语法表达。EXMI,模式第1部分:结构]注:GB/T16666的本部分使用术语“组件”通常是指取值,这些值是构成一个聚合值的取值集合的成员。3.3.9XML模式数据类型XMLSchemadatatypeXML数据类型XMLdatatype在XML模式语言的语法中所规定的数据类型。[XMI。模式第2部分:数据类型]3.3.10XML模式语言XMLSchemalanguageXML模式XMLschema用于说明XML文档结构的形式化语言,在《XML模式第1部分:结构》中规定。3.4其他的术语和定义下列术语和定义适用于GB/T16656的本部分。3.4.1存取器属性aceessorattribute表达EXPRESS属性及其属性值的XML属性(表达实体实例的XMI。元素的属性)。(对比:存取访问元素)3.4.2存取器元素accessorelement表达EXPRESS属性及其属性值的XMI,元素。(对比:存取访问属性)3.4.3聚合值aggregatevalueEXPRESS聚合数据类型的值,或基本类型是EXPRESS聚合数据类型的自定义数据类型的值。3.4.4基类型base-typeEXPRESS聚合数据类型的成员值的数据类型。3.4.5引用实例元素by—referenceinstanceelement不包括XML内容但包括了表达具体值的值实例元素的引用的实例元素。d
GB/T16656.28—2010/ISO10303—28:200734.6值实例元素by—valueinstanceelement内容为数据值的表达或者EXPRESS实体实例的完整表达的实例元素。3.4.7特征化实体实例characterizedentityinstanceEXPRESS实体实例,在相关语境模式中有一个EXPRESS实体数据类型被声明具有或继承了该实例中出现的所有特性。3.4.8语境模式contextschema控制模式governingschema对于一个UOS元素而言,包含了该元素中的数据模型的EXPRESS模式。3.4.9最深层基类型deepestbase-type对于嵌套的聚合数据类型,在聚合值(可能是多维的)的XMI。表达中某个嵌套层的基类型的值被用作组件元素。3.4.10最深层基础类型deepestunderlyingtype对于一个嵌套的聚合数据类型,在某些嵌套层遇到的首个基类型,它不是匿名聚合类型,也不是基础类型为聚合类型的自定义数据类型,也不是列表中包含了单一的自定义数据类型且其基础数据类型为聚合数据类型的SEI。ECT类型。34.11默认映射defaultmapping对于一个给定的EXPRESS模式,按照GB/T16656本部分的规定使用所有配置指令和非附加配置指令的默认值导出XML模式。3.4.12导出XML模式derivedXMLschema从EXPRESS模式导出的XML模式,与所给定的EXPRESS模式和配置文件相对应。3.4.13独立元素independentelement作为UOS元素的直接子元素出现的实例元素。3.4.14实例元素instanceelement表达一个EXPRESS数据类型的值的XML元素。注:一个实例元素可能是一个直接表达值的取值实例元素,或者是一个不包含值表达而是引用一个包含值表达的取值素的引用实例元素。3.4.15值列表list-of-values一个由单一字符串组成的聚合值的XMI。表达,字符串中组成元素的编码由空格(sPAcE)符隔开,按照顺序排列。3.4.16嵌套聚合数据类型nestedaggregationdatatypeEXPRESS聚合数据类型,它作为另一个聚合数据类型的基类型。3.4.17元素序列sequence-of-elements由XML元素序列组成的聚合值的XML表达,XMI.元素序列中每个元素的内容都是单个成员值的编码。(对比:值列表)。
GB/T16656.28—2010/iso10303-28:20073.4.18非特性化实体实例uneharacterizedentityinstance在相关语境模式中不存在具有表达实体实例所需的所有属性的单个实体数据类型的实体实例。3.4.19序列化单元unitofserialization;UOS一个模式实例的XMl.表达——由单一交换模式描述的EXPRESS实体实例的集合以及所有属性值。3.5不一致的术语EXPRESS和XMI。(模式)使用相似或相同的术语描述相关概念。GB/T16656的本部分中,使用限定词“XMI。”和“EXPRESS”区分两种不同的语义环境。这些限定词用于下列术语:属性attribute一数据类型datatype元素element——实体entity——模式schema特例:术语“元素”在没有加限定词“EXPRESS”时,通常是指XML“元素”。在很多情况下,“元素”是某个术语的组成部分,表示GB/T16656的本部分所定义的XMI,元素的特定类型。注:GB/T16656的本部分中没有使用XMI。中的“实体”。术语“实体”通常指一个EXPRESS实体数据类型或实体实例,限定词“EXPRESS”总是在某段落中首次使用时出现。3.6缩略语下列缩略语适用于GB/T16656的本部分。IANA互联网地址分配机构(InternetAssignedNamesAuthority)IETF互联网工程任务组(InternetEngineeringTaskForce)MIME多用途互联网邮件扩展(Multi—purposeInternetMailExtension)URI统一资源标识符(UniformResourceIdentifier)URN统一资源命名(UniformResourceName)XMI。可扩展置标语言(ExtensibleMarkupI。anguage)3.7约定下列编排约定适用于GB/T】6656的本部分。3.7.1文字约定——ExPREss语言中的关键词用大写字母表达;——xML模式中的每个字采用Courier字体表达;——xMI。模式参数用耜斜雄courier文本表达;——配置指令用粗体的文本来表达;——在介绍性或定义性的文字中,术语的表达用斜体文字突出。当省略号“⋯⋯”出现在正文中时,它表达列表的所有其他成员。当省略号“⋯⋯”出现在一个示例中时,表示(EXPRESS或XML)模式的组成部分是不完整的。3.7.2命名空间约定为了明确区分,GB/T16656的本部分使用表1中的命名空间前缀引用表1中相应URI标识的命名空间。
GB/T16656.28—201O/ISO10303—28.2007表1命名空间前缀前缀关联的命名空间uRlhttp://www.w3.org/200l/XMLSehemahttp:|{㈣.w3.org/2001/XMLSehema—instanceexp:urn:iso:std:iso:1030:28:ed2:teeh:XMLschema:common(见附录c中的定义)cnf:urn:iso:std:iso:1030:28:ed2;tech:XMLschema:configuration—language(见附录B中的定义)doe:uril:iso:std:iso:1030:28:ed2:tech:XMLschema:document(见附录D中的定义)Tns与EXPRESS相关语境模式关联的目标命名空间(见77或87)4~致性本章规定声称符合GB/T16656本部分的XML文档或文档处理程序必须要满足的要求,本章为以下各项定义了一致性要求:⋯xMI.实例文档;——从EXPRESS模式导出的XMI。模式;——配置文件;——生成XML实例文档的前置处理器;一一读人XMI,实例文档的后置处理器;——由EXPRESS模式产生XML模式的处理器。4.1XML文档的一致性XML实例文档是一个表达EXPRESS定义数据的XMl.文档。有三类XMI。实例文档符合16656本部分的要求:——iso一1030328文档,见4.1.1;——UOS文档,见4.1.2;——被配置的文档,见4.1.2。在本条中,如果在文档的postschema—validation信息集中的每个元素和每个属性的有效性属性都是“有效的”,则该文档的XML信息集(infoset)应被认为是有效的,正如《XMI。模式第1部分:结构》中所定义的。4.1.1iso-10303-28文档的一致性如果一个XMI。文档满足以下所有条件,则它符合iso1030328文搿一致雌的要求:一文档的根元素是一个iso一10303—28元素,见第5章。——is0—10303—28元素的XML信息集对于附录D中定义的文档模式而言是有效的。一如果文档中编码的任何一个数据集符合一个给定的按照GB/T16656.11描述的EXPRESS模式,该EXPRESS模式被指定为此数据集的控制糖茸(governingschema)。一一为基本XML模式(见附录c)中规定的UOS元素编码的每个数据集使用了一个序列化元素的替代单元。——对于每个序列化元素的替代单元,XMI.信息集对于XML模式是有效的,该XMI。模式是按照第6章的规定使用EXPRESS模式和此序列化单元元素描述的配置文件导出的。注1:对于每个数据集来说控制EXPRESS模式可以是不同的。注2:在78或8.8中描述了对应于一个给定的EXPRESS模式的替代U08元素。注3:每个序列化单元元素规定了控制EXPRESS模式和与它对应的配置文件,见5.6和9.2。注4:不要求数据集是个“有效群”,如同在GB/T1665611中的定义。编码数据集和群之间的关系在给定的iso10303—28元素中通过schemapopulation元素规定,见53。4.1.2IlOS文档的一致性如果一个XML文档满足以下所有条件,则它符合UOS文档一致性的要求:7
GB/T16656.28—2010/[so10303-28:2007一一文档的根元素是一个UOS元素。——u。s元素中编码的数据集符合一个给定的按照GB/T16656.11描述的EXPRESS模式,该EXPRESS模式被指定为此数据集的控制攮茸。——u。s元素的XML信息集对于XMI,模式是有效的,该XMI。模式是从第6章描述的控制ExPRESs模式导出的。注:在一个UOS文档中,UOS元素是对应于控制模式的默认映射的元素,即对应于一个空配置文件的元素。4.1.3配置文档的一致性配置文档的一致性应当是由定义已配置XML模式的规范定义。本条的内容只是作为这些规范的引用。若缺少这样的引用规范,则GB/T16656的本部分不定义配置文档的一致性。如果一个XML文档满足以下所有条件,则它对于一个给定的EXPRESS模式和给定的配置文件而言,符合配置文档的一致性要求:——文档的根元素是使用所给定的配置文件从一个给定的EXPRESS模式导出的序列化单元元素,见8.8的描述。——序列化单元元素中编码的数据集符合给定的按照GB/T16656,11描述的EXPRESS模式。——序列化单元元素的XMI。信息集对于XML模式是有效的,该XMI,模式是使用给定的配置文件从第6章描述的控制EXPRESS模式导出的。注:关于创建一个符合GB/T16656本部分的XML实例文档的详细规定见第9章。4.2导出的XML模式文档的一致性如果一个XML文档满足以下所有条件,则它对于一个给定的EXPRESS模式和给定的配置文件而言,符合导出的xML模式文档的一致性要求:~给定的EXPRESS模式符合GB/T16656.11的要求。——对于给定的EXPRE%S模式而言,给定的配置文件应符合配置文件一致性的要求,详见4.3的规定。——文档的内容满足《XML模式第l部分:结构》的第5章中描述的模式有效性约束。一一xMI.模式定义应准确地包含第7章或第8章中规定的定义和声明,根据第6章的规定,XML模式定义将利用给定的配置文件从给定的EXPRESS模式导出。XML模式定义可包含附加的XMI.模式注释(annotation)元素。导出的XMI。模式文档有两个一致性类:——xML模式文档的一{露拦类』:如第6章所示,如果XMI。模式文档除了那些只被包括在一致性类2中的定义和声明外,包括了第7章或第8章中规定的所有定义和声明,则它符合一致性类l的要求。符合一致性类1的导出XMI,模式不应包括第8章规定只能属于一致性类2的任何定义或声明(见10.2.23)。——xMI。模式文档的一致拦类2:如果XMI。模式文档包括第8章中规定的所有定义和声明,且包括所有只属于一致性类2的定义或声明,则它符合一致性类2的要求。注:为了使一个文档符合一致性类2,第6章必须规定导出XML模式应当是配置XMI。模式联编的,详见第8章的规定,且必须使用配置指令generatekeys一“true”。4.3配置文件的一致性如果一个XMI。文档满足以下所有条件,则它对于一个给定的EXPRESS模式而言,符合配置文件的一致性要求:——文档的根元素是一个配置(configuration)元素。——该配置(configuration)元素对于附录B中规定的配置模式而言是有效的。——配置文件符合第10章中有关相关语境模式是给定的EXPRESS模式的规定。注:如果配置文件没有包括第10章中被声明为特定模式的元素,则配置文件符合任意一个EXPRESS模式,但在16656的本部分中,只有在一个给定EXPRESS模式的相关语境中定义一致性才是有意义的。8
GB/T16656.28—2010/ISO10303-28120074.4前置处理器的一致性如果一个软件应用生成的XML实例文档符合GB/T16656本部分4.1的规定,则可称它符合前置处理器的一致性要求。符合前置处理器一致性的软件应用可以是只针对iso1030328文档,也可以是只针对UOS文档,或者是两者。符合前置处理器一致性的软件应用可以是针对任意EXPRESS模式的,或者是只针对特定的EXPRESS模式。前置处理器有三个一致性类:——前置处理器一致拦类』:如果前置处理器针对某些EXPRESS模式可生成符合导出XML模式一致性类1的UOS文档,则它符合一致性类1的要求。——前置处理器一致烂娄2:如果前置处理器针对某些EXPRESS模式可生成符合导出XML模式一致性类1的包含UOS元素的iso10303—28文档和独立的UOS文档,则它符合一致性类2的要求。——前置处理器一致拦娄3:如果前置处理器可生成符合任意EXPRESS模式与任意配置文件的包含替代OOS元素的iso一10303—28文档,则它符合一致性类3的要求。在任何情况下前置处理器一致性的声明都应基于限定其产生XML文档的EXPRESS模式。注:一致性类1和2都将前置处理器的一致性定义为产生对应于默认XMI,模式的XML数据集的能力。一致性类3要求前置处理器支持任意配置文件。如果一个软件应用相应于特定配置XML模式仅针对配置文档符合一致性要求,则它不能被称作符合GB/T16656本部分的前置处理器一致性要求。但可认为它符合定义该配置XMI。模式的规范的前置处理器一致性要求。4.5后置处理器的一致性如果一个软件应用可以存取并处理符合GB/T16656本部分4.1规定的XML实例文档,则它被称作符合后置处理器一致性的要求。符合后置处理器一致性的软件应用可以是只针对iso一1030328文档,也可以是只针对UOS文档,或者是两者。符合后置处理器一致性的软件应用可以是针对任意EXPRESS模式的,或者是只针对特定的EXPRESS模式。后置处理器有三个一致性类:——后置处理器一致拦类J:如果后置处理器可读取和处理UOS文档和/或包含UOS元素的iso10303—28文档,且这些文档针对任意一个EXPRESS模式符合导出XMI.模式的一致性类l则后置处理器符合一致性类1的要求。——后置处理器一致拦类2:如果后置处理器可读取和处理UOS文档和/或包含UOS元素的iso一10303—28文档并能执行相应XML的验证,且这些文档针对任意一个EXPRESS模式符合导出XML模式的一致性类2,则后置处理器符合一致性类2的要求。——后置处理器一致雌类3:如果后置处理器可读取和处理包括序列化单元元素的iso10303—28文档,且文档符合具有任意符合性配置文件的EXPRESS模式,则后置处理器符合一致性类3的要求。对于每个符合一致性类1和2的后置处理器,一致性声明都应基于文档的类型和限定其XMI。文档处理的EXPRESS模式。对于符合一致性类3的后置处理器,一致性声明应基于限定其XML文档处理的EXPRESS模式。注:如果一个软件应用仅符台对应于特定配置XMI。模式的配置文档的要求,则它不能称作符合GB/T16656本部分后置处理器的一致性要求。但可认为它符合定义该配置XML模式规范的后置处理器一致性要求。4.6XML模式生成器的一致性如果一个软件应用可以处理任何有效的EXPRESS模式,并可生成一个符合4.2规定的XML模式文档,则它被称作符合xML模式生成器的一致性要求。XML模式生成器一致拦类』:如果一个XMI,模式生成器能生成第7章规定的默认XMI。模式,即由一个空配置文件产生的导出模式,则它符合XML模式生成器一致性类1的要求。9
GB/T16656.28—2010/ISO10303-28:2007XMI.模式生成器一致拦类2:如果一个XMI,模式生成器能生成第8章规定的对应于任何EXRESS模式和任何符合性配置文件的导出的配置XMI。模式,则它符合XMI。模式生成器一致性类2的要求。5文档级元素本章规定r定义符合GB/T16656本部分的XMI,实例文档结构的XMI,元素。5.1定义了符合iso_1030328文档的XMI,文档结构,5.2~5.6定义了iso-10303—28文档根元素的内容元素,5.7定义了符合UOS文档的XMI.文档结构,5.8定义了符合配置文档的XML文档结构,5.9定义了iso-1030328文档根元素中包含的XMI,属性。16656的本部分在附录c中规定了一个XMI.模式声明和定义的集合,称作基本XMI。模式,它应当作为每个符合本部分的XMI,实例文档基本模式的组成部分。该集合中声明的XMI。元素名称、属性名称和数据类型名称构成了命名空间,用urn:iso:std:iso:10303:28:ed2:tech:XMI。schema:common表示。GB/T16656的本部分还在附录D中规定了一个XMI.模式声明和定义的集合,称作文档模式,它定义了符合iso-10303—28文档的XML信息集,该集合中声明的XMI.元素名称、属性名称和数据类型名称构成的命名空间用urn:iso:std:iso:10303:一28:ed2:tech:XMI。schema:document表示。51iso一10303—28文档iso一1030328文档的根元素应当是一个iso一10303—28元素。iso一10303—28元素包含GB/T16656的本部分定义的所有其他元素。这些元素使文档可以包含描述性信息、EXPRESS模式、XML模式配置文件和EXPRESS模式所描述的数据集。这些声明的目的是使符合本部分的文档可包含EXPRESS模式、配置文件和通过引用来自其他XML文档的数据集。GB/T16656的本部分在附录D中规定了一个XML模式声明和定义的集合,称作文档模式,该模式应当作为每个符合iso一1030328文档的XML实例文档的文档模式的组成部分。该集合中声明的XMI,元素名称,属性名称和数据类型名称应构成附录A.3中规定的命名空间。文档模式中该元素类型的声明是:(XS:elementname=”iso一10303—28”>(KS:complexType)(XS:elementref=”exp:header”minoccurs=”0”/>(XS:choiceminoccurs=”0”maxoccurs=”unbounded”>(XS:elementref=”exp:UOS”/>(XS:elementref=”doc:schema”/)</xs:choice)(/xs:sequence)(/xs:complexType)(/xs:element)XML属性版本(version)应标识XMI。文档所符合的GB/T16656本部分的版本。对于符合16656本部分当前版本的文档,版本的属性值应该是2.0。如果文档中出现有edo属性,则它应该包含该文档的唯一全局标识符作为企业数据对象(见5.9)。10
GB/T16656.28—2010/ISO10303-28二2007下面各条将描述iso一1030328元素的内容元素及其XMI.属性。5.2文档和tlOS头信息本条规定元素包含的“起源”信息,该信息描述了一个作为信息资源的元素,信息资源可以是整个iso1030328文档元素或者是它包含的一个序列化单元(见5.6)。“起源”信息是关于包含在资源中信息的来源的信息。5.2.1元素exp:headerexp:header元素应包含管理信息,描述整个XMI.资源——包含exp:header元素的特征,包含该头元素的资源可以是一个iso一10303—28元素(表达整个文档)或者是一个UOS元素实例文档。文档模式中该元素的类型声明是:(xs:complexTypename=”name—antaddress”>(XS:sequence>(XS:complexType>(XS:sequence>(/xs:complexType)(XS:elementname=”header”>‘XS:sequence)(/xs:element>注:该定义对应于GB/T1665621口1中定义的FII。E—NAME实体。11
GB/T16656.28—2010/ISO10303—28:20075.2.2元素name名称(name)元素应为XMI,资源提供一个人可读的标识符。5.2.3元素time_stamp时间戳(time—stamp)元素应描述XML资源被创建的日期和时间。5.2.4元素author创作者(author)元素应标识创建XML资源的个人或一组人。GB/T16656的本部分对创作者元素的内容没有规定具体的要求。5.2.5元素organization组织(organization)元素应标识创建或负责XMI,资源的组织。5.2.6元素authorization授权(authorization)元素应规定XML资源的发布授权,以及在适用之处规定其签署者。注:这与对文档中各种信息单元的授权不同。5.2.7元素originating_system原创系统(originating_system)元素应标识创建或获取XML资源中所包含信息的软件系统,包括系统的适用平台和版本标识符。5.2.8元素preprocessor_version前置处理器版本(preprocessor—version)元素应标识创建XML资源自身的软件系统,包括平台和版本标识符。注:preprocessor_version将标识用于产生XML资源的系统。它可能与创建或获取原始信息的软件系统不同。5.3schema_population元素模式群(schema—population)元素标识了一个用文档中序列化单元元素表达的EXPRESS实体实例的集合,它们构成一个“群”,可按照GB/T16656.11中定义的EXPRESS模式规则进行验证。如果通过一个schemapopulation元素描述模式群,则符合本部分的后置处理器可以,但不是必须的,根据控制模式的要求验证该模式群。文档模式中该元素类型的声明是;(XS:elementnaive--”schema_population”>(XS:complexType>(/xs:element>构成模式群的实体实例集合应通过将XML属性detemination—method标识的算法应用到XML属性governed—sections标识的序列化单元元素集合来确定。XMI。属性governing—schema的值应该是express元素的局部XML标识符,该express元素表达了用于验证由schema—population元素所描述的模式群的EXPRESS模式。相应的express元素应该出现在文档中。注1:被引用的express元素可能包含EXPRESS模式的表达或EXPRESS模式的外部引用。XML属性governed—sections的值应是一个由空格分开的局部XML标识符序列,其中的每个标识符都标识一个出现在文档中的序列化单元元素。如果XMI,属性governed—sections没有值,则序列化12
GB/T16656.28—2010/iso10303—2812007单元元素的指定列表应包含文档中出现的所有序列化单元元素。序列化元素的指定单元应该是该确定方法的输入操作数。注2:附录E中讨论了序列化单元元素的相关语境模式和它的实体实例所属的模式群的governing—schema属性之间的可能关系。XMI。属性determination—method属性的值应是字符串,标识用于选择组成模式群的EXPRESS实体实例的算法。附录E中规定了该属性的三种可能值和相应的选择算法。其他值也可能出现,但16656的本部分不对它们进行解释。如果该属性没有取值,则它的默认值就是“sectionboundary”,且应使用附录E中描述的截面边界方法。符合本部分的is0—10303—28元素可包括零个或多个schema—population元素。每个schema—population元素为了进行GB/T16656.11规定的验证而描述了一个完整的模式群。如果没有出现schema—population元素,则对于任何“有效模式群”,都不规定文档中表达的EXPRESS实体实例间的关系,且没有附加信息,iso一10303—28元素内容针对任何EXPRESS模式的验证也是不可能的。一个给定的序列化单元元素可被显式使用在零个、一个或多个模式群中,即通过引用schema—pop—ulation元素的XMI。属性governedsections中的元素实现。给定的序列化单元元素也可被隐式地用在零个、一个或多个模式群中,根据这些模式群所使用的确定方法而定,但这种用法并不意味着该序列化单元中表达的所有EXPRESS实体实例都要如此使用。如果一个序列化单元元素没有被显式或隐式地被任何schema_popu[ation元素所引用,则对于任何“有效模式群”EXPRESS实体实例之间的关系都不被规定。注3:下述步骤描述了符合上述要求的模式群有效性的检验方法:对于iso一1030328元素中的每个schemapopulation元素;——通过对governedsections属性值标识的序列化单元元素,或者在段有规定governed_sections属性值时对is01030328元素中所有序列化单元元素使用determination_method属性值标识的确定方法,查询一个EXPRESS实体实例集合;——根据governed—sections属性值表明的EXPRESS模式所定义的规则和约束条件,检验该实例集合。5.4express元素express元素应包含一个EXPRESS模式,既可以是“基于值”也可以是“基于引用”的。在文档模式中该元素的类型声明为:(xs:elementname=”express”nillable=”true”)(XS:complexType)。</xs:simplecon七ent></xs:complexType)(/xs:element)13
GB/T16656.28—2010/ISO10303—28:2007在基本XMI。模式中,Seq—anyURl的类型声明如下:(XS:simpleTypename=”Seq-anyURI”)(xs:listitemType=”xs:anyURI”/></xs:SimpleType>对于这两种表达情况:——XMI.属性id的值应当是EXPRESS模式的局部XMI。标识符。这个值为文档中的schema—population元素和序列化单元元素提供了EXPRESS模式的引用。——当出现XMl,属性schema—name时,它应包含按照7.1.2或8.1.2要求转换的模式的EX—PRESS标识符,详见第6章。——当出现XMI.属性schema—verison时,它应包含模式的版本标识符。——对于由GB/T16656标准定义的EXPRESS模式而言,当出现schema—identifier属性时,它应包含与该模式关联的ASN.1标识符,这个标识值和这部分GB/T16656的模式相联系。对于任何其他的情况,GB/T16656的本部分没有规定如何使用schema_identifier属性。5.4.1EXPRESS模式的引用表达当EXPRESS模式是基于“引用”的表达时,应当使用XMI。属性sehemaI。ocation,它的值应标识包含EXPRESS模式(文本)的一个或多个资源。注:按照惯例,schemaLocation的值可以是个单一的URI,也可是一个URI列表,列表中第~个URI是一个URN,它是配置文件的全局标识,其他的URI是文本的可能地址。当EXPRESS模式是基于“引用”的表达时,express元素的内容应当是nil(空)。5.4.2EXPRESS模式的取值表达当EXPRESS模式是基于“取值”的表达时,express元素的内容应当是符合GB/T16656.11的EXPRESS模式的文本表达,文本中的字符编码在XML处理指令中规定。express元素的内容应该是下列之一:——有效的XMLCDATA段,见XMI。1.0标准中2.7的规定;——有效的XMl。文本字符串,其中的字符‘<7用‘&It’来替代,字符‘&’用‘gaamp’替代。如果字符序列‘]])’出现在EXPRESS模式中,则应使用有效的XML文本字符串形式表达该模式。当EXPRESS模式是基于“取值”的表达时,XMI。属性schemaLocation不应出现。示例:下列EXPRESS模式:SCHEMAhello_world;END—SCHEMA;将表达为一个XMLCUFA段:(express—schemaid:”s01”)(![CDATA[SCHEMAhello_world;END—SCHEMA;]])(/旺pressschema>5.5configuration元素configuration元素包含一个控制从给定的EXPRESS模式到XMI。模式映射的配置文件和该EX—PRESS模式描述的数据的XML表达。configuration元素的结构和解释详见10.1。5.6unitofserialization元素schemainstance(模式实例)是为某些目的而组成的一个数据集合,由一个单一的EXPRESS建模。序列化单元元素(unitofserializationelement)是表达一个模式实例的XML元素。该模式实例的EXPRESS模式被作为此序列化单元元素的相关语境模式(contextschema)。对于每个相关语境模式,在与导出的XML模式关联的命名空间中都要声明一个特定的序列化单元元素,详见7.8或8.8。每个序列化单元元素都应是exp:UOS元素替代组的一个成员,且它的数据类型应是exp:UOS数据类型的扩展,在基本XML模式中定义如下:14
GB/T16656.28—20IO/ISO10303—28:2007(/xs:sequence>(/xs:extension>(/xs:simplecontent)(/xs:complexType)示例:ENTITYentity_withbinaryattribute;a_binary:BINARY;END—ENTITY;在XMI.模式中:(xs:complexTypename=”Entity_withbinary_attribute”)</xs:complexContent>(/XS:complexType)XMI。实例文档:(Entitywith_binary_attribute}(A—binary>0FB7</nbinary>(/Entity_withbinary_attribute>7.2.1.1.1有约束的BINARY数据类型规定了最大长度或固定长度的EXPRESSBINARY(二进制)数据类型被称作有约束的BINARY数据类型。它应被映射为一个对exp:hexBinary数据类型进行约束的复合类型(complexType)。当有约束的BINARY数据类型是一个EXPRESS类型声明中的基础类型时,则对应的XML数据类型见7.3.1.1的规定。对于一个有约束的BINARY数据类型,导出XMI.模式应包含一个与其对应的XMI。数据类型的类型定义。类型定义应具有以下形式:(XS:simplecontent>0,则bits=bits/8+1;——如果bits%8—0,则bits=bits/8。注:miaBies和bits的值是用位表示的长度值.而mirlLength和ma吐engt^的值是用八进制表示的长度值。示例:在EXPRESS中:ENTITYentity_withfixedbinaryattribute;a—binary:BINARy(12)FIXED;Lbinary:BINARY(8):END_ENTITY;在XMI,模式中:(XS:complexTypena【[_e=“Binary1212”)(/xs:SimpleContent、(/xs:complexType>‘xs:complexTypename=“Binary08”)《XS:SimpleContent}(XS:restrictionbase=”exp:hexBinary“>《xs:complexTypename=”Entity_withfixedbinary_attribute”>(xs:complexContent)(/xs:complexContent>(/xs:complexType)19
GB/T16656.28—2010/ISO10303—28:20077.2.1.2BOOLEAN数据类型EXPRESSBoOLEAN(布尔型)数据类型被映射为XS:boolean数据类型。示例:ENTITYentitywithboolean_attribute;aboolean:BOOLEAN;END_ENTITY;在XMI。模式中:(XS:a11)(/xs:all>(/xs:extension>(/xs:complexContent>(/xs:complexType>XMI.实例文档:(Entity_withbooleanattribute>(A-boolean>true</Aboolean></Entity_with-booleanattribute>7.2.1.3INTEGER数据类型EXPRESSINTEGER(整数型)数据类型被映射为XS:long数据类型。示例:ENTITYentity_withinteger_attribute;aninteger:INTEGER;END_ENTITY;在XML模式中:(XS:a11)(XS:elementtype=”xs:long”naNe。”An_integer”/>(/xs:a11)(/xs:extension></xs:complexContent></xs:complexType>XMI。实例文档:(Aninteger>1234(/An_integer>(/Entity_with_integerattribute>7.2.1.4LOGICAL数据类型EXPRESSLOGICAI。(逻辑型)数据类型被映射为exp:logical数据类型。在基本XMI.模式中(见附录c)中exp:logical数据类型的定义如下所示:</xs:restriction></xs:simpleType>示例:ENTITYentity_with-logical—attribute;alogical:LOGICAL;ENDENTITY;在XMI,模式中:(XS:extensionbase=”exp:E7itity”)(xs:a11)(xs:elementtype=”exp:logical”na/Qe5”Alogical”/>(/xs:a11)(/xs:extension>(/xs:complexContent></xs:complexType)XML实例文档:(Entitywithlogical—attribute>(Alogical>true</A_logical>(/Entitywithlogical—attribute>7.2.1.5NuMBER数据类型EXPRESSNUMBER(数字型)数据类型被映射为XS:decimal数据类型。示例:ENTITYentity_with-number_attribute;anumber:NUMBER;END—ENTITY;在XML模式中:(xs:extensionbase=”exp:Entity”)(XS:all>(/xs:complexContent>(/xs:complexType>XML实例文档:12345678</Lnumb色r)(/Entitywithnumber—attribute>7.2.1.6REAL数据类型EXPRESSREAI。(实数型)数据类型被映射到xs:double数据类型。带有精度的EXPRESS实数型数据类型被映射时不受精度的约束。示例1:21
GB/T16656.28—2010/[so10303—28:2007ENTITYentitywitkreal—attribute;areal:REAL;END—ENTITY;在XMI。模式中:(/xs:complexContent>(/XS:complexType)XML实例文档:(Entity_witkreal—attribute>(A-real>l2E02(/A—real)</Entitywith_realattribute)示例2:带有精度的实数应当与上述示例1的映射相同:ENTITYentity_witkrealattribute;a_real:REAL(16);ENDENTITY:7.2.1.7STRING数据类型EXPRESSSTRING(字符串)数据类型被映射为XS:normalizedString数据类型。特例:如果该EXPRESS数据类型被声明为具有最大长度或固定(FIxED)长度,则EXPRESS数据类型应按照7,2.1.7.1的规定映射。示例:ENTITYentitywitkstring—attribute;a_string:STRING;END_ENTITY;在XMI。模式中:(XS:complexTypename=”Entity_withstringattribute”)(xs:complexContent)(XS:extensionbase=”exp:Entity”)(7xs:complexContent></xs:complexType>XMI,实例文档:Hallo</Astring></Entity_with-string_attribute>7.2.I.7.1有约束的STRING数据类型规定了最大长度或固定(FIXED)长度的EXPRESSSTRING(字符串)数据类型被称作有约束的STRING数据类型,它应该被映射到simpleType,是对XS:normalizedString数据类型的限定。22
GB/T16656.28—2010/iso10303-28:2007当有约束的STRING数据类型是EXPRESS类型声明中的基本类型时,则相应XMI。数据类型的规定见7.3.1.3。在其他情况下,导出XMI。模式应包括与有约束STRING类型相对应的XMI。数据类型的类型定义,类型定义的形式如下所示:(XS:simpleTypename=”StringminLength.maxLength”)(XS:minLengthvalue=”minLen虻^”/>(xs:maxLengthvalue=”maxLength”/)(/xs!restriction></xs:simpleType>其中:——minI—ength:如果EXPRESSSTRING数据类型被声明为N定t圭N,则mini。ength应为固定长度值。否则,其值为⋯0,且xs:minLength将被省略。一一maxI—ength:为EXPRESSS’FRING数据类型的最大长度或固定长度。注:如果EXPRESS模式为有约束的STRING数据类型声明了一个自定义数据类型,则存在一个与之对应的XMI。定义(见73)。上述定义仅适用于匿名的有约束STRING数据类型。示例:ENTITYentitywithstring_types;aboundedstring:STRING(16);afixedlengthstring:STRINC(8)FIXED;ENDENTITY;在XML模式中:(XS:simpleTypen硼e=”String016”、(XS:restrictionbase=”xs:normolizedString”)(/XS:simpleType>(XS:simpleType/lame=”String88”)(XS:restrictionbase=”xs:normallzedStrlng”)(/xs:siapleType)(/xs:complexContent)《/xs:complexType>XMI。实例文档:(Eatitywithstringtypes>(A_bounded_string>Public,JohnO(/Aboundedstring)
GB/T16656.28—2010/ISO10303—2812007(A_fixedlengthstring>jqpublic</A_fixedlength-string>(/Entity_withstring_types)7.2.2聚合数据类型对于EXPRESS聚合数据类型,即集合(SET)、列表(I。IST)、包(BAG)或数组(ARRAY)数据类型,其基类型(basetype)是组成元素的数据类型。与聚合数据类型对应的XML模式数据类型依赖于适用的基类型。表2说明与给定用途的EXPRESS聚合数据类型相对应的XMI.数据类型,应当是适用的聚合类型和基类型的组合,如下所示:——基类型的值应当在聚合数据类型的EXPRESS声明中规定。当聚合的基类型是自定义数据类型时,则此自定义数据类型的基本类型应当用作基类型的值。一~简单(Simple)类型的XML表达含有simpleType类型且不包含空格,包括布尔型(BOOLEAN)、整型(INTEGER)、逻辑型(I。OGICAL)、实数型(REAl。)和数字型(NUMBER)等EX—PRESS数据类型,以及对任何这些类型的专门化的自定义数据类型。——聚合类型的值应当在聚合数据类型的EXPRESS声明中规定。对于表2而言,可选数组(AR—RAYOFOPTIONAL)的基类型被认为是个不同的聚合类型。’——可用的数据类型特性和配置指令的可用值应按表2中各列的格式进行排序,表中每行的值可进行一对一的对比。——可用值将与表中某一行的所有值匹配。对应的XML数据类型应当在该行条款列所标识的条中规定。表2描述聚合数据类型对应关系的条款聚合类型基类型条ARRAY/LIST/SET/BAG简单数据类型7.2.23ARRAY/LIST/SET/BAG字符串/-进制(STRING/BINARY)722.2ARRAY/I,IST/SET/BAG枚举型(ENUMERATION)7.2.2.5ARRAY/I,lsT/SET/BAG选择型(SELECT)7.22.6ARRAY/I,1ST/SET/BAG实体7.2.2.7ARRAY/L1ST/SET/BAG聚合数据类型724ARRAYOFOPTIoNAL简单数据类型72——ARRAYOFOPTIONAI,字符串/=进制(STRING/BINARY)7.22ARRAYOFOPTl0NAL枚举型(ENUMERATION)72ARRAYoF0PTIONAI。选择型(SEI,ECT)7.22.6ARRAYoFoPTIONAL实体7.2.2.7ARRAYOF0PTlONAI。聚合数据类型7.22.47.2.2.1聚合数据类型的XML属性对应于某些EXPRESS聚合数据类型的XML模式数据类型是具有以下所有属性的元素序列(XS:restriction>(XS:simpleType>24
GB/T16656.28—2010/ISO10303—28:2007(xs:minLengthvalue=”l”/)(/xs:restriction>(/xs:simpleType)(/xs:attribute>(xs:simpleType)(/xs:slmpleType>(/xs:attribute>(XS:enumerationvalue=”list”/)</xs!restriction></xs:simpleType>在~个特定的实例表达的聚合值中arraySize属性的值表示其组成元素的个数。对于一个ARRAY,该值一般是固定的且等于Hilndex--Lolndex+1(见以下内容——适用于部分特例)。对于一个多维数组,该值是一个整数值序列,表示每个维度上组成元素的个数(见7.2.2.4和9.8.5)。itemType属性值表示聚合值的基类型——组成元素的类型。每个实际的聚合数据类型为itemType属性规定了一个固定值(见以下内容)。cType属性值表示EXPRESS聚合数据的类型——sET、LIST、BAG、ARRAY、ARRAYOFUNIQUE或者LISTOFUNIQUE。每个实际的聚合数据类型规定了cType属性所要求的值(见以下内容和9.8)。7.2.2.2聚合的Sequence-of-elements形式当表达EXPRESS聚合数据类型的序列化元素(sequence—o[-elements)形式符合7.2.2中的规定时,相应的XML模式数据类型应当是complexType,且具有如下形式:(XS:complexType>(XS:sequence>(XS:elementref;”base-instance”minOccurs=’’lower-bound”maxOccurs=’’upper-bound”/、</ms:sequence>(XS:attributeref=”exp:itemType”fixed=”base-instance”/>(/xs:complexType>其中:25
GB/T16656.28—2010/ISO10303—28:200726base-instance是与聚合数据类型的基类型对应的实例元素的合格名称,见7.4或75的规定。——Iower一幻und(下限):当给定集合大小的下限,其计算结果是一个常量,且EXPRESS聚合类型不是ARRAYOFOPTI()I.A时,则minOecurs的值应是EXPRESS聚合的下限,并以十进制整数表示。否则,minOccurs的值应为⋯0’。如果下限值计算结果为⋯1’,则minOccurs属性可被忽略。⋯upper-bound(上限):当给定集合大小的上限且其计算结果是一个常量时,maxOccurs的值应是EXPRESS聚合的上限,且以十进制整数表示。否则,nlaxOccurs的值应为“unbounded”。注1:如果EXPRESS聚合数据类型为一个ARRAY,则其上下限值为:Hilndex(a)Lolndex(a)+1,其中a是聚合数据类型。——aggregate-type是EXPRESS聚合类型的关键字:“set”表示SET,“bag”表示BAG,“list”表示LIST,“array”表示ARRAY,“listunique”表示LISTOFUNIQUE,“arrayunique”表示ARRAYOFUNIQUE,array—optional表示ARRAYOFOPTIONAI。,array—optional—unique表示ARRAYOFOPTIONAI。UNIQUE。——usage:当EXPRESS聚合类型是ARRAY(且不是可选的),数组的上下限计算结果是常量时,arraySize应声明为fixed--“upper-bound”,其中upper-bound(上限)的定义如上所述。当EXPRESS聚合类型是ARRAY且数组的上下限计算结果不是常量时,arraySize应声明为use一”required”,否则,arraySize应声明为use--”optional”。注2:XMI。模式数据类型的值表达EXPRESS聚合数据类型的值,详见982和983。注3:上述定义给出了complexType的主体,而complexType元素本身可能有,也可能没有tlalne属性.见后续章条的内容。示倒1:EXPRESS表达:TYPEaddress—LIST[1:?]OFSTRING;ENDTYPE;XML模式表达:(XS:complexTypename=”Address”)(XS:sequence)(xs:attributeref=”exp:cType”fixed=”list”/7</xs:complexType>示例2:EXPRESS表达:TYPExetofstringtype=SET[1:?]OFdefinedt!∞ebasedonstring;ENDTYPE;TYPEdefined_typebasedonstring=STRING}ENDTYPE;用XMI。模式:(XS:elementref=”Tns:Definedtypebasedonstring-wrapper”
GB/T16656.28—20lO/lSo10303—28:2007minOccurs2“1”maxOccurs=。’tm]30tmded’。/、</xs:sequence>7.2.2.3聚合的List—of-values形式当7.2.2中规定EXPRESS聚合数据类型的表达采用值列表(1ist,o[-values)的形式时,则相应的XMI。模式数据类型是基于一个简单列表数据类型,见7.2.2.3.1的规定。相应XML模式数据类型是对支持EXPRESS基类型聚合的非约束复合类型(complexType)的限制类型,见7.2.2.3.2的规定。对应于EXPRESS聚合数据类型的XMI,数据类型应采用如下形式:(XS:complexType)(XS:simpleContent)(XS:simpleType)(xs:minLengthvalue=”lower-bound”/)(XS:maxLengthvalue=”upper-bound”/>(/xs:restriction></xs:SimpleType)(xs:attributeref=”exp:arraySize”usage/>(/xs:si“plecontent>(/xs:complexType)其中:——unrestricted-type应当是支持EXPRESS基类型聚合的非约束complexType(复合类型)的合格名称,见7.2.2.3.2的规定。——jist—type应当是对应于该基类型的简单列表数据类型的合格名称,见7.2.2.3.1的规定。jD№r-幻∞d是EXPRESS聚合的下限。当给定了下限且计算结果为常量时,则minLength的值就是下限值,用{。进制整数表示。否则mini。ength的值应为⋯0’。如果mini.ength的值为⋯0’,则可忽略该属性。一upper-bound是EXPRESS聚合的上限。当给定了上限且计算结果为常量时,则maxLength属性应当存在且其值应为上限值,用十进制整数表示。否则,可忽略minLength属性。注:如果EXPRESS聚合类型是一个ARRAY(数组),则上下限的值为Hilndex(a)一Lolndex(a)+1,其中“a”为聚合数据类型。——如果EXPRESS聚合数据类型的下限是0或者未规定,且上限是不确定的或未规定,则类型声明中对简单列表类型的限制可以忽略不计,即只有XML属性的值是受限制的。——aggregate-type是EXPRESS聚合类型的关键字,其值的含义是:”set”表示SET,”bag”表示BAG,”list”表示LIST,”array”表示ARRAY,”listunique”表示LISTOFUNIQUE,”array—unique”表示ARRAYOFUNlQUE。值列表的形式不适用于ARRAYOFOPTIONAL。一一usage:当EXPRESS聚合类型是ARRAY且数组的上下限计算结果都是常量时,arraySize应27
GB/T16656.28—2010/ISO10303—28:2007当被声明为fixed=“upper-bound”,其中upper-bound(上限)的定义如上所述。当EXPRESS聚合类型是ARRAY且数组的上下限计算结果都不是常量时,arraySize应当被声明为use一”required”,否则,arraySize应被声明为USe--”optional”。示例1:EXPRESS表达:TYPEcompoundplaneanglemeasure=ARRAYLl3]OFREAL;END_TYPE;支持REAI.(实数)型聚合的简单类型应被定义为Tns:List—double,见7.223.1的示例。支持REAL(实数)型聚合的非约束complexType(复合类型)应被定义为Tns:Seqdouble,见7.2.232的示例。对应于eompoundplaneanglemeasure的XMI。数据类型是:(XS:minLengthvalue=”3”/5(xs:maxLengthvalue=”3”/5</xs恤strictlon)(/xs:SimpleType5示例2:EXPRESS表达:TYPElength_measure=REAL;END_TYPE;TYPEmeasurements=LIST[17]OFlengthmeasure;END_TYPE;支持lengthmeasure(长度度量型)聚合的简单数据类型应被定义为Tns:ListIength—rlleasure,见72.2.31的示例。支持lengthmeasure(长度度量型)聚合的非约束eomplexType(复合类型)应在导出的XML模式中被定义,见7.2.2.3.2的示例。对应于EXPRESS类型measurements的XML数据类型是:(XS:complexTypeI】aⅢe=“Measurements”5(XS:sxmpleContent5(/xs:simpleType5(XS:attributeref=”exp:cType”fixed=”list”/5(xs:attributeref=”exp:arEaysize”use=”optional”/5(/xs:restriction5</xs:sxmpleContent5(/xs:complexType)28
GB/T16656.28—2010/mo10303-28:20077.2.2.3.1支持聚合的简单列表类型当EXRESS聚合数据类型的fisto[values(值列表)表达形式符合7.2.2中的规定时,则相应的XML模式数据类型将基于简单列表数据类型。简单列表数据类型在导出的XMI。模式中是由下列形式的simpleType类型定义的:(/ms:simpleType>其中:——List—type(列表类型)的内容应当是“I^t一”开头,其后跟对应于聚合数据类型的基类型的XMI。模式数据类型名称中的本地名,详见7.2或7.3。——hse-t,pe(基类型)应当是对应于聚合数据类型的基类型的XMI,模式数据类型的合格命名,详见7.2或7.3。对于具有相同基类型的所有EXPRESS聚合类型,只需要一个这样的定义。示例:EXPRESS表达:TYPECompoundPlaneAngleMeasure=ARRAY[13]OFREAL;END_TYPE;TYPElength—measure=REAL;END_TYPE#TYPEmeasurements=LIST[1:?]OFlength_measure;END_TYPE;在导出的XMI,模式中相应的简单类型定义如下:7.2.2.3.2支持聚合的非约束复合类型单个非约束复合类型complexType可支持一个给定EXPRESS基类型的所有聚合(ARRAY,BAG,LIST,SET)。与具有这些基类型的每个特定聚合数据类型相对应的XML数据类型是非约束复合类型complexType的一个限制。导出的XMI。模式应该包含非约束复合类型的定义。对有具有相同基类型的所有EXPRESS聚合类型而言,仅需要一个这样的定义。定义应该有如下形式:(XS:SimpleContent>(xs:extensionbase=”Tns:list—type”>(/xs:simplecontent>(/xs:complexType)其中:——Tns:List-type应当是在7.2.2.3.1中定义的简单list—type的合格名称。——seg-type应当以“Seq”开始,后跟与聚合数据类型的基类型相对应的XML模式数据类型名29
GB/T16656.28—2010/ISO10303—2812007称的本地部分,见7.2和7.3的规定。——hse_t印e,即itemType属性值,应当是与聚合数据类型的基类型相对应的XMI。模式数据类型的合格名称,见7.2和7.3的规定。示例1:EXPRESS表达:TYPECompoundPlaneAngleMeasure=ARRAY[1:3]OFREAL;END_TYPE;REAI。聚合类型的非约束complexType应该在导出的XML模式中定义如下:(XS:extensionbase=”Tns:List-double”)(XS{attributename=”ref”type=”KS:IDRRE”use=”optional”/)上述定义只出现一次,即使相关语境模式包含了多个基类型是REAL的聚合类型。示例2:EXPRESS表达:TYPElengthmeasure=REAL;END_IYPE:TYPEmeasurements=LIST[1:?]OFlengthmeasure;ENDTYPE;Length—rlleasure聚合类型的非约束complex’Fype应在导出的XMI。模式中定义如下:<船:attributena珂e=”ref”type=”船:IDREF”use=’’optional。。/)(Ⅻ:attrlbuteref=”exp:arraySize”use=”optional”/)(XS:attributeref=”exp:it∞Type”fixed=”Tns:Length_measure”/)(/xs:simpleContent)(/xs:complexType>上述定义只出现一次,即使相关语境模式包含多个基类型是lengthmeasure的聚合类型。7.2.2.4聚合数据类型的聚合当EXPRESS聚合数据类型(以下称作类型A)的基类型是另一种聚合类型,或者是基本类型为另一种聚合数据类型的自定义数据类型时,相应的XMI。模式数据类型应具有多维数组结构。相应的XMI。模式数据类型的结构在本条中定义。如果一个EXPRESS聚合数据类型(SET,IAST,BAG或ARRAY)在相关语境模式中是另一个聚合数据类型的基类型,则它被称作是嵌套的。一个聚合类型的最基本类型的确定方法:如果聚合的基类型是一个匿名聚合类型,一个基本类型是聚合类型的自定义数据类型,或者是一个选择列表包含了基本类型为聚合类型的单一自定义数据类型的选择(SEI—EcT)数据类型时,则最底层的基本类型就是该聚合的最基本类型。否则,最基本类型就是该聚合的基类型。
GB/T16656.28—2010/ISO10303—2812007类型B应当是类型A的最基本类型。对应于类型A的complexType应有一个只允许包含与类型B对应的元素的内容模型。另外,此complexType还应规定属性exp:itemType和exp:cType的固定取值,如下所示。此XMI,数据类型应有以下形式:(XS:sequence)7element—or-groupref=”base-instance’’minOccurs=’。lower-bound”maxOccurs=”upper-bound”/、《/xs:sequence)(xs:attributename=”ref“type=”XS:IDREF”use=”optional”/)(xs:attributeref=”exp:arraySize”usage/)(xs:attributeref=”exp:itemType”fixed=”base-instance”/)(/xs:complexType)其中:一一-base-instance:如果类型B是一个实体数据类型,则base-instance应当是对应的complexEntity复合实体组的合格名称(见7.5.6.2)。如果类型B是一个SELECT数据类型,则base-instance应为相应组或实例元素的合格名称(见7.3.4)。否则,base-instance应为相应实例元素的合格名称(见7.4)。——element—or-group:如果base-instance是一个元素。则element—or-group的值为xs:element;如果base-instance一个组,则element-or-group的值为XS:group。注I:一般说来,如娜“鄹妇勰是一个元素。但是如果类型B是一个SELECT数据类型(见7.34)或是一个使用继承树映射的实体数据类型(见75),则base-instance就是一个组。——aggre弘te.t印es:aggregate-types是作为数据结构组成部分的EXPRESS聚合数据类型的关键字列表,其排序方式是类型A的关键字居首.最后是嵌套最深的聚合类型的关键字。每个关键字应当是下列之一:用于SET类型的“set”,用于BAG类型的“bag”,用于LIST类型的“list”,用于ARRAY类型的“array”,用于I.ISTOFUNIQUE类型的“listunique”,用于ARRAYOFUNIQUE类型的“array—unique”,用于ARRAYOFOPTIONAI。类型的“array—op—tional”,用于ARRAYOFOPTIONAI。UNIQUE类型的“arrayoptional—unique”。列表中的各项应当用空格分开。一⋯一lower-bound:当基类型都不是可选的(oPTloNAL),并且每个集合的下限是给定的一个常量时,则属性minOccurs的取值应当为每个聚合数据类型下限的积。否则,属性minOccurs值应为0。如果下限值的计算结果为⋯1’,则属性minOceurs可被忽略。一upper-bound:当每个集合的上限是给定的一个常量时,则属性maxOceurs的取值应为每个聚合数据类型上限的积。否则,该值应当为“无界”。⋯一usage:当类型A和所有嵌套的聚合数据类型都是ARRAY,且都不是可选的,并且所有类型A和嵌套数组的索引范围边界都是常量时,那么arraySize应当被声明为fixed一“size。⋯si—ze。“,其中size,⋯size。是类型A和构成多维结构的所有嵌套聚合数据类型的大小,其顺序是从类型A的大小开始,嵌套最深的聚合数据类型的大小在最后。当类型A和所有嵌套的聚合数据类型都是ARRAY且都不是可选的(OPTIONAI。),并且类型A或任何嵌套数组的索引范围边界都不是常量时,则arraySize应当被声明为USe一”required”,否则,arraySize应当被声明为use--”optional”。注2:如果聚合数据类型是一个ARRAY,则在EXPRESS语法中用LOINDEX和HIINDEX的值一下标范围表示,31
GB/T16656.28—2010/ISO10303-28:200732数组维数的大小是上限和下限索引值之差加上1。注3:多维数组的形式是722规定的“sequence-of-element(元素序列)”形式的一种特例。它的结构相同,但是构成它的实例元素表达了最基本类型的值,而不是类型A的基类型的值。正确解释该结构取决于arraySize的值以及可能的cType值。注4:该XMI。模式数据类型用于表达在985.3或9.8.5.4中规定的数组的取值。示例1:EXPRESS表达:TYPEMatrix=mY[13]OFm{RAY[i2]OFOPTIONALREAL;ENDTYPE;ENTITYX:matrix:Matrix;ENDENTITY;XMI。模式表达:(xs:complexTypename=(xs:attributeref=”exp:cType”fixed=”arrayarrayoptional”/)</xs:complexType>XML实例数据(类似于出现在一个Accessor元素的内部):(exp:double-wrapperpos=”00”>l0(/exp:double-wrapper)(exp:double-wrapperpos=”0l”)20</exp:double-wrapper)(exp:doublerwrapperpos:”20”>OO(/exp:double-wrapper>XMI。实例数据(类似于出现在一个Accessor元素的内部):(exp:double-wrapperpos=”00”)10(/exp:double-wrapper)(exp:double-wrapperpos=”0l”)20(/exp:double-wrapper>(exp:double-wrapperpos=”10”)00(/鲤p:double-wrapper>
GB/T16656.28—2010/iso10303—2812007(exp:double-wrapperpos=”20”)0O</exp:double-wrapper)(exp:double-wrapperpos=”21”)5.4(/exp:double-wrapper)7.2.2.5ENuMERATl0N数据类型的聚合当EXPRESS聚合数据类型的基类型是一个自定义数据类型且该自定义数据类型的基本类型是ENuMERATIoN(枚举)类型时,则相应的xMI。模式数据类型应当按照7.2.2.3规定。示例:EXPRESS表达:TYPEmaterial—type=ENUMERATIONOF(steel,copper,plastic);END_TYPE;TYPElist—of~materials=SET[1:,]ofmaterial—type;END_TYPE;XMI。模式表达:(XS:enumerationvalue=”plastic”/)‘/XS:re8trictlon></xs:simpleType>(XS:attributeref=”exp:arraySize”use=”optional”/>(XS:restrictionbase。”Tns:Seq-Material—type”)(XS:simpleType>(/xs:restrictlon>(/xs:simpleContent)(/xs:complexType>33
GB/T16656.28—2010/ISO10303—28:20077.2.2.6SELECT数据类型的聚合当EXPRESS聚合数据类型的基类型是一个自定义数据类型且该自定义数据类型的基本类型是SEI。ECT(选择)类型,并且该选择类型(见7.3.4.1)的工作选择列表只包含一种数据类型时,则认为选择项的数据类型是该基类型而不是SELECT类型,目7.2.2中对该数据类型的规定都是适用的。其他情况下,当EXPRESS聚合数据类型的基类型是一个自定义数据类型且该自定义数据类型的基本类型是SELECT(选择)类型时,则相应的XMI,模式数据类型应当是complexType(复合)类型。如果自定义数据类型的基础类型不同于基本类型(即,如果自定义数据类型是SEI,ECT类型的specialization(专门化)),则complexType(复合)类型应当按照7.2.2.2规定,将自定义数据类型作为基类型。在其他情况下,complexType(复合)类型应具有下列形式:(XS:complexType)(XS:sequence)。group-or-elementref=’’base-group”minOccurs=’’lower-bound”maxOccurs==”upper-bound”/、(/xs:sequence)(XS:attributena/fie2”ref”type一”xs:IDREF”use一”optional”/)(xs:attributeref一”exp:arraySize”usage/)其中:——hse-筘oup:是对应于自定义数据类型的XMI。组或实例元素的合格名称,见7.3.4的规定。~--group-or-element:如果basegroup是一个group(组),则它应为XS:group,否则为XS:element。——lower-bound:当EXPRESS聚合类型不是ARRAYOFOPTIONAl.,并且该EXPRESS聚合数据类型给定了的下限不是常量时,它就等于其下限的值,用一个十进制整数表示;否则,它为⋯0’。如果其下限等于“l”,则属性minOccurs属性可被忽略。——upper-bound:是EXPRESS聚合类型的上限,用十进制整数表示。当EXPRESS聚合是一个ARRAY且上限是给定的常量时,则属性maxOccurs的值应为(Hilndex(a)一Lolndex(a)+1),其中“a”表示聚合数据类型。当EXPRESS聚合类型不是ARRAY且上限是给定的一个常量时,则属性maxOceurs的值就是上限值,用一个十进制整数表示。否则,它的值应为“无界”。——base_t挣e:是对应于聚合类型的基类型的XML数据类型的合格名称,该聚合类型就是基本类型为SEI。ECT数据类型的自定义数据类型,见7.3的规定。一,aggregate-type:是EXPRESS聚合类型的关键字,其中:用于SET类型的“set”,用于BAG类型的“bag”,用于1,1ST类型的“list”,用于ARRAY类型的“array”,用于LISTOFUNIQUE类型的“list—unique”,用于ARRAYOFUNIQUE类型的“arrayunique”,用于ARRAYOFOPTIONAL类型的“arrayoptional”。用于ARRAYOFOPTIONAl。UNlQUE类型的“array—optionalunique”。——usage:当EXPRESS聚合类型是ARRAY且其上下限都是常量时,arraySize的声明应为fixed一”upper-bound”,其中upper-bound的定义如上所述。当EXPRESS聚合类型是ARRAY且其上下限不是常量时,arraySize应声明为use=”required”。否则,arraySize应声明为use一”optional“。注1:如果聚合类型是一个ARRAY,则在EXPRESS语法中是用I.OINDEX和HIINDEX的值下标范围表示。34
GB/T16656.28—2010/ISO10303-2812007聚合类型值的最大值和最小值是相同的上下界索引值之差加1。注2:这个形式在所有722规定的有关“sequence-o{一elements”形式中总是相同的,唯一不同的是complex’Fype类型的内容模型是一个重复组而不是一个重复元素。在本部分其他条中这是一种“sequence-ogelemems”表示。示例:EXPRESS表达:TYPELabel=STRING;ENDTYPE;TYPELer崎thmeasure。REAL;END_TYPE;TYPETrafficlight2ENUMERATIONOF(red,yellow,green);END_TYPE;TYPEInner2SELECT(Label,Length-measure);END_TYPE;ENTITYPipe;END—ENTITY;TYPES2SELECT(Length—measure,Trafficlight,Pipe,l曲er);END_TYPE;TYPESelectcollection=SETOFS;ENDTYPE;在XML模式中,对应于SEI。ECT—COLLECTION的声明是:(xs:complexTypen{gme=”Select—collection”)(xs:sequence)《xs:attributeref=”exp:arraySize”use=”optional”/>(xs:attributeref=”exp:arraySize”usage/)(xs:attributeref=”exp:itemType”fixed=”base-instance”/)(/xs:complexType)35
GB/T16656.28—2010/lso10303-28:2007其中:--base-instance:是对应于聚合的基类型的实体实例元素的合格名称,见7.5.5的规定。--base-complexEntity-group:是对应于聚合的基类型的复合实体(eomplexEntity)组的合格名称,见7.5.6.2的规定。——jower_60tmd:当EXPRESS聚合的下限是给定的一个常量时,则minOccurs的值为该下限值,用十进制整数表示。否则,该属性值为0。——uPper-60u目d:是EXPRESS聚合的上限。当EXPRESS聚合是一个ARRAY且上限是给定的一个常量时,则maxOccurs的值应为(Hilndex(a)LoIndex(a)+1),其中⋯a’为聚合数据类型。当EXPRESS聚合不是一个ARRAY且其上限是给定的一个常量时,maxOccurs的值应为上限值,用十进制整数表示。否则,该属性值为“无界”。注1:如果EXPRESS聚合是一个ARRAY,则其上下限的值为Hilndex(a)Lolndex(a)+1,其中“a”是聚合数据类型。——一aggregate-type:是EXPRESS聚合类型的关键字,其中:用于SET类型的“set”,用于BAG类型的“bag”,用于LIST类型的“list”,用于ARRAY类型的“array”,用于lASTOFUNIQUE类型的“list—unique”,用于ARRAYOFUNIQUE类型的“array—unique”,用于ARRAYOFOPTIONAL类型的“array-optional”,用于ARRAYOFOPTIONALUNIQUE类型的“array—optionalunique”。——usage:当EXPRESS聚合类型是ARRAY且其上下限都是常量时,arraySize应被声明为fixed--”upper-bound”,其中upper-bound(限)定义见上。如果EXPRESS聚合类型是ARRAY且上下限不是常量,则arraySize应被声明为use一”required”。否则,arraySize应被声明为use一”optional”。注2:这种形式在与7.22.2中规定的“sequencpoLelements”形式相关的所有情况下都是相同的,只是complexType类型的内容模型可能是个重复的组而不是一个重复的元素。对于其他各条而言,这是一种“se。quence-oLelements(元素序列)”的表示。示例:EXPRESS表达:EJfrITYPt3d;--additionalattributesskippedEND_ENTITY;TYPEPt3dSet=SETOFPt3dlENDTYPE;ENTITYPt2d;--additionalattributesskippedENDENTITY;TYPEPt2dList=LISTOFPt2d:END—TYPE;XMI.模式表达:
GB/T16656.28—2010/ISO10303—28:2007(XS:attributeref=”exp:cType”fixed=”set”/)(/xs:compleX2Ype)(XS:attributename=“ref“type=”xs:IDREF”Hse=”optional”/)fxs:attributeref=”exp:arraySize”use=”optional”/)fxs:attributeref=”exp:itemType”fixed=“Tns:Pt2d”/>(xs:attributetee=”exp:cType”fixed=”list”/)(/xs:complexType>7.2.3构造数据类型EXPRESS定义了两种称做“构造数据类型”的数据类型,只能出现在自定义数据类型的定义中。没有与之对应的XMI。模式数据类型,因为在EXPRESS中,该类型不能是任何对象的数据类型。7.2.3.1ENUMERATION数据类型对应于ENUMERATION(枚举)数据类型的XML模式数据类型是与EXPRESS自定义数据类型相对应的数据类型,见7.2.4和7.3.3。7.2.3.2SELECT数据类型对应于SELECT(选择)数据类型的XML模式数据类型是与EXPRESS自定义数据类型相对应的数据类型,见7.2.4和7.3.3。7.2.4自定义数据类型对于每个EXPRESS自定义数据类型,相应的XML模式数据类型是用XML模式数据类型定义进行定义的命名数据类型,XML数据类型名称及其定义应符合7.3的规定。7.2.5ENTITY数据类型对于每个EXPRESS实体数据类型,相应的XML模式数据类型是用XMI,模式数据类型定义进行定义的命名数据类型,XML数据类型名称及其定义应符合7.5的规定。7.3用于EXPRESS自定义数据类型的XML模式定义和声明EXPRESS的自定义数据类型是一种通过EXPRESS类型声明定义的数据类型,其中的类型声明采用uncle,厶勘gtype(基础类型)定义该数据类型。自定义数据类型被称作是该基础类型的specialization(专门化)。但是,EXPRESS自定义数据类型的基础类型自身也可能是一个EXPRESS自定义类型,后者由基于另一个基础类型的EXPRESS类型声明定义,如此类推。最终有~个,Un幽一mentaltype(基本类型)自身不是EXPRESS自定义类型,它是由EXPRESS语言规定的数据类型。注I:术语“自定义数据类型”、“基础类型”、“专门化”和“基本类型”来源于GB/Ti6656.1l2010,并被广泛应用于16656的本部分,定义自定义数据类型的映射和它们值的编码。对于相关语境模式中声明的或显式引入的每个EXPRESS自定义数据类型,导出XML模式都应包含一个XML模式数据类型定义。XMI.模式数据类型定义应依赖于EXPRESS自定义数据类型的基础类型,如下所示:——如果自定义数据类型的基础类型是一个简单数据类型(BINARY二进制类型、BOOI。EAN布尔型、INTEGER整型、LOGICAL逻辑型、NUMBER数字型、REAL实数型或STRING字符串型),则XMI,模式数据类型定义见7.3.1。——如果自定义数据类型的基础类型是一个聚合数据类型(ARRAY数组、BAG包、LIST列表或SET集合),则XML模式数据类型定义见7.3.2。——如果自定义数据类型的基础类型是一个ENuMERATION数据类型,则XML模式数据类型37
GB/T16656.28—2010/ISO10303-28:2007定义见7.3.3。一如果自定义数据类型的基础类型是一个SEI。ECT数据类型,则XMI。模式数据类型定义见7.3.4。——如果自定义数据类型的基础类型是其他自定义数据类型坝UX~Ⅱ.模式数据类型定义见7.3.5。导出XMI。模式还可包含一个相应的实例元素的声明,见7.4.3的规定。XML数据类型定义应独立于该实例元素声明且出现在该声明之外的地方。注2:EXPRESS自定义数据类型的基础类型不能是一个实体数据类型。7.3.’简单基础类型当基础类型是一个简单数据类型(BINARY、BOOI。EAN、INTEGER、LOGICAI。、NUMBER、REAl。或sTRING)时,相应的XMI,模式数据类型定义应当符合本条的规定。当基础类型是一个BINARY数据类型时,XML数据类型定义见7.3.1.1。当基础类型是BOOI。EAN、INTEGER、LOGICAL、NUMBER或REAI。数据类型时,XMI.数据类型定义见7.3.1.2。当基础类型是一个STRING类型时,XMI。数据类型定义见7.3.1.3。7.3.1.1BINARY数据类型的定义当基础类型是一个BINARY数据类型时,XML数据类型定义应有如下形式:(/xs:restriction>(/xs:simplecontent)(/xs:complexType>其中:~一identifier:从EXPRESS自定义数据类型的标识符中导出的,见7.1.2的规定。当基础类型是一个有约束的BINARY数据类型(见7.2.1.1.1)时,XMI,数据类型定义应有如下形式:(XS:complexTypename一”identifier”)(XS:restrictionbase--”exp:hexBinary”>(XS:attributename--”extraBits”fixed--”remainder”/>(/xs!restriction>(/xs:complexType>其中:——identifier和binary同上。----mlnLength、.mmgength和remainder见7.2.1.1.1的规定。7.3.I.2BOOLEAN、INTEGER、LOGICAL、NUMBER或REAL的定义当基础类型是布尔型,整型,逻辑型,数字型或实数型时,相应的XMI.数据类型定义应该有如下形式:(XS:simpleTypename一”identifier”)(/xs:restrlction>(/xs:simpleType>其中:
GB/T16656.28—2010/ISO10303-2812007——jdentjfIer:是从自定义数据类型的EXPRESS标识符导出的,见7.1.2的规定。⋯一underlyirig-type:是对应于基础类型的XMI。模式数据类型,见7.2.1的规定。7.3.1.3STRING数据类型的定义当基础类型是一个无约束STRING数据类型时,对应的XMI。数据类型定义应该有如下形式:(XS:simpleTypename=”identifier”)(XS:restrictionbase=”xs:normalizedStrinq”)‘/XS:restriction>(/xs:SimpleType)其中:——identifier:是从自定义数据类型的EXPRESS标识符导出的,见7.1.2的规定。当基础类型是一个无约束STRING数据类型时,对应的XMI.数据类型定义应该有如下形式:(xs:simpleTypename一”identifier”)(xs:minLengthvalue=”minLength”/>其中:——identifier定义同上。——Ⅲi血e口gt^:如果被声明为FIXED,则它应该是EXPRESS的字符串数据类型规定的固定长度。否则,将忽略XS:minLength。——口axLen9th:应为EXPRESS的字符串数据类型规定的最大长度或者固定长度。7.3.2聚合基础类型当EXPRESS自定义数据类型的基础类型是一个聚合数据类型时——例如集合(SET)、列表(LIST)、包(BAG)或数组(ARRAY)类型,则对应于它的XMI。模式数据类型将依赖于多个因素,见7.2.2。自定义数据类型的XMI。模式数据类型定义的形式取决于对应于基础类型的XMI,模式数据类型的形式,但是它们都是cornplexType类型。因此,相应的XMI.数据类型定义应该有下列一般形式:(XS:complexTypename=”identifier”>(body)(/xs:complexType>其中:——刊曲tifier:是从自定义数据类型的EXPRESS标识符导出的,见7.1.2的规定。——(body):是对应于基础聚合数据类型的complexType类型的模型,见7.2.2的规定。注:在实际应用中,数据类型定义和相应的数据类型是一样的,除非nal?lle一“identiller”被添加到了初始的(xs:complexType)元素中。7.3.3ENUMERATION基础类型当EXPRESS自定义数据类型的基础类型是一个枚举(ENUMERATION)数据类型时,相应的XML模式数据类型应该是一个simpleType类型,该类型被定义为使用枚举类型的数据类型XS:string的一个限制约束。对于EXPRESS类型声明中的每个枚举项,都应有一个相应的XML模式枚举类型,其值应当是构成枚举项的EXPRESS标识符的字符串值,字符全都用小写。因此,XMI。模式数据类型定义应该有如下形式:39
GB/T16656.28—2010/ISO10303-28:2007(/xs:restriction></xs:simpleType>其中:——identj“er:是从自定义数据类型的EXPRESS标识符导出的,见7.1.2的规定。——∞um-iteml⋯enum-item-n:是EXPRESS枚举项的标识符,用小写字母表示。示例:EXPRESS表达:TYPEsource--姗嘞TIONOF(made,bought,notlⅡ帕wn);END_TYPE;XML模式表达:7.3.4SELECT基础类型当EXPRESS自定义数据类型的基础类型是一个选择(SELECT)数据类型时,相应的XML模式数据类型将取决于工作选择列表中的数据类型的数量,见7.3.4.1。如果工作选择列表不包含任何数据类型,则该SELECT数据类型就不被映射到导出的XML模式中。如果工作选择列表只包含一种数据类型,则:——相应的XMI,模式数据类型应该是与该类型相对应的XML模式数据类型。——相应的实例元素应该是与该类型相对应的实例元素。否则,导出的XML模式应该包含一个XML组(group)声明(见7.3.4.2)和一个复合类型(CONplexType)声明(见7.3.4.3)。相应的XML模式数据类型应该是复合类型(comp|exType),见7.3.4.3的规定。注:对于在选择列表中有不止一种数据类型的SELECT数据类型,不存在与其对应的实例元素(见74)。代替它的是在7.3.4.2中所规定的组,它与SELECT数据类型的实例元素是等效的。7.3.4.1工作选择列表SELECT数据类型的工作选择列表是按以下步骤产生的:——工作选择列表应该初始化为选择数据类型所包含的EXPRESS数据类型。——对于工作选择列表中的每个EXPRESS自定义数据类型,如果其基础类型是一个选择类型,那么应该从工作选择列表中删除该自定义数据类型而替换为列表中原有类型所对应的默认SELECT类型。——以上两步应不断的重复,直到在工作选择列表中不存在基础类型是选择类型的自定义数据类型。——对于在工作选择列表中出现的每一个EXPRESS实体数据类型,所有在相应的子类组中出现40
GB/T16656.28—2010/ISO10303-28:2007的子类都应该添加到工作选择列表中。例外:已经在工作选择列表中的数据类型则没必要再重复舔加。注1:使用有关实体数据类型的类型图(见7.5.1),每一个有一条路径通往相应于实体数据类型的节点的叶节点都表达一个可能的子类,每一个依赖于这样一个路径的节点也都表达一个可能的子类。如果一个叶节点存在一条到另一个与实体数据类型相关节点的通路,则该叶节点表示了一个可能的子类,并且此通路上所有的节点也表示了一个可能的子类。已经在工作选择列表中的数据类型没有必要再重复添加。一所有的抽象实体数据类型(见6.3)都应该从工作选择列表中删除。注2:工作选择列表是所有EXPRESS数据类型的集合,这些EXPRESS类型的实例被采纳为起始选择数据类型的实例被原始选择数据类型所接受。嵌套选择数据类型也被扩展到了这个列表。注3:基础类型是另一个自定义数据类型的自定义数据类型是不能替换/扩展到工作选择列表的,即使它的基本类型是一个选择数据类型。该自定义数据类型经常被看做是一个特殊化数据类型,且其信息保留在XML模式类型模型中。示例1:EXPRESS表达:TYPEan_int=INTEGER;END_TYPE;TYPEan_odd_int=anint;WHEREodd:NOT(SELF=2*(SELF/2));END_TYPE;TYPEmy_select=SELECT(an_int,an_oddint);END_TYPE;MY—SELECT的工作选择列表是{an—int,an_odd—int)示例2:(接着上面)EXPRESS表达:TYPEmy_select2=SELECT(an_odd_int);END_TTPE;MY—SE[,ECT2的工作选择列表是:{an_odd-int)。7.63.2给出了my_select2类型的一个属性的例子。7.3.4.2SELECT数据类型的XML组声明当EXPRESS自定义数据类型的基础类型是一个选择数据类型,这个选择数据类型有一个包含多于一个数据类型的工作选择列表,那么导出的XMI。模式应该包含一个对应EXPRESS自定义数据类型的组声明。组的名称应该是如7.1.3所示从EPRESS自定义数据类型的标识符中导出。组的内容应该是从选择数据类型的工作选择列表导出,如7.3.4.1中所示。组应该只包含一个choice元素。对于工作选择列表中的每一个EXPRESS数据类型,choice元素应该包含一个对应该EXPRESS数据类型的实例元素的声明,或包含一个在它的子类组中出现的实例元素的声明。元素声明应该有一个ref属性,其值是实例元素的合格名称。即组声明应该有如下形式:(XS:choice>(KS:elementref=”select—list—item-i”/)(XS:elementref=”select—list—item-n”/)complexEntity-usage(/xs:choice>41
GB/T16656.28—2010/tso10303-28:200742</xs:group>其中:(1)identifier是从EXPRESS的自定义数据类型的标识符导出的,在7.1.2中规定。(2)selectlistitem一1’一selectlist—item—i1:在选择组内容列表中的每一个实例元素的合格名称,是按照下列步骤确定的:——选择组内容列表应该初始化成包含:·对应于工作选择列表中的每一个EXPRESS数据类型(非实体)的实例元素;·在工作选择列表中的每一个实体数据类型的子类组定义。——对于每一个子类组定义,子类组应该被删除,用每一个实例元素来代替,并且子类组包含在内。~一以上几步不断重复,直到在选择组内容列表中没有子类组,只有一组实例元素。一列表中的任何重复的实例元素应该删除。——列表中的任何抽象的实例元素应该删除。(3)complexEntity_usage:如果工作选择列表中的每项都是一个实体数据类型的实例,这个实体数据类型可能是没有表征的,那么选择组应该包含(xs:elementref--”exp:complexEntity”/),否则complexEntity元素将被忽略。注:由于工作选择列表中每个类型均有其类型名,实例元素的合格名称将从相应的EXPRESS数据类型标识符中导出得到,见71.3规则。示例:EXPRESS表达:TYPElabel=S豫ING:ENDTYPE;TYPElength_measure2REAL;END—TYPE;TYPEtrafficlight=ENUMERATIONOF(red,yellow,green);ENDTYPE;TYPEinner=SELECT(1abel,lengthmeasure);ENOTYPE;TYPEs2SELECT(1ength_measure,traffic—iight,pipeentity,inner)‘ENDTYPE;ENTITYpipeentity:name:STRING;ENDENTITY;SEI。ECT组内容列表应被初始化为:Tns:Label-wrapperTns:Lengthmeasure_wrapperTns:Pipe_entity-groupTns:Trafficiight—wrapperXMI。模式表达:‘/xs:group)
GB/T16656.28—2010nso10303-28:20077.3.4.3SELECT数据类型的XML数据类型定义当EXPRESS自定义数据类型的基础类型是一个选择数据类型,这个选择数据类型的工作选择列表包含多种数据类型,那么相应的XML模式数据类型应该是一个复合类型,其内容模式是对应于选择数据类型的组,具体见7.3.4.2。复合类型定义应该有如下形式:(XS:complexTypename一”identifier”)其中:1dentlfier是从EXPRESS的自定义数据类型的标识符导出的,见7.1.2。——groupname是对应于选择数据类型的组的合格名称,见7.3.4.2。——exp:arraySizeusage:如果包含在选择组(见7.3.4.2)中的任何一个实例元素都表示匿名集合,则(XS:elementref一”exp:arraySize”use一”optional”/>。否则,exp:arraySize元素将被忽略。注1:在对应于选择数据类型的组中的每一个实例元素,都包含可选XMI.属性path,在745中规定。path属性规定选择列表中在那个值上实例化的类型。注2:为r允许存取访问元素(见7.63)引用(而不是包含)选择数据类型的一个值,复合类型包含ref属性,并且允许choice组被忽略。943要求或者ref属性被表达,或者其内容包含choice组的一个实例。示例:接着上面7342中的示例,XML复合类型声明就是:(XS:complexTypenaffie=”S”)(XS:groupref一”Tns:S”minOccurs=”0”maxOccurs一”i”/>7.3.5自定义数据类型的基础类型如果EXPRESS自定义数据类型的基础类型是另一种自定义数据类型,相应的XMI。模式数据类型模型应该取决于对应于基本类型的XMI。模式数据类型。如果对应于基本类型的XMI。模式数据类型是一个simpleType(简单类型),那么XMI,模式数据类型模型应该是一个simp[eType(简单类型),并且这个简单类型是从对应于基础类型的XMI,模式数据类型通过限制导出的。XML模式数据类型定义应该有如下形式:(XS:simpleTypename=”identifier”)(contentUsage>(XS:restrictionbase=”underlying-type”>(contentmodelforthefundamentaltype)(/xs:restriction>(/contentusage>(/KS:complexType)43
GB/T16656.28—2010/lso10303-28:2007其中,对于任一种情况,——identifier:是从EXPRESS的自定义数据类型的标识符导出的,见7.1.2。--underlying-type:是对应于基础类型的XML模式数据类型的合格名称。——cont∞t口sage:当对应于基础类型的复合类型具有复合内容,contentUsage就应该是XS:com—plexContent-。否则,它应该是XS:simpleContent。——(contentmodelforthefundamentaltype):当对应于基础类型的复合类型有复合内容,这是描述对应于自定义数据类型的基本类型的XMI。数据类型的内容的XML小点(particle):如果基本类型是一个聚合数据类型,那么在7.2.2中所规定的sequence(序列)particle,或者如果基本类型是一个选择类型,那么在7.3.4.2中所规定的组。这些XML基本元素描述了与自定义数据类型的基本类型相对应的XML数据类型的相关内容,如果基本类型为一个聚合类型则sequence部分在7.2.2阐述,或者,如果基本类型为一个选择类型则group部分在7.3.4.2阐述。注:内容模型不需要包含基本类型的属性。示例1:EXPRESS表达:TYPERatioMeasure=REALoENDTYPE;TYPENormalisedRatioMeasure2RatioMeasure5WHEREWRI:{0.0(=SELF<=10};ENDTYPE;XMI,模式表达:(/xs:szmpleType>示例2:使用上面7.3.42中的例子。EXPRESS表达:TYPE8一SELF/2T(1enGth_measure,traffib—l均ht,pipe—entity,inner);END_TYPE;TYPEs2一S:END_TYPE;XML模式表达:(XS:restrictionbase=”Tns:S”>(xs:groupref=”Tns:S”minOccurs。”0”maxOccurs=”1”/)(/xs:restriction></XS:complexContent)
GB/T16656.28—2010/ISO10303-28:2007(/XS:complexType)7.4对应于EXPRESS数据类型的实例元素实例元素是一个XML元素,是为一个EXPRESS数据类型而命名的,表达那个EXPRESS数据类型的一个值。取值实例元素是一个内容为数据值的实例元素。引用实例元素是一个没有内容,但包含对取值实例元素的引用的实例元素。这个取值实例元素的内容是数据值。注l:大多数非实体数据类型的实例元素都是取值实例元素。对应于一个EXPRESS实体数据类型的实例元素的声明将在7.5阐述。当下面的任何一种情况出现时,对应于一个既不是实体数据类型也不是选择数据类型的EXPRESS数据类型的实例元素应该被声明:——EXPREss数据类型作为一个聚合数据类型的基类型而出现,且该聚合数据类型使用元素序列表达(见7.2.2);——ExPREss数据类型出现在一个选择数据类型的工作选择列表中(见7.3.4);——ExPREss数据类型的值可以通过引用而出现(见7.4.6)。否则,实例元素可以在导出的XML模式中,但这不是必须的。例外:如果实例元素已在基本XML模式中声明,它就不应该在导出的XML模式中再次声明,在7.4.1规定。不应该为基础类型是一个选择类型的自定义数据类型声明任何实例元素。注2:对于一个基础类型是选择类型的自定义数据类型,XMI。组声明和实例元素相等7.3.42所规定的XMI,组声明等价于此处的实例元素声明。但是一个基础类型是一个自定义数据类型并且这个自定义数据类型的基本类型是一个选择数据类型(也就是说,一个选择数据类型的特殊化),的自定义数据类型没有实例元素但是如果一个自定义数据类型的基础类型为另一个自定义数据类型并且其基本类型为一个SELECT类型(也就是说,该自定义数据类型为SELECT类型的一个特例,即嵌套定义),则它将有一个实例元素。上述例外不适用于这样的数据类型。实例元素声明应该按照7.4.1~7.4.4中的EXPRESS数据类型来规定。注3:一个EXPRESS数据类型,但不是一个实体数据类型,它的值的典型用法是用作一个实体属性的值一个非实体数据类型的EXPRESS数据类型的典型应用是将其作为一个实体属性的值。在这种情况下.EXPRESS数据类型值表示为XMI,元素的内容,或者表示为一个表示了EXPRESS实体属性的XML属性(见7.6)。然而,一个EXPRESS数据类型的值可以作为一个聚合值的组成部分或作为一个选择数据类型的值出现在一个实例文档中。在这些情况中,EXPRESS数据类型的值可能通过一个实例元素表达。7.4.1简单数据类型的实例元素基本XMI,模式(见附录c)为每一个EXPRESS简单数据类型声明一个实例元素。实例元素的数据类型是对应于EXPRESS数据类型的XML模式数据类型,并且实例元素增加了instanceAttributes属性组(见7.4.5)。在某些情况下,简单类型的附加实例元素可能在导出的XMI。模式中声明。见下面。7.4.1.1BINARY数据类型对应于EXPRESS二进制数据类型的实例元素应该是exp:hexBinary—wrapper元素。例外:如果EXPRESS二进制数据类型规定了一个最大值或固定长度,相应的实例元素将在7.4.1.1.1中规定。声明在基本XML模式中的exp:hexBinarywrapper实例元素如下:(XS.elementname--”hexBinary-wrapper”nillable一”true”)(XS:complexType)(XS:attributeGroupref=”exp:instaneeAttributes”/>45
GB/T16656.28—2010/lso10303-28:2007(/xs:extension>(/xs:Simpleconten七>(/xs:complexType>(/xs:element)7.4.1.1.1有约束BINARY实例元素如果EXPRESS中二进制数据类型规定了最大长度或固定长度(见7.2.1.1.1),则相应的XMI.模式中实例元素的声明将有如下形式:</xs:extension>(/xs:simplecontent)</xs:complexType>(/xs:element>其中:——binarytype是为有约束二进制数据类型所声明XMI.模式数据类型的合格名称。详见7.2.1.1.1。——bits是为EXPRESS数据类型所规定的用字条表示的固定长度或最大长度。——如果EXPRESS二进制数据类型长度声明为固定的,那么minBits应该设置成bits,否则为0。示例:EXPRESS表达:ENTITYaccess—authorization;title:STRING;codes:LISTOFBINARY(12)FIXED;END-ENTITY;那个形式要求对应于列表基类型BINARY(12)FIXED的实例元素应该声明如下:(xs:elementname--”Binary1212-wrapper”nillable--”true”)(XS:complexType>(XS:slmpleContent)(/xs:extension)(/xs:simplecontent)</xs:complexType></xs:element>7.4.1.2BOOLEAN数据类型对应于EXPRESS布尔数据类型的实例元素是exp:boolean—wrapper元素。exp:boolean—wrapper元素声明在基本XML模式中,如下:(XS:simplecontent)(XS:extensionbase=”XS:boolean”></xs:element>7.4.1.3INTEGER数据类型对应于EXPRESS整数数据类型的实例元素是exp:longwrapper元素。实例元素声明在基本XMI。模式中,如下:(XS:extensionbase=”XS:long”)(/xs:simplecontent)(/xs:complexType>(/xs:element>7.4.1.4LOGICAL数据类型对应于EXPRESS逻辑数据类型的实例元素是exp素声明在基本XML模式中,如下:instanceAttributes”/>logical—wrapper元素。exp:logical—wrapper元(XS:simpleContent>(/xs:Si“plecontent)</xs:complexType></xs:element>7.4.1.5NUMBER数据类型对应于EXPRESS数字数据类型的实例元素是exp:decimal—wrapper元素。实例元素声明在基本XML模式中,如下:(/xs:si“plecontent>(/xs:eomplexType>(/xs:element>7.4.1.6REAL数据类型对应于EXPRESS实数数据类型的实例元素是exp:double-wrapper元素。实例元素声明在基本XMI。模式中,如下:47
GB/T16656.28—2们0/iso10303—28.2007(xs:elementn61me=”double-wrapper”nillable=”true”)</XS:complexType)(/xs:element>7.4.1.7STRING数据类型对应于EXPRESS字符串数据类型的实例元素是exp:string-wrapper元素。例外:如果EXPRESS字符串数据类型规定了一个最大值或固定长度,那么对应的实例元素将在7.4.1.7.1中阐述。exp:string—wrapper元素声明在基本XMI。模式中,如下:(xs:elementname=”string-wrapper”nil/able=”true’’、(XS:complexType>(XS:si“pleContent>(/xs:simplecontent>(/xs:complexType>(/XS:element)7.4.1.7.1有约束STRING实例元素对应于一个最大值或固定长度已经规定了的EXPRESS字符串数据类型的实例元素应该在导出的XMI.模式中声明,如下;(XS:complexType>(xs:simpleContent></xs:si“plecontent>(/xs:complexType)</xs:element>其中:strin群ype是对应于有约束字符串数据类型的xML模式数据类型自由类型名。详见7.2.1.7.1。——bits是为EXPRESS数据类型所规定的用字条表示的固定长度或最大长度。Tns:stringtype是对应于有约束字符串数据类型的XML模式数据类型的合格名称。示例:EXPRESS表达:ENTITYuser;title:STRING;userids:SETOFSTRING(8);48
GB/T16656.28—2010/ISO10303-28.2007ENU_ENTITY;那个形式要求对应于集合基类型STRING(8)的实例元素声明如下:</xs:slmpleContent>(/xs:complexType></XS:element)7.4.2匿名聚合数据类型的实例元素如果一个实例元素表示了一个匿名聚合数据类型,如7.4所规定的那样,那么这个实例元素应该被声明,像在本条中规定的这样。对于一个匿名聚合类型的实例元素,它将与相关语境模式中所有的聚合类型相对应,只要这些聚合有相同的基类型而不管其具体类型(如集合、列表、包或数组)。由于实例元素表示了任何基本类型相同的聚合类型的值,所以它应该包含定义在7.2.2.1中的re{,arraySize,itemType和cType属性。因为实例元素可能是引用的(见7.4.6),或表达一个多层聚合值中的一“行”,所以它应该包含in—stanceAttributes组(见7.4.5)。在实例元素声明中的XML模式数据类型应该取决于对应聚合数据类型的XML模式数据类型。如7.2.2所述,但不同之处在于:——如果对应于聚合数据类型的XML数据类型有7.2.2所示的值列表形式,那么实例元素声明将在接下来的7.4.2.1规定。——如果对应于聚合数据类型的XML数据类型有7.2.2所示的元素序列的形式,那么实例元素声明将在接下来的7.4.2.2规定。——如果对应于聚合数据类型的XMI。数据类型有7.2.2.4所示的多维数组形式,那么实例元索声明将在7.4.2.2以元素序列形式声明,略有不同的是此处的基类型被视为是多维数组结构的最基础类型。注1:元素序列实例元素表达了(最深层)基类型实例元素的所有聚合,而不考虑其维数是多少。注2:值列表实例元素表达了(最深层)基类型的值的所有序列化聚合,而不考虑其维数是多少。7.4.2.1list—of-values形式的实例元素如果对应于聚合数据类型的XML模式数据类型使用值列表形式(见7.2.2.3),那么实例元素的内容模型应该是一个简单列表,这个简单列表由XML实例属性和集合属性扩展而成。实例元素声明应该有如下形式:(XS:elementname=”element—name”nillable=”true”>(XS:complexType)(XS:si“pleContent)(/xs:extension>(/xs:simplecontent)(/xs:complexType)(/xs:element>49
GB/T16656.28—2010/Iso10303—28:2007其中:一elementname,实例元素的XMI。名称,应具有形式:seqbase,其中base是对应于聚合数据类型的基类型的XML模式数据类型的自带名称部分。--unrestricted—type是不受限XMI。数据类型的合格名称,该类型支持基类型的所有聚合,聚合数据类型的所有聚合任意聚合数据类型的基本类型,在7.2.2.3.2中规定。注l:对应于基类型的实例元素从不用在这个表达中。注2:实例元素被声明为use一”optional”,就需要这个实例元素的XMI,属性的很多行为,这些行为在98巾规定。示例:对于EXPRESS匿名数据类型:ARRAY[13]OFREAL实例元素声明将是:(xselementrlalⅡe=”Seq-double”nillable=”true”)(XS:complexType>(xssimpleContent>(xs:attrlbuteGr。upref=”exp:instanceAttributes”/>(/xs:extension)</xs:simpleContent></XS:complexType></xs:element>7.4.2.2所有sequence-of-elements形式的实例元素如果对应于聚合数据类型的XMI.模式数据类型使用元素序列的形式,或多维数组的形式(见7.2.2.4),那么实例元素声明应该有如下形式:(x3:elementname=”element—name”nilfable=”true”>(XS:complexType>(XS:sequence)(/xs:element)其中:--element-name:实例元素的XMI,名称,应该具有形式:seqbase,其中base是base—instance名称的自有部分(见下面)。——base-instance:用术语“base—types”引用元素序列形式的聚合数据类型的EXPRESS基类型,或引用多维数组形式最基本类型指代EXPRESS中具有元素序列或顺序行形式的聚合类型的基本类型,或者指代具有多维数组形式的最深一层的基础类型。如果基类型是一个实体数据类型,base—instance应该是对应的复合实体(complexEntity)组的合格名称(见7.5.6.2)。如果基类型是一个选择数据类型,baseinstance应该是对应的组的合格名称(见7.3.4.2)。否则,base—instance是对应的实例元素的合格名称(见7.4)。50
GB/T16656.28—2010/lSO10303-28:2007⋯elementor-group:如果base—instance是一个元素,那么element—orgroup应该是XS:element;如果baseinstance是一个组,那么element—or—group应该是XS:group。注l:对应于聚合数据类型的XMI。数据类型,像在722中所规定的一样。并不真正地用在这个声明中。注2:尽管ref.cType和arraySize属性声明为use--“optional”,但是9.8要求它们出现在特定的情况下.尤其是当实例元素代表一个多维聚合值的时候。示例:EXPRESS匿名数据类型:LIST[I。?]OFARRAY[1:3]OFREAL实例元素声明如下:(xs:elementname”Seq~double-wrapper“nillable一”true”)(XS:complexType)(XS:sequence>(xs:elementref一”exp.double-wrapper”minOccurs=”0”maxOccurs一”unbounded”n(/xs:sequence)(x8:attributeuse一”optional”type一”XS:IDREF”name--”ref”/、(XS:attributefixed一“exp:double-wrapper”ref=”exp:itemType”/)(xs:attrlbuteGroupref一”exp:instanceAttributes”/>(/xs:complexType></xs:element>7.4.3自定义数据类型的实例元素对于作为一个聚合数据类型的基类型而出现,或在一个选择数据类型的选择列表中出现的每一个EXPRESS自定义数据类型,导出的XMI,模式应该包含一个实例元素的声明。例外:对应于一个自定义数据类型的实例元素没有基础类型是选择数据类型的如果一个自定义数据类型的基础类型为SEI,ECT类型,则不存在与其相对应的实例元素,且相应的XMI.模式对象是一个组(见7.3.4.2)。注l:如果自定义数据类型的基础类型是一个选择类型,且工作选择列表包含不止一种数据类型,那么对应于这个自定义数据类型的XMI,模式对象是一个组(见7342)。当工作选择列表只包含一种数据类型,只有唯一一种选择的实例元素用作自定义数据类型则该唯-一选项的实例元素将应用于该自定义类型(见73.4)。注2:对于一个基本类型为选择数据类型但其基础类型却不是选择类型的自定义数据类型.有一个和在本条中所规定的一样的实例元素。如果对应于自定义数据类型的XML模式数据类型是一个简单类型,那么实例元素声明应该规定内容数据类型就是该简单类型,并且实例元素声明也应该通过引用包含isntanceAttributes组。即实例元素声明应该有如下形式:(XS:elementname=”element—name”nillable=”true”>(/xs:simplecontent>(/xs:complexType);/xs:element>£1
GB/T16656.28—2010/ISO10303-28:2007其中:——t瑚}nm:是对应于EXPRESS自定义数据类型的XMI。模式数据类型的合格名称(见7.1.3)。——local-type-name:是typename的本地部分。——element-name:如果EXPRESS自定义数据类型的基本类型是BOOI。EAN、INTEGER、LOG一1CAL、REAL、NUMBER、STRING、BINARY或ENUMERATION类型,那么elementname有localtypenamewrapper形式,否则,elementname和localtypename相同。如果对应于自定义数据类型的XMI。模式数据类型是一个复合类型,实例元素声明应该规定实例元素的数据类型是包含instanceAttribute组的该数据类型的扩展。即元素声明应该有如下形式:(XS!elementname一”local—type—name”nillable一”true”)(XS:complexType>(XS:complexContent)(XS:extensionbase--”type-name”>(XS:a七trlbuteGr。upref--”exp(/XS:extension)(/xs:complexcontent>(/xs:complexType>(/xs:element)其中typename和localtype—name如上面定义的那样。示例:EXPRESS表达:TYPEmaterial—type=㈣TIONOF(steel,copper,plastic);ENDTYPE;TYPElist_of—materials=SET[17]ofmaterial—type;ENDTYPE}XMI,模式表达:(XS:simpleTypename=”Material—type”)(XS:enumerationvalue=“copper”/>(XS!enumerationvalue=”plastic”/>(/xs:restriction></xs:SimpleType)(XS:complexType>(XS:simpleContent>(xs:extensiontype=“Tns:Material—type”)(/xs:complexType></xs:element)7.4.4实体数据类型的实例元素对于一个EXPRESS实体数据类型,其相应的实例元素规则将在7.5.5中规定。7.4.5实例元素属性所有的实例元素都应该有一个包含XML属性组instanceAttribute的复合类型,属性组定义在基52
GB/T16656.28—2010/iso10303—28.2007本XMI.模式中,如下:(XS:attributename=”pos”use=”optional”>(XS:simpleType></xs:simpleType)</xs:attribute>(/xs:attributeGroup>id属性为实例元素规定了一个本地XML标识。,d属性应该只在基于值的实例元素(提供EX—PRESS值的元素,见7.4)中出现。它使得实例元素,在文档的其他地方,在一个基于引用的存取访问或实例元素中被引用这个属性使得实例元素被基于引用的存取访问所引用,或被文档中的其他实例元素所引用。path属性规定EXPRESS中已有数据类型的集合,这些数据类型被实例元素中的值所实例化。path属性只在表示EXPRESS选择数据类型值的实例元素中出现。这个属性值是由空格隔开的XMI.名称的列表,每一个XML名称都是对应于EXPRESS中已有数据类型的XML类型名称的自带部分,其中EXPRESS中已有数据类型被实例元素的值所实例化。当用到特定的集合表示时(见9.8.3和9.8.5),pos属性指定一个给定数组分量值的位置或索引。pos属性值应该是由空格分开的数组分量索引的列表,每一个都表示为一个十进制整数。7.4.6可引用实例如果序列化单元中的任何元素都可以包含一个对EXPRESS数据类型的一个值的引用,那么这个EXPRESS数据类型是可引用的。因为对不同的EXPRESS数据类型有不同的默认映射,所以一个数据类型是否是可引用的,要根据不同的数据类型而变化。在默认XMI。模式中,每个EXPRESS实体数据类型都是可引用的,除非该实例都不是序列化单元中的属性的值,其中这个序列化单元是与相关语境模式相符合的。在默认XML模式中,每一个非实体EXPRESS数据类型都是可引用的。7.5EXPRESS实体数据类型的XML模式定义和声明对于每一个声明或引入到相关语境模式中的EXPRESS实体数据类型,相应的XMl.模式定义和声明应该依赖于EXPRESS实体声明和相联系的类型图的结构,在7.5.1中规定。导出的XMI,模式应该包含:——对应的XMI。数据类型的一个复合类型定义,在7.5.4中规定;——一个对应的实例元素声明,在7.5.5中规定;——对应的XML组声明,在7.5.6中规定;——一个对应的单一实体值声明,如果需要的话,在7.5.7中规定;——对应的代理元素声明,在7.s.8中规定;——对应的XMI。唯一性限制,在7.5.9中规定。53
GB/T16656.28—201O/ISO10303—28:2007例外:如果实体数据类型声明成抽象的(见6.3),应该有相应的XMI,组声明(在7.5.6定义),XMI,唯一性限制(在7.5.9定义),和可能的单一实体值声明(在7.5.7定义),但是没有相应的XMI.数据类型,实例元素或代理元素声明。7.5.1和EXPRESS实体数据类型相联系的类型图在相关语境模式中被声明或引入的EXPRESS实体数据类型的集合形成了一个“类型图”集合。每一个类型图由一系列代表实体数据类型的节点和一系列代表SUBTYPEOF关系的有向边组成。这个类型图集合根据以下算法生成:(】)如果所有的EXPRESS实体数据类型已经被归人每个类型图,停止。(2)任选一个尚未归人类型图的实体数据类型,创建一个新的类型图,这个实体数据类型作为一个节点包含在这个新的类型图里。(3)对于给定的实体数据类型,把它的所有直接超类除去重复类型作为节点加入到类型图中,将给定的实体数据类型用代表SUBTYPEOF关系的有向边连接到它的每一个超类。(4)对于给定的实体数据类型,把它的所有直接子类除去重复类型作为节点加入到类型图中,将给定的实体数据类型的每一个子类用代表SUBTYPEOF关系的有向边连接到该实体数据类型。(5)重复第三步和第四步,把每~个新的实体数据类型加入到类型图(通过第三步或第四步),直到操作完类型图中所有的实体数据类型,回到第一步。在类型图中,代表一个没有超类的实体数据类型的节点叫做根节点(rootnode)。如果一个节点代表的实体数据类型在相关语境模式中没有子类,且没有综合子类,那么这个节点叫做叶节点(1eafnode)。一个类型图被称为树结构,如果它有唯一的根节点,并且对于每一个叶节点,从叶节点到根节点沿着有向边有唯一的一条路径。一个类型图与它其中表示的每一个EXPRESS实体数据类型有关联(associatedwith)。使用上面定义的构造算法,相关语境模式中的每一个EXPRESS实体数据类型都与一个确定的类型图相关联。注l:本条没有陈述任何的需求,而是定义r一个概念和一组术语,它们在其他条的需求中要用到。注2:“类型图”是概念上的它表示一个相关语境模式中的所有实体数据类型,这些实体数据类型通过子类/超类型的关系相互联系。整个类型图中的所有“路径”组成的集合-这里的路径是指沿着有向边从一个给定的实体数据类型到任何根节点的路径,包括了所有的实体数据类型,而给定的实体数据类型的一个实例从这些类型中继承属性。这里介绍“类型图”是为了简化实体数据类型映射的描述。一个限定的前置处理器或后处理程序不需要每一次都实例化类型图。注3:一个类型图可能包含一种实体数据类型。当实体数据类型没有模型他的子类且它本身也不是一个子类时,就是这种情况。注4:每一个类型图都有一个或多个根节点和叶节点。并不是每⋯个类型图都是树形结构。一个类型图可能是一个“网格”.有一个根节点但至少有这样一个叶节点,这个叶节点有多条路径通向根节点。一个类型图可能有多个根节点。7.5.2复合实体实例每一个EXPRESS实体实例实例化了一个或多个实体数据类型,所有这些实体数据类型可以和7.5.1中定义的单一类型图中的节点相联系,与实例相联系的类型图是由这些节点所组成的图。在GB/T16656.11中,一个复合实体实例是由一个以上的EXPRESS实体声明描述的。也就是说,一个复合实体实例是一个实例化了一个以上实体数据类型的实例,也就是说,一个复合实体实例是一个实例,与这个实例的相联系的子图有多于一个节点。所包含的每一个实体声明都定义_『一个单一实体值,也就是,包含那个实体声明中所定义的属性集的复合实体实例的一部分。并且对于每一个实体值,在子图中都有一个相应的节点和实体实例相联系。在GB/T16656的本部分中,复合实体实例进一步分为特征化的和非特征化的,如下:一⋯所谓一个实体实例通过一个实体数据类型特征化,是指这个实体数据类型是在实例中实例化.并且它是在实例中实例化的其他实体数据类型的一个子类。一个特征化的实体实例在E4
GB/T16656.28—2010/iso10303—28:200716656.11中被称作一个单一叶子(singleleaf)实例一子图表只有一个叶节点。所谓一个实体实例是非特征化的,是指没有实体数据类型特征化它。一个非特征化的实体实例在GB/T16656.11中被称作一个多叶子(multileaf)实例——子图表有多于一个叶节点。注1:对应一个实体实例的子图表的叶节点可能不是类型图的叶节点。每一个特征化的实体实例应该在序列化单元中表示特征实体数据类型的一个实例,在9.3中规定。注2;如果实体实倒是特征化的,对应于叶节点的EXPRESS实体数据类型有用于表示实体实例的所有属性和相应的XMI。模式元素.像在本条中定义的那样,可以用于表达实例对应于叶节点的EXPRESS实体数据类型具有用于表示实体实例的所有属性,且在本条中定义的相应的XMI,模式用来表示这个实例。如果实体实例是非特征化的,在EXPRESS模式中没有一个单一实体数据类型具有用于表达实体实例的所有属性。当于类间有ANDOR关系时,这种情况就出现了。非特征化的实体实例可以用exp:cornplexEntity元素表示(见753.3),详见9.3。7.5.3EXPRESS实体数据类型的基本XML数据类型和元素导出的XML模式应该以引用形式包含一个XMI。数据类型,用于代表EXPRESSGENERIC—ENTITY(通用实体)数据类型。通用实体数据类型是相关语境模式中所有EXPRESS实体数据类型的超类。导出的XMI。模式也应该通过引用包括相应的XMI。元素,以成为包含所有实体实例元素的一个替代组的根。通用实体数据类型为exp:Entity(见7.5.3.1),并且在导出的XMI。模式中不需要附加的定义。通用实体实例元素是exp:Entity,在基本XMI。模式中声明,如下:(xs:elementname=”Entity”type=”exp:Entity”abstract=”true”/>导出的XMI,模式也可声明一个根实体实例元素,这个根实体实例元素描述相关语境模式中所有独立的可实例化的EXPRESS实体数据类型的超类。根实体数据类型是exp:entity(见7.5.3.1),根实体实例元素应该和上面所说的通用实体实例元素一样。注:在EXPRESS中,独立可实例化实体数据类型是通过使用(USE)而不是引用(REFERENCE)来相互联系的。这些定义和声明在下面的子目录中讲述。7.5.3.1实体数据类型的基本XML数据类型——exp:Entity对应于EXPRESS实体数据类型的XMI,模式数据类型是对称作exp:Entity的复合类型的扩展,在摹本XMI,模式中定义(见附录C),如下:(XS:attributeha/Re=”href”type=”XS:anyURl”use=”optional”/)(xs:attributen:jiRe=”ref”type=”xs:IDREF”use=”optional”/>(XS:attributename=”proxy”type=”XS:IDREF”use=”optional”/)(XS:attributename=”edo”type=”XS:anyURl”use=”optional”/>(XS:attributeGroupref=”exp:instanceAttributes”/)(/xs:complexType>ld属性(来自exp:instanceAttributes)为实体元素规定了一个本地XML标识。id属性只在取值实例元素(即提供EXPRESS实体实例的信息内容的元素,见9.3.1)中出现。它使得元素可以被文档其他地方的引用实例元素或引用存取访问元素所引用。ref属性规定一个本地XML标识符,用于标识一个在文档其他地方出现的取值实例元素。ref属性只出现在引用实例元素(即包含对取值实例元素引用的元素,见9.3.3)中,而不提供信息内容。proxy属性为一个代理元素规定本地标识,代理元素用于从某个外部资源获得一个取值实例元素。proxy属性只在一个基于代理的实例元素(即通过代表引用外部的基于值的实例元素的元素,见9.3.2)中出现。href属性为在某个外部资源中的基于值的实例元素规定一个访问路径。href属性值具有形式:uri#id,其中url是一个符合IETFRFC2396的URI,用于定位外部资源,标识符id是一个局限于该资源55
GB/T16656.28—2010/ISO10303-28:2007的XML标识符,用于标识一个基于值的同类型的实例元素。href属性只出现在基于路径的实例元素(即直接引用了外部的取值实例元素的元素,见9.3.2)中。edo属性为作为资源的实体实例规定一个通用标识符。edo属性唯一地标识实体实例,而不管它的位置和编码形式如何。该属性可能在一个取值实例元素中出现,也可能以任何形式在外部引用中出现;它不应该出现在一个引用实例元素中。因为一个实例元素可能代表聚合值中的一个元素,所以复合类型也要包含pos属性(见7.4.5)。注:取值实例元素、引用实例元素和外部实例元素的使用规则详见93。7.5.3.2代理元素的基本XML数据类型——exp:edokey外部实例元素是一个包含在外部资源中的实体实例元素。一个代理元素是一个出现在序列化单元中并且包含对外部实例元素的全局唯一、永久标识的元素,因此信息应该能够进入外部实例。导出的XML模式包括对应于外部实体实例元素的代理元素的声明(见7.5.8)。代理元素的XML数据类型是名称为exp:edokey的复合类型的扩展。exp:edokey数据类型的目的是提供代理元素的基本数据结构。代理元素的数据类型是从exp:edokey导出,并且依赖于外部实体实例的数据类型。为了方便,代理元素声明为属于一个基于抽象元素的也称作exp:edokey的一般替代组。exp:edokey数据类型和元素在基本XML模式中定义,如下:(XS:complexType‘name=”edokey”abstract=”true”5(xs:extensionbase--”exp:Entity”></xs:extension></ms:complexContent>(/xs:complexType>(/xs:element>exp:complexEntity元素应该包括在复合实体实例中实例化了的每一个实体数据类型的单一实体值元素(在7.5.7中详细介绍)。XMI.属性entities的值应该是对应于单一实体值的实体数据类型的EXPRESS标识符的列表(见7.57)。7.5.3.4单一实体值的基本XML数据类型和元素——exp:Single-Entityexp:singleEntity元素是替代组的基本XMI。元素,替代组描述序列化单元中的单一实体值元素。exp:single—Entity数据类型是单一实体值元素的基本XMI,数据类型。它们在基本XMI,模式中声明,如下:对应于一个给定的EXPRESS数据类型的XML单一实体数据类型扩展了这个数据类型,它包括了在相应的EXPRESS实体声明中声明的EXPRESS属性。见7.5.7。7.5.4实体数据类型的XML数据类型定义EXPRESS实体数据类型的复合类型定义应该独立,并且出现在所有XML复合类型定义和元素声明之外。也就是说,复合类型应该属于模式命名空间。对应于EXPRESS实体数据类型的复合类型应该是对exp:Entity数据类型的扩展。扩展应该包括对应于实体数据类型的EXPRESS属性的存取访问元素和存取访问属性的声明,详述如下。注1:存取访问元素在一个(a11)组中声明,来最大化顺序的独立性和在任意实例文档中的EXPRESS属性的扩展性。即复合类型声明应该有如下形式:(xs:complexTypename=”identifier”abstract=”abstract”)(XS:a11)(accessorelementdeclarations)</xs:a11)(/xs:extension>‘/xs:co“plexcontent>(/xs:complexType>其中:一一identifier:是从EXPRESS的实体数据类型的标识符导出,在7.1.2中规定。曲stract:如果实体数据类型的EXPRESS声明为“abstract”那么abstract应为“true”,否则,它应为“false”或被省略。ac—ssorf存取访问)元素声明在下面规定。extention组应该为在实体类型声明中出现的每一个EXPRESS属性包含一个存取访问声明,详见7.6。存取访问元素声明,如果有的话,应该包含在(all>中。57
GB/T16656.28—2010/mo10303-28:2007在和实体数据类型相联系的类型图(见7.5.1)中,相应于实体数据类型的节点之间有一条或更多条路径,并且存在一个或多个根节点。对于在任何一条这样的路径上出现的每一个节点,extention组也应陵为每一个EXPRESS属性包含一个存取访问声明,这些EXPRESS属性出现在相应于节点的实体数据类型的实体类型声明中。对应于一个给定节点的属性集应该只映射一次,无论节点所出现的路径的数目。注2:上述规定意味着.每一个使用EXPRESS的继承概念的“继承”属性,在复合类型的内容模式中有一个对应的存取访问声明。注3:根据7.6.2,EXPRESS实体数据类型的一些属性可能不映射到存取访问。如果一个EXPRESS属性在路径上重声明给r一个根节点,那么存取访问声明应该对应于重声明的属性,而不是最初声明的属性。如果一个EXPRESS属性在一个给定的路径上多次重声明给一个实体数据类型,而这个实体数据类型的声明包括最初的EXPRESS属性,那么只有这个路径上的第一次重声明被使用。如果一个EXPRESS属性在每一个路径上都没有同样地重声明给实体数据类型,其中实体数据类型声明包含最初的EXPRESS属性,那么所有的声明应该是补充定义的。最后~种情况中,前置处理器应该或者为属性综合一个类型声明,联结在多次重声明中的限制,或者使用最初的属性声明。示例:EXPRESS表达:ENTITYnalnedunit;dimensions:dimensionalexponents;unlt—type:unitenum;END_ENTITY;ENTITYsLunitSUBTYPE0F(named_unit);prefix:0W10NALsiprefix;name:siuni七一namoiDERIVESELF\named—unitdimensions:dimensionaiexponents:一dimensions—for_sLunit(name);END-ENTITY;XMI,模式表达:(xs:complexTypenaffle一”Namedunit”>(xs:sequence)(x8:groupref一”Tns:Dimensional—exponents-complexEntity-group”/)(/xs:sequence)t/xs:complexType></xs:element)(xs:elementname一”Unittype”type=”Tns:Unitenum“/>(/xs:a11)</xs:extension></xs:complexContent>58
GB/T16656.28—2010/ISO10303—28:2007(/xs:complexType>(XS:complexTypename=”Siunlt”)(XS:complexContent>(XS:extensionbase=”exp:Entity”)(XS:all、(XS:elementname--”Dimensions”>‘XS:sequence,(/xs:complexType、(/xs:element、7.5.5对应于实体数据类型的实例元素一个EXPRESS实体实例在交换文档中可能表现出多种形式(见9.3)。应该用一个单独的element声明来声明XMI。元素类型,这里的XML元素类型用于对应于EXPRESS实体数据类型的所有形式的实体实例元素。注:如75以上所述,抽象实体数据类型没有实例元素。实例元素声明应该独立于,并且出现在所有XMI。复合类型定义和元素声明的内容之外。也就是说,实例元素类型应该属于模式命名空问。实体实例元素的元素声明应该有如下形式:(XS:choice>(XS:elementref=”Tns:identifier”/>(xs:elementref=”Tns:identifier-proxy”/>其中:——Identifier-group:Identifier是对应于实体数据类型的实例元素的XML名称的本地部分,“group”是一个常量字符后缀。——Ths:identifier是对应于实体数据类型的实例元素的合格名称,“一proxy”是一个常量字符后缀。——Tns:subtypelgroup⋯Tns:subtype。一group是对应于实体数据类型的子类的选择组的合格名称,见以上的规定。示例:EXPRESS表达:
ENTITYnamedunit;END_FiqTITY;sLunltSUBTYPEOF(namedunit);ENDENTITY;XML模式表达(扩展754中的例子):组声明是:GB/T16656.28—2010/lSO10303-28:2007t/xs:group’如果不允许外部引用,则代理元素引用应该从两个组中删除。7.5.6.2复合实体组对于在相关语境模式中每一个实体数据类型,XML模式应该包含一个对应于实体数据类型的复合实体组的XML声明。复合实体组应该有一个选择组,由上面7.5.6.1中所规定的子类组组成。另外,如果实体数据类型的某些实例是非特征化的,复合类型组应该包含一个引用了exp:complexEntity元素的元素声明。复合实体组声明应该有如下形式:complexEntity-usage</xs:choice></xs:group>其中:——IdentifiercomplexEntity-group:Identifier是对应于实体数据类型的实例元素的XMI-名称的本地部分,”一complexEntitygroup”是一个常量字符后缀。——7’力s;idontiller:和7.5.6.1中的定义相同。--eomplexEntityusage:如果实体数据类型的任何实例没有特征化,选择组应该包含(xs:elementref一”exp:complexEntity”/>,否则,复合实体元素可以忽略。示例(继续上面75,6.1中的示例):EXPRESS表达:61。~=一n釜一‰‰蚶啦曲曲蚤薹萎三兰
GB/T16656.28—2010/ISO10303-28:2007ENTITYsljmlt_zSUBTYPEOF(nametunit);END_ENTITY;(XS:groupnafae=”Siunl七一2一group”)(xschoice>(xs:elementref=”Tns:sLunit”/></xs:group>‘(XS:groupref=”Tns:Siunit一2一group”/)</xs:group>(XS:choice>(XS:groupref=”Tns:Siunit-group”/)(XS!elementref一”exp:complexEntity”/>t/XS:choice>(,xs:group>如果siunit是name—unit的唯一声明子类,并且它没有声明子类,那么,si—unit和name—unit都没有非特征化的实例,对exp:complexEntity的引用也将不存在。7.5.7对应于实体数据类型的单一实体值元素对那些是其他EXPRESS实体数据类型的子类的EXPRESS实体数据类型,如果它们出现在序列化单元中的没有特征化的实体实例的类型图中(见7.5.2),导出EXPRESS模式应该包含一个数据类型定义和一个元素声明,用以对应单独实体值。例外:——在本条中所规定的XMI。声明不应该为作为它们的相互联系的类型图标的根节点的实体数据类型而出现如果某个实体数据类型是它的关联类型图的根,那么本条规定的XMI,声明不应该出现在这种实体数据类型中(见7.5.1)。——如果某个实体数据类型对应与序列化单元,而且其所有有效实例在实例化时,都是被相关语境模式中的实体数据类型或者组合实体数据类型所特征化,那么本条规定的XML声明不应该出现在这种实体数据类型中(见7.5)。——如果在类型图中,某个实体数据类型没有被特征化为和其他的实体数据类型有ANDOR关系,本条规定的XML声明是允许的,但不是必须的。为了做出这个决定,模式产生器可能要考虑在相关语境模式中的整个声明集,包括实体声明,超类子句,子类限制,和其他的本地和全局约束。注:最后的这个决定需要一个复杂的算法,可能的附加知识。模式生成器不要求完成这样一个算法或者这些其他的知识。如果怀疑的话,它应该生成本条中所规定的声明。XML数据类型定义应该有如下形式:(XS:complexContent)(/xs:complexcontent>(/xs:complexType>XMI。元素声明应该有如下形式:txs:elementname=”identifier—value”type=”identifier—value”substitutionGroup=”exp.Single-Entity”/>其中:——爿∞fj矗e,:是从EXPRESS的实体数据类型的标识符导出的XMI.名称,在7.1.2中规定。——(accessorelementdeclarations存取访问元素声明):对于每一个在实体声明中出现的EXPRESS属性,extention应该包含一个存取访问声明,在7.6中规定。如果存在存取访问元素声明,应该包含在一个(all>中。例外:不应该存在对应于在实体声明中重声明过的EXPRESS属性的存取访问。示例:EXPRESS表达:ENTITYnamed_unit;dimensions:dimensional—exponents;unit—type:unit~enum;END_ENTITY;ENTITYsi—unitSUBTYPEOF(named_unit);prefix:OPTIONALsLprefix;name:siunit—rlame;DERIⅦsELF\naInedunitdimensions:dimensional—exponents:=dimensions—for8iunit(/xs:all>‘/xs:extension>(/xs:complexcontent>(/xs:complexType></xs:extension></xs:complexc。ntent>(/xs:complexType>(XS:elementname=”identifier-proxy”type=”Tns:identifier-proxy”substltuti。nGroup=”exp:edokey”/>其中:——埘en£j疗e,:对应于实体实例元素的XML名称,在7.5.5中规定。代理元素的名称和数据类型应该由这个XML名称和字符串”proxy“组合而成。——7ksjidenti矗erproxy:是代理元素的数据类型的完全合格名称。——(keyattributedeclarations关键属性声明):对应于实体数据类型的EXPRESS属性的存取访问元素的声明,在7.6中规定。实体数据类型为相应的实体实例形成一个唯一关键字。在exp:authority属性的值所指定的范围内,实体数据类型的每一个实例的关键字属性值标识一个唯一实体实例。示例:EXPRESS表达:ENTITYpipe;id:STRING;Descriptl。“:STRING。UNIQUEkey_attribute:1d;END_E册ITY:XML模式表达:(/xs:sequence>(/xs:extension></xs:complexContent)‘/XS:complexType>(xs:elementname一“Pipe-proxy”type--“Tns:Pipe-proxy”substitutionGroup一”exp:edokey”/)7.5.9实体数据类型的XML唯一性限制如果EXPRESS实体数据类型的实体声明包含一个或多个唯一性规则,相应的唯一性限制应该在导出的XMI。模式中声明,在本条中规定。对于每一个包含在实体声明中的唯一性规则,在导出的XML模式中应该定义一个xs:unique模式64
GB/T16656.28—2010/iso10303—28.2007组件,xs:unique组件应该有如下形式:(XS:fieldxpath=”entity-attributel/*/@ref”/)(XS:fieldxpath=”entity-attributeN/*/@ref”/)</xs:unique>其中:——en眦y:是EXPRESS实体数据类型的标识符,在7.1.2中规定。——msfancel"1aflle:是对应于实体数据类型的实例元素的合格名称,在7.5.5中规定。例外:任何的抽象实体类型应该被忽略。——su6fJfpeJ,⋯,subtypeN:是对应于实体数据类型的实例化子类的实例元素的合格名称。这个列表包括出现在类型图中的所有子类。如果实体数据类型是类型图中的一个叶节点,那么就没有这个列表了。注:列出子类实例元素需要唯一性限制,来保存实体数据类型的所有实例,包括那些标记为它的子类的实例要想列出实例元素的子类,需要在所有实体数据类型的元素上添加唯一性约束,包括那些已经被标记为其子类的实例。’一ru,ename:是唯一性规则的EXPRESS标识符,如7.1.2中所定义。如果规则没有标识符,那么第一个唯一性规则的rulename为1,第二个为2,依此类推。——am曲ukJ,⋯,attributeN是非实体数据类型的存取访问元素的XML名称,attributel,⋯,attributeN对应于在唯一性规则中所规定的EXPRESS属性。——∞rJ0,_aff“6ur“,⋯,entityattributeN是实体数据类型的存取访问元素的XML名称,entityattrihutel,⋯,entity—attributeN对应于在唯一性规则中所规定的EXPRESS属性。示例:EXPRESS表达:ENTITYproductdefinition;for—version:product—definition_formation;id:STRING;UNIQUEurl:for_version,id;END_ENTITY}ENTITYproduct—definition_with-attacheddocumentSUBTYPEOF(product—definition)}END_ENTITYENTITYproduct——definition_with——attached_document2SUBTYPEOF(product—definition);XML模式表达:
GB/T16656.28—2010/ISO10303-2812007(XS:unlquename=”Productdefinitiorhrule_Uri’)7.6EXPRESS属性的XML模式声明本条规定了EXPRESS属性到XMI,模式的映射。7.6.2规定了实体自身的哪些EXPRESS属性应该映射到XMI.模式。对于7.6.2中规定的要映射到XMI.模式的每个EXPRESS属性,都应映射到一个XMI。元素,称为对应于该EXPRESS属性的存取访问元素,在7.6.3中规定。7.6.1存取访问元素和属性命名对应于EXPRESS属性的存取访问元素的名称应该从EXPRESS的属性标识符导出,在7.1.2中规定。例外:如果一个EXPRESS实体数据类型有两个不同的EXPRESS属性.这两种属性是在两个不同的实体声明中说明的,并且它们有相同的EXPRESS标识符,那么每个相应的存取访问名称都应该由以下内容组成:按照7.I.2规定从EXPRESS实体数据类型的标识符导出的XML名称,这些实体数据类型的实体声明说明了该属性,其后是字符‘.’(句点或句号),其后是——从EXPRESS属性标识符导出的XMI.名称,见7.1.2的规定。注:多重继承:如果一个EXPRESS实体数据类型从不同的超类继承了相同的属性,而这个属性又是超类依次从个公共“祖先”超类继承的,那么这个属性的两个“副本”不是“不同的EXPRESS属性”。它们在相同的实体声明中说明,实体数据类型的一个实例只有一个这样的属性。根据7.533中的规定,对应于该实体数据类型的XMI。模式数据类型只包含一个存取访问元素。上述的例外情况将不适用。7.6.2映射到XML模式的EXPRESS属性本条规定映射到XML模式的EXPRESS属性的种类和映射条件。7.6.2.1显式属性对于每一个在实体声明中出现的显式EXPRESS属性,都将有一个对应的存取访问元素声明,在7.o.3中规定。7.6.2.2INVERSE和DERIVED属性EXPRESSDERIVED属性和EXPRESSINVERSE属性不应该映射到导出的XML模式。7.6.2.3重声明的属性如果一个EXPRESS属性在一个子类中重声明了,重声明的属性的数据类型影响相应的存取访问元素的声明,在7.5.4中规定。除了在7.5.4中的规定,一个重声明的属性不映射到导出的XMI。模式。如果一个显式属性在一个子类中被重声明为DERIVED或INVERSE,那么子类原来的属性。就像被声明为OPTIONAL(可选的)一样来映射。7.6.2.4通用属性一个EXPRESS抽象数据类型(见6.3)可能有这样的属性:它的EXPRESS数据类型是不能实例化66
GB/T16656.28—2010/isO10303-28:2007的“通用类型”。这样的属性称之为通用属性。GB/T16656.11要求通用属性在抽象实体数据类型的每一个实例化的子类中都要重声明。当抽象实体数据类型映射到了7.5中所规定的XM[。模式,所有的通用属性都不应该当作这个抽象实体数据类型的一个属性映射到XMI。模式。只有可实例化子类中的通用属性的重声明需要映射。注:在XM[。模式中.重声明的属性将首先出现在对应子类的扩展中,它们将作为子类的新属性而出现。示例:EXPRESS表达:ENTITYapproval—relationshipABSTRACTSUPERTYPE;approval—data:approval;approvalitem:GENERIcENTITY;ENDENTITY;XMI一模式表达:{/xs:cooplexcontent>tXS:complexType)7.6.3存取访问元素对于每一个映射到存取访问元素的EXPRESS属性(见上面的7.6),对应实体数据类型的复合类型(complexType)中的(all>应该包含属性元素的一个相应声明。存取访问元素应该声明如下:~存取访问元素的名称,在7.6.1中规定。一存取访问元素的maxOccurs属性不需要在元素声明中给出。如果给出,它的值应该是“l”。~如果EXPRESS属性是强制的,那么存取访问元素的minOccurs属性不需要在元素声明中给出。如果给出,它的值应该是“1”。——如果EXPRESS属性声明成OPTIONAl。(可选的),或像在7.6.2中规定的那样按照OPTIONAI。来对待,那么XML元素声明应该包含XMI。属性minOccurs一”0”和XMI。属性nillable一”true”。注1:实例数据中,一个未设置的EXPRESS属性由缺失属性元素或者包含XMI.属性xsi:nil一”true”的空存取访问元素指定。注2:如果EXPRESS属性在这个实体数据类型的任何子类中重声明为DERIVED或INVERSE,那么EXPRESS属性应该按照OP]、IONAI,(可选的)来对待,在7.623中规定。—~声明存取访问元素时,应该包含XML属性exp:sttributeType,该属性在基本XMI。模式中以一个fixed值定义。如果存在这个属性,这个固定值应该是”explicit”。67
GB/T16656.28—2010/Lso10303—2812007——如果EXPRESS属性的数据类型不是一个实体数据类型,那么存取访问元素的XMI.数据类型应该按照7.6.3.1的规定给出。——如果EXPRESS属性的数据类型是一个实体数据类型,那么存取访问元素的XML数据类型应该按照7.6.3.2的规定给出。7.6.3.1数据类型不是实体数据类型的属性如果EXPRESS属性的数据类型不是一个实体数据类型,那么存取访问元素的数据类型应该声明为对应于EXPRESS属性的数据类型的XML模式数据类型,和7.2中的规定相同。示例1:属性的数据类型是简单类型的属性示例:EXPRESS表达:TYPEIdentifier=STRING2ENDTYPE;TYPEWeight—measure=REAL;ENDTYPE;ENTITYPipe;Nominal—size:NUMBF讯;Diameter:REAL:Bends:INTEGER;Available:BOOLEAN;Valid:LOGICAL;Description:OPTIONALSTRING;Image:BINARy;Id:Identifier;Weight;Weightmeasure;ENDENTITY;XMI。模式表达:(”:elementna】ne=”Valid”type=”exp:logical”/‘)68
GB/T16656.28—2010nso10303-28.2007(/xs:extension)(/xs:complexContent>(/xs:complexType>XMI,实例数据:30(/Nominal—size>(Diameter)275(/Diameter>(Bends)2(/Bends)(Available>true(/Available)‘Valid>unknown</Valid>(Description>Standardrigiddoable-elbow(,/Description>(Image>8AF(/Image>(Id>P1—1(/Id)(Weight>348(/Weight>(/Tns:Pipe>示例2:属性的数据类型是一个简单数据类型的集合的属性示例:EXPRESS表达:ENTITYPt3d:c:ARRAY[1:33OFREAL;END_ENTITY;XML模式表达:(xs:complexType)(xs:simpleContent>(xs:simpleType>(xs:minLengthvalue2”3”/)</xs:s1“plecontent)(/xs:complexType>(/xs:element>(/xs:all>(/xs:extension>
GB/T16656.28~2010/Iso10303-28:200770(/xs:eomplexContent>(/xs:complexType>(/Tns:Pt3d>示例3:属性的数据类型是一个实体数据类型的集合的属性示例EXt’RESS表达:ENTITYPt3d;c:ARRAY[133OFREAL;INVERSEincurve:SETE01]OFPolylineFORpoints;ENDENTITY;ENTITYPolyline;points:LISTOFPt3d;ENDENTI。玎:在XML模式中,pt3d的声明和上面实例2中的完全形同。INVERSE属性pt3d.inctlr%,e不映射到XMI,模式。属性Polyine的XML模式声明如下:(xs:extensionbase=”exp:Entity”)(xs:groupref=”Tns:Pt3d-complexEntity-group”minOccurs=”0”maxOccurs=“unbounded”/、(/xs:sequence}(/xs:element>(/xs:a11)(/xs:extension>(/xs:complexContent>(/xs:complexType)XMI,实例数据:《Tns:Polylineid=”儿”)(Points)(Tns:Pt3did=”i4”)(C)100(/C)(/Tns:Pt3d>
GB/T16656.28—2010/ISO10303—28:2007(Tns:Pt3did=”i5”)(C)00l00(/C)(/Tns:Pt3d’(/xs:all>‘/xs:extension>(/xs:complexcontent)(/xs:complexType>7.6.3.2数据类型是一个实体数据类型的属性本条规定数据类型是一个实体数据类型的EXPRESS属性的映射规则。存取访问元素的XMI.数据类型应该是一个匿名复合类型,有如下形式:(xs:complexType>(xs:sequence)(/xs:sequence>(/xs:complexType>其中:——instance-complexEntity-group:应该是相应的复合实体组的合格名称(见7.562)。示例:EXPRESS表达:ENTITYmeasure_witLunit5value_component:measurevalue;unit—component:namedunit;ENDENTITY;TYPEmeasure_value=REAL;END—TYPE;ENTITYnamedunit;dimensions:dimensional—exponents;END—ENTITY;ENTITYs1unit
GB/T16656.28—2010/ISO10303—2812007SUBTYPEOF(named_unit);prefix:OPTIONALsLprefix;name:si—unit—name;DERIVESELF\namedunitdimensions:dimensional—exponentsdimensionsforsiunit(name);ENDENTITY}XML模式表达:(XS:complexTypeDame一”Measurewithunit”)(KS:complez|【Content)‘XS:sequence,(/xs:sequence>(/xs:complexType></xs:element)(/xs:all>‘/XS:extension></xs:complexContent></xs:complexType>7.7EXPRESS模式的XML模式和命名空间相关语境模式的EXPRESSSCHEMA声明应该映射到XML模式XS:schema。也就是说,应该有一个对应于相关语境EXPRESS模式的默认XML模式。XMI.命名空间(“目标命名空间”)应该和导出的XML模式相联系。与目标命名空间关联的命名空间URI应满足7.7.2的规定。XS:schema元素应该包含一个targetNamespace属性,它的值就是和目标命名空间相联系的命名空间URI。EXPRESS模式的名称和版本在XML模式的documentation元素中提供。注:EXPRESS模式的名称和版本不正式映射到导出的XML模式的任何元素。它们可能影响targetnamespaceURI的形成。见7.7.2。导出的XML模式的附加命名空间声明在7.7.3中规定。导出的XML模式应该明确包含在7.2~7.6和7.8中所规定的定义和声明。在附录C中所规定的基本XML模式应该,通过XS:import声明的方式,显式地包含在导出的XML模式中。在这种情况下,前置处理器应该选择一个命名空间前缀(见7.7.3)来对应通过7.6和7.8出现在7.2中的前缀”exp:”。所选择的前缀应该对应于由URN所标识的命名空间:urn:iso:std:iso:10303:一28:ed-2:tech:XMLschema:common。7.7.1命名空间前缀对于每一个命名空间,命名空间前缀应该由前置处理器规定,需满足如下限制:——对于整个文档,XML文档应将每个命名空间前缀映射到唯一的一个命名空间URl。——对于整个文档,每一个命名空间URI应该由一个并且只由一个名称前缀来表达。在GB/T16656的本部分中所用到的命名空间前缀——xs:、exp:、doc:、cnf:和Tns:,用于隔开并且标识所需要的(可能的)不同的命名空间。前置处理器可以自由地替换它们当中的任何一个有效的前7,
GB/T16656.28—2010/ISO10303-28:2007缀,但是要符合上面的限制。7.7.2导出的XML模式的目标命名空间URI和导出的XML模式的目标命名空间相联系的命名空间URI可能是由前置处理器选择的,有如下准则。如果导出的XML模式是注册为国际标准的一个EXPRESS模式的默认映射,那么URI应该是一个有附录A中规定形式的URN。.若URI指定了被注册为国际标准的EXPRESS模式的其他映射的目标命名空间,则该URI不在16656的本部分中规定。它可以由相应的国际标准规定,或由符合IETF标准的其他方式规定。若URI指定了没有被注册为国际标准的一个EXPRESS模式的任何映射的目标命名空间,则该URI由自己的主体部分定义,应符合1ETFRFC2396标准和适当的注册步骤,且不在本标准的范围内。注:根据IETF2396的规定,统一资源定位符(URL)和统一资源名称(URN)是统一资源标识符(URl)的子类。一个URl可能也可能不表达一种方式,通过这种方式,可以找到标识资源。URL通常表示一条存取路径,URN从来不这样表示。每一类URI都有一个前缀:uri:,UrFI:,url:或http:一个初始的标识符,这个标识符由网络已分配号码管理组(IANA)分配,作为一个拥有URI的机构的唯一标识,尽管可能并不是它所指的资源。不同类的URl注册步骤由不同的IETF标准所规定。注意:URN的语法在1ETFRFC2141中规定,相应的注册步骤在1ETFRFC3406中规定。示例:GB/T16656203中包含的EXPRESS模式config_controldesign的默认映射的命名空间如下:XML模式表达:7.7.3导出的XML模式的命名空间声明XS:schema元素应该包含(xmlns)命名空间声明:——目标命名空间。在这个命名空间声明中所用到的命名空间URl的值应该和targetNamespace属性中所指定的值相同。——xML模式定义的当前版本。——基本XML模式(见附录c)。对于上面所要求的任何xmlns声明,前置处理器按照7.7.1的规定来选择前缀和适当的URI。如果XS:schema元素包含elementFormDefauh或者attributeFormDefauh属性,那么他们的值应该设置成”unqualified”,这个值是在XML模式第1部分:结构中所规定的默认值。示例:下例描述了从EXPRESSSCHEMA语句到XMI。模式的映射:EXPRESS表达:SCHEMAmy—sch鲫a;
GB/T16656.28—2010/IS010303-28:2007XML模式表达:(xs:schematargetNamespace一”urn:xyzorg:xs/My_schema”xmlns:my一”urn:xyzorg:xs/My_schema”z。mlns:xs一”http://wwww3org/2001/XMLSchema”xmlns:exp一”urn:iso:std:iso:10303:一28:ed2:tech:XMLschema:COmmOn”elementFormDefault--”unqualified”attributeFormDefault--’’unqualified”、7.7.4导出的XML模式的导入声明对于用短表形式表达的EXPRESS模式,对应于EXPRESS相关语境模式的xs:schema元素应该为每一个命名空间包含一个直接的子元素xs:import,其中的命名空间对应于一个和EXPRESS相关语境模式相联系的EXPRESS模式。导入元素的命名空问属性的值应该是与接口模式关联的URN。导人元素的schemaI。ocation的值是XMI。模式的统一资源标识符(uRI),其中XML模式表示相联系的EXPRESS模式,URI解释为一个定位符,通过这个定位符XMI,模式可以从互联网网t存取来。xs:schema元素应该为每个引入相关语境模式的EXPRESS模式包含命名空间声明。示例:下例描述了从接口EXPRESS模式到XML模式的映射:EXPRESS表达:SCHEMAmy_schema;USEFROMotherschema(some_entity);REFE髓NCEFROManotherschemafanotherentity):END—SCHEMA;XMI。模式表达:(xs:schematargetNamespace=”urn:xyzorg:xs/My_schema”xmlns:my一”urn:xyzorg:xs/My_schema”Ⅻlns:xs一”http://wwww3org/2001/XMLSchema”xmlns:exp一“1lr“:iso:std:iso:10303:一28:ed_2:teeh:XMLschema:common”xmlns:oth--”llrn:xyzorg:xs/Other—schema”xmlns:ano一“urn:xyzorg:xs/Anotherschema”)(xs:importnamespace一”urn:xyzorg:xs/Other_schema”schemaLocation=。”other_schemaxs“/)(xs:importnamespace--”urn:xyzorg:xs/Anotherschema”schemaLocation=”anotherschemaxs”/)(xs:importschemaLocation一”expxsd”namespace一”i/rn:iso:std:iso:10303:一28:ed-2:tech:XMLschema:common”/>(!一otherentitiesomittedforsimplicity一)‘/xs!schema)7.8特定序列化单元的相关语境模式对于相关语境模式,在与导出的XML模式对应的命名空间中,应该有一个特定的序列化元素单元和一个相应的复合类型。序列化单元元素的声明应该有如下形式:(XS:elementref=”referenceable-instance_hame一1¨/)(XS:elementref=”referenceable-instance-name—n”/)(/xs:choice)(/xs:extension)(/xs:complexcontent)(/xs:complexType)其中:——referenceable-instance-name-i:是由上面所规定的可引用非实体实例元素的完全合格名称。示例:<’mlversion=“10”encoding=”UTF一8”7)(xs:schemaxmlns:XS=”http://wwww3org/200l/XNLSchema’’targetNamespace=”ur刀.xyzcom/Ahe。’xmlns:Tns=”urn:xyzcom/ASc”xmlns:exp=”urrl:iso:std:iso:10303:一28:ed-2:tech:XMLschemacommon”elementFormDefault=’’unqualified”attributeFormDefault=”unqualified”)(XS:importschemaLocation=”expxsd”namespace=”urn:iso:std:iso:10303:一28:ed-2:tech:XNLschema:common’’/)(XS:elementname=”uos”type=”Tns:uos”substitutionGroup。”exp.UOS”/(XS:elementname=”A”⋯)⋯(/xs:element}(XS:complexContent)(/xs:extension)</xs:complexContent>(/xs:complexType>(/xs:schema>8已配置的XML模式联编本章规定了从EXPRESS模式到与其对应的已配置XML模式的声明、定义及表示的映射关系。本章规定的导出XML模式被称作与给定EXPRESS模式所对应的已配置XML模式。本章适用于如下情形:已给定了一个配置文件,且该文件中至少包含了一个没有指明默认取值的指令,对于其他情形,应使用第7章的规定。本章的8.1--8.7规定了从EXPRESS模式导出的XMI.模式。8.1命名规则(naming-convention)本条规定了基于EXPRESS标识符生成相应的XMI。名称时的统一规则。8.1.1模式每个EXPRESS模式都有一个相关的XMI。命名空间URI,该URI应指定作为与该模式联编的模式特定元素的XMI。元素及数据类型名称的目标命名空间,具体见8.7。8.1.2EXPRESS标识符EXPRESS语言中的标识符是不分大小写的,而XML名称是要分大小写的。除非特殊规定,一个EXPRESS将映射为一个XMI。名称或者XMI,名称本地的局部标识部分,例如:——当命名规则(naming—convention)选项(见10.2.14)要求首字母大写(initialupper)时,映射后的XMI。名称除了首字母大写其余全部字母小写外与EXPRESS标识符完全一致,这是默认情况。——当命名规则‘namingconvention)选项的值为峰式命名规则(camel—case)时,XMI。名称将按如下规则从EXPRESS标识符导出:首字母大写,每条下划线之后的第一个字母大写,标识符中的其余所有字母均小写,同时删除所有下划线。——当命名规则(namingconvention)选项的值为保持大小写(preservecase)时,XML名称必须与EXPRESS标识符中字符大小写完全一致,而这种情况并不需要一个确保一致性的前置处理器。由于XML标准中对XMl。命名的限定,任何以“XMI,”字符开头的EXPRESS标识符,无论其大小写如何,将被映射为以“Xm1”开头。注:本条所提及映射规则适用于大部分EXPRESS模式中数据类型名称、实体名、属性名到XMI。的转换,例外情况将会在涉及特殊EXPRESS标识符的章条中说明。8.1.3数据类型每个EXPRESS数据类型的标识符必须映射到一个XMI。标准所限定的命名空间中。8.1.2中所规定的本身为限定的标识符名称的局部标识部分也同样可以是一个限定的数据类型名称,例外情况为:当一个实体entity或类型type的配置指令(见10.3.2和10.3.3)选择了一个76
GB/T16656.28—2010/ISO10303·28:2007EXPRESS数据类型并且提供了名称属性,则合格名将由那条指令具体声明。对于每一种在具体相关语境模式中声明的或明确了该模式接口的EXPRESS数据类型,其相关的限定的XMI.模式命名空间将由该具体的相关语境模式决定。对于明确了具体相关语境模式接口的每个数据类型,其合格名将按8.1.2中的规定从EXPRESS标识符中导出,其相关的命名空间将决定于该数据类型声明时所在的模式。注:对于URI中的非本地部分的命名,见附录A中用于GB/T16656和其他标准中定义的EXPRESS模式的命名空间URI标准化方法。8.2与EXPRESS数据类型对应的XML模式数据类型对于在相关语境模式中出现的每个EXPRESS数据类型,包括命名数据类型、内部数据类型及匿名结构型数据类型,都有一个对应的XML模式数据类型。本条规定了对应关系。注:本条不会规定任何在导出的XML模式中出现的定义或声明,而只是规定一些在其他章条的声明或定义中可能会用到的一些XML模式的组件。8.2.1EXPRESS简单数据类型本条规定了XML模式中数据类型与EXPRESS模式中自定义数据类型的对应关系。8.2.1.1BINARY数据类型EXPRESS中BINARY数据类型被映射为exp:hexBinary类型,当存在用于BINARY类型的配置指令map一”KS:base64Binary”时,将被映射为exp:base64Binary,另外有如下例外情况:一当一个BINARY类型的EXPRESS属性被映射为一个存取一个访问属性时,与其对应的XML数据类型为XS:hexBinary,或者应用了配置指令map一”xs:base64Binary”时为XS:base64Binary;——如果一个BINARY的EXPRESS数据类型规定了最大值或固定长度,其映射将按照8.2.1.1.1中进行。exp:hexBinary与exp:base64Binary数据类型均在基本XML模式中定义(详见Annexc)。示例:扩展72.11中的例子:配置指令如下:(attributeselect一”ablnary”map=”XS:base64Binary”/)XM[。模式表达(自由集成映射):(XS:complexTypenalne一”Entlty_withbinary_attribute”)(XS:complexContent)(/xs:complexType>8.2.1.1.1有约束的BINARY数据类型所谓有约束的BINARY指的是为其指定了最大值或固定长度的类型,它将被映射为一个复合类型,即对exp:hexBinary和exp:base64Binary类型加以限制的类型。当一个EXPRESS类型在声明时,将有约束的BINARY设定为基础类型时,与其对应的XMI。数据类型将在8.3.1.1中说明。当一个EXPRESS属性被映射为访问属性时,该EXPRESS属性的数据类型如果为有约束的BINARY数据类型,则相应的访问属性的类型为一个如下形式的简单类型:(XS:simpleType)77
GB/T16656.28—2010/ISO10303-28:2007其中:一一binary-type、minLength和maxLerIgt五的定义见后。注1:此处假定长度值为8比特的倍数。因此extraBits的值总是为0。对于有约束的BINARY数据类型的其他应用,导出的XMI,模式应该包括一个与该有约束的B1一NARY类型相关的XML数据类型定义,该类型定义具有如下格式:(/xs:complexType)其中:——t脚Ⅻe:如果一个map配置指令应用于有约束的BINARY类型,typename为该指令规定的XML中自身数据类型;否则typename为Binary。——miJlBns:如果EXPRESS声明为FIXED类型,minBits为EXPRESS中BINARY类型规定的固定长度(位);否则为0。——bits:为EXPRESS中BINARY类型规定的最大值或固定长度(位)。——binary-t辨:为exp:hexBinary或exp:base64Binary(应用了指令map一”XS:base64Binary”)。——ⅢinL∞gth:如果EXPRESS声明为FIXED类型,mini。ength为EXPRESS中BINARY类型所规定固定值的八进制值(详见下述);否则,xs:mini。ength将被省略。——Ⅲa置L∞gt^:为EXPRESS中BINARY类型所规定固定值的八进制值。——maind缸:如果EXPRESS声明为FIXED类型,remainder为bits%8所得的十进制数值(bits的值如下);否则该属性将被忽略。若假定bits为EXPRESS类型定义中的最大值或固定长度值(位),则其八进制值按如下方式计算:——如果bits%8>0,bits—bits/8+1;——如果bits%8—0,bits=bits/8。注2:如果有配置指令map一“xs:base64Binary”应用于EXPRESS类型,其八进制值计算方法同上。注3:minBits与bits值以位为单位,而minLength与maxLength以八进制为单位。示例:EXPRESS表达:ENTITYentity_withfixedbinary_attribute;a_binary:BINARY(12)FIXED;b_binary:BINARY(8);78
GB/T16656.28—2010/ISO10303—28.2007END_ENTITY;XML模式表达:如果exp—attribute=”attributecontent”不成立,见7.2.11l中XMI,模式的例子。如果expattribute--”attribute-content“成立.则:(XS:simpleType)(XS:maxLengthvalue=”2”/>(XS:minLengthvalue--”2"/)</xs:restriction></xs:simpleType>(/xs:attribute>(XS:attributename--”B—binary”)(XS:SimpleType>(/xs:simpleType>(/xs:attribute></xs:extension></xs:complexContent></xs:complexType>8.2.1.2BOOLEAN数据类型EXPRESS中BOOI。EAN类型被映射为XS:boolean类型,详见7.2.1.2中示例。8.2.1.3INTEGER数据类型EXPRESS中INTEGER类型被映射为XS:long,例外情况:当map配置指令应用于数据类型时(见10.5.4),INTEGER类型将按该指令规定进行映射(见10.2.13.2)。示例:扩展7.2.1.3中的例子:给出的配置指令如下:(XS:extensionbase=”exp:Entity’’>(XS:a11)</xs:complexContent></xs:complexType>8.2.1.4LOGICAL数据类型EXPRESS中该类型映射规则见7.2.1.4。8.2.1.5NUMBER数据类型EXPRESS中该类型被映射为XS:decimal类型,例外情况:当map配置指令应用于数据类型时(见79
GB/T16656.28~2010/Iso10303—28:2007lO.5.4),NUMBER类型将按该指令规定进行映射(见10.2.13.3)。示例:扩展7215中的例子:给出的配置指令如下:XMI。模式表达:</XS:complexContent)(/XS:complexType>8.2.1.6REAL数据类型EXPRESS中该类型被映射为xs:double类型,例外情况:当map配置指令应用于数据类型时(见10.5.4),REAL类型将按该指令规定进行映射(见10.2.13.3)。示例:扩展7.2l_6中的例子:给出的配置指令如F:(attributeselect--”areal”map一”xs:float”/)XMI。模式表达(继承映射):(XS:complexTypen{1me=”Entity_withrealattribute”>(/xs:extension>(/XS:complexContent)(/xs:complexType>8.2.1.7sTRING数据类型该类型映射规则分三类:如果EXPRESS数据类型声明为具有最大长度或固定长度,则按8.2.】.7.1进行映射;否则,当map配置指令应用于数据类型时(见10.5.4),STRING类型将按该指令规定进行映射(见10.2.13.4);其他情况下,该类型被映射为XS:n。rmalizedstring类型。示例;扩展72,1.7中的例子:给出的配置指令如下:(attributeselect一”astring”口ap一”xs:QName"/)XMI。模式表达(继承映射):