22 KiB
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 | • 初始发布 |
目录
- 引言(Introduction)
- 需求追溯(Requirements tracing)
- XML Schema 设计原则(XML Schema design principles)
- 3.1 AUTOSAR 元模型的 UML2.0 语义说明(Notes on UML2.0 semantics of the AUTOSAR meta-model)
- 3.2 关于 W3C XML Schema 使用的说明(Notes on use of W3C XML schema)
- 3.3 继承的处理(Handling inheritance)
- 3.4 通用方法(Generic approach)
- 3.5 XML 元素与属性(XML element versus attribute)
- 3.6 XML 名称(XML names)
- 3.7 XML 元素的顺序(Order of XML-elements)
- 3.8 链接(Linking)
- 3.9 传输不完整数据(Transmitting incomplete Data)
- 3.10 XML 描述中 XML schema 版本的标识(Identification of XML schema version in XML descriptions)
- XML schema 生产的配置(Configuration of XML schema production)
- XML Schema 生产规则(XML Schema production rules)
- 5.1 创建模型表示(Create model representation)
- 5.2 创建类表示(Create class representation)
- 5.3 创建组合属性表示(映射到 XML 属性)(Create composite property representation (mapping to XML attributes))
- 5.4 创建组合属性表示(映射到 XML 元素)(Create composite property representation (mapping to XML elements))
- 5.5 创建引用表示(Create reference representation)
- AUTOSAR XML Schema 一致性(AUTOSAR XML Schema compliance)
- 参考文献(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 嵌套表示。
<xsd:complexType name="PARENT">
<xsd:sequence>
<xsd:element name="CHILD" type="CHILD" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
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 引用表示,目标对象独立存在。
<xsd:complexType name="A">
<xsd:sequence>
<xsd:element name="B-REF" type="B-REF" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
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 生产方法:
- 每个 UML 类对应一个 xsd:complexType
- 每个 UML 属性对应一个 xsd:element 或 xsd:attribute
- 每个 UML 关联对应一个引用机制
- 聚合通过 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)
| 引用类型 | 映射方式 |
|---|---|
| 普通引用 | <REF-DEST>PATH</REF-DEST> |
| 实例引用 | <IREF-DEST>PATH</IREF-DEST> |
| 相对引用 | <REF-DEST-RELATIVE>../PATH</REF-DEST-RELATIVE> |
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 version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://autosar.org/schema/r4.0"
targetNamespace="http://autosar.org/schema/r4.0"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<!-- 类型定义 -->
</xsd:schema>
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:
<xsd:complexType name="CLASS-NAME">
<xsd:sequence>
<!-- 聚合属性 -->
</xsd:sequence>
<xsd:attributeGroup ref="BASE-CLASS-ATTRIBUTES"/>
<!-- 其他属性 -->
</xsd:complexType>
5.2.4 创建带简单内容的 xsd:complexType(Create xsd:complexType with simple content)
对于表示简单数据但带有属性的类:
<xsd:complexType name="CLASS-NAME">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="ATTR" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
5.2.5 创建全局 xsd:element(Create global xsd:element)
顶级类映射到全局 xsd:element:
<xsd:element name="AR-PACKAGE" type="AR-PACKAGE"/>
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:
<xsd:simpleType name="CUSTOM-TYPE">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
5.2.9 为枚举创建 xsd:simpleType(Create xsd:simpleType for enumeration)
<xsd:simpleType name="ENUM-TYPE">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="VALUE1"/>
<xsd:enumeration value="VALUE2"/>
</xsd:restriction>
</xsd:simpleType>
5.3 创建组合属性表示(映射到 XML 属性)(Create composite property representation (mapping to XML attributes))
5.3.1 创建 xsd:attribute(Create xsd:attribute)
具有简单类型的属性映射到 xsd:attribute:
<xsd:attribute name="ATTR-NAME" type="xsd:string" use="optional"/>
5.4 创建组合属性表示(映射到 XML 元素)(Create composite property representation (mapping to XML elements))
本节详细描述 16 种可能属性表示中的 11 种(位模式 1111 到 0000),基于以下四个布尔标志的组合:
- 类型为简单类型(S):属性类型是否为简单类型
- 可拆分(Splitable):属性是否带有
atpSplitableStereotype - 变体(Variation):属性是否带有
atpVariationStereotype - 聚合(Aggregation):属性是否为复合聚合
5.4.1 创建组合属性表示(1111)
完整属性(简单类型 + 可拆分 + 变体 + 聚合):
<xsd:group name="PROPERTY-GROUP">
<xsd:sequence>
<xsd:choice>
<xsd:element name="PROPERTY" type="PROPERTY"
minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="PROPERTY-REF-CONDITIONAL" type="REF-CONDITIONAL"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
</xsd:group>
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))
具有目标类的引用属性:
<xsd:element name="REF-NAME" type="REF-NAME-REF"
minOccurs="0" maxOccurs="unbounded"/>
其中 REF-NAME-REF 是引用类型定义。
5.5.2 创建引用属性表示(0)(Create reference property representation (0))
简单的引用属性。
5.5.3 创建对外部命名空间中属性的引用(Create a reference to attributes in foreign namespaces)
对于跨命名空间的引用,使用 namespace 前缀:
<xsd:element name="REF-NAME" type="xsd:QName"/>
6 AUTOSAR XML Schema 一致性(AUTOSAR XML Schema compliance)
AUTOSAR XML Schema 一致性规则确保 ARXML 文件符合 AUTOSAR 标准。一致性检查包括:
- 命名空间声明正确
- 根元素符合 AUTOSAR 模式
- 所有必需元素存在
- 多重性约束得到满足
- 引用解析成功
- 数据类型正确
- 变体处理信息一致
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保持英文原样。