4 个版本
0.1.3 | 2023年7月29日 |
---|---|
0.1.2 | 2023年7月27日 |
0.1.1 | 2023年7月22日 |
0.1.0 | 2021年9月26日 |
在 #idiomatic 中排名第 47
每月下载量 56
395KB
443 行代码(不包括注释)
WSDL Rust XML 绑定
此库简单地使用 Rust 风格接口包装 WSDL XML 文件。
底层 XML 库是 roxmltree
,在此之上,此库声明 Rust 新类型以公开读取 WSDL 文件的本地接口。
用法
# use anyhow::Result;
use wsdl::Wsdl;
fn example() -> Result<()> {
let input = std::fs::read_to_string("/path/to/my/service.wsdl")?;
let document = roxmltree::Document::parse(&input)?;
let wsdl = WsDefinitions::from_document(&document)?;
for service in wsdl.services()? {
println!("Service: {}", service.name()?);
}
for binding in wsdl.bindings()? {
println!(
"Binding: {} -> {}",
binding.name()?,
binding.port_type()?.name()?
);
}
Ok(())
}
查看 遍历 脚本以获取完整(并可使用)的示例。运行它:
cargo run --example traverse ./path/to/my/service.wsdl
错误报告
此库生成的错误可以直接追踪到源 XML 节点。源节点 ID 包含在 [WsError] 的第一个参数中。
非目标
- 解析 XSD 定义的 WSDL 类型。XML 规范模糊不清,最好留给可以生成 Rust 绑定的独立 crate。
依赖项
~0.5–1MB
~22K SLoC