soljsonvalidate - json スキーマファイルに基づく json の検証
/usr/bin/soljsonvalidate [-nv] [-i pattern] [path] ...
soljsonvalidate コマンドは、JSON スキーマファイルをロードし、それらのスキーマに基づいて JSON ファイルを検証します。
デフォルトでは、soljsonvalidate は、/usr/share/lib/json/soljsonvalidate 配下の到達可能なすべてのスキーマをロードします。そこにあるすべてのスキーマは、自身を「id」タグで識別します。それらのスキーマの 1 つへの準拠を (「$schema」属性を通じて) 主張するすべての JSON ファイルが、そのスキーマに基づいて検証されます。–n オプションを指定した場合、デフォルトパスからスキーマがロードされません。
soljsonvalidate に渡されたすべてのパスが検査されます。ディレクトリの再帰的な検査やシンボリックリンクのトラバースが行われます。–i オプションに指定したパターンに一致する通常のファイルのすべてが、検証対象としてキューに登録されます。–i オプションを指定しない場合に使用されるデフォルトのパターンは、「*.json」です。
パスが 1 つも指定されなかった場合、soljsonvalidate は、stdin から JSON ファイルを読み取って検証しようとします。
一致するすべての JSON ファイルが開かれ、JSON 構文エラーがないかチェックされます。構文エラーが見つかった場合、検証は実行されません。ロードの完了した JSON ファイルがすべて検証され、新しいスキーマが見つかった場合は必ず、組み込みベーススキーマに基づいてその検証が行われます。
デフォルトでは、エラーが 1 つも発生しなかった場合、soljsonvalidate は何のメッセージも発行しないで実行され、エラーコード 0 で終了します。エラーが発生した場合は、対応するエラーメッセージが出力されます。–v オプションが指定された場合、soljsonvalidate は、検証に失敗した json オブジェクトから生成されるエラーメッセージに加え、検証に成功した json オブジェクトごとに 1 行ずつ出力します。
「/usr/bin/soljsonvalidate <path> ...」は「/usr/bin/soljsonvalidate -n /usr/share/lib/json/soljsonvalidate <path> ..」と同等です。
このコマンドの出力は、エラー出力と –v オプションによる出力のどちらも人間が使用するためのものなので、結果のメッセージの書式は当然ながら変更される可能性があります。
サポートしているオプションは、次のとおりです。
/usr/share/lib/json/soljsonvalidate をパスの最初の項目としてロードしません。
検証が成功した場合にメッセージを出力します。
fnmatch(7) のマニュアルページで説明されている代替ファイルマッチングパターンを指定します。
すべての JSON ファイルのロードと検証が成功しました。
1 つ以上のエラーが発生しました。
次にサンプルの JSON ファイル「solaris.json」を示します。
[{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "solaris-machine", "description": "machines on which Solaris runs", "type": "object", "properties": { "architecture": { "description": "machine CPU architecture", "enum": ["SPARC", "x86"] }, "number-of-sockets": { "type": "integer", "minimum": 1 } } }, { "$schema": "solaris-machine", "id": "M6-32", "architecture": "SPARC", "number-of-sockets": 32 }, { "$schema": "solaris-machine", "id": "not-so-far", "architecture": "ARM", "number-of-sockets": 1 }, { "$schema": "solaris-machine", "id": "missing-something-important", "architecture": "SPARC", "number-of-sockets": 0 } ]
soljsonvalidate コマンドを使用してこのファイルを検証すると、次の 2 つのエラーメッセージが表示されます。
bash: soljsonvalidate -n solaris.json solaris.json: validation error: key 'architecture' does not have value ('"ARM"') contained in enum ["SPARC", "x86"] solaris.json: validation error: key 'number-of-sockets' is 0.000000, less than minimum value 1.000000
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|