#xml-schema #xsd #schema #xml

hifa-xml-schema-derive

从XSD源文件生成结构生成器

6个版本

0.3.5 2024年5月10日
0.3.4 2024年5月10日

#6 in #xsd


用于 2 crates

MIT 许可证

82KB
2.5K SLoC

hifa xml-schema

Build Status Latest Version Coverage Status

从XSD生成Rust代码(结构和枚举)

这是media-io/xml-schema项目中修改过的版本。

需求

此项目依赖于其他必需库才能启动,请将它们添加到您的 Cargo.toml 中。

使用方法

在您的Rust项目入口处,添加以下几行

#[macro_use]
extern crate hifa_yaserde_derive;

use std::io::prelude::*;
use hifa_xml_schema_derive::XmlSchema;
use hifa_yaserde::{YaDeserialize, YaSerialize};

然后使用以下方式实现XSD

#[derive(Debug, XmlSchema)]
#[xml_schema(source = "path_to_schema.xsd", target_prefix = "my_prefix")]
struct MySchema;

注意:`MySchema` 不需要是公开的。它仅作为信息支持。

属性

source:XSD - XML Schema的源。它可以是本地文件(与项目的根相关)或HTTP资源。
target_prefix:架构未定义任何前缀。如果schema中声明了`targetNamespace`,则此属性是必需的。
store_generated_code:用于调试的可选属性。它将生成的Rust代码存储到文件中 - 属性值是输出文件名。
log_level:在编译时配置记录器级别 - 如果XSD生成一些错误,则很有用。值可以是`error`、`warn`、`info`、`debug`、`trace`。
module_namespace_mapping:将命名空间映射到Rust模块。它可以出现多次,以将多个命名空间映射到不同的Rust模块。

依赖项

~4–17MB
~282K SLoC