From dc7c143327b5d5ce5ad9a0db43edb02c79a084d4 Mon Sep 17 00:00:00 2001 From: Keith Hazelton Date: Mon, 28 Jun 2021 16:15:56 -0500 Subject: [PATCH] Create jadn-V1.0.jadn --- jadn-V1.0.jadn | 101 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 jadn-V1.0.jadn diff --git a/jadn-V1.0.jadn b/jadn-V1.0.jadn new file mode 100644 index 0000000..e4c3604 --- /dev/null +++ b/jadn-V1.0.jadn @@ -0,0 +1,101 @@ +{ + "info": { + "title": "JADN Metaschema", + "package": "http://oasis-open.org/jadn/v1.0/schema", + "description": "Syntax of a JSON Abstract Data Notation (JADN) package.", + "license": "CC0-1.0", + "exports": ["Schema"], + "config": { + "$FieldName": "^[$A-Za-z][_A-Za-z0-9]{0,63}$" + } + }, + "types": [ + ["Schema", "Record", [], "Definition of a JADN package", [ + [1, "info", "Information", ["[0"], "Information about this package"], + [2, "types", "Types", [], "Types defined in this package"] + ]], + ["Information", "Map", [], "Information about this package", [ + [1, "package", "Namespace", [], "Unique name/version of this package"], + [2, "version", "String", ["{1", "[0"], "Incrementing version within package"], + [3, "title", "String", ["{1", "[0"], "Title"], + [4, "description", "String", ["{1", "[0"], "Description"], + [5, "comment", "String", ["{1", "[0"], "Comment"], + [6, "copyright", "String", ["{1", "[0"], "Copyright notice"], + [7, "license", "String", ["{1", "[0"], "SPDX licenseId (e.g., 'CC0-1.0')"], + [8, "namespaces", "Namespaces", ["[0"], "Referenced packages"], + [9, "exports", "Exports", ["[0"], "Type defs exported by this package"], + [10, "config", "Config", ["[0"], "Configuration variables"] + ]], + ["Namespaces", "MapOf", ["*Namespace", "+NSID", "{1"], "Packages with referenced type defs", []], + ["Exports", "ArrayOf", ["*TypeName", "{1"], "Type defs intended to be referenced", []], + ["Config", "Map", ["{1"], "Config vars override JADN defaults", [ + [1, "$MaxBinary", "Integer", ["{1", "[0"], "Schema default max octets"], + [2, "$MaxString", "Integer", ["{1", "[0"], "Schema default max characters"], + [3, "$MaxElements", "Integer", ["{1", "[0"], "Schema default max items/properties"], + [4, "$Sys", "String", ["{1", "}1", "[0"], "System character for TypeName"], + [5, "$TypeName", "String", ["{1", "}127", "[0"], "TypeName regex"], + [6, "$FieldName", "String", ["{1", "}127", "[0"], "FieldName regex"], + [7, "$NSID", "String", ["{1", "}127", "[0"], "Namespace Identifier regex"] + ]], + ["Types", "ArrayOf", ["*Type"], "", []], + ["Type", "Array", [], "", [ + [1, "type_name", "TypeName", [], ""], + [2, "base_type", "BaseType", [], ""], + [3, "type_options", "Options", [], ""], + [4, "type_description", "Description", [], ""], + [5, "fields", "JADN-Type", ["&2"], ""] + ]], + ["BaseType", "Enumerated", [], "", [ + [1, "Binary", ""], + [2, "Boolean", ""], + [3, "Integer", ""], + [4, "Number", ""], + [5, "String", ""], + [6, "Enumerated", ""], + [7, "Choice", ""], + [8, "Array", ""], + [9, "ArrayOf", ""], + [10, "Map", ""], + [11, "MapOf", ""], + [12, "Record", ""] + ]], + ["JADN-Type", "Choice", [], "", [ + [1, "Binary", "Empty", [], ""], + [2, "Boolean", "Empty", [], ""], + [3, "Integer", "Empty", [], ""], + [4, "Number", "Empty", [], ""], + [5, "String", "Empty", [], ""], + [6, "Enumerated", "Items", [], ""], + [7, "Choice", "Fields", [], ""], + [8, "Array", "Fields", [], ""], + [9, "ArrayOf", "Empty", [], ""], + [10, "Map", "Fields", [], ""], + [11, "MapOf", "Empty", [], ""], + [12, "Record", "Fields", [], ""] + ]], + ["Empty", "Array", ["}0"], "", []], + ["Items", "ArrayOf", ["*Item"], "", []], + ["Item", "Array", [], "", [ + [1, "item_id", "FieldID", [], ""], + [2, "item_value", "String", [], ""], + [3, "item_description", "Description", [], ""] + ]], + ["Fields", "ArrayOf", ["*Field"], "", []], + ["Field", "Array", [], "", [ + [1, "field_id", "FieldID", [], ""], + [2, "field_name", "FieldName", [], ""], + [3, "field_type", "TypeRef", [], ""], + [4, "field_options", "Options", [], ""], + [5, "field_description", "Description", [], ""] + ]], + ["FieldID", "Integer", ["{0"], "", []], + ["Options", "ArrayOf", ["*Option", "}10"], "", []], + ["Option", "String", ["{1"], "", []], + ["Description", "String", [], "", []], + ["Namespace", "String", ["/uri"], "Unique name of a package", []], + ["NSID", "String", ["%$NSID"], "Default = ^[A-Za-z][A-Za-z0-9]{0,7}$", []], + ["TypeName", "String", ["%$TypeName"], "Default = ^[A-Z][-$A-Za-z0-9]{0,63}$", []], + ["FieldName", "String", ["%$FieldName"], "Default = ^[a-z][_A-Za-z0-9]{0,63}$", []], + ["TypeRef", "String", [], "Autogenerated pattern ($NSID ':')? $TypeName", []] + ] +}