12个版本 (7个重大更新)
0.11.0 | 2024年6月15日 |
---|---|
0.10.0 | 2024年3月16日 |
0.9.1 | 2023年1月25日 |
0.8.2 | 2022年12月17日 |
0.4.0 | 2021年8月18日 |
#844 in Rust模式
66,513 每月下载量
用于 34 个库(3个直接)
55KB
1.5K SLoC
rxml_validation
— 用于验证字符串是否符合特定XML生产的工具
该库是 rxml
和 rxml_proc
库的基础/管道组件。它提供了实用函数来验证字符串是否符合XML 1.0规范中描述的CData、Name和NCName语法。
lib.rs
:
用于XML 1.0文档的强类型字符串
该库定义了各种类似于字符串的类型,它们将文本片段表示为可能在XML文档中出现的文本。这些类型经过检查,以确保只包含符合XML规范中相应语法的文本。
这允许将解析器中已进行的检查信息携带到应用程序中,避免了多次执行检查的需要。
这是一个针对rxml
的补充库。它从主库中提取出来以支持rxml_proc
,这是一个宏库,允许在编译时验证和类型化XML字符串。该库中定义的所有类型都在rxml
中重新导出;如果您依赖于rxml
,您可以直接使用那里的类型。
如果未启用std
功能(默认启用),则可以在no_std
环境中使用该库。
类型概述
Name
和NameStr
代表Name
生产,可用于在命名空间前缀扩展之前使用元素和属性名称。NcName
和NcNameStr
代表没有冒号的Name
产生式;它们用于前缀扩展后的局部名称以及携带前缀本身。
构建
一般来说,值是通过使用 std::convert::TryInto
特性构建的,从其他字符串类型或 str
。支持源类型包括
String
(复制)compact_str::CompactString
(移动)- [
str
](除了切片类型外的所有类型的复制)
注意: 如果没有启用 compact_str
功能,所有字符串类型都使用正常的 std::string::String
类型。
此外,从 NcName
到 Name
的转换无需额外检查,因此可以通过 .into()
(以及相应的字符串类型)来实现。
相反方向的转换只能通过 try_into
来实现。
何时使用 rxml_validation 与 rxml?
当您只需要验证字符串是否符合 XML 中的规则,而不实际解析或序列化 XML 数据时,应使用此crate(rxml_validation
)。在这种情况下,此crate是一个更轻量级的选择,并且可以在 no_std
环境中使用。
依赖关系
~110KB