SBOM Schema Crosswalk: CycloneDX and SPDX Field Mappings

Complete field mapping reference for CycloneDX 1.7, SPDX 2.3, and SPDX 3.0. Authoritative crosswalk for SBOM properties across formats.

← Back to Compliance Overview

This page maps SBOM properties to their specific field paths in CycloneDX, SPDX 2.3, and SPDX 3.0.

Need help with compliance? We can help you navigate your SBOM compliance journey.

Get in Touch

Note: The CISA Framing document’s published crosswalk table references CycloneDX v1.6. This page uses CycloneDX 1.7 schema paths, which are largely compatible but include some updates (e.g., tools object structure).

BSI TR-03183-2 Note: For EU CRA compliance via BSI TR-03183-2, SBOMs MUST use CycloneDX 1.6+ or SPDX 3.0.1+ in JSON or XML format. See the EU CRA page for full requirements.


Document-Level Metadata

PropertyCycloneDX 1.7SPDX 2.3SPDX 3.0
SBOM Authormetadata.authors[]creationInfo.creators[]creationInfo.createdBy
Timestampmetadata.timestampcreationInfo.createdcreationInfo.created
Tool Name/Versionmetadata.tools.components[] and/or metadata.tools.services[]creationInfo.creators[] (tool identifier)creationInfo.createdUsing
Generation Contextmetadata.lifecycles[].phaseCreatorComment or DocumentCommentProfile-dependent properties

Notes:

  • The CISA Framing crosswalk maps “SBOM Author Name” to metadata.authors (CycloneDX v1.6). CycloneDX 1.7 additionally provides metadata.manufacturer for organizational authorship if needed.
  • In CycloneDX 1.7, metadata.tools is an object containing components and/or services arrays. The legacy array format is deprecated.
  • The metadata.lifecycles[].phase field captures the stage(s) in which data in the BOM was captured (design, pre-build, build, post-build, operations, discovery, decommission).
  • Generation Context (per CISA 2025) includes both SDLC phase and context about “how and where” the SBOM was generated. For complete representation, you may also use metadata.tools (to express tooling) and metadata.properties[] (for additional context).

Component Identification

PropertyCycloneDX 1.7SPDX 2.3SPDX 3.0
Supplier Namecomponents[].supplier.namepackages[].supplierOrganization agent linked to element
Component Namecomponents[].namepackages[].nameElement name field
Component Versioncomponents[].versionpackages[].versionInfoElement version field
Package URL (purl)components[].purlpackages[].externalRefs[]External identifier support
CPEcomponents[].cpepackages[].externalRefs[]External identifier support
Component Hashcomponents[].hashes[]packages[].checksums[]Verification/checksum properties

Relationships

PropertyCycloneDX 1.7SPDX 2.3SPDX 3.0
Dependency Relationshipdependencies[].ref + dependencies[].dependsOn[]relationships[] (DEPENDS_ON)Relationships between elements

PropertyCycloneDX 1.7SPDX 2.3SPDX 3.0
Licensecomponents[].licenses[]packages[].licenseDeclared / packages[].licenseConcludedRich licensing model (profile-dependent)

Lifecycle Properties (FDA/CLE)

PropertyCycloneDX 1.7SPDX 2.3SPDX 3.0
Support Levelcomponents[].properties[]annotations or externalRefsExtension/property modeling
End-of-Support Datecomponents[].properties[]packages[].validUntilDateExtension/property modeling

Note: SPDX 2.3’s validUntilDate field is defined as the “end of support period for the package from the supplier,” making it the most appropriate mapping for FDA’s end-of-support date requirement.


BSI TR-03183-2 Component Properties

BSI TR-03183-2 requires additional component properties not covered by standard SBOM fields. These use the BSI CycloneDX property taxonomy for CycloneDX and software_additionalPurpose for SPDX.

PropertyCycloneDX 1.6+SPDX 3.0.1
Filenamecomponents[].properties[name="bsi:component:filename"]software_File.name via hasDistributionArtifact relationship
Executable propertycomponents[].properties[name="bsi:component:executable"]Add executable to software_additionalPurpose list
Archive propertycomponents[].properties[name="bsi:component:archive"]Add archive to software_additionalPurpose list
Structured propertycomponents[].properties[name="bsi:component:structured"]Add container (structured) or firmware (unstructured) to software_additionalPurpose
Effective licencecomponents[].properties[name="bsi:component:effectiveLicense"]Custom relationship with relationshipType: other and comment: hasEffectiveLicense
Hash (deployable)components[].externalReferences[type="distribution"].hashes[alg="SHA-512"]software_File.verifiedUsing via hasDistributionArtifact relationship
Dependency completenesscompositions[].aggregate (complete/incomplete/unknown)Relationship.completeness (complete/incomplete/noAssertion)

Notes:

  • BSI requires SHA-512 specifically for the deployable component hash
  • The BSI property taxonomy uses the bsi: namespace prefix for CycloneDX properties
  • For detailed JSON examples, see BSI TR-03183-2 Section 8.2


Disclaimer: This page represents our interpretation of the referenced frameworks and standards. While we strive for accuracy, we may have made errors or omissions. This content is provided for informational purposes only and does not constitute legal advice. For compliance decisions, consult the official source documents and seek qualified legal counsel.

← Back to Compliance Overview