6个版本
0.3.5 | 2024年5月10日 |
---|---|
0.3.4 | 2024年5月10日 |
#6 in #xsd
用于 2 crates
82KB
2.5K SLoC
hifa xml-schema
从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