AUTOSAR图解==>AUTOSAR_TPS_XMLSchemaProductionRules_autosar xml
AUTOSAR XML Schema 生成规则详解
本文档详细介绍了AUTOSAR元模型到XML Schema的映射转换规则与实现方式
目录
- 引言
- XML Schema设计原则
- XML Schema生成规则的配置
- XML Schema生成详细规则
- AUTOSAR XML Schema合规性
- 总结
1. 引言
AUTOSAR元模型描述了用于描述AUTOSAR系统的所有信息实体。XML被选为AUTOSAR系统正式描述交换的基础。本文档详细说明了如何从AUTOSAR元模型编译出符合W3C XML Schema规范的XML Schema。
1.1 XML Schema生成规则的总体上下文
下图展示了AUTOSAR XML Schema生成规则在整体架构中的位置。图左侧描述了AUTOSAR建模方法的元层级,右侧描述了XML语言的元层级:
图1-1: AUTOSAR XML Schema生成规则总体上下文
从上图可以看出:
- UML2.0和AUTOSAR模板配置文件:这些组件位于元-元级(M3层),定义了可在AUTOSAR元模型中使用的UML2.0语言部分。
- AUTOSAR元模型:这是一个UML2.0模型,定义用于描述AUTOSAR系统的语言。它是图形化的模板表示,使用UML2.0类图描述属性及其相互关系。
- AUTOSAR模型:是AUTOSAR元模型的一个实例,包含符合AUTOSAR元模型的任何信息。
- W3C XML Schema规范:定义了如何定义XML Schema的规范。
- AUTOSAR XML Schema:通过本文档定义的XML Schema生成规则从AUTOSAR元模型派生而来,定义了AUTOSAR数据交换格式。
- AUTOSAR XML描述:描述了AUTOSAR模型的XML表示。每个XML描述必须通过AUTOSAR XML Schema成功验证。
XML Schema生成规则定义了AUTOSAR元模型到AUTOSAR XML Schema的映射规则,是连接UML建模世界与XML描述世界的桥梁。
2. XML Schema设计原则
本章首先描述AUTOSAR元模型的UML2.0语义的一些注意事项,然后简要说明一些基本原则,包括对XML名称、XML元素顺序和链接的简要描述。
2.1 AUTOSAR元模型与XML Schema的映射关系
下图展示了AUTOSAR元模型与XML Schema之间的主要映射关系:
图2-1: AUTOSAR元模型到XML Schema的映射规则
从上图可以看出以下关键映射规则:
-
UML类映射:
- UML类映射为XML Schema中的
complexType
- 同时也创建相应的
group
元素 - 带有
xml.globalElement
标记的类会创建全局element
- UML类映射为XML Schema中的
-
UML属性映射:
- 属性主要映射为XML元素
- 简单类型的属性也可以配置为XML属性
- 属性的多重性影响XML中的
minOccurs
/maxOccurs
-
UML关联映射:
- 关联主要映射为引用元素
- 根据配置可以生成不同类型的引用方式
这些映射规则使得AUTOSAR元模型的结构和关系可以在XML Schema中得到准确表达,从而实现模型和XML描述之间的无损转换。
2.2 XML名称规则
AUTOSAR元模型中的UML名称转换为XML名称时遵循以下规则:
- 移除所有非字母数字字符
- 从左到右拆分UML名称为标记,每当遇到大写字母或数字时开始新标记
- 将所有标记转换为大写
- 使用连字符(-)连接标记
例如:TestECUClass12ADC
将转换为 TEST-ECU-CLASS-12-ADC
2.3 XML元素顺序
为了降低复杂性并提高读取AUTOSAR XML描述的工具的性能,XML元素遵循可预测的顺序排列。默认情况下,AUTOSAR XML Schema按字母顺序定义XML元素的顺序。可以使用标记值xml.sequenceOffset
覆盖此默认规则。
3. XML Schema生成规则的配置
XML Schema的生成可以通过多种标记值(tagged values)进行配置,这些配置决定了如何将AUTOSAR元模型映射到XML Schema。
3.1 配置流程
下图展示了XML Schema生成的配置流程:
图3-1: XML Schema生成配置流程
如图所示,XML Schema生成配置过程包括以下主要步骤:
-
分析UML模型:首先分析AUTOSAR元模型的结构和内容
-
应用默认标记值:根据预设规则为模型元素应用默认的配置标记值
- 配置类映射:设置类如何映射到XML Schema元素
- 配置属性映射:设置属性如何映射到XML元素或属性
- 配置引用映射:设置引用关系如何在XML中表示
- 配置多重性:设置多重性约束如何应用
-
验证标记值组合:检查标记值是否存在冲突
- 检查类标记值
- 检查属性标记值
- 检查组合规则(如
xml.typeWrapperElement
必须与xml.typeElement
一起使用)
-
生成XML Schema:根据配置生成最终的XML Schema
这一配置流程确保了生成的XML Schema符合AUTOSAR规范,并且能够正确表示元模型中的结构和关系。
3.2 主要配置标记值
AUTOSAR元模型中使用以下关键标记值来配置XML Schema的生成:
-
类级别标记值:
xml.name
:定义XML名称xml.globalElement
:是否创建全局元素xml.ordered
:是否保持顺序
-
属性级别标记值:
xml.attribute
:是否映射为XML属性(仅适用于简单类型)xml.roleElement
:是否创建角色元素xml.typeElement
:是否创建类型元素xml.roleWrapperElement
:是否创建角色包装元素xml.typeWrapperElement
:是否创建类型包装元素xml.enforceMinMultiplicity
:是否强制最小多重性xml.enforceMaxMultiplicity
:是否强制最大多重性xml.sequenceOffset
:控制XML元素顺序
4. XML Schema生成详细规则
本章介绍了XML Schema生成的详细过程,包括模型表示的创建、类表示的创建、属性表示的创建以及引用表示的创建。
4.1 XML Schema生成过程
下图展示了XML Schema生成的详细流程:
图4-1: XML Schema生成详细流程
如图所示,XML Schema生成过程包括以下主要阶段:
-
模型处理:
- 读取AUTOSAR元模型
- 创建模型表示
- 创建
xsd:schema
根元素
-
类处理:
- 检查类的类型(普通类、原始类型、枚举类型)
- 根据类型创建相应的XML Schema组件:
- 普通类:创建
xsd:group
、xsd:attributeGroup
和xsd:complexType
- 原始类型:创建XML预定义数据类型引用
- 枚举类型:创建
xsd:simpleType
枚举
- 普通类:创建
-
属性处理:
- 区分组合类型属性和引用类型属性
- 组合类型属性:
- 如果配置为XML属性(
xml.attribute=true
),则创建xsd:attribute
- 否则,根据四个关键配置位(
roleElement
、roleWrapperElement
、typeElement
、typeWrapperElement
)生成相应的XML元素结构
- 如果配置为XML属性(
- 引用类型属性:
- 配置为1:创建带IDREF的引用
- 配置为0:创建带路径的引用
这一详细流程确保了AUTOSAR元模型中的类、属性、关联等结构能够正确地映射到XML Schema中的相应元素。
4.2 配置位组合的处理
属性映射到XML元素时,有四个主要的配置位决定了如何生成XML结构:
xml.roleElement
:是否创建角色元素xml.roleWrapperElement
:是否创建角色包装元素xml.typeElement
:是否创建类型元素xml.typeWrapperElement
:是否创建类型包装元素
这四个布尔值的组合产生16种可能的配置,但只有11种配置被认为是有效的。例如,配置1111
表示四个配置位都为true,会生成最完整的XML结构,而配置0000
则表示最简单的结构。
4.3 引用表示
引用属性(即关联)有两种表示方式:
- 使用IDREF的引用(配置位1)
- 使用路径的引用(配置位0)
IDREF引用使用XML Schema的IDREF
类型链接元素,而路径引用使用绝对路径字符串标识目标元素。
5. AUTOSAR XML Schema合规性
所有符合AUTOSAR规范的XML描述必须符合由XML Schema生成规则生成的XML Schema。这一合规性确保了不同工具之间交换的AUTOSAR模型数据的一致性和可互操作性。
6. 总结
AUTOSAR XML Schema生成规则定义了如何将AUTOSAR元模型映射到W3C XML Schema,从而建立了UML模型世界与XML描述世界之间的桥梁。这些规则的主要优势包括:
- 标准化:提供了一种标准方法来表示AUTOSAR模型数据
- 可配置性:通过标记值系统提供灵活的配置选项
- 结构保存:保留了AUTOSAR元模型的类层次结构和关系
- 互操作性:确保不同工具可以无缝交换AUTOSAR模型数据
- 验证支持:通过XML Schema验证确保数据正确性
这些生成规则使得AUTOSAR工具可以生成和解析标准的XML格式,从而支持汽车电子系统开发过程中的数据交换和工具集成。