asdf-schema-1.1.0
ASDF Schema
Description
Extending YAML Schema and JSON Schema to add support for some ASDF-specific checks, related to ndarrays.
Outline
Schema Definitions ¶
This node must validate against all of the following:
This type is an object with the following properties:
max_ndim
integer Specifies that the corresponding ndarray is at most the given number of dimensions. If the array has fewer dimensions, it should be logically treated as if it were “broadcast” to the expected dimensions by adding 1’s to the front of the shape list.
Minimum value: 0
ndim
integer Specifies that the matching ndarray is exactly the given number of dimensions.
Minimum value: 0
datatype
object Specifies the datatype of the ndarray.
By default, an array is considered “matching” if the array can be cast to the given datatype without data loss. For exact datatype matching, set
exact_datatype
totrue
.This node must validate against all of the following:
exact_datatype
boolean If
true
, the datatype must match exactly.Default value:
False
additionalItems
object This node must validate against any of the following:
boolean
items
object This node must validate against any of the following:
additionalProperties
object This node must validate against any of the following:
boolean
definitions
object object
properties
object object
patternProperties
object object
dependencies
object object
allOf
schemaArray anyOf
schemaArray oneOf
schemaArray not
#
Internal Definitions ¶
schemaArray
array |
Minimum length: 1
Items in the array are restricted to the following types:
Original Schema ¶
%YAML 1.1
---
$schema: "http://json-schema.org/draft-04/schema"
id: "http://stsci.edu/schemas/asdf/asdf-schema-1.1.0"
title:
ASDF Schema
description: |
Extending YAML Schema and JSON Schema to add support for some ASDF-specific
checks, related to [ndarrays](ref:core/ndarray-1.1.0).
allOf:
- $ref: "http://stsci.edu/schemas/yaml-schema/draft-01"
- type: object
properties:
max_ndim:
description: |
Specifies that the corresponding **ndarray** is at most the
given number of dimensions. If the array has fewer
dimensions, it should be logically treated as if it were
"broadcast" to the expected dimensions by adding 1's to the
front of the shape list.
type: integer
minimum: 0
ndim:
description: |
Specifies that the matching **ndarray** is exactly the given
number of dimensions.
type: integer
minimum: 0
datatype:
description: |
Specifies the datatype of the **ndarray**.
By default, an array is considered "matching" if the array
can be cast to the given datatype without data loss. For
exact datatype matching, set `exact_datatype` to `true`.
allOf:
- $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.1.0#/definitions/datatype"
exact_datatype:
description: |
If `true`, the datatype must match exactly.
type: boolean
default: false
# Redefine JSON schema validators in terms of this document so that
# we can check nested objects:
additionalItems:
anyOf:
- type: boolean
- $ref: "#"
items:
anyOf:
- $ref: "#"
- $ref: "#/definitions/schemaArray"
additionalProperties:
anyOf:
- type: boolean
- $ref: "#"
definitions:
type: object
additionalProperties:
$ref: "#"
properties:
type: object
additionalProperties:
$ref: "#"
patternProperties:
type: object
additionalProperties:
$ref: "#"
dependencies:
type: object
additionalProperties:
anyOf:
- $ref: "#"
- $ref: "http://json-schema.org/draft-04/schema#/definitions/stringArray"
allOf:
$ref: "#/definitions/schemaArray"
anyOf:
$ref: "#/definitions/schemaArray"
oneOf:
$ref: "#/definitions/schemaArray"
not:
$ref: "#"
definitions:
schemaArray:
type: array
minItems: 1
items:
$ref: "#"
...