Xsd JSON模式验证程序';id';领域

Xsd JSON模式验证程序';id';领域,xsd,schema,jsonschema,xsd-validation,json-schema-validator,Xsd,Schema,Jsonschema,Xsd Validation,Json Schema Validator,我正在使用验证文件。这类似于XML XSD 我有几个关于id字段的问题 该模式在没有网络连接的情况下仍然有效吗 id中的URL应该可以从web浏览器访问?i、 e.如果“id”=”,这是否意味着我们应该能够通过转到从浏览器访问架构 在这个问题上我有点不知所措。我知道最好的做法是使用id属性作为每个模式的唯一标识符,并且在创建具有相互引用的不同模式的复杂模式时,这一点非常有用 但我不确定是否需要为id字段分配URL。我也不知道这个URL对于模式的含义 非常感谢您的帮助,id($id)的主要目的

我正在使用验证文件。这类似于XML XSD

我有几个关于id字段的问题

  • 该模式在没有网络连接的情况下仍然有效吗
  • id中的URL应该可以从web浏览器访问?i、 e.如果“id”=”,这是否意味着我们应该能够通过转到从浏览器访问架构
在这个问题上我有点不知所措。我知道最好的做法是使用id属性作为每个模式的唯一标识符,并且在创建具有相互引用的不同模式的复杂模式时,这一点非常有用

但我不确定是否需要为id字段分配URL。我也不知道这个URL对于模式的含义


非常感谢您的帮助,
id
$id
)的主要目的是组织
$ref
解析的范围

$id
不必是现有的HTTP资源。标识的模式甚至可以在另一个模式中定义(在规范测试套件中)

JSON模式规范期望验证器能够基于当前模式中定义的
$id
解析引用。远程引用也应该被解析,但是对于它应该如何发生没有限制

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


根据根模式,应该有
$id
,这是一个绝对URI,但是否应该通过HTTP客户端访问它取决于您和您的验证器。

$id只定义为一个URI

请参阅RFC-3986统一资源标识符(URI):通用语法

“统一资源标识符(URI)是一个紧凑的字符序列,用于标识抽象资源或物理资源。”

丹尼尔·梅西耶(Daniel Messier)的一篇精彩文章清楚地解释了URI的性质——它可以是一个URN,也可以是一个有效的URL


这是一个常见的混淆点。我们真的希望纠正这个问题!