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数据库接口

Download history 24/week @ 2024-04-03 6/week @ 2024-04-10 3/week @ 2024-04-17 83/week @ 2024-04-24 13/week @ 2024-05-01 2/week @ 2024-05-22 22/week @ 2024-05-29 21/week @ 2024-06-05 24/week @ 2024-06-12 37/week @ 2024-06-19 23/week @ 2024-06-26 14/week @ 2024-07-03 2/week @ 2024-07-10 12/week @ 2024-07-17

每月下载量 56

MIT 许可证

6KB

xml-schema

Build Status Latest Version Coverage Status

从 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