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模式

Download history 14826/week @ 2024-04-26 11596/week @ 2024-05-03 12705/week @ 2024-05-10 12909/week @ 2024-05-17 11770/week @ 2024-05-24 17804/week @ 2024-05-31 14549/week @ 2024-06-07 15158/week @ 2024-06-14 12773/week @ 2024-06-21 11618/week @ 2024-06-28 12117/week @ 2024-07-05 12998/week @ 2024-07-12 13930/week @ 2024-07-19 16479/week @ 2024-07-26 21203/week @ 2024-08-02 12343/week @ 2024-08-09

66,513 每月下载量
用于 34 个库(3个直接)

MIT 协议

55KB
1.5K SLoC

rxml_validation — 用于验证字符串是否符合特定XML生产的工具

该库是 rxmlrxml_proc 库的基础/管道组件。它提供了实用函数来验证字符串是否符合XML 1.0规范中描述的CData、Name和NCName语法。

crate badge docs badge

请参阅rxmlrxml_proc库以获取更多信息。


lib.rs:

用于XML 1.0文档的强类型字符串

该库定义了各种类似于字符串的类型,它们将文本片段表示为可能在XML文档中出现的文本。这些类型经过检查,以确保只包含符合XML规范中相应语法的文本。

这允许将解析器中已进行的检查信息携带到应用程序中,避免了多次执行检查的需要。

这是一个针对rxml的补充库。它从主库中提取出来以支持rxml_proc,这是一个宏库,允许在编译时验证和类型化XML字符串。该库中定义的所有类型都在rxml中重新导出;如果您依赖于rxml,您可以直接使用那里的类型。

如果未启用std功能(默认启用),则可以在no_std环境中使用该库。

类型概述

  • NameNameStr代表Name生产,可用于在命名空间前缀扩展之前使用元素和属性名称。
  • NcNameNcNameStr 代表没有冒号的 Name 产生式;它们用于前缀扩展后的局部名称以及携带前缀本身。

构建

一般来说,值是通过使用 std::convert::TryInto 特性构建的,从其他字符串类型或 str。支持源类型包括

注意: 如果没有启用 compact_str 功能,所有字符串类型都使用正常的 std::string::String 类型。

此外,从 NcNameName 的转换无需额外检查,因此可以通过 .into()(以及相应的字符串类型)来实现。

相反方向的转换只能通过 try_into 来实现。

何时使用 rxml_validation 与 rxml?

当您只需要验证字符串是否符合 XML 中的规则,而不实际解析或序列化 XML 数据时,应使用此crate(rxml_validation)。在这种情况下,此crate是一个更轻量级的选择,并且可以在 no_std 环境中使用。

依赖关系

~110KB