You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用xsd-parser-rs解析XSD文件生成Rust结构体

使用xsd-parser-rs将XSD转换为Rust结构体操作步骤

1. 环境准备

确保本地已安装完整Rust工具链,可通过运行rustc --version验证安装状态。
你可以选择两种使用方式:命令行工具直接调用,或作为依赖集成到自己的Rust项目中。

命令行工具安装

运行以下命令全局安装命令行工具:
cargo install xsd-parser-rs

项目依赖引入

如果要在代码中自定义解析逻辑,在Cargo.toml中添加依赖:

[dependencies]
xsd-parser = "最新版本号" # 可到crates.io查询当前最新的可用版本

2. 导入待处理XSD文件

将你需要解析的XSD文件放到工作目录下,比如命名为input_schema.xsd。如果你的XSD文件有导入其他子XSD文件,需要将所有关联的XSD文件都放在同一个目录下,避免解析时找不到依赖。

3. 执行转换

命令行方式

直接在终端运行以下命令,指定输入文件路径和输出的Rust文件路径即可:
xsd-parser generate --input ./input_schema.xsd --output ./src/generated/mod.rs
你可以根据需求添加可选参数:

  • 加--derive-debug:为所有生成的结构体自动派生Debug trait
  • 加--derive-serde:为所有生成的结构体自动派生Serialize、Deserialize trait,适配serde序列化场景
  • 加--no-derive-default:关闭默认派生Default trait的行为

代码调用方式

如果你需要在代码中动态生成结构体,可参考以下示例代码:

use std::fs;
use xsd_parser::generator::rust::RustGenerator;
use xsd_parser::parser::parse_xsd;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 读取XSD文件内容
    let xsd_content = fs::read_to_string("./input_schema.xsd")?;
    // 解析XSD结构
    let xsd_schema = parse_xsd(&xsd_content)?;
    // 配置生成规则
    let generator = RustGenerator::builder()
        .derive_debug(true)
        .derive_serde(true)
        .build();
    // 生成Rust代码
    let rust_code = generator.generate(&xsd_schema)?;
    // 写入输出文件
    fs::write("./src/generated/mod.rs", rust_code)?;
    Ok(())
}

写完后运行cargo run即可执行转换。

4. 使用生成的结构体

在你的项目代码中引入生成的文件即可使用对应的结构体:

mod generated;
use generated::*; // 导入所有生成的结构体

内容的提问来源于stack exchange,提问作者wkargul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:12:03