36 个版本
0.9.5 | 2024 年 7 月 19 日 |
---|---|
0.9.3 | 2024 年 4 月 11 日 |
0.9.2 |
|
0.8.2 | 2023 年 10 月 20 日 |
0.2.0 | 2022 年 2 月 24 日 |
#145 in 数据结构
1,422 每月下载量
在 44 个 crate 中使用 (17 个直接)
460KB
14K SLoC
Rust 的 XSD 类型
此 crate 旨在提供 XSD 内置数据类型的安全表示。
用法
对于每个 XSD 数据类型,此库提供两类类型:一类表示数据类型的 词汇空间(见 lexical
模块),另一类表示数据类型的 值空间(见 value
模块)。
例如,假设我们希望存储 XSD decimal 数据类型值的词汇表示。我们可以使用 lexical::Decimal
类型(或其拥有变体,lexical::DecimalBuf
)
let string = "3.141592653589793";
// Parse the lexical representation (lexical domain).
let lexical_repr = xsd_types::lexical::Decimal::new(string).unwrap();
// Interprets the lexical representation (value domain).
use xsd_types::lexical::LexicalFormOf;
let value_repr: xsd_types::Decimal = lexical_repr.try_as_value().unwrap();
当然,可以使用 FromStr
直接将值解析到值域中
let value_repr: xsd_types::Decimal = "3.141592653589793".parse().unwrap();
任何值
Value
类型提供了一种简单的方式来表示 任何 XSD 值。
use xsd_types::{XSD_DATE, Datatype, Value};
let dt = Datatype::from_iri(XSD_DATE).unwrap();
let value: Value = dt.parse("1758-12-25").unwrap(); // Halley is back!
许可证
根据以下任一许可证许可
- Apache 许可证 2.0(《LICENSE-APACHE》或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(《LICENSE-MIT》或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您提交的任何贡献,根据 Apache-2.0 许可证定义,将根据上述条款双许可,不附加任何额外条款或条件。
依赖项
~5.5MB
~117K SLoC