JSON模式语义标注

时间:2017-08-21 08:56:32

标签: json jsonschema

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

我想为同一目的创建JSON Schema的语义注释。是否有类似于JSON的sawsdl?

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

在我的情况下,id看起来像这个例子:
“$ id”:“order / hasBillingAddress / Address”

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

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

1 个答案:

答案 0 :(得分:1)

JSON Schema还没有直接支持语义注释,尽管有an issue open for the idea。目前,没有人有时间处理提案,但我认为值得探讨,特别是与JSON-LD结合使用。请随意添加您的用例以解决问题。

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

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

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