Files
autosar_standard_spec_v4.4/MethodologyAndTemplates/AUTOSAR_TPS_XMLSchemaProductionRules.md
T

22 KiB
Raw Blame History

AUTOSAR XML Schema 生产规则

AUTOSAR CP Release 4.4.0

原文:XML Schema Production Rules(文档 ID 122

翻译状态:已完成 v1(封面+前言+目录+章节 1-7 完整翻译;XML Schema 生产规则章节部分摘要)

对应原文 PDFMethodologyAndTemplates/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
  2. 需求追溯(Requirements tracing
  3. XML Schema 设计原则(XML Schema design principles
  4. XML schema 生产的配置(Configuration of XML schema production
  5. XML Schema 生产规则(XML Schema production rules
  6. AUTOSAR XML Schema 一致性(AUTOSAR XML Schema compliance
  7. 参考文献(References

1 引言(Introduction

本文档描述了从 AUTOSAR 元模型生成 XML SchemaXSD)的规则。这些规则由 MDSMeta 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 生产方法:

  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

引用类型 映射方式
普通引用 <REF-DEST>PATH</REF-DEST>
实例引用 <IREF-DEST>PATH</IREF-DEST>
相对引用 <REF-DEST-RELATIVE>../PATH</REF-DEST-RELATIVE>

4.2.4 应用于类的 StereotypesStereotypes 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:schemaCreate 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:groupCreate xsd:group

对于具有多个聚合属性的类,创建 xsd:group 以便重用。

5.2.2 创建 xsd:attributeGroupCreate xsd:attributeGroup

对于具有多个原始属性的类,创建 xsd:attributeGroup。

5.2.3 创建 xsd:complexTypeCreate 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:complexTypeCreate 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:elementCreate 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:simpleTypeCreate 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:attributeCreate 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 种(位模式 11110000),基于以下四个布尔标志的组合:

  1. 类型为简单类型(S:属性类型是否为简单类型
  2. 可拆分(Splitable:属性是否带有 atpSplitable Stereotype
  3. 变体(Variation:属性是否带有 atpVariation Stereotype
  4. 聚合(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 标准。一致性检查包括:

  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.0http://www.w3.org/2001/XMLSchema 保持英文原样。