From b7f54d8027112fec9aed99eaf13e167cc6b1377e Mon Sep 17 00:00:00 2001 From: Brett Date: Thu, 8 Feb 2024 07:35:57 -0500 Subject: [PATCH] add asdf-schema-1.1.0 --- .../stsci.edu/asdf/asdf-schema-1.1.0.yaml | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 resources/schemas/stsci.edu/asdf/asdf-schema-1.1.0.yaml diff --git a/resources/schemas/stsci.edu/asdf/asdf-schema-1.1.0.yaml b/resources/schemas/stsci.edu/asdf/asdf-schema-1.1.0.yaml new file mode 100644 index 00000000..7ef332ee --- /dev/null +++ b/resources/schemas/stsci.edu/asdf/asdf-schema-1.1.0.yaml @@ -0,0 +1,94 @@ +%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: "#" +...