From 2ad0e8be560f0efb0e3090c823eb60c5855b48ce Mon Sep 17 00:00:00 2001 From: Gary O'Neall Date: Thu, 6 Oct 2022 15:14:10 -0700 Subject: [PATCH] Update schema generator for required fields See https://github.com/spdx/spdx-spec/issues/795 for context on documentDescribes See https://github.com/spdx/spdx-spec/issues/792 for context on enum underscores Signed-off-by: Gary O'Neall --- src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java b/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java index 41975f2..cf6f91b 100644 --- a/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java +++ b/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java @@ -112,6 +112,7 @@ public ObjectNode convertToJsonSchema() { // Add in the extra properties properties.set(SpdxConstants.PROP_DOCUMENT_NAMESPACE, createSimpleTypeSchema(JSON_TYPE_STRING, "The URI provides an unambiguous mechanism for other SPDX documents to reference SPDX elements within this SPDX document.")); + required.add(SpdxConstants.PROP_DOCUMENT_NAMESPACE); properties.set(SpdxConstants.PROP_DOCUMENT_DESCRIBES, toArraySchema(createSimpleTypeSchema(JSON_TYPE_STRING, "SPDX ID for each Package, File, or Snippet."), "Packages, files and/or Snippets described by this SPDX document", 0)); @@ -300,8 +301,13 @@ private ObjectNode derivePropertySchema(OntProperty property, PropertyRestrictio propertySchema.put(JSON_RESTRICTION_TYPE, JSON_TYPE_STRING); ArrayNode enums = jsonMapper.createArrayNode(); for (String val:restrictions.getEnumValues()) { - if (property.getLocalName().equals("algorithm") || property.getLocalName().equals("referenceCategory")) { + if (property.getLocalName().equals("algorithm")) { enums.add(val.replaceAll("_", "-")); + } else if (property.getLocalName().equals("referenceCategory")) { + if (val.contains("_")) { + enums.add(val.replaceAll("_", "-")); + } + enums.add(val); } else { enums.add(val); }