JSON模式验证器中的'id'字段

4
我正在使用JSON Schema验证文件。这与XML XSD有些相似。
我有几个关于id字段的问题。 我对此有点迷惑。我知道最佳实践是为每个模式分配一个唯一标识符id属性,并且当创建引用彼此的不同模式的复杂模式时,这将非常有用。
但我不确定是否需要为id字段分配URL。我也不确定具有此URL对模式的影响。
非常感谢您的帮助。
2个回答

4
< p > id 的主要目的(自draft-06以来使用$id)是为了组织$ref解析的范围。

$id不一定是现有的HTTP资源。可以在另一个模式中定义已识别的模式(规范测试套件中的示例)。

JSON Schema规范期望验证者能够基于当前模式中定义的$id解析引用。远程引用也应被解决,但是对于解决方式没有限制。

在许多情况下,由于高延迟,验证期间的网络交互非常不希望。大多数实现都提供了一种在验证之前明确预加载/定义模式资源的方法$id

根据规范,根架构应具有绝对URI的$id,但是否可使用HTTP客户端访问取决于您和您的验证器。


2
这是一个普遍存在的困惑点。我们真的希望能够纠正这个问题! - Relequestual

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接