jsonschema

json-schema メモ

  • 基本的には json で記述するため、コメントを書くことができない。
  • prmd は json と yaml を透過的に変換し、yaml で記述できるため、コメントが記述できる。
  • 2017-08-23 現時点で仕様は draft-6 まで改定が進んでいる
  • ライブラリは draft-4 をサポートしていることが多いようだ
  • draft-4 のキーワードである "id" をデータのプロパティ名に使えない
    • jsonrpc でいきなり問題が出る
    • そうでなくとも id を整数値で使いたいケースは沢山あるように思えるのだが…
    • draft-4-validation の patternProperties を使うと裏技的に "id" プロパティを定義できる
  • draft-6 は draft-4 の上位互換ではなく、例えば "id" は "$id" に置き換えられている
  • document root での "id" で相対 URL が使えるかどうかは仕様では明記されていない。
    • prmd は標準的に使う一方で、python jsonschema では受け入れられない。
    • http スキーマの名前空間を割り当てたほうが無難。

誤りなどあったら、コメント頂けるとありがたし!