12 个重大发布
新增 0.14.0 | 2024年8月16日 |
---|---|
0.13.0 | 2024年5月19日 |
0.12.0 | 2023年12月14日 |
0.11.1 | 2023年9月27日 |
0.3.0 | 2022年10月19日 |
#344 in 解析器实现
1,270 每月下载量
用于 autosar-data
5.5MB
44K SLoC
autosar-data-specification
该crate存在是为了支持autosar-data crate。
Autosar数据模型最初以.xsd文件形式指定 - 每个标准版本一个。所有这些单独的xsd文件都被解析成数据结构并合并;该crate包含了所有20个Autosar 4标准版本的合并规范数据。
支持的标准
xsd 文件名 | 描述 |
---|---|
AUTOSAR_4-0-1.xsd | AUTOSAR 4.0.1 |
AUTOSAR_4-0-2.xsd | AUTOSAR 4.0.2 |
AUTOSAR_4-0-3.xsd | AUTOSAR 4.0.3 |
AUTOSAR_4-1-1.xsd | AUTOSAR 4.1.1 |
AUTOSAR_4-1-2.xsd | AUTOSAR 4.1.2 |
AUTOSAR_4-1-3.xsd | AUTOSAR 4.1.3 |
AUTOSAR_4-2-1.xsd | AUTOSAR 4.2.1 |
AUTOSAR_4-2-2.xsd | AUTOSAR 4.2.2 |
AUTOSAR_4-3-0.xsd | AUTOSAR 4.3.0 |
AUTOSAR_00042.xsd | AUTOSAR Adaptive 17-03 |
AUTOSAR_00043.xsd | AUTOSAR Adaptive 17-10 |
AUTOSAR_00044.xsd | AUTOSAR Classic 4.3.1 |
AUTOSAR_00045.xsd | AUTOSAR Adaptive 18-03 |
AUTOSAR_00046.xsd | AUTOSAR Classic 4.4.0 / Adaptive 18-10 |
AUTOSAR_00047.xsd | AUTOSAR Adaptive 19-03 |
AUTOSAR_00048.xsd | AUTOSAR 4.5.0 |
AUTOSAR_00049.xsd | AUTOSAR R20-11 |
AUTOSAR_00050.xsd | AUTOSAR R21-11 |
AUTOSAR_00051.xsd | AUTOSAR R22-11 |
AUTOSAR_00052.xsd | AUTOSAR R23-11 |
使用 crate
主要数据类型是 ElementType
。每个 arxml 文件根部的 <AUTOSAR>
元素的类型可作为 ElementType::ROOT
使用。
示例
use autosar_data_specification::*;
use std::str::FromStr;
let root_type = ElementType::ROOT;
// parsing an element
let element_name_text = "AR-PACKAGES";
let element_name = ElementName::from_str(element_name_text).unwrap();
assert_eq!(element_name, ElementName::ArPackages);
let version_mask = AutosarVersion::Autosar_4_3_0 as u32;
if let Some((element_type, index_list)) = root_type.find_sub_element(
element_name,
version_mask
) {
// parsing an attribute
let attribute_name = AttributeName::from_str("UUID").unwrap();
if let Some(attribute_spec) = element_type.find_attribute_spec(attribute_name) {
// ...
}
// ...
}