From ad3dc9e654e0b09fc4b244b4737aad8ec1be789e Mon Sep 17 00:00:00 2001 From: wievdndr Date: Wed, 17 Dec 2025 10:38:29 +0100 Subject: [PATCH 1/5] fix: add properties field to ModelCard xml and proto to resolve mismatch with json Signed-off-by: wievdndr --- schema/bom-1.5.proto | 2 ++ schema/bom-1.5.xsd | 12 +++++++++++- schema/bom-1.6.proto | 2 ++ schema/bom-1.6.xsd | 10 ++++++++++ schema/bom-1.7.proto | 2 ++ schema/bom-1.7.xsd | 10 ++++++++++ 6 files changed, 37 insertions(+), 1 deletion(-) diff --git a/schema/bom-1.5.proto b/schema/bom-1.5.proto index d99c1a9c..5e177a5d 100644 --- a/schema/bom-1.5.proto +++ b/schema/bom-1.5.proto @@ -1009,6 +1009,8 @@ message ModelCard { optional QuantitativeAnalysis quantitativeAnalysis = 3; // What considerations should be taken into account regarding the model's construction, training, and application? optional ModelCardConsiderations considerations = 4; + // Specifies optional, custom, properties + repeated Property properties = 5; message ModelParameters { // The overall approach to learning used by the model for problem solving. diff --git a/schema/bom-1.5.xsd b/schema/bom-1.5.xsd index 0651bcdd..628b774e 100644 --- a/schema/bom-1.5.xsd +++ b/schema/bom-1.5.xsd @@ -2998,7 +2998,7 @@ limitations under the License. describe any mitigation strategy implemented. - + @@ -3008,6 +3008,16 @@ limitations under the License. + + + Provides the ability to document properties in a name/value store. + This provides flexibility to include data not officially supported in the standard + without having to use additional namespaces or create extensions. Property names + of interest to the general public are encouraged to be registered in the + CycloneDX Property Taxonomy - https://github.com/CycloneDX/cyclonedx-property-taxonomy. + Formal registration is OPTIONAL. + + diff --git a/schema/bom-1.6.proto b/schema/bom-1.6.proto index ddcfc3f7..23d48f3f 100644 --- a/schema/bom-1.6.proto +++ b/schema/bom-1.6.proto @@ -1152,6 +1152,8 @@ message ModelCard { optional QuantitativeAnalysis quantitativeAnalysis = 3; // What considerations should be taken into account regarding the model's construction, training, and application? optional ModelCardConsiderations considerations = 4; + // Specifies optional, custom, properties + repeated Property properties = 5; message ModelParameters { // The overall approach to learning used by the model for problem-solving. diff --git a/schema/bom-1.6.xsd b/schema/bom-1.6.xsd index 847c5261..4f803e95 100644 --- a/schema/bom-1.6.xsd +++ b/schema/bom-1.6.xsd @@ -3386,6 +3386,16 @@ limitations under the License. + + + Provides the ability to document properties in a name/value store. + This provides flexibility to include data not officially supported in the standard + without having to use additional namespaces or create extensions. Property names + of interest to the general public are encouraged to be registered in the + CycloneDX Property Taxonomy - https://github.com/CycloneDX/cyclonedx-property-taxonomy. + Formal registration is OPTIONAL. + + diff --git a/schema/bom-1.7.proto b/schema/bom-1.7.proto index 6def360f..93b08538 100644 --- a/schema/bom-1.7.proto +++ b/schema/bom-1.7.proto @@ -1254,6 +1254,8 @@ message ModelCard { optional QuantitativeAnalysis quantitativeAnalysis = 3; // What considerations should be taken into account regarding the model's construction, training, and application? optional ModelCardConsiderations considerations = 4; + // Specifies optional, custom, properties + repeated Property properties = 5; message ModelParameters { // The overall approach to learning used by the model for problem-solving. diff --git a/schema/bom-1.7.xsd b/schema/bom-1.7.xsd index deba3de2..e035d07b 100644 --- a/schema/bom-1.7.xsd +++ b/schema/bom-1.7.xsd @@ -3629,6 +3629,16 @@ limitations under the License. + + + Provides the ability to document properties in a name/value store. + This provides flexibility to include data not officially supported in the standard + without having to use additional namespaces or create extensions. Property names + of interest to the general public are encouraged to be registered in the + CycloneDX Property Taxonomy - https://github.com/CycloneDX/cyclonedx-property-taxonomy. + Formal registration is OPTIONAL. + + From f5b3f903c4fa74e55f00b35dda20e6a05639e48c Mon Sep 17 00:00:00 2001 From: wievdndr Date: Wed, 17 Dec 2025 10:56:43 +0100 Subject: [PATCH 2/5] fix: removed some unnecessary whitespace Signed-off-by: wievdndr --- schema/bom-1.5.xsd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema/bom-1.5.xsd b/schema/bom-1.5.xsd index 628b774e..4a02350d 100644 --- a/schema/bom-1.5.xsd +++ b/schema/bom-1.5.xsd @@ -2998,7 +2998,7 @@ limitations under the License. describe any mitigation strategy implemented. - + From f1b73013aec5e19c3db18f4b3414bbf55fd40c5d Mon Sep 17 00:00:00 2001 From: wievdndr Date: Thu, 15 Jan 2026 15:21:23 +0100 Subject: [PATCH 3/5] fix: bump version numbers in BOM schema files to 1.5.1, 1.6.2, and 1.7.1 Signed-off-by: wievdndr --- schema/bom-1.5.xsd | 2 +- schema/bom-1.6.xsd | 2 +- schema/bom-1.7.xsd | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/schema/bom-1.5.xsd b/schema/bom-1.5.xsd index 4a02350d..cf00327e 100644 --- a/schema/bom-1.5.xsd +++ b/schema/bom-1.5.xsd @@ -22,7 +22,7 @@ limitations under the License. targetNamespace="http://cyclonedx.org/schema/bom/1.5" vc:minVersion="1.0" vc:maxVersion="1.1" - version="1.5.0"> + version="1.5.1"> diff --git a/schema/bom-1.6.xsd b/schema/bom-1.6.xsd index 4f803e95..cda59559 100644 --- a/schema/bom-1.6.xsd +++ b/schema/bom-1.6.xsd @@ -22,7 +22,7 @@ limitations under the License. targetNamespace="http://cyclonedx.org/schema/bom/1.6" vc:minVersion="1.0" vc:maxVersion="1.1" - version="1.6.1"> + version="1.6.2"> diff --git a/schema/bom-1.7.xsd b/schema/bom-1.7.xsd index e035d07b..c84b2e08 100644 --- a/schema/bom-1.7.xsd +++ b/schema/bom-1.7.xsd @@ -22,7 +22,7 @@ limitations under the License. targetNamespace="http://cyclonedx.org/schema/bom/1.7" vc:minVersion="1.0" vc:maxVersion="1.1" - version="1.7.0"> + version="1.7.1"> From 98eb26fdca2d0ff9acea16a5bdb6c7a66c9da178 Mon Sep 17 00:00:00 2001 From: wievdndr Date: Fri, 16 Jan 2026 10:38:02 +0100 Subject: [PATCH 4/5] test: add tests for custom properties field in modelCard (json, xml, proto) Signed-off-by: wievdndr --- .../test/resources/1.5/valid-machine-learning-1.5.json | 8 +++++++- .../resources/1.5/valid-machine-learning-1.5.textproto | 4 ++++ .../src/test/resources/1.5/valid-machine-learning-1.5.xml | 3 +++ .../test/resources/1.6/valid-machine-learning-1.6.json | 8 +++++++- .../resources/1.6/valid-machine-learning-1.6.textproto | 4 ++++ .../src/test/resources/1.6/valid-machine-learning-1.6.xml | 3 +++ .../test/resources/1.7/valid-machine-learning-1.7.json | 8 +++++++- .../resources/1.7/valid-machine-learning-1.7.textproto | 4 ++++ .../src/test/resources/1.7/valid-machine-learning-1.7.xml | 3 +++ 9 files changed, 42 insertions(+), 3 deletions(-) diff --git a/tools/src/test/resources/1.5/valid-machine-learning-1.5.json b/tools/src/test/resources/1.5/valid-machine-learning-1.5.json index 59dc3cee..58f5572a 100644 --- a/tools/src/test/resources/1.5/valid-machine-learning-1.5.json +++ b/tools/src/test/resources/1.5/valid-machine-learning-1.5.json @@ -85,7 +85,13 @@ "mitigationStrategy": "With respect to the benefits and harms outlined, please describe any mitigation strategy implemented." } ] - } + }, + "properties": [ + { + "name": "modelcard:custom-property", + "value": "custom-value" + } + ] } } ] diff --git a/tools/src/test/resources/1.5/valid-machine-learning-1.5.textproto b/tools/src/test/resources/1.5/valid-machine-learning-1.5.textproto index 4e54321d..42887baa 100644 --- a/tools/src/test/resources/1.5/valid-machine-learning-1.5.textproto +++ b/tools/src/test/resources/1.5/valid-machine-learning-1.5.textproto @@ -62,5 +62,9 @@ components { mitigationStrategy: "With respect to the benefits and harms outlined, please describe any mitigation strategy implemented." } } + properties: { + name: "modelcard:custom-property" + value: "custom-value" + } } } diff --git a/tools/src/test/resources/1.5/valid-machine-learning-1.5.xml b/tools/src/test/resources/1.5/valid-machine-learning-1.5.xml index 7c541ecb..946d0c8f 100644 --- a/tools/src/test/resources/1.5/valid-machine-learning-1.5.xml +++ b/tools/src/test/resources/1.5/valid-machine-learning-1.5.xml @@ -86,6 +86,9 @@ + + custom-value + diff --git a/tools/src/test/resources/1.6/valid-machine-learning-1.6.json b/tools/src/test/resources/1.6/valid-machine-learning-1.6.json index dbd0ea7b..df09c03c 100644 --- a/tools/src/test/resources/1.6/valid-machine-learning-1.6.json +++ b/tools/src/test/resources/1.6/valid-machine-learning-1.6.json @@ -87,7 +87,13 @@ "mitigationStrategy": "With respect to the benefits and harms outlined, please describe any mitigation strategy implemented." } ] - } + }, + "properties": [ + { + "name": "modelcard:custom-property", + "value": "custom-value" + } + ] } } ] diff --git a/tools/src/test/resources/1.6/valid-machine-learning-1.6.textproto b/tools/src/test/resources/1.6/valid-machine-learning-1.6.textproto index 54452d65..3a1456e6 100644 --- a/tools/src/test/resources/1.6/valid-machine-learning-1.6.textproto +++ b/tools/src/test/resources/1.6/valid-machine-learning-1.6.textproto @@ -77,5 +77,9 @@ components { mitigationStrategy: "With respect to the benefits and harms outlined, please describe any mitigation strategy implemented." } } + properties: { + name: "modelcard:custom-property" + value: "custom-value" + } } } diff --git a/tools/src/test/resources/1.6/valid-machine-learning-1.6.xml b/tools/src/test/resources/1.6/valid-machine-learning-1.6.xml index 6013b1c3..f44f6179 100644 --- a/tools/src/test/resources/1.6/valid-machine-learning-1.6.xml +++ b/tools/src/test/resources/1.6/valid-machine-learning-1.6.xml @@ -86,6 +86,9 @@ + + custom-value + diff --git a/tools/src/test/resources/1.7/valid-machine-learning-1.7.json b/tools/src/test/resources/1.7/valid-machine-learning-1.7.json index cb64ee80..e7a26820 100644 --- a/tools/src/test/resources/1.7/valid-machine-learning-1.7.json +++ b/tools/src/test/resources/1.7/valid-machine-learning-1.7.json @@ -95,7 +95,13 @@ "mitigationStrategy": "With respect to the benefits and harms outlined, please describe any mitigation strategy implemented." } ] - } + }, + "properties": [ + { + "name": "modelcard:custom-property", + "value": "custom-value" + } + ] } } ] diff --git a/tools/src/test/resources/1.7/valid-machine-learning-1.7.textproto b/tools/src/test/resources/1.7/valid-machine-learning-1.7.textproto index 25b78f5d..818de8f5 100644 --- a/tools/src/test/resources/1.7/valid-machine-learning-1.7.textproto +++ b/tools/src/test/resources/1.7/valid-machine-learning-1.7.textproto @@ -76,5 +76,9 @@ components: { mitigationStrategy: "With respect to the benefits and harms outlined, please describe any mitigation strategy implemented." } } + properties: { + name: "modelcard:custom-property" + value: "custom-value" + } } } diff --git a/tools/src/test/resources/1.7/valid-machine-learning-1.7.xml b/tools/src/test/resources/1.7/valid-machine-learning-1.7.xml index 38df43ff..34305ef9 100644 --- a/tools/src/test/resources/1.7/valid-machine-learning-1.7.xml +++ b/tools/src/test/resources/1.7/valid-machine-learning-1.7.xml @@ -88,6 +88,9 @@ + + custom-value + From af9df67f85345e78bffc548a36fcf9563c94f834 Mon Sep 17 00:00:00 2001 From: wievdndr Date: Mon, 9 Feb 2026 15:11:34 +0100 Subject: [PATCH 5/5] fix: add another custom property to ModelCard across JSON, XML, and proto files Signed-off-by: wievdndr --- tools/src/test/resources/1.5/valid-machine-learning-1.5.json | 4 ++++ .../test/resources/1.5/valid-machine-learning-1.5.textproto | 4 ++++ tools/src/test/resources/1.5/valid-machine-learning-1.5.xml | 1 + tools/src/test/resources/1.6/valid-machine-learning-1.6.json | 4 ++++ .../test/resources/1.6/valid-machine-learning-1.6.textproto | 4 ++++ tools/src/test/resources/1.6/valid-machine-learning-1.6.xml | 1 + tools/src/test/resources/1.7/valid-machine-learning-1.7.json | 4 ++++ .../test/resources/1.7/valid-machine-learning-1.7.textproto | 4 ++++ tools/src/test/resources/1.7/valid-machine-learning-1.7.xml | 1 + 9 files changed, 27 insertions(+) diff --git a/tools/src/test/resources/1.5/valid-machine-learning-1.5.json b/tools/src/test/resources/1.5/valid-machine-learning-1.5.json index 58f5572a..15ff354d 100644 --- a/tools/src/test/resources/1.5/valid-machine-learning-1.5.json +++ b/tools/src/test/resources/1.5/valid-machine-learning-1.5.json @@ -90,6 +90,10 @@ { "name": "modelcard:custom-property", "value": "custom-value" + }, + { + "name": "modelcard:another-custom-property", + "value": "another-custom-value" } ] } diff --git a/tools/src/test/resources/1.5/valid-machine-learning-1.5.textproto b/tools/src/test/resources/1.5/valid-machine-learning-1.5.textproto index 42887baa..a95a9120 100644 --- a/tools/src/test/resources/1.5/valid-machine-learning-1.5.textproto +++ b/tools/src/test/resources/1.5/valid-machine-learning-1.5.textproto @@ -66,5 +66,9 @@ components { name: "modelcard:custom-property" value: "custom-value" } + properties: { + name: "modelcard:another-custom-property" + value: "another-custom-value" + } } } diff --git a/tools/src/test/resources/1.5/valid-machine-learning-1.5.xml b/tools/src/test/resources/1.5/valid-machine-learning-1.5.xml index 946d0c8f..a347856d 100644 --- a/tools/src/test/resources/1.5/valid-machine-learning-1.5.xml +++ b/tools/src/test/resources/1.5/valid-machine-learning-1.5.xml @@ -88,6 +88,7 @@ custom-value + another-custom-value diff --git a/tools/src/test/resources/1.6/valid-machine-learning-1.6.json b/tools/src/test/resources/1.6/valid-machine-learning-1.6.json index df09c03c..6ab6c4a6 100644 --- a/tools/src/test/resources/1.6/valid-machine-learning-1.6.json +++ b/tools/src/test/resources/1.6/valid-machine-learning-1.6.json @@ -92,6 +92,10 @@ { "name": "modelcard:custom-property", "value": "custom-value" + }, + { + "name": "modelcard:another-custom-property", + "value": "another-custom-value" } ] } diff --git a/tools/src/test/resources/1.6/valid-machine-learning-1.6.textproto b/tools/src/test/resources/1.6/valid-machine-learning-1.6.textproto index 3a1456e6..145c80dc 100644 --- a/tools/src/test/resources/1.6/valid-machine-learning-1.6.textproto +++ b/tools/src/test/resources/1.6/valid-machine-learning-1.6.textproto @@ -81,5 +81,9 @@ components { name: "modelcard:custom-property" value: "custom-value" } + properties: { + name: "modelcard:another-custom-property" + value: "another-custom-value" + } } } diff --git a/tools/src/test/resources/1.6/valid-machine-learning-1.6.xml b/tools/src/test/resources/1.6/valid-machine-learning-1.6.xml index f44f6179..524790bd 100644 --- a/tools/src/test/resources/1.6/valid-machine-learning-1.6.xml +++ b/tools/src/test/resources/1.6/valid-machine-learning-1.6.xml @@ -88,6 +88,7 @@ custom-value + another-custom-value diff --git a/tools/src/test/resources/1.7/valid-machine-learning-1.7.json b/tools/src/test/resources/1.7/valid-machine-learning-1.7.json index e7a26820..3283961c 100644 --- a/tools/src/test/resources/1.7/valid-machine-learning-1.7.json +++ b/tools/src/test/resources/1.7/valid-machine-learning-1.7.json @@ -100,6 +100,10 @@ { "name": "modelcard:custom-property", "value": "custom-value" + }, + { + "name": "modelcard:another-custom-property", + "value": "another-custom-value" } ] } diff --git a/tools/src/test/resources/1.7/valid-machine-learning-1.7.textproto b/tools/src/test/resources/1.7/valid-machine-learning-1.7.textproto index 818de8f5..487c3c72 100644 --- a/tools/src/test/resources/1.7/valid-machine-learning-1.7.textproto +++ b/tools/src/test/resources/1.7/valid-machine-learning-1.7.textproto @@ -80,5 +80,9 @@ components: { name: "modelcard:custom-property" value: "custom-value" } + properties: { + name: "modelcard:another-custom-property" + value: "another-custom-value" + } } } diff --git a/tools/src/test/resources/1.7/valid-machine-learning-1.7.xml b/tools/src/test/resources/1.7/valid-machine-learning-1.7.xml index 34305ef9..72154496 100644 --- a/tools/src/test/resources/1.7/valid-machine-learning-1.7.xml +++ b/tools/src/test/resources/1.7/valid-machine-learning-1.7.xml @@ -90,6 +90,7 @@ custom-value + another-custom-value