Как проанализировать xsd с помощью xsd-parser-rs?

#rust

Вопрос:

Знаете ли вы, как разобрать файл xsd в структуры Rust с помощью https://github.com/lumeohq/xsd-parser-rs?

Я не знаю, как запустить программу и как туда поместить файлы.

Комментарии:

1. Хм, похоже, это не было опубликовано на crates.io. Вы пробовали клонировать его локально (или просто добавить в качестве зависимости) и запустить cargo doc ?

2. Да, я пытался, но все равно не могу его запустить.

Ответ №1:

Вот основной пример, который анализирует файл sample.xsd , а затем выводит отладочное представление проанализированного результата:

src/main.rs :

 use anyhow::{format_err, Result};
use std::fs;
use xsd_parser::parser::parse as xsd_parse;

fn main() -> Result<()> {
    let sample = fs::read_to_string("sample.xsd")?;
    let parsed = xsd_parse(amp;sample).map_err(|_| format_err!("failed to parse XSD file"))?;
    println!("{:#?}", amp;parsed);

    Ok(())
}
 

Cargo.toml :

 [package]
name = "xsd-demo"
version = "0.1.0"
edition = "2021"

[dependencies]
anyhow = "1"
xsd-parser = { git = "https://github.com/lumeohq/xsd-parser-rs", rev = "7f3d433e4f033b55f057e97c0a30de221dbe3ae1" }
 

sample.xsd :

Я использовал образец XSD-файла отсюда.


Из папки проекта вы можете вызвать rustdoc, например cargo doc -p xsd-parser --no-deps --open , для создания и открытия документов API для xsd-parser ящика, что позволило мне понять, как использовать ящик.