実現したいこと
JSON Schema で複数の定義(いずれもオブジェクト)を参照し、いずれかの定義に含まれるプロパティは許可し、いずれにも含まれないプロパティは不許可にしたいです。
どのように記述すればよいでしょうか。
発生している問題・エラーメッセージ
下記のソースコードにおいて、
line-color は「型が正しくありません。 "string" が必要です。」
「プロパティ back-color は許可されていません。」
となってほしいですが、
3つとも「プロパティ ~ は許可されていません。」
line-color は「型が正しくありません。 "string" が必要です。」
となってしまいます。
該当のソースコード
JSONSchema
1{ 2 "type": "object", 3 "additionalProperties": false, 4 "allOf": [ 5 { 6 "$ref": "#/definitions/paintable" 7 }, 8 { 9 "$ref": "#/definitions/borderable" 10 } 11 ], 12 "definitions": { 13 "paintable": { 14 "type": "object", 15 "properties": { 16 "fill-color": { 17 "type": "string" 18 } 19 } 20 }, 21 "borderable": { 22 "type": "object", 23 "properties": { 24 "line-color": { 25 "type": "string" 26 } 27 } 28 } 29 } 30}
JSON
1{ 2 "fill-color": "red", 3 "line-color": 0, 4 "back-color": "yellow" 5}
試したこと
"additionalProperties": false,
の行を削除すると
line-color は「型が正しくありません。 "string" が必要です。」
となります。
「プロパティ back-color は許可されていません。」は検出されません。
補足情報(FW/ツールのバージョンなど)
VS Code 1.75.0

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/09 04:25