Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save aj-stein-nist/17c21528df4c12a33a49aff665b6e8e8 to your computer and use it in GitHub Desktop.
Save aj-stein-nist/17c21528df4c12a33a49aff665b6e8e8 to your computer and use it in GitHub Desktop.
JSON Schema for mock metaschema in usnistgov/metaschema#253
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://csrc.nist.gov/ns/oscal/0.1/oscal-value-testing-mini-schema.json",
"$comment": "JSON value testing mini metaschema: JSON Schema",
"type": "object",
"definitions": {
"oscal-value-testing-mini-oscal-value-testing-mini:root": {
"title": "Root",
"description": "Root root root.",
"$id": "#assembly_oscal-value-testing-mini_root",
"type": "object",
"properties": {
"unconstrained": {
"$ref": "#field_oscal-value-testing-mini_unconstrained"
},
"constrained-open": {
"$ref": "#field_oscal-value-testing-mini_constrained-open"
},
"constrained-closed": {
"$ref": "#field_oscal-value-testing-mini_constrained-closed"
},
"constrained-narrow": {
"$ref": "#field_oscal-value-testing-mini_constrained-narrow"
},
"constrained-sortof": {
"$ref": "#field_oscal-value-testing-mini_constrained-sortof"
}
},
"additionalProperties": false
},
"oscal-value-testing-mini-oscal-value-testing-mini:unconstrained": {
"title": "Unconstrained",
"description": "A field whose value is constrained only by its nominal datatype, 'token'.",
"$id": "#field_oscal-value-testing-mini_unconstrained",
"type": "object",
"properties": {
"some": {
"title": "Some Flag",
"description": "Some flag some flag some flag.",
"$ref": "#/definitions/StringDatatype"
},
"token-value": {
"$ref": "#/definitions/TokenDatatype"
}
},
"required": [
"token-value"
],
"additionalProperties": false
},
"oscal-value-testing-mini-oscal-value-testing-mini:constrained-open": {
"title": "Constrained open",
"description": "Because allow-other is 'yes' no enumeration can be given in the JSON Schema.",
"$id": "#field_oscal-value-testing-mini_constrained-open",
"type": "object",
"properties": {
"some": {
"title": "Some Flag",
"description": "Some flag some flag some flag.",
"$ref": "#/definitions/StringDatatype"
},
"token-value": {
"anyOf": [
{
"$ref": "#/definitions/TokenDatatype"
},
{
"enum": [
"one",
"two",
"three",
"four"
]
}
]
}
},
"required": [
"token-value"
],
"additionalProperties": false
},
"oscal-value-testing-mini-oscal-value-testing-mini:constrained-closed": {
"title": "Constrained closed",
"description": "Because allow-other is 'no' an enumeration can be given in the JSON Schema.",
"$id": "#field_oscal-value-testing-mini_constrained-closed",
"type": "object",
"properties": {
"some": {
"title": "Some Flag",
"description": "Some flag some flag some flag.",
"$ref": "#/definitions/StringDatatype"
},
"token-value": {
"allOf": [
{
"$ref": "#/definitions/TokenDatatype"
},
{
"enum": [
"one",
"two",
"three",
"four"
]
}
]
}
},
"required": [
"token-value"
],
"additionalProperties": false
},
"oscal-value-testing-mini-oscal-value-testing-mini:constrained-narrow": {
"title": "Constrained narrow",
"description": "Although allow-other is 'no' an enumeration can't be given in the JSON Schema since it targets a qualified set (only a subset) of the elements in scope.",
"$id": "#field_oscal-value-testing-mini_constrained-narrow",
"type": "object",
"properties": {
"some": {
"title": "Some Flag",
"description": "Some flag some flag some flag.",
"$ref": "#/definitions/StringDatatype"
},
"token-value": {
"$ref": "#/definitions/TokenDatatype"
}
},
"required": [
"token-value"
],
"additionalProperties": false
},
"oscal-value-testing-mini-oscal-value-testing-mini:constrained-sortof": {
"title": "Constrained, sort of",
"description": "Although allow-other is 'no' an enumeration can't be given in the JSON Schema since it targets a qualified set (only a subset) of the elements in scope.",
"$id": "#field_oscal-value-testing-mini_constrained-sortof",
"type": "object",
"properties": {
"some": {
"title": "Some Flag",
"description": "Some flag some flag some flag.",
"$ref": "#/definitions/StringDatatype"
},
"token-value": {
"$ref": "#/definitions/TokenDatatype"
}
},
"required": [
"token-value"
],
"additionalProperties": false
},
"StringDatatype": {
"type": "string",
"pattern": "^\\S(.*\\S)?$"
},
"TokenDatatype": {
"type": "string",
"pattern": "^(\\p{L}|_)(\\p{L}|\\p{N}|[.\\-_])*$"
}
},
"properties": {
"root": {
"$ref": "#assembly_oscal-value-testing-mini_root"
}
},
"required": [
"root"
],
"additionalProperties": false,
"maxProperties": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment