2016-08-03 3 views
1

は、この例で考えてみましょう

"keyword":"additionalProperties","message":"object instance has properties which are not allowed by the schema: [\"attributes\",\"type\"]"}] 

を同じJSONオブジェクトベース・スキーマに対して検証を(テストアドレスプレフィックス-typees-base)はエラーなしで渡されます。

参照されるスキーマ(基本1)には、additionalPropertiesが設定されていません。

 String message = "{\"data\":{\"attributes\":{" + 
      "\"notation\": \"A\"," + 
      "\"prefixType\": \"A\"}" + 
      ",\"type\":\"test-address-prefix-types\"}}"; 

を私はスキーマで何かを見逃している:

これは、私が使用していたJSONメッセージはありますか? おかげ

答えて

2

あなたのスキーマは、この方法を拡張することができます。

allofrefを介して結合した任意のプロパティと

  • まず1:これは、2つのスキーマに対してindependentlyを検証する必要があります。
  • 空のセット"properties" : {}で定義されたものを除き、いずれのプロパティも許可しない2番目のものは"additionalProperties" : falseです。言い換えれば、それはどんな特性も持つことができません。

この問題は、標準のドラフト5で解決される可能性があります。詳しくはthe following SO questionを参照してください。

+0

この「マージ」は単なる提案であり、まだリリースされていません。私はhttp://json-schema.org/のjsonスキーマ仕様をチェックしましたが、それについては言及していません。私たちはAJVを使って検証していますが、それはまだマージをサポートしていません。 – xbmono

+1

はい、まだ安全に適用することはできません。可能であれば、 "additionalProperties":参照先のスキーマにfalseを追加することができます。 – jruizaranguren

+0

Json Schema Validator(https://github.com/daveclayton/json-schema-validator)が$ mergeをサポートしているかどうか知っていますか?私はちょうどAJVが$ mergeのサポートを追加したことを認識しましたが、Jsonスキーマバリデーターを使用しています。これはJava用であり、ここで見ることができます。https://github.com/daveclayton/json-schema-validator/wiki/v5:-それは$マージをサポートしていますが、私はそれを動作させることはできません? $ mergeが認識されないのでエラーを返します – xbmono

関連する問題

 関連する問題