コンテンツにスキップ

JSON Schemaリファレンス

このリファレンスは、配布データを検証する利用者と、データ構造を変更する開発者向けの資料です。 許可される値と条件付き制約も、JSON Schemaごとに説明します。 各フィールドの役割や実際の値を先に理解したい場合は、レンズと関連光学製品のフィールドリファレンスまたはマウントアダプターのフィールドリファレンスを参照してください。

このプロジェクトのJSON Schemaは、JSON Schema Draft 2020-12に準拠しています。 公開URLの名前空間は、レンズと関連光学製品、マウントアダプター、共通定義に分かれています。 JSON Schema一式には一つのスキーマバージョンを使い、配布データのschemaVersionに記録します。

目的からJSON Schemaを選ぶ

確認するデータの種類や単位によって、最初に開くページが異なります。

確認する対象 最初に開くページ
レンズFull版またはレンズLight版の配布データ全体 dataset-fullまたはdataset-light
レンズFull版またはレンズLight版に含まれる製品1件 product-fullまたはproduct-light
レンズと関連光学製品の収録製品データ product-record
マウントアダプターFull版の配布データ全体 dataset-full
マウントアダプターFull版に含まれる製品1件 adapter-full
マウントアダプターの収録製品データ adapter-record
候補製品の調査結果データ レンズと関連光学製品またはマウントアダプター
配布用JSONに埋め込むIDと表示情報 reference-data

フィールド表と制約の読み方

各ページのフィールド表では、JSON内の位置を「パス」、許可されるデータ型や固定値を「型・値」、項目の役割を「説明」として示します。

  • []は配列を表します。 たとえばproducts[]は、products配列に含まれる各要素を指します。
  • 「Aまたはnull」は、その項目にAで示した型の値かnullを記録できることを表します。
  • {}はプロパティを持たない空のオブジェクトを表します。
  • truefalsenull、列挙値、JSONのキーはコード表記で示します。

型表では、JSONの型名を次の日本語で表記します。

表記 JSONまたはJSON Schema上の表現
文字列 string
数値 number
整数 integer
オブジェクト object
真偽値 boolean
配列 array
列挙値 JSON Schemaのenumで許可された値。JSON自体の型ではない

型名の後ろに付けた[]は、その型の値を要素とする配列を表します。 すべての整数はI-JSONの安全整数範囲で扱い、上限を9007199254740991とします。 負の値を許す項目の下限は-9007199254740991です。 個別の表に、これより狭い範囲が記載されている場合は、その制約が優先されます。

リファレンスの各ページは、JSON Schemaの内容を本文と表で説明した資料です。 正確な型、必須項目、許可される値、条件付き制約はJSON Schemaファイルで確認してください。 リポジトリ内のソースを変更した場合、JSON Schemaだけでは表せない規則はhatch run validateで検証します。 リポジトリ検証の対象には、JSON Schema自体のDraft 2020-12適合性、$id$ref、ファイル名と配置、IDとレジストリの参照、ファイル間の対応が含まれます。

公開URLとバージョン

各JSON Schemaの$idは、スキーマバージョンと名前空間を含む公開URLです。 現在のスキーマバージョンは1.0.0で、URLは次の形式です。

  • レンズと関連光学製品:https://cercidiphyllum.jp/schemas/1.0.0/lenses/<schema-file>
  • マウントアダプター:https://cercidiphyllum.jp/schemas/1.0.0/adapters/<schema-file>
  • 共通定義:https://cercidiphyllum.jp/schemas/1.0.0/shared/<schema-file>

公開したバージョン付きURLとJSON Schemaの内容は変更しません。 データ構造や制約を変更する場合はschemaVersionを更新し、旧バージョンも引き続き公開します。 配布データを利用する側でのバージョン確認は、配布データを使うで説明しています。

共通

共通のJSON Schemaは、両方のデータセットで使う基本定義と、配布用JSONに埋め込む参照情報を検証します。

JSON Schema 検証する対象
shared-definitions ID、数値、測定条件など、複数のJSON Schemaから参照する定義
reference-data 配布用JSONのルートに埋め込む、参照IDと表示情報の対応表

レンズと関連光学製品

レンズと関連光学製品では、配布データ、収録製品データ、調査結果データを別々のJSON Schemaで検証します。

JSON Schema 検証する対象
dataset-full レンズFull版の配布データ全体
dataset-light レンズLight版の配布データ全体
product-full レンズFull版のproducts[]に含まれる製品1件
product-light レンズLight版のproducts[]に含まれる製品1件
product-record data/records/lenses/に置く収録製品データ1件
product-components 複数の製品種別で使う識別情報、発売情報、マウント、外形などの共通ブロック
product-type-lens レンズのlensブロック
product-type-teleconverter テレコンバーターのteleconverterブロック
product-type-pinhole ピンホールのpinholeブロック
research-result research/results/lenses/に置く調査結果データ1件

マウントアダプター

マウントアダプターはレンズと関連光学製品とは異なるデータ構造を使い、Light版を設けません。

JSON Schema 検証する対象
dataset-full マウントアダプターFull版の配布データ全体
adapter-full マウントアダプターFull版のadapters[]に含まれる製品1件
adapter-record data/records/adapters/に置く収録製品データ1件
adapter-components マウント変換、電子機能、光学要素、外形などの共通ブロック
research-result research/results/adapters/に置く調査結果データ1件

JSON Schemaのライセンス

schemas/配下のJSON SchemaファイルにはMIT Licenseを適用します。 各ファイルの$commentにあるSPDX-FileCopyrightTextSPDX-License-Identifier: MITも、JSON Schemaファイルだけを対象とします。 JSON Schemaで検証する調査結果データ、収録製品データ、レジストリ、配布データにはCC BY 4.0を適用します。

関連ページ