【问题标题】:JSON Schema Semantic AnnotationJSON模式语义注释
【发布时间】:2017-08-21 08:56:32
【问题描述】:

在以下链接中,sawsdl:modelReference in XML Schema 用于语义注释,以便在不同模式之间进行映射:Link

出于同样的目的,我想为 JSON Schema 创建语义注释。 JSON 有类似 sawsdl 的东西吗?

如果没有,我可以使用 id 属性吗?据我所知,id 属性可以使用相对(“$id”:“billing/address”)或绝对(“$id”:“#billingAddress”)。

在我的例子中,id 看起来像这个例子:
“$id” : “订单/hasBillingAddress/地址”

或者是否可以创建自定义属性,例如 “SemanticAnnotation” : “order/hasBillingAddress/Address”?

我已阅读规范,据我所知,这些方法似乎都没有与规范相矛盾。我还使用 JSON Schema 验证器检查了这两个选项,也没有发现任何问题。

【问题讨论】:

    标签: json jsonschema


    【解决方案1】:

    虽然有an issue open for the idea,但JSON Schema 还不直接支持语义注释。目前,没有人有时间研究提案,但我认为这是值得探索的东西,尤其是与 JSON-LD 结合使用。请随时将您的用例添加到问题中。

    $id 属性用于将 URI 分配给架构,以便可以从其他地方引用它。 “#billingAddress”表单声明了该架构文件本地的片段 URI(“#”是 URI 片段语法标记,并非特定于 JSON 架构)。

    “帐单/地址”表单声明一个带有相对路径的 URI。这通常仅在将多个逻辑模式打包到单个文件中时完成,以便针对原始文件名和路径的引用保持有效。设置非片段 $id 更改小时 $ref 引用已解析,这可能不是您想要的。

    由于 JSON Schema 验证器会忽略他们不理解的关键字,因此您要做的最简单的事情可能就是为此定义自己的扩展关键字。它们不会被其他应用程序识别,所以我想这取决于你的观众。几个验证器程序可以很容易地支持自定义关键字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-03
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 2012-08-11
      相关资源
      最近更新 更多