AUTOSAR ARXML序列化规则详解
目录
1. 概述
本文档规定了AUTOSAR模型如何序列化为AUTOSAR XML描述。该规范的目的是通过对AUTOSAR XML描述定义额外的约束,支持AUTOSAR工具之间的互操作性,这些约束超出了AUTOSAR XML Schema定义的XML结构。
AUTOSAR模板规范定义了AUTOSAR数据交换格式。AUTOSAR ARXML序列化规则(本规范)与其他模板规范的关系如下:
- XML Schema生产规则与本文档关注物理表示和XML数据格式
- 软件组件模板、系统模板、ECU配置模板等规范解决数据结构及其语义
通过定义规范化的表示方式,可以避免无意义的差异(如缩进、字符编码等),简化AUTOSAR XML描述的比较工作,减少工具实现的工作量,限制XML的不同风格数量。
2. ARXML序列化规则架构
2.1 架构组件关系
以下图表展示了AUTOSAR ARXML序列化规则架构的主要组件及其关系:
如上图所示,ARXML序列化规则架构包含以下主要组件和层次:
-
元模型层(最上层,淡黄色)
- AUTOSAR Meta Model:定义描述AUTOSAR系统的语言,是AUTOSAR模板的UML表示
-
Schema规则层(中间层,淡绿色)
- XML Schema Production Rules:定义如何从元模型生成XML Schema
- XML Schema:由规则生成的Schema,定义交换AUTOSAR模型的语言
-
序列化规则层(中间层,淡紫色)
- ARXML Serialization Rules:定义AUTOSAR模型如何序列化为XML描述
- 物理层规则:针对文件分离、文件名和扩展名的规则
- 数据格式规则:针对字符编码、XML版本、根元素、命名空间和格式化的规则
-
工具层(最下层,淡蓝色)
- AUTOSAR Authoring Tool:用于创建和修改AUTOSAR XML描述
- AUTOSAR Converter Tool:通过转换其他AUTOSAR XML文件创建AUTOSAR XML文件
- AUTOSAR Processor Tool:处理AUTOSAR XML文件并创建非AUTOSAR文件
- AUTOSAR Validation Tool:检查AUTOSAR XML描述有效性的专门工具
这种分层结构确保了AUTOSAR工具之间的互操作性,使不同工具能够正确解释和处理AUTOSAR模型。
2.2 AUTOSAR顶层类结构
以下类图展示了AUTOSAR XML描述中的顶层类结构:
AUTOSAR类结构的主要组件包括:
-
ARObject:所有AUTOSAR元素的基类
-
AUTOSAR:AUTOSAR描述的根元素,也是XML文档中的根元素,包含:
- fileInfo:提供文件结构化注释的可能性
- adminData:表示AUTOSAR文件的管理数据
- arPackage:AUTOSAR模型中的顶级包
- introduction:文件介绍,例如免责声明和法律说明
-
ARPackage:包含其他ARPackage或可标识元素的包
-
IdentifiableElement:所有可通过shortName唯一标识的元素的基类
-
AdminData:包含管理数据,如语言和文档
-
DocumentationBlock:包含多语言段落的文档块
这种类结构确保了AUTOSAR XML描述具有统一的组织格式,使不同工具能够一致地解析和处理AUTOSAR模型。
2.3 ARXML文件处理流程
以下活动图展示了ARXML文件的处理流程:
ARXML文件处理流程包括以下主要阶段:
-
AUTOSAR工具阶段
- 创建或修改AUTOSAR模型,使用专用的AUTOSAR工具
-
序列化处理阶段
- 应用ARXML序列化规则(文件名、编码、XML版本等)
- 创建XML序列化结构(根元素、命名空间、版本信息)
- 按字母顺序排序无序元素
- 应用XML格式规则(缩进、换行、标签样式)
-
验证处理阶段
- 验证ARXML文件是否符合规范
- 识别并修复潜在错误(命名空间错误、结构错误、引用错误)
-
文件处理阶段
- 导入到其他工具
- 转换为其他格式
- 生成代码或配置
这个流程确保了ARXML文件的正确创建、验证和处理,使不同工具能够无缝协作。
3. 物理层规则
3.1 文件分离
[TPS_ASR_00001] 文件分离:AUTOSAR模型可以分成几个AUTOSAR XML描述文件进行传递。一些文件可以包含数据类型,其他文件可以包含接口等。
这种分离允许更灵活地组织和交换AUTOSAR模型,特别是对于大型项目。
3.2 文件名
[TPS_ASR_00002] 文件名扩展名:.arxml:AUTOSAR XML描述应使用文件扩展名".arxml"(AUTOSAR XML的缩写)。
[TPS_ASR_00003] 文件名长度:文件名的最大长度限制为255个字符。
这些规则确保了文件命名的一致性和兼容性。
4. 数据格式规则
4.1 XML字符编码
[TPS_ASR_00004] UTF-8字符编码:AUTOSAR XML描述的字符编码应为UTF-8。不允许使用其他编码。
[TPS_ASR_00005] XML声明中的UTF-8编码:AUTOSAR XML描述应以声明UTF-8编码的XML声明开始。
[TPS_ASR_00006] 避免UTF BOM:AUTOSAR XML描述不应以"UTF字节顺序掩码"(BOM)开头。
根据UTF-8编码的特性,BOM不提供额外信息,因此应当避免使用。
4.2 XML版本
[TPS_ASR_00007] XML版本1.0:AUTOSAR XML描述应符合XML版本1.0。不允许使用其他XML版本。
[TPS_ASR_00008] XML声明中的XML版本1.0:AUTOSAR XML描述应以声明XML版本1.0的XML声明开始。
例如:<?xml version="1.0" .... ?>
4.3 XML注释和处理指令
[TPS_ASR_00009] XML注释:AUTOSAR XML描述可以包含XML注释。
XML注释不影响实际的AUTOSAR模型。AUTOSAR工具可以默默忽略XML注释,不需要再次序列化它们。
[TPS_ASR_00010] XML处理指令:AUTOSAR XML描述可以包含XML处理指令。
AUTOSAR工具可以默默忽略XML处理指令,不需要再次序列化它们。
4.4 XML根元素
[TPS_ASR_00011] AUTOSAR XML命名空间:所有AUTOSAR XML元素和属性的AUTOSAR XML命名空间是http://autosar.org/schema/r.。只要保持向后兼容性,该命名空间就会在AUTOSAR XML Schema的多个版本中保持不变。
[TPS_ASR_00017] AUTOSAR XML命名空间声明:AUTOSAR XML命名空间是默认命名空间。AUTOSAR元素不应应用命名空间前缀。
例如使用:
<AUTOSAR xmlns="http://autosar.org/schema/r4.0" ... >
而不是:
<AR:AUTOSAR xmlns:AR="http://autosar.org/schema/r4.0" ... >
[TPS_ASR_00012] AUTOSAR修订声明:AUTOSAR XML描述应通过模式位置提示URI声明作为其创建基础的AUTOSAR修订版。
这使工具能够验证AUTOSAR XML描述是否符合特定的AUTOSAR修订版。
4.5 XML格式/缩进
[TPS_ASR_00019] AUTOSAR XML描述的格式:XML描述应根据特定的格式规则进行格式化。
格式化和缩进的主要目的是在使用文本比较工具比较AUTOSAR XML描述时减少无意义的差异。
[TPS_ASR_00015] 空元素由开始-结束标签对表示:空元素应序列化为开始/结束标签,而不是"空标签"。
例如,空VALUE标签应序列化为<VALUE></VALUE>
,而不是<VALUE/>
。
[TPS_ASR_00016] 无空包装器:AUTOSAR模型中的一些属性和引用映射到两个或更多XML元素的层次结构。AUTOSAR XML描述不应包含不完整的层次结构。
[TPS_ASR_00014] 如果元素的顺序在语义上无意义,则对其排序:上限多重性>1且元素顺序在语义上无意义的属性应使用特定的启发式方法进行序列化和排序。
这种格式化规则确保了AUTOSAR XML描述具有一致的外观和组织,便于阅读和比较。
5. 总结
AUTOSAR ARXML序列化规则为AUTOSAR模型序列化为AUTOSAR XML描述提供了明确的指导。这些规则超出了XML Schema定义的基本XML结构约束,确保了AUTOSAR工具之间的高度互操作性。主要优势包括:
- 标准化表示:通过定义一种规范化的表示方式,避免了无意义的差异,如缩进、字符编码等
- 简化比较:使用文本比较工具比较AUTOSAR XML描述变得更加容易和准确
- 减少工具实现工作量:限制了XML的不同风格,使工具实现变得更加简单
- 明确的物理和数据格式规则:提供了清晰的文件组织和XML格式指南
通过遵循这些序列化规则,AUTOSAR工具能够正确解释和处理来自不同来源的AUTOSAR模型,确保了AUTOSAR生态系统中的无缝集成和互操作性。