Once you have an instance of a :pycyclonedx.model.bom.Bom
you can produce output in either JSON or XML against any of the supported CycloneDX schema versions.
We provide two helper methods:
- Output to string (for you to do with as you require)
- Output directly to a filename you provide
By default output will be in XML at latest supported schema version - see :pycyclonedx.output.LATEST_SUPPORTED_SCHEMA_VERSION
.
This library supports the following schema versions:
- 1.0 (XML) - (note, 1.1 schema version has no support for JSON)
- 1.1 (XML) - (note, 1.1 schema version has no support for JSON)
- 1.2 (XML, JSON)
- 1.3 (XML, JSON)
- 1.4 (XML, JSON) - the latest supported schema version
The below example relies on the latest schema version, but sets the output format to JSON. Output is returned as a str
.
from cyclonedx.output import get_instance, BaseOutput, OutputFormat
outputter: BaseOutput = get_instance(bom=bom, output_format=OutputFormat.JSON)
bom_json: str = outputter.output_as_string()
The below example relies on the default output format being XML, but overrides the schema version to 1.2. Output is written to the supplied filename.
from cyclonedx.output import get_instance, BaseOutput, SchemaVersion
outputter: BaseOutput = get_instance(bom=bom, schema_version=SchemaVersion.V1_2)
outputter.output_to_file(filename='/tmp/sbom-v1.2.xml')