10 个版本
0.3.0 | 2023年12月19日 |
---|---|
0.2.0 | 2023年2月21日 |
0.1.0 | 2023年2月9日 |
0.0.7 | 2020年8月20日 |
0.0.1 | 2020年4月7日 |
#612 在 数据库接口
每月下载量 56
6KB
xml-schema
从 XSD 生成 Rust 代码(结构和枚举)
需求
此项目依赖于其他必需库才能开始,请将它们添加到您的 Cargo.toml
。
用法
在 Rust 项目的入口点,添加以下行
#[macro_use]
extern crate yaserde_derive;
use std::io::prelude::*;
use xml_schema_derive::XmlSchema;
use 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–16MB
~175K SLoC