2017-08-07 10 views
1

this fileadditionalProperties: falseidentifierプロパティに指定されているにもかかわらず、parties/identifiername_enlegalName_enフィールドをキャッチしません。JSONSchemaは間違った追加フィールドをキャッチしませんか? <a href="https://pastebin.com/raw/0TP4uZxB" rel="nofollow noreferrer">this schema</a>を使用して

これはである:OSX上

jsonschema schema.json -i file.json 

python-jsonschemaを使用します。

私は何か間違っているのですか、これはバグですか?

+0

両方のリンクがjsonデータを指しています – Pedro

+0

申し訳ありません固定リンク。 – Richard

+0

なぜ近い投票ですか? – Richard

答えて

1

私はそれがバグだとは思わない - 少なくともそれはまた、http://www.jsonschemavalidator.net/が使用しているプロセッサのバグでもあります。

奇妙なことは、バリデータがそれを尊重しているところでadditionalProperties:falseが指定されている場合があるということです。例えばをキャッチされているに、PackageInfoセクションの4つのプロパティがあります。

プロパティ「documentation_en」は定義されていないと、スキーマが 追加のプロパティを許可していません。スキーマパス: http://standard.open-contracting.org/schema/1__1__0/release-schema.json#/properties/packageInfo/properties/publisher/additionalProperties

私はに、PackageInfoセクションから余分なプロパティを削除する場合は、ペイロード全体が細かい検証します。

次に、Identityの定義からpatternPropertiesプロパティを削除し、バリデーターが機能し始めました。したがって、定義内のpatternPropertiesの存在または価値に関する何かがadditionalPropertiesの検証が機能しないようにすることは、私が推測できることです。

さらに、スイッチとして機能するのは単にpatternPropertiesの存在だけではありません。 packageInfo定義にpatternPropertiesプロパティを追加して、バリデータが4つの余分なプロパティの検証を停止したかどうかを確認しましたが、それでも機能しました。それは他のものでなければなりません。非常に不思議な。

+1

ありがとう、それは非常に便利です。私の目的のために、私はちょうど全体を通じて 'patternProperties'プロパティを取り除くことができます。バリデータが気に入らない 'patternProperties'の内容であるのだろうかと思います。 – Richard

関連する問題

 関連する問題