From 8cd4914ebca4b8d3739a9af3acff85623c24e2da Mon Sep 17 00:00:00 2001 From: Gary O'Neall Date: Wed, 20 Apr 2022 14:03:33 -0700 Subject: [PATCH 1/3] Generation missing required properties for arrays Resolves issue #57 Signed-off-by: Gary O'Neall --- src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java b/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java index 7e3b2b0..ebe5502 100644 --- a/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java +++ b/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java @@ -231,6 +231,9 @@ private void addClassProperties(OntClass spdxClass, ObjectNode jsonSchemaPropert jsonSchemaProperties.set(MultiFormatStore.propertyNameToCollectionPropertyName( checkConvertRenamedPropertyName(property.getLocalName())), deriveListPropertySchema(property, restrictions)); + if (!restrictions.isOptional() || restrictions.getMinCardinality() > 0) { + required.add(checkConvertRenamedPropertyName(property.getLocalName())); + } } else { jsonSchemaProperties.set(checkConvertRenamedPropertyName(property.getLocalName()), derivePropertySchema(property, restrictions)); if (!restrictions.isOptional()) { From e5913543500d73ae30b6a3cb1666fc112ecf5092 Mon Sep 17 00:00:00 2001 From: Gary O'Neall Date: Thu, 21 Apr 2022 13:01:01 -0700 Subject: [PATCH 2/3] Make list required property names plural Signed-off-by: Gary O'Neall --- src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java | 3 ++- 1 file changed, 2 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 ebe5502..79bccae 100644 --- a/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java +++ b/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java @@ -232,7 +232,8 @@ private void addClassProperties(OntClass spdxClass, ObjectNode jsonSchemaPropert checkConvertRenamedPropertyName(property.getLocalName())), deriveListPropertySchema(property, restrictions)); if (!restrictions.isOptional() || restrictions.getMinCardinality() > 0) { - required.add(checkConvertRenamedPropertyName(property.getLocalName())); + required.add(MultiFormatStore.propertyNameToCollectionPropertyName( + checkConvertRenamedPropertyName(property.getLocalName()))); } } else { jsonSchemaProperties.set(checkConvertRenamedPropertyName(property.getLocalName()), derivePropertySchema(property, restrictions)); From 71b6c1b8ce63e1125d303589868c2b809e62c8c1 Mon Sep 17 00:00:00 2001 From: Gary O'Neall Date: Tue, 28 Jun 2022 09:56:40 -0700 Subject: [PATCH 3/3] Fix documentation for license text Signed-off-by: Gary O'Neall --- src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java b/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java index 79bccae..62007bc 100644 --- a/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java +++ b/src/main/java/org/spdx/tools/schema/OwlToJsonSchema.java @@ -93,7 +93,8 @@ public ObjectNode convertToJsonSchema() { ExtendedIterator ontologyIter = model.listOntologies(); if (ontologyIter.hasNext()) { Ontology ont = ontologyIter.next(); - String ontologyUri = ont.getURI(); + String version = ont.getVersionInfo(); + String ontologyUri = version == null ? ont.getURI() : ont.getURI() + "/" + version; if (Objects.nonNull(ontologyUri)) { root.put("$id", ontologyUri); } @@ -326,9 +327,9 @@ private ObjectNode derivePropertySchema(OntProperty property, PropertyRestrictio // check for AnyLicenseInfo - these are strings with the exception of the extractedLicensingInfos which are the actual license description JsonNode description = propertySchema.get("description"); if (Objects.isNull(description)) { - propertySchema.put("description", "License expression"); + propertySchema.put("description", "License expression. See SPDX Annex D for the license expression syntax."); } else { - propertySchema.put("description", "License expression for "+checkConvertRenamedPropertyName(property.getLocalName())+". "+description.asText()); + propertySchema.put("description", "License expression for "+checkConvertRenamedPropertyName(property.getLocalName())+". See SPDX Annex D for the license expression syntax. "+description.asText()); } propertySchema.put(JSON_RESTRICTION_TYPE, JSON_TYPE_STRING); } else if (Objects.nonNull(clazz) && SpdxElement.class.isAssignableFrom(clazz)) {