#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
ящика, что позволило мне понять, как использовать ящик.