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