您在规范中发现了一个错误,因此您实际上并没有误解某些内容。
IETF 网站上有互联网草案的更新版本(两天后),这里的示例有所不同。
见:https ://datatracker.ietf.org/doc/html/draft-fge-json-schema-validation-00#page-13
由于该文档是互联网草稿,因此http://datatracker.ietf.org/上的版本很可能是正确的版本。
本备忘录的状态
本互联网草案的提交完全符合
BCP 78 和 BCP 79 的规定。
Internet-Drafts是Internet 工程
任务组 (IETF)的工作文件。请注意,其他小组也可以将
工作文档作为 Internet-Drafts 分发。当前 Internet
草案的列表位于http://datatracker.ietf.org/drafts/current/。
Internet-Drafts 是 Internet 工程
任务组 (IETF) 的工作文件。
此外,这两个版本有不同的日期和有效期:
- 您链接的版本 - 编写:2013 年 1 月 30 日,到期:2013 年 8 月 3 日。
- ietf 上的版本 - 写于:2013 年 2 月 1 日,到期:2013 年 8 月 5 日
在 IETF 版本上:
此模式将用作示例:
{
"properties": {
"p1": {}
},
"patternProperties": {
"p": {},
"[0-9]": {}
},
"additionalProperties": false
这是要验证的实例:
{ "p1": true, "p2": null, "a32&o": "foobar", "": [], "fiddle": 42, "apple": "pie" }
这三个属性集是:
s [ "p1", "p2", "a32&o", "", "fiddle", "apple" ]
p [ "p1" ]
pp [ "p", "[0-9]" ]
应用算法的两个步骤:
after the first step, "p1" is removed from "s";
after the second step, "p2" (matched by "p"), "a32&o" (matched by
"[0-9]") and "apple" (matched by "p") are removed from "s".
集合“s”仍然包含两个元素,“”和“fiddle”。因此验证失败。