6 个版本
0.3.5 | 2024 年 5 月 10 日 |
---|---|
0.3.4 | 2024 年 5 月 10 日 |
#478 在 数据结构
在 dawproject 中使用
7KB
61 行
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:该模式没有定义任何前缀。如果在模式中声明了 targetNamespace
,则需要此属性。
store_generated_code:用于调试目的的可选属性。它将生成的 Rust 代码存储到文件中 - 属性值是输出文件名。
log_level:在编译时配置记录器级别 - 如果 XSD 生成一些错误,则很有用。值可以是 error
、warn
、info
、debug
、trace
。
module_namespace_mapping:将命名空间映射到 Rust 模块。它可以多次出现以将多个命名空间映射到不同的 Rust 模块。
依赖关系
~0–13MB
~177K SLoC