As noted in CycloneDX/cyclonedx-python-lib#365, there is a discrepancy between JSON and XML schemas for CycloneDX v1.4 with how licenses are defined.
JSON
licenses is an Array of either expression or license - i.e. 0 or more expression or 0 or more license see here
XML
licenses is an complex type defined as either 0 or more license OR 0 or 1 expression see here
As noted in CycloneDX/cyclonedx-python-lib#365, there is a discrepancy between JSON and XML schemas for CycloneDX v1.4 with how
licensesare defined.JSON
licensesis an Array of eitherexpressionorlicense- i.e. 0 or moreexpressionor 0 or morelicensesee hereXML
licensesis an complex type defined as either 0 or morelicenseOR 0 or 1expressionsee here