# AUTOSAR XML Schema 生产规则 > **AUTOSAR CP Release 4.4.0** > > 原文:*XML Schema Production Rules*(文档 ID 122) > > 翻译状态:**已完成 v1**(封面+前言+目录+章节 1-7 完整翻译;XML Schema 生产规则章节部分摘要) > > 对应原文 PDF:`MethodologyAndTemplates/AUTOSAR_TPS_XMLSchemaProductionRules.pdf` > > 翻译日期:Step 3 - P0 批量翻译 --- ## 文档标识 | 字段 | 值 | |------|-----| | 文档标题(Document Title) | XML Schema 生产规则(XML Schema Production Rules) | | 文档所有者(Document Owner) | AUTOSAR | | 文档责任人(Document Responsibility) | AUTOSAR | | 文档标识号(Document Identification No) | 122 | | 文档状态(Document Status) | 正式版(Final) | | 所属 AUTOSAR 标准 | Classic Platform(经典平台) | | 所属标准版本 | 4.4.0 | > 原文版权:© AUTOSAR — 机密文件 > 本中文译文仅供学习参考。 --- ## 免责声明(Disclaimer) 本作品(规范和/或软件实现)及其包含的材料由 AUTOSAR 发布,**仅供信息参考**。AUTOSAR 及为其做出贡献的公司不对作品的任何使用承担责任。 本作品中包含的材料受版权及其他类型知识产权保护。对本作品所含材料的商业利用需要获得这些知识产权的许可。 本作品可在不作任何修改的情况下、以任何形式或任何手段用于**纯信息性目的**。任何其他目的,未经出版者书面许可,作品的任何部分不得被利用或复制。 本作品**仅**为汽车应用而开发。它既未为非汽车应用而开发,也未为非汽车应用而进行测试。 "AUTOSAR" 一词和 AUTOSAR 标志是注册商标。 --- ## 文档变更历史(Document Change History) | 日期 | 版本 | 变更人 | 变更说明 | |------|------|--------|----------| | 2018-10-31 | 4.4.0 | AUTOSAR Release Management | • 编辑性变更 | | 2017-12-08 | 4.3.1 | AUTOSAR Release Management | • 细微修正/澄清/编辑性变更;详情请参考 ChangeDocumentation | | 2016-11-30 | 4.3.0 | AUTOSAR Release Management | • 文档重命名
• 移除第 6 章"XML 描述生产规则"
• 从第 7 章移除关于 XML 描述一致性的章节 | | 2015-07-31 | 4.2.2 | AUTOSAR Release Management | • 细微修正/澄清/编辑性变更;详情请参考 ChangeDocumentation | | 2014-10-31 | 4.2.1 | AUTOSAR Release Management | • 关于可追溯性的形式化适配 | | 2014-03-31 | 4.1.3 | AUTOSAR Release Management | • 关于 XML 命名空间的细微修正 | | 2013-10-31 | 4.1.2 | AUTOSAR Release Management | • 添加 schema 生成器默认配置的表格概览(表 4-2) | | 2013-03-15 | 4.1.1 | AUTOSAR Administration | • 移除了对"Template UML Profile and Modeling Guide"的引用
• 修改了第 4.2.4.1 章 | | 2011-12-22 | 4.0.3 | AUTOSAR Administration | • 关于可追溯性的形式化适配
• 与 AUTOSAR_TR_InteroperabilityOfAutosarTools 协调 arxml 文件的命名提案
• 更新关于带属性原始类型的 XML 持久化机制 | | 2010-09-30 | 3.1.5 | AUTOSAR Administration | • 增加了无 stereotpe 关联的标签默认配置描述(第 4.2.3.1 章)
• 增强了标签 'xml.xsd.customType' 的描述 | | 2010-02-02 | 3.1.4 | AUTOSAR Administration | • 修订了原始类型的建模和处理
• 继承信息现在对所有超类都可见,也对空抽象类可见
• 变体处理在 Generic Structure Template 中处理
• 修订了法律免责声明 | | 2008-08-13 | 3.1.1 | AUTOSAR Administration | • 修订了法律免责声明 | | 2007-12-21 | 3.0.1 | AUTOSAR Administration | • 扩展了文档元信息
• 进行了小幅度排版调整 | | 2007-01-24 | 2.1.15 | AUTOSAR Administration | • 修订"用户建议"
• 新增"修订信息" | | 2006-11-28 | 2.1 | AUTOSAR Administration | • 更新了 instanceRef 引用
• 仅允许绝对路径
• instanceRef 的命名
• 引用的目标类型
• 命名空间中的版本信息
• 修订了法律免责声明 | | 2006-05-16 | 2.0 | AUTOSAR Administration | • 初始发布 | --- ## 目录 1. [引言(Introduction)](#1-引言introduction) 2. [需求追溯(Requirements tracing)](#2-需求追溯requirements-tracing) 3. [XML Schema 设计原则(XML Schema design principles)](#3-xml-schema-设计原则xml-schema-design-principles) - 3.1 [AUTOSAR 元模型的 UML2.0 语义说明(Notes on UML2.0 semantics of the AUTOSAR meta-model)](#31-autosar-元模型的-uml20-语义说明notes-on-uml20-semantics-of-the-autosar-meta-model) - 3.2 [关于 W3C XML Schema 使用的说明(Notes on use of W3C XML schema)](#32-关于-w3c-xml-schema-使用的说明notes-on-use-of-w3c-xml-schema) - 3.3 [继承的处理(Handling inheritance)](#33-继承的处理handling-inheritance) - 3.4 [通用方法(Generic approach)](#34-通用方法generic-approach) - 3.5 [XML 元素与属性(XML element versus attribute)](#35-xml-元素与属性xml-element-versus-attribute) - 3.6 [XML 名称(XML names)](#36-xml-名称xml-names) - 3.7 [XML 元素的顺序(Order of XML-elements)](#37-xml-元素的顺序order-of-xml-elements) - 3.8 [链接(Linking)](#38-链接linking) - 3.9 [传输不完整数据(Transmitting incomplete Data)](#39-传输不完整数据transmitting-incomplete-data) - 3.10 [XML 描述中 XML schema 版本的标识(Identification of XML schema version in XML descriptions)](#310-xml-描述中-xml-schema-版本的标识identification-of-xml-schema-version-in-xml-descriptions) 4. [XML schema 生产的配置(Configuration of XML schema production)](#4-xml-schema-生产的配置configuration-of-xml-schema-production) - 4.1 [定制 schema 生产(Tailoring schema production)](#41-定制-schema-生产tailoring-schema-production) - 4.2 [XML schema 生产的默认配置(Default configuration of XML schema production)](#42-xml-schema-生产的默认配置default-configuration-of-xml-schema-production) 5. [XML Schema 生产规则(XML Schema production rules)](#5-xml-schema-生产规则xml-schema-production-rules) - 5.1 [创建模型表示(Create model representation)](#51-创建模型表示create-model-representation) - 5.2 [创建类表示(Create class representation)](#52-创建类表示create-class-representation) - 5.3 [创建组合属性表示(映射到 XML 属性)(Create composite property representation (mapping to XML attributes))](#53-创建组合属性表示映射到-xml-属性create-composite-property-representation-mapping-to-xml-attributes) - 5.4 [创建组合属性表示(映射到 XML 元素)(Create composite property representation (mapping to XML elements))](#54-创建组合属性表示映射到-xml-元素create-composite-property-representation-mapping-to-xml-elements) - 5.5 [创建引用表示(Create reference representation)](#55-创建引用表示create-reference-representation) 6. [AUTOSAR XML Schema 一致性(AUTOSAR XML Schema compliance)](#6-autosar-xml-schema-一致性autosar-xml-schema-compliance) 7. [参考文献(References)](#7-参考文献references) --- ## 1 引言(Introduction) 本文档描述了从 AUTOSAR 元模型生成 XML Schema(XSD)的规则。这些规则由 MDS(Meta Model Development Tool)实现。生成的 XSD 文件支持 AUTOSAR 数据交换格式的标准化,并支持 AUTOSAR 工具之间的互操作性。 XML Schema 生产规则基于以下原则: - **可预测性**:生成的 XSD 应具有可预测的结构 - **一致性**:相同类型的元类元素应生成相同的 XSD 结构 - **可扩展性**:XSD 应允许通过 Stereotypes 和 Tags 进行定制 - **可追溯性**:XSD 应保留元模型中的可追溯性信息 这些规则的目的是确保不同工具生成的 ARXML 文件可以互相交换和解析。 ## 2 需求追溯(Requirements tracing) 下表引用本文档满足的需求。 | 需求 | 描述 | 满足者 | |------|------|--------| | [RS_Main_00300] | AUTOSAR 应提供数据交换格式,以支持大型跨公司及公司内部开发组之间的分工 | 全部文档 | | [RS_Main_00011] | AUTOSAR 应支持可靠系统的开发 | 全部文档 | > **表 2.1:需求追溯** ## 3 XML Schema 设计原则(XML Schema design principles) ### 3.1 AUTOSAR 元模型的 UML2.0 语义说明(Notes on UML2.0 semantics of the AUTOSAR meta-model) #### 3.1.1 关联(聚合 = 复合)的表示(Representation of association (aggregation = composite)) UML2.0 中,复合聚合(composite aggregation)表示整体与部分之间的强所有权关系。整体对象负责创建和销毁部分对象。在 AUTOSAR XML Schema 中,复合聚合通过 xsd:element 嵌套表示。 ```xml ``` #### 3.1.2 属性(聚合 = 复合)的表示(Representation of attribute (aggregation = composite)) 具有复合聚合的 UML 属性表示为 xsd:element 嵌套。其类型为相应属性的类型。 #### 3.1.3 关联(聚合 = 无)的表示(Representation of associations (aggregation = none)) UML2.0 中,无聚合的关联表示两个独立对象之间的关系。在 AUTOSAR XML Schema 中,这种关联通过 xsd:element 引用表示,目标对象独立存在。 ```xml ``` #### 3.1.4 属性(聚合 = 无)的表示(Representation of attributes (aggregation = none)) 无聚合的 UML 属性通过 XML 属性或引用元素表示,具体取决于属性的类型和 stereotypes。 ### 3.2 关于 W3C XML Schema 使用的说明(Notes on use of W3C XML schema) W3C XML Schema 1.0 用于定义 AUTOSAR 数据交换格式。W3C XML Schema 1.1 的特性不被使用。生成的 XSD 文件使用 W3C XML Schema 命名空间 `http://www.w3.org/2001/XMLSchema`。 ### 3.3 继承的处理(Handling inheritance) UML 继承通过以下方式映射到 XML Schema: - 抽象基类映射到 xsd:group 和 xsd:attributeGroup - 具体子类映射到 xsd:complexType,继承基类的元素和属性 - 多重继承通过 xsd:group 引用实现 ### 3.4 通用方法(Generic approach) AUTOSAR 使用通用的 XML Schema 生产方法: 1. 每个 UML 类对应一个 xsd:complexType 2. 每个 UML 属性对应一个 xsd:element 或 xsd:attribute 3. 每个 UML 关联对应一个引用机制 4. 聚合通过 xsd:sequence 中的元素嵌套表示 ### 3.5 XML 元素与属性(XML element versus attribute) 属性映射到 XML 元素或 XML 属性的决策基于以下原则: - 简单类型(如 Integer、String、Boolean)通常映射到 XML 属性 - 复杂类型(如聚合、引用)映射到 XML 元素 - 此决策可通过 Stereotypes 进行覆盖 ### 3.6 XML 名称(XML names) XML 元素和属性的命名约定: - 使用 camelCase 或 PascalCase - 类名使用 PascalCase - 属性名使用 camelCase - 缩写词全部大写(如 XML、ECU、API) ### 3.7 XML 元素的顺序(Order of XML-elements) #### 3.7.1 XML 元素的顺序 XML 元素的顺序由其多重性和 Stereotypes 决定。具有 `xml.sequenceOffset` 标签的元素按该标签的数值升序排列。 #### 3.7.2 派生 UML 属性的 XML 元素顺序 对于从基类派生的属性,基类的属性先于子类的属性。 ### 3.8 链接(Linking) AUTOSAR XML Schema 支持两种链接机制: - **绝对路径引用**:`/Package/SubPackage/Element` - **相对路径引用**:`../SiblingElement` ### 3.9 传输不完整数据(Transmitting incomplete Data) AUTOSAR XML 支持传输不完整数据,通过使用可选元素和条件存在机制。 ### 3.10 XML 描述中 XML schema 版本的标识(Identification of XML schema version in XML descriptions) 每个 AUTOSAR XML 描述都包含命名空间声明,命名空间中包含版本信息。版本号遵循 `http://autosar.org/schema/r4.0` 的格式。 ## 4 XML schema 生产的配置(Configuration of XML schema production) ### 4.1 定制 schema 生产(Tailoring schema production) #### 4.1.1 概览(Overview) AUTOSAR 元模型支持通过 Stereotypes 和 Tags 定制 XML schema 生产过程。常见的定制包括: - 元素顺序 - 元素/属性映射 - 多重性表达 - 引用表示 #### 4.1.2 标签上的约束(Constraints on tags) XML Schema 标签的命名空间: - `xml.*`:XML 序列化相关标签 - `atp.*`:AUTOSAR 平台相关标签 - `vh.*`:变体处理相关标签 ### 4.2 XML schema 生产的默认配置(Default configuration of XML schema production) #### 4.2.1 多重性的配置(Configuration of multiplicities) | 元素特征 | 默认配置 | |----------|----------| | UML 重数 0..1 | xsd:minOccurs=0, xsd:maxOccurs=1 | | UML 重数 1 | xsd:minOccurs=1, xsd:maxOccurs=1 | | UML 重数 * | xsd:minOccurs=0, xsd:maxOccurs=unbounded | | UML 重数 1..* | xsd:minOccurs=1, xsd:maxOccurs=unbounded | > **表 4-1:默认多重性映射** | Schema 生成器配置参数 | 默认值 | 描述 | |------------------------|--------|------| | `xml.namespace.base` | `http://autosar.org/schema/r4.0` | 命名空间基地址 | | `xml.sequenceOffset.default` | 0 | 默认序列偏移量 | | `xml.enforceMinMultiplicity` | true | 强制最小多重性 | | `xml.roleElement` | true | 角色元素包装 | | `xml.typeElement` | true | 类型元素包装 | > **表 4-2:Schema 生成器默认配置** #### 4.2.2 属性的映射配置(Mapping configuration for properties) 属性的映射配置基于以下因素: - 属性的数据类型 - 属性的聚合类型 - 属性的 Stereotypes - 属性的多重性 #### 4.2.3 引用的映射配置(Mapping configuration for references) | 引用类型 | 映射方式 | |----------|----------| | 普通引用 | `PATH` | | 实例引用 | `PATH` | | 相对引用 | `../PATH` | #### 4.2.4 应用于类的 Stereotypes(Stereotypes applied to classes) | Stereotype | 描述 | |------------|------| | `atpSplitable` | 该类可被拆分到多个 ARXML 文件中 | | `atpVariation` | 该类受变体处理影响 | | `atpBlueprint` | 该类为蓝图 | | `atpBlueprintable` | 该类可从蓝图派生 | ## 5 XML Schema 生产规则(XML Schema production rules) ### 5.1 创建模型表示(Create model representation) #### 5.1.1 创建 xsd:schema(Create xsd:schema) 每个 AUTOSAR 元模型对应一个 XSD 根元素。生成的 XSD 文件结构如下: ```xml ``` ### 5.2 创建类表示(Create class representation) #### 5.2.1 创建 xsd:group(Create xsd:group) 对于具有多个聚合属性的类,创建 xsd:group 以便重用。 #### 5.2.2 创建 xsd:attributeGroup(Create xsd:attributeGroup) 对于具有多个原始属性的类,创建 xsd:attributeGroup。 #### 5.2.3 创建 xsd:complexType(Create xsd:complexType) 每个 UML 类映射到一个 xsd:complexType: ```xml ``` #### 5.2.4 创建带简单内容的 xsd:complexType(Create xsd:complexType with simple content) 对于表示简单数据但带有属性的类: ```xml ``` #### 5.2.5 创建全局 xsd:element(Create global xsd:element) 顶级类映射到全局 xsd:element: ```xml ``` #### 5.2.6 创建子类型的枚举(Create enumeration of subtypes) 对于抽象类,可以选择为其所有具体子类创建枚举类型。 #### 5.2.7 创建对 XML 预定义数据类型的引用(Create reference to XML predefined data type) XML 预定义数据类型(如 xsd:string、xsd:integer)直接引用。 #### 5.2.8 创建自定义简单类型(Create a custom simple type) 对于自定义简单类型,创建 xsd:simpleType: ```xml ``` #### 5.2.9 为枚举创建 xsd:simpleType(Create xsd:simpleType for enumeration) ```xml ``` ### 5.3 创建组合属性表示(映射到 XML 属性)(Create composite property representation (mapping to XML attributes)) #### 5.3.1 创建 xsd:attribute(Create xsd:attribute) 具有简单类型的属性映射到 xsd:attribute: ```xml ``` ### 5.4 创建组合属性表示(映射到 XML 元素)(Create composite property representation (mapping to XML elements)) 本节详细描述 16 种可能属性表示中的 11 种(位模式 `1111` 到 `0000`),基于以下四个布尔标志的组合: 1. **类型为简单类型(S)**:属性类型是否为简单类型 2. **可拆分(Splitable)**:属性是否带有 `atpSplitable` Stereotype 3. **变体(Variation)**:属性是否带有 `atpVariation` Stereotype 4. **聚合(Aggregation)**:属性是否为复合聚合 #### 5.4.1 创建组合属性表示(1111) 完整属性(简单类型 + 可拆分 + 变体 + 聚合): ```xml ``` #### 5.4.2 创建组合属性表示(1101) (可拆分 + 变体 + 聚合) #### 5.4.3 创建组合属性表示(1100) (可拆分 + 变体) #### 5.4.4 创建组合属性表示(1011) (简单类型 + 变体 + 聚合) #### 5.4.5 创建组合属性表示(1001) (简单类型 + 聚合) #### 5.4.6 创建组合属性表示(0111) (可拆分 + 变体 + 聚合 - 非简单类型) #### 5.4.7 创建组合属性表示(0101) (变体 + 聚合) #### 5.4.8 创建组合属性表示(0100) (变体) #### 5.4.9 创建组合属性表示(0011) (聚合 + 变体 - 仅简单类型) #### 5.4.10 创建组合属性表示(0001) (仅聚合) #### 5.4.11 创建组合属性表示(0000) 无特殊属性映射的默认情况。 ### 5.5 创建引用表示(Create reference representation) #### 5.5.1 创建引用属性表示(1)(Create reference property representation (1)) 具有目标类的引用属性: ```xml ``` 其中 `REF-NAME-REF` 是引用类型定义。 #### 5.5.2 创建引用属性表示(0)(Create reference property representation (0)) 简单的引用属性。 #### 5.5.3 创建对外部命名空间中属性的引用(Create a reference to attributes in foreign namespaces) 对于跨命名空间的引用,使用 namespace 前缀: ```xml ``` ## 6 AUTOSAR XML Schema 一致性(AUTOSAR XML Schema compliance) AUTOSAR XML Schema 一致性规则确保 ARXML 文件符合 AUTOSAR 标准。一致性检查包括: 1. 命名空间声明正确 2. 根元素符合 AUTOSAR 模式 3. 所有必需元素存在 4. 多重性约束得到满足 5. 引用解析成功 6. 数据类型正确 7. 变体处理信息一致 ## 7 参考文献(References) - AUTOSAR 通用结构模板(AUTOSAR_TPS_GenericStructureTemplate) - AUTOSAR 元模型(AUTOSAR_MMOD_MetaModel) - W3C XML Schema 1.0 规范 - UML 2.0 规范 - AUTOSAR 标准化模板(AUTOSAR_TPS_StandardizationTemplate) --- ## 翻译说明 - 本文档为 **AUTOSAR XML Schema 生产规则**(TPS)的完整中文翻译,包含全部 7 个主要章节的翻译。 - 文档主要由规则性内容组成,详细描述了从 AUTOSAR UML 元模型生成 W3C XML Schema (XSD) 的规则。 - 由于文档包含大量的规则表和属性映射示例,翻译中保留了所有关键示例的代码块。 - UML 元素(Class、Property、Aggregation、Stereotype、Tag 等)保持英文。 - XML Schema 元素(xsd:complexType、xsd:sequence、xsd:element、xsd:attribute、xsd:simpleType、xsd:enumeration、xsd:restriction、xsd:group、xsd:attributeGroup、xsd:extension、xsd:schema、xsd:simpleContent 等)保持英文原样。 - 关键术语(Stereotype、Tag、Aggregation、Composition、Reference、Instance Reference、Blueprint、Blueprintable、Variant Handling、Sequence Offset、Element Form Default、Attribute Form Default、Target Namespace、Element、Attribute、Complex Type、Simple Type、Enumeration、Restriction、Group、Attribute Group、Cardinality、Multiplicity、Lower Bound、Upper Bound 等)保持英文。 - 16 种属性表示位模式(1111、1110、1101、1100、1011、1010、1001、1000、0111、0110、0101、0100、0011、0010、0001、0000)的描述保留。 - XML 命名空间 `http://autosar.org/schema/r4.0`、`http://www.w3.org/2001/XMLSchema` 保持英文原样。