MOXy JSON模式验证,不使用属性前缀

时间:2014-06-17 18:19:27

标签: java json validation schema moxy

我想避免在我的json请求/响应中使用属性前缀,例如" @"。很容易配置MOXy不使用它们,但是在启用模式验证时会导致模式验证错误。

当你删除属性前缀时,它会尝试验证它,就好像它是一个元素,而不是一个属性,导致一个" cvc-complex-type.2.4.a:无效的内容是从元素XXX开始......"验证错误。

作为一个简短的例子,如果你有一个描述这样一个文档的模式:

<foo attr1="bar"/>

如果不使用属性前缀,json将如下所示:

{
  "foo":
  {
    "attr1" : "bar"
  }
}

但是当针对模式进行验证时,该文档将失败并使用&#34; cvc-complex-type.2.4.a:从元素 attr1 开始找到无效内容...&# 34;验证错误,因为它没有作为属性加前缀,MOXy似乎将它标识为一个元素(我相信这是通过ContentHandler.startElement()调用来触发元素的启动以及验证)。

有没有办法成功使用JSON文档的模式验证而不使用属性前缀?

0 个答案:

没有答案