CycloneDX v1.5 XML Reference

Schema Document Properties

Target Namespace http://cyclonedx.org/schema/bom/1.5
Version 1.5.0
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.
Schema Composition
  • This schema imports schema(s) from the following namespace(s):
    • http://cyclonedx.org/schema/spdx (at http://cyclonedx.org/schema/spdx)
No documentation provided.
Prefix Namespace
xs http://www.w3.org/2001/XMLSchema
vc http://www.w3.org/2007/XMLSchema-versioning
bom http://cyclonedx.org/schema/bom/1.5
spdx http://cyclonedx.org/schema/spdx
xml http://www.w3.org/XML/1998/namespace
<xs:schema elementFormDefault="qualified" targetNamespace="http://cyclonedx.org/schema/bom/1.5" minVersion="1.0" maxVersion="1.1" version="1.5.0">
   <xs:import namespace="http://cyclonedx.org/schema/spdx" schemaLocation="http://cyclonedx.org/schema/spdx"/>
...
</xs:schema>

Global Declarations

Element: bom

Name bom
Type Locally-defined complex type
Nillable no
Abstract no
No documentation provided.
<bom:bom
 version="xs:positiveInteger" [0..1] 
 serialNumber="bom:urnUuid" [0..1] 
 Allow any attributes from any namespace (lax validation).
>
   <!--
    Uniqueness Constraint - bom-ref
    Selector - .//*
    Field(s) - @bom-ref
   -->
   <bom:metadata> bom:metadata </bom:metadata> [0..1] 
   <bom:components> bom:componentsType </bom:components> [0..1] 
   <bom:services> bom:servicesType </bom:services> [0..1] 
   <bom:externalReferences> bom:externalReferences </bom:externalReferences> [0..1] 
   <bom:dependencies> bom:dependenciesType </bom:dependencies> [0..1] 
   <bom:compositions> bom:compositionsType </bom:compositions> [0..1] 
   <bom:properties> bom:propertiesType </bom:properties> [0..1] 
   <bom:vulnerabilities> bom:vulnerabilitiesType </bom:vulnerabilities> [0..1] 
   <bom:annotations> bom:annotationsType </bom:annotations> [0..1] 
   <bom:formulation> bom:formulationType </bom:formulation> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</bom:bom>
<xs:element name="bom">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="metadata" type="bom:metadata" minOccurs="0" maxOccurs="1"/>
         <xs:element name="components" type="bom:componentsType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="services" type="bom:servicesType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="externalReferences" type="bom:externalReferences" minOccurs="0" maxOccurs="1"/>
         <xs:element name="dependencies" type="bom:dependenciesType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="compositions" type="bom:compositionsType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="vulnerabilities" type="bom:vulnerabilitiesType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="annotations" type="bom:annotationsType" minOccurs="0" maxOccurs="1"/>
         <xs:element name="formulation" type="bom:formulationType" minOccurs="0" maxOccurs="1"/>
         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="version" type="xs:positiveInteger" default="1"/>
      <xs:attribute name="serialNumber" type="bom:urnUuid"/>
      <xs:anyAttribute namespace="##any" processContents="lax"/>
   </xs:complexType>
   <xs:unique name="bom-ref">
      <xs:selector xpath=".//*"/>
      <xs:field xpath="@bom-ref"/>
   </xs:unique>
</xs:element>

Global Definitions

Complex Type: advisoryType

Super-types: None
Sub-types: None
Name advisoryType
Abstract no
No documentation provided.
<...>
   <bom:title> xs:normalizedString </bom:title> [0..1] 
   <bom:url> xs:anyURI </bom:url> [1] 
</...>
<xs:complexType name="advisoryType">
   <xs:sequence>
      <xs:element name="title" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="url" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
   </xs:sequence>
</xs:complexType>

Complex Type: annotationType

Super-types: None
Sub-types: None
Name annotationType
Abstract no
No documentation provided.
<...
 bom-ref="bom:refType" [0..1] 
 Allow any attributes from any namespace (lax validation).
>
   <bom:subjects   > [0..1]  
      Start Sequence [0..*]
         <bom:subject> bom:bomReferenceType </bom:subject> [1]
         Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
      End Sequence
   </bom:subjects>
   <bom:annotator> bom:annotatorChoiceType </bom:annotator> [1] 
   <bom:timestamp> xs:dateTime </bom:timestamp> [1] 
   <bom:text> xs:string </bom:text> [1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="annotationType">
   <xs:sequence>
      <xs:element name="subjects" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="subject" type="bom:bomReferenceType"/>
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="annotator" type="bom:annotatorChoiceType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="timestamp" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
      <xs:element name="text" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="bom-ref" type="bom:refType"/>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: annotationsType

Super-types: None
Sub-types: None
Name annotationsType
Abstract no
No documentation provided.
<...
 Allow any attributes from any namespace (lax validation).
>
   Start Sequence [0..*]
      <bom:annotation> bom:annotationType </bom:annotation> [1]
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="annotationsType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="annotation" type="bom:annotationType"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: annotatorChoiceType

Super-types: None
Sub-types: None
Name annotatorChoiceType
Abstract no
No documentation provided.
<...>
   Start Choice [1]
      <bom:organization> bom:organizationalEntity </bom:organization> [0..1] 
      <bom:individual> bom:organizationalContact </bom:individual> [0..1] 
      <bom:component> bom:component </bom:component> [0..1] 
      <bom:service> bom:service </bom:service> [0..1] 
   End Choice
</...>
<xs:complexType name="annotatorChoiceType">
   <xs:choice>
      <xs:element name="organization" type="bom:organizationalEntity" minOccurs="0" maxOccurs="1"/>
      <xs:element name="individual" type="bom:organizationalContact" minOccurs="0" maxOccurs="1"/>
      <xs:element name="component" type="bom:component" minOccurs="0" maxOccurs="1"/>
      <xs:element name="service" type="bom:service" minOccurs="0" maxOccurs="1"/>
   </xs:choice>
</xs:complexType>

Complex Type: attachedTextType

Super-types: xs:string < attachedTextType (by extension)
Sub-types: None
Name attachedTextType
Abstract no
No documentation provided.
<...
 content-type="xs:normalizedString" [0..1] 
 encoding="bom:encoding" [0..1] 
>
    xs:string
</...>
<xs:complexType name="attachedTextType">
   <xs:simpleContent>
      <xs:extension base="xs:string">
         <xs:attribute name="content-type" type="xs:normalizedString" default="text/plain"/>
         <xs:attribute name="encoding" type="bom:encoding"/>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>

Complex Type: bomReferenceType

Super-types: None
Sub-types: None
Name bomReferenceType
Abstract no
No documentation provided.
<...
 ref="union of: [ bom:refLinkType,bom:bomLinkType ]" [1] 
 Allow any attributes from a namespace other than this schema's namespace (lax validation).
/> 

<xs:complexType name="bomReferenceType">
   <xs:attribute name="ref" use="required">
      <xs:simpleType>
         <xs:union memberTypes="bom:refLinkType bom:bomLinkType"/>
      </xs:simpleType>
   </xs:attribute>
   <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

Complex Type: commitType

Super-types: None
Sub-types: None
Name commitType
Abstract no
No documentation provided.
<...>
   <bom:uid> xs:normalizedString </bom:uid> [0..1] 
   <bom:url> xs:anyURI </bom:url> [0..1] 
   <bom:author> bom:identifiableActionType </bom:author> [0..1] 
   <bom:committer> bom:identifiableActionType </bom:committer> [0..1] 
   <bom:message> xs:normalizedString </bom:message> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="commitType">
   <xs:sequence>
      <xs:element name="uid" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="url" type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
      <xs:element name="author" type="bom:identifiableActionType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="committer" type="bom:identifiableActionType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="message" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: commitsType

Super-types: None
Sub-types: None
Name commitsType
Abstract no
<...>
   Start Sequence [0..*]
      <bom:commit> bom:commitType </bom:commit> [1] 
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="commitsType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="commit" type="bom:commitType"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: component

Super-types: None
Sub-types: None
Name component
Abstract no
No documentation provided.
<...
 type="bom:classification" [1] 
 mime-type="bom:mimeType" [0..1] 
 bom-ref="bom:refType" [0..1] 
 Allow any attributes from any namespace (lax validation).
>
   <bom:supplier> bom:organizationalEntity </bom:supplier> [0..1] 
   <bom:author> xs:normalizedString </bom:author> [0..1] 
   <bom:publisher> xs:normalizedString </bom:publisher> [0..1] 
   <bom:group> xs:normalizedString </bom:group> [0..1] 
   <bom:name> xs:normalizedString </bom:name> [1] 
   <bom:version> xs:normalizedString </bom:version> [0..1] 
   <bom:description> xs:normalizedString </bom:description> [0..1] 
   <bom:scope> bom:scope </bom:scope> [0..1] 
   <bom:hashes   > [0..1] 
      Start Sequence [0..*]
         <bom:hash> bom:hashType </bom:hash> [1]
      End Sequence
   </bom:hashes>
   <bom:licenses> bom:licenseChoiceType </bom:licenses> [0..1]
   <bom:copyright> xs:normalizedString </bom:copyright> [0..1] 
   <bom:cpe> bom:cpe </bom:cpe> [0..1] 
   <bom:purl> xs:anyURI </bom:purl> [0..1] 
   <bom:swid> bom:swidType </bom:swid> [0..1] 
   <bom:modified> xs:boolean </bom:modified> [0..1] 
   <bom:pedigree> bom:pedigreeType </bom:pedigree> [0..1] 
   <bom:externalReferences> bom:externalReferences </bom:externalReferences> [0..1] 
   <bom:properties> bom:propertiesType </bom:properties> [0..1] 
   <bom:components   > [0..1]  
      Start Sequence [0..*]
         <bom:component> bom:component </bom:component> [1]
         Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
      End Sequence
   </bom:components>
   <bom:evidence> bom:componentEvidenceType </bom:evidence> [0..1] 
   <bom:releaseNotes> bom:releaseNotesType </bom:releaseNotes> [0..1] 
   <bom:modelCard> bom:modelCardType </bom:modelCard> [0..1] 
   <bom:data> bom:componentDataType </bom:data> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="component">
   <xs:sequence>
      <xs:element name="supplier" type="bom:organizationalEntity" minOccurs="0" maxOccurs="1"/>
      <xs:element name="author" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="publisher" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="group" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="name" type="xs:normalizedString" minOccurs="1" maxOccurs="1"/>
      <xs:element name="version" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="description" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="scope" type="bom:scope" minOccurs="0" maxOccurs="1" default="required"/>
      <xs:element name="hashes" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="hash" type="bom:hashType"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="licenses" type="bom:licenseChoiceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="copyright" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="cpe" type="bom:cpe" minOccurs="0" maxOccurs="1"/>
      <xs:element name="purl" type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
      <xs:element name="swid" type="bom:swidType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="modified" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="pedigree" type="bom:pedigreeType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="externalReferences" type="bom:externalReferences" minOccurs="0" maxOccurs="1"/>
      <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="components" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="component" type="bom:component"/>
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="evidence" type="bom:componentEvidenceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="releaseNotes" type="bom:releaseNotesType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="modelCard" type="bom:modelCardType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="data" type="bom:componentDataType" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="type" type="bom:classification" use="required"/>
   <xs:attribute name="mime-type" type="bom:mimeType"/>
   <xs:attribute name="bom-ref" type="bom:refType"/>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: componentDataType

Super-types: None
Sub-types: None
Name componentDataType
Abstract no
No documentation provided.
<...
 bom-ref="bom:refType" [0..1] 
>
   <bom:type> bom:componentDataTypeEnumeration </bom:type> [1] 
   <bom:name> xs:string </bom:name> [0..1] 
   <bom:contents   > [0..1]  
      <bom:attachment> bom:attachedTextType </bom:attachment> [0..1] 
      <bom:url> xs:anyURI </bom:url> [0..1] 
      <bom:properties> bom:propertiesType </bom:properties> [0..1] 
   </bom:contents>
   <bom:classification> xs:string </bom:classification> [0..1] 
   <bom:sensitiveData> ... </bom:sensitiveData> [0..*] 
   <bom:graphics> bom:graphicsCollectionType </bom:graphics> [0..1] 
   <bom:description> xs:string </bom:description> [0..1] 
   <bom:governance> bom:dataGovernance </bom:governance> [0..1]
</...>
<xs:complexType name="componentDataType">
   <xs:sequence>
      <xs:element name="type" type="bom:componentDataTypeEnumeration" minOccurs="1" maxOccurs="1"/>
      <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="contents" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="attachment" type="bom:attachedTextType" minOccurs="0" maxOccurs="1"/>
               <xs:element name="url" type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
               <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="classification" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="sensitiveData" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="graphics" type="bom:graphicsCollectionType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="governance" type="bom:dataGovernance" minOccurs="0" maxOccurs="1"/>
   </xs:sequence>
   <xs:attribute name="bom-ref" type="bom:refType"/>
</xs:complexType>

Complex Type: componentEvidenceType

Super-types: None
Sub-types: None
Name componentEvidenceType
Abstract no
No documentation provided.
<...
 Allow any attributes from any namespace (lax validation).
>
   <bom:identity   > [0..1]  
      <bom:field> bom:identityFieldType </bom:field> [1] 
      <bom:confidence> bom:decimalPercentType </bom:confidence> [0..1] 
      <bom:methods      > [0..1]  
         <bom:method         > [0..*] 
            <bom:technique> bom:evidenceTechnique </bom:technique> [1] 
            <bom:confidence> bom:decimalPercentType </bom:confidence> [1] 
            <bom:value> xs:string </bom:value> [0..1] 
         </bom:method>
      </bom:methods>
      <bom:tools      > [0..1]  
         <bom:tool> bom:bomReferenceType </bom:tool> [0..*]
      </bom:tools>
   </bom:identity>
   <bom:occurrences   > [0..1]  
      <bom:occurrence
       bom-ref="bom:refType" [0..1] 
      > [0..*] 
         <bom:location> ... </bom:location> [1] 
      </bom:occurrence>
   </bom:occurrences>
   <bom:callstack   > [0..1]  
      <bom:frames      > [0..1] 
         <bom:frame         > [0..*] 
            <bom:package> xs:string </bom:package> [0..1] 
            <bom:module> xs:string </bom:module> [1] 
            <bom:function> xs:string </bom:function> [0..1] 
            <bom:parameters            > [0..1]  
               <bom:parameter> xs:string </bom:parameter> [0..*]
            </bom:parameters>
            <bom:line> xs:integer </bom:line> [0..1] 
            <bom:column> xs:integer </bom:column> [0..1] 
            <bom:fullFilename> xs:string </bom:fullFilename> [0..1] 
         </bom:frame>
      </bom:frames>
      <bom:tools      > [0..1]  
         <bom:tool> bom:bomReferenceType </bom:tool> [0..*]
      </bom:tools>
   </bom:callstack>
   <bom:licenses> bom:licenseChoiceType </bom:licenses> [0..1]
   <bom:copyright> bom:copyrightsType </bom:copyright> [0..1]
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="componentEvidenceType">
   <xs:sequence>
      <xs:element name="identity" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="field" type="bom:identityFieldType" minOccurs="1" maxOccurs="1"/>
               <xs:element name="confidence" type="bom:decimalPercentType" minOccurs="0" maxOccurs="1"/>
               <xs:element name="methods" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="method" minOccurs="0" maxOccurs="unbounded">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="technique" type="bom:evidenceTechnique" minOccurs="1" maxOccurs="1"/>
                                 <xs:element name="confidence" type="bom:decimalPercentType" minOccurs="1" maxOccurs="1"/>
                                 <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1"/>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="tools" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="tool" type="bom:bomReferenceType" minOccurs="0" maxOccurs="unbounded"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="occurrences" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="occurrence" minOccurs="0" maxOccurs="unbounded">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="location" minOccurs="1" maxOccurs="1"/>
                     </xs:sequence>
                     <xs:attribute name="bom-ref" type="bom:refType"/>
                  </xs:complexType>
               </xs:element>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="callstack" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="frames" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="frame" minOccurs="0" maxOccurs="unbounded">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="package" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="module" type="xs:string" minOccurs="1" maxOccurs="1"/>
                                 <xs:element name="function" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="parameters" minOccurs="0" maxOccurs="1">
                                    <xs:complexType>
                                       <xs:sequence>
                                          <xs:element name="parameter" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                                       </xs:sequence>
                                    </xs:complexType>
                                 </xs:element>
                                 <xs:element name="line" type="xs:integer" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="column" type="xs:integer" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="fullFilename" type="xs:string" minOccurs="0" maxOccurs="1"/>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="tools" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="tool" type="bom:bomReferenceType" minOccurs="0" maxOccurs="unbounded"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="licenses" type="bom:licenseChoiceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="copyright" type="bom:copyrightsType" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: componentsType

Super-types: None
Sub-types: None
Name componentsType
Abstract no
No documentation provided.
<...
 Allow any attributes from any namespace (lax validation).
>
   Start Sequence [0..*]
      <bom:component> bom:component </bom:component> [1]
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="componentsType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="component" type="bom:component"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: compositionType

Super-types: None
Sub-types: None
Name compositionType
Abstract no
No documentation provided.
<...
 bom-ref="bom:refType" [0..1] 
>
   Start Sequence [0..*]
      <bom:aggregate> bom:aggregateType </bom:aggregate> [1] 
      <bom:assemblies      > [0..1]  
         Start Sequence [0..*]
            <bom:assembly> bom:bomReferenceType </bom:assembly> [1]
            Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
         End Sequence
      </bom:assemblies>
      <bom:dependencies      > [0..1]  
         Start Sequence [0..*]
            <bom:dependency> bom:bomReferenceType </bom:dependency> [1]
            Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
         End Sequence
      </bom:dependencies>
      <bom:vulnerabilities      > [0..1]  
         Start Sequence [0..*]
            <bom:vulnerability> bom:bomReferenceType </bom:vulnerability> [1]
            Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
         End Sequence
      </bom:vulnerabilities>
   End Sequence
</...>
<xs:complexType name="compositionType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="aggregate" type="bom:aggregateType" default="not_specified"/>
      <xs:element name="assemblies" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="assembly" type="bom:bomReferenceType"/>
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="dependencies" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="dependency" type="bom:bomReferenceType"/>
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="vulnerabilities" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="vulnerability" type="bom:bomReferenceType"/>
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
   </xs:sequence>
   <xs:attribute name="bom-ref" type="bom:refType"/>
</xs:complexType>

Complex Type: compositionsType

Super-types: None
Sub-types: None
Name compositionsType
Abstract no
No documentation provided.
<...
 Allow any attributes from any namespace (lax validation).
>
   Start Sequence [0..*]
      <bom:composition> bom:compositionType </bom:composition> [1]
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="compositionsType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="composition" type="bom:compositionType"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: copyrightsType

Super-types: None
Sub-types: None
Name copyrightsType
Abstract no
No documentation provided.
<...>
   <bom:text> xs:string </bom:text> [0..*]
</...>
<xs:complexType name="copyrightsType">
   <xs:sequence>
      <xs:element name="text" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: dataClassificationType

Super-types: xs:normalizedString < dataClassificationType (by extension)
Sub-types: None
Name dataClassificationType
Abstract no
<...
 flow="bom:dataFlowType" [1] 
>
    xs:normalizedString
</...>
<xs:complexType name="dataClassificationType">
   <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
         <xs:attribute name="flow" type="bom:dataFlowType" use="required"/>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>

Complex Type: dataGovernance

Super-types: None
Sub-types: None
Name dataGovernance
Abstract no
No documentation provided.
<...>
   <bom:custodians   > [0..1]  
      <bom:custodian> bom:organizationOrIndividualType </bom:custodian> [0..*]
   </bom:custodians>
   <bom:stewards   > [0..1]  
      <bom:steward> bom:organizationOrIndividualType </bom:steward> [0..*]
   </bom:stewards>
   <bom:owners   > [0..1]  
      <bom:owner> bom:organizationOrIndividualType </bom:owner> [0..*]
   </bom:owners>
</...>
<xs:complexType name="dataGovernance">
   <xs:sequence>
      <xs:element name="custodians" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="custodian" type="bom:organizationOrIndividualType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="stewards" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="steward" type="bom:organizationOrIndividualType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="owners" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="owner" type="bom:organizationOrIndividualType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
   </xs:sequence>
</xs:complexType>

Complex Type: dependenciesType

Super-types: None
Sub-types: None
Name dependenciesType
Abstract no
No documentation provided.
<...>
   Start Sequence [0..*]
      <bom:dependency> bom:dependencyType </bom:dependency> [1] 
   End Sequence
</...>
<xs:complexType name="dependenciesType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="dependency" type="bom:dependencyType"/>
   </xs:sequence>
</xs:complexType>

Complex Type: dependencyType

Super-types: None
Sub-types: None
Name dependencyType
Abstract no
No documentation provided.
<...
 ref="bom:refLinkType" [1] 
 Allow any attributes from a namespace other than this schema's namespace (lax validation).
>
   Start Sequence [0..*]
      <bom:dependency> bom:dependencyType </bom:dependency> [1]
   End Sequence
</...>
<xs:complexType name="dependencyType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="dependency" type="bom:dependencyType"/>
   </xs:sequence>
   <xs:attribute name="ref" type="bom:refLinkType" use="required"/>
   <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

Complex Type: diffType

Super-types: None
Sub-types: None
Name diffType
Abstract no
No documentation provided.
<...>
   <bom:text> bom:attachedTextType </bom:text> [0..1] 
   <bom:url> xs:anyURI </bom:url> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="diffType">
   <xs:sequence>
      <xs:element name="text" type="bom:attachedTextType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="url" type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: eventType

Super-types: None
Sub-types: None
Name eventType
Abstract no
No documentation provided.
<...
 Allow any attributes from any namespace (lax validation).
>
   <bom:uid> xs:string </bom:uid> [0..1] 
   <bom:description> xs:string </bom:description> [0..1] 
   <bom:timeReceived> xs:dateTime </bom:timeReceived> [0..1] 
   <bom:data> bom:attachedTextType </bom:data> [0..1] 
   <bom:source> bom:resourceReferenceType </bom:source> [0..1] 
   <bom:target> bom:resourceReferenceType </bom:target> [0..1] 
   <bom:properties> bom:propertiesType </bom:properties> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="eventType">
   <xs:sequence>
      <xs:element name="uid" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="timeReceived" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
      <xs:element name="data" type="bom:attachedTextType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="source" type="bom:resourceReferenceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="target" type="bom:resourceReferenceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: externalReference

Super-types: None
Sub-types: None
Name externalReference
Abstract no
No documentation provided.
<...
 type="bom:externalReferenceType" [1] 
 Allow any attributes from any namespace (lax validation).
>
   <bom:url> union of: [ xs:anyURI,bom:bomLinkType ] </bom:url> [1] 
   <bom:comment> xs:string </bom:comment> [0..1] 
   <bom:hashes   > [0..1] 
      Start Sequence [0..*]
         <bom:hash> bom:hashType </bom:hash> [1]
      End Sequence
   </bom:hashes>
</...>
<xs:complexType name="externalReference">
   <xs:sequence>
      <xs:element name="url" minOccurs="1" maxOccurs="1">
         <xs:simpleType>
            <xs:union memberTypes="xs:anyURI bom:bomLinkType"/>
         </xs:simpleType>
      </xs:element>
      <xs:element name="comment" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="hashes" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="hash" type="bom:hashType"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
   </xs:sequence>
   <xs:attribute name="type" type="bom:externalReferenceType" use="required"/>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: externalReferences

Super-types: None
Sub-types: None
Name externalReferences
Abstract no
<...>
   Start Sequence [0..*]
      <bom:reference> bom:externalReference </bom:reference> [1] 
   End Sequence
</...>
<xs:complexType name="externalReferences">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="reference" type="bom:externalReference"/>
   </xs:sequence>
</xs:complexType>

Complex Type: formulaType

Super-types: None
Sub-types: None
Name formulaType
Abstract no
<...
 bom-ref="bom:refType" [0..1] 
 Allow any attributes from any namespace (lax validation).
>
   <bom:components> bom:componentsType </bom:components> [0..1] 
   <bom:services> bom:servicesType </bom:services> [0..1] 
   <bom:workflows> bom:workflowsType </bom:workflows> [0..1] 
   <bom:properties> bom:propertiesType </bom:properties> [0..1] 
</...>
<xs:complexType name="formulaType">
   <xs:sequence>
      <xs:element name="components" type="bom:componentsType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="services" type="bom:servicesType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="workflows" type="bom:workflowsType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
   </xs:sequence>
   <xs:attribute name="bom-ref" type="bom:refType"/>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: formulationType

Super-types: None
Sub-types: None
Name formulationType
Abstract no
<...
 Allow any attributes from any namespace (lax validation).
>
   Start Sequence [0..*]
      <bom:formula> bom:formulaType </bom:formula> [1]
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="formulationType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="formula" type="bom:formulaType"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: graphicsCollectionType

Super-types: None
Sub-types: None
Name graphicsCollectionType
Abstract no
<...>
   <bom:description> ... </bom:description> [0..1] 
   <bom:collection   > [0..1]  
      <bom:graphic      > [0..*] 
         <bom:name> xs:string </bom:name> [0..1] 
         <bom:image> bom:attachedTextType </bom:image> [0..1] 
      </bom:graphic>
   </bom:collection>
</...>
<xs:complexType name="graphicsCollectionType">
   <xs:sequence>
      <xs:element name="description" minOccurs="0" maxOccurs="1"/>
      <xs:element name="collection" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="graphic" minOccurs="0" maxOccurs="unbounded">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="image" type="bom:attachedTextType" minOccurs="0" maxOccurs="1"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
   </xs:sequence>
</xs:complexType>

Complex Type: hashType

Super-types: xs:token < hashValue (by restriction) < hashType (by extension)
Sub-types: None
Name hashType
Abstract no
<...
 alg="bom:hashAlg" [1] 
>
    bom:hashValue
</...>
<xs:complexType name="hashType">
   <xs:simpleContent>
      <xs:extension base="bom:hashValue">
         <xs:attribute name="alg" type="bom:hashAlg" use="required"/>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>

Complex Type: identifiableActionType

Super-types: None
Sub-types: None
Name identifiableActionType
Abstract no
No documentation provided.
<...>
   <bom:timestamp> xs:dateTime </bom:timestamp> [0..1] 
   <bom:name> xs:normalizedString </bom:name> [0..1] 
   <bom:email> xs:normalizedString </bom:email> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="identifiableActionType">
   <xs:sequence>
      <xs:element name="timestamp" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
      <xs:element name="name" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="email" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: inputType

Super-types: None
Sub-types: None
Name inputType
Abstract no
<...
 Allow any attributes from any namespace (lax validation).
>
   Start Choice [1]
      <bom:resource> bom:resourceReferenceType </bom:resource> [1] 
      <bom:parameters> bom:parametersType </bom:parameters> [1] 
      <bom:environmentVars      > [1]  
         Start Sequence [0..*]
            Start Choice [1]
               <bom:environmentVar> bom:propertyType </bom:environmentVar> [0..1]
               <bom:value> xs:string </bom:value> [0..1]
            End Choice
         End Sequence
      </bom:environmentVars>
      <bom:data> bom:attachedTextType </bom:data> [1] 
   End Choice
   <bom:source> bom:resourceReferenceType </bom:source> [0..1] 
   <bom:target> bom:resourceReferenceType </bom:target> [0..1] 
   <bom:properties> bom:propertiesType </bom:properties> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="inputType">
   <xs:sequence>
      <xs:choice>
         <xs:element name="resource" type="bom:resourceReferenceType" minOccurs="1" maxOccurs="1"/>
         <xs:element name="parameters" type="bom:parametersType" minOccurs="1" maxOccurs="1"/>
         <xs:element name="environmentVars" minOccurs="1" maxOccurs="1">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="unbounded">
<-- maxOccurs="unbounded" NEEDS to be set on the sequence, not the individual elements -->                  <xs:choice>
                     <xs:element name="environmentVar" type="bom:propertyType" minOccurs="0" maxOccurs="1"/>
                     <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1"/>
                  </xs:choice>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="data" type="bom:attachedTextType" minOccurs="1" maxOccurs="1"/>
      </xs:choice>
      <xs:element name="source" type="bom:resourceReferenceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="target" type="bom:resourceReferenceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: issueType

Super-types: None
Sub-types: None
Name issueType
Abstract no
<...
 type="bom:issueClassification" [1] 
>
   <bom:id> xs:normalizedString </bom:id> [0..1] 
   <bom:name> xs:normalizedString </bom:name> [0..1] 
   <bom:description> xs:normalizedString </bom:description> [0..1] 
   <bom:source   > [0..1] 
      <bom:name> xs:normalizedString </bom:name> [0..1] 
      <bom:url> xs:anyURI </bom:url> [0..1] 
   </bom:source>
   <bom:references   > [0..1] 
      Start Sequence [0..*]
         <bom:url> xs:anyURI </bom:url> [1]
      End Sequence
   </bom:references>
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="issueType">
   <xs:sequence>
      <xs:element name="id" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="name" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="description" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="source" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="name" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
               <xs:element name="url" type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="references" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="url" type="xs:anyURI"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="type" type="bom:issueClassification" use="required"/>
</xs:complexType>

Complex Type: licenseChoiceType

Super-types: None
Sub-types: None
Name licenseChoiceType
Abstract no
No documentation provided.
<...>
   Start Choice [1]
      <bom:license> bom:licenseType </bom:license> [0..*]
      <bom:expression
       bom-ref="bom:refType" [0..1] 
      > [0..1]  
          xs:normalizedString
      </bom:expression>
   End Choice
</...>
<xs:complexType name="licenseChoiceType">
   <xs:choice>
      <xs:element name="license" type="bom:licenseType" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="expression" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:simpleContent>
               <xs:extension base="xs:normalizedString">
                  <xs:attribute name="bom-ref" type="bom:refType"/>
               </xs:extension>
            </xs:simpleContent>
         </xs:complexType>
      </xs:element>
   </xs:choice>
</xs:complexType>

Complex Type: licenseType

Super-types: None
Sub-types: None
Name licenseType
Abstract no
No documentation provided.
<...
 bom-ref="bom:refType" [0..1] 
>
   Start Choice [1]
      <bom:id> spdx:licenseId </bom:id> [0..1] 
      <bom:name> xs:normalizedString </bom:name> [0..1] 
   End Choice
   <bom:text> bom:attachedTextType </bom:text> [0..1] 
   <bom:url> xs:anyURI </bom:url> [0..1] 
   <bom:licensing   > [0..1]  
      <bom:altIds      > [0..1]  
         <bom:altId> xs:normalizedString </bom:altId> [0..*]
      </bom:altIds>
      <bom:licensor      > [0..1]  
         Start Choice [1]
            <bom:organization> bom:organizationalEntity </bom:organization> [0..1] 
            <bom:individual> bom:organizationalContact </bom:individual> [0..1] 
         End Choice
      </bom:licensor>
      <bom:licensee      > [0..1]  
         Start Choice [1]
            <bom:organization> bom:organizationalEntity </bom:organization> [0..1] 
            <bom:individual> bom:organizationalContact </bom:individual> [0..1] 
         End Choice
      </bom:licensee>
      <bom:purchaser      > [0..1]  
         Start Choice [1]
            <bom:organization> bom:organizationalEntity </bom:organization> [0..1] 
            <bom:individual> bom:organizationalContact </bom:individual> [0..1] 
         End Choice
      </bom:purchaser>
      <bom:purchaseOrder> xs:string </bom:purchaseOrder> [0..1] 
      <bom:licenseTypes      > [0..1]  
         <bom:licenseType> bom:licenseTypeEnum </bom:licenseType> [0..*]
      </bom:licenseTypes>
      <bom:lastRenewal> xs:dateTime </bom:lastRenewal> [0..1] 
      <bom:expiration> xs:dateTime </bom:expiration> [0..1] 
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   </bom:licensing>
   <bom:properties> bom:propertiesType </bom:properties> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="licenseType">
   <xs:sequence>
      <xs:choice>
         <xs:element name="id" type="spdx:licenseId" minOccurs="0" maxOccurs="1"/>
         <xs:element name="name" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      </xs:choice>
      <xs:element name="text" type="bom:attachedTextType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="url" type="xs:anyURI" minOccurs="0" maxOccurs="1"/>
      <xs:element name="licensing" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="altIds" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="altId" type="xs:normalizedString" minOccurs="0" maxOccurs="unbounded"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="licensor" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:choice>
                           <xs:element name="organization" type="bom:organizationalEntity" minOccurs="0" maxOccurs="1"/>
                           <xs:element name="individual" type="bom:organizationalContact" minOccurs="0" maxOccurs="1"/>
                        </xs:choice>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="licensee" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:choice>
                           <xs:element name="organization" type="bom:organizationalEntity" minOccurs="0" maxOccurs="1"/>
                           <xs:element name="individual" type="bom:organizationalContact" minOccurs="0" maxOccurs="1"/>
                        </xs:choice>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="purchaser" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:choice>
                           <xs:element name="organization" type="bom:organizationalEntity" minOccurs="0" maxOccurs="1"/>
                           <xs:element name="individual" type="bom:organizationalContact" minOccurs="0" maxOccurs="1"/>
                        </xs:choice>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="purchaseOrder" type="xs:string" minOccurs="0" maxOccurs="1"/>
               <xs:element name="licenseTypes" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="licenseType" type="bom:licenseTypeEnum" minOccurs="0" maxOccurs="unbounded"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="lastRenewal" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
               <xs:element name="expiration" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
               <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="bom-ref" type="bom:refType"/>
</xs:complexType>

Complex Type: metadata

Super-types: None
Sub-types: None
Name metadata
Abstract no
No documentation provided.
<...
 Allow any attributes from a namespace other than this schema's namespace (lax validation).
>
   Start Sequence [0..1]
      <bom:timestamp> xs:dateTime </bom:timestamp> [0..1] 
      <bom:lifecycles      > [0..1]  
         <bom:lifecycle         > [0..*] 
            Start Choice [1]
               <bom:phase> bom:lifecyclePhaseType </bom:phase> [1] 
               <bom:name> xs:normalizedString </bom:name> [1] 
               <bom:description> xs:string </bom:description> [0..1] 
            End Choice
         </bom:lifecycle>
      </bom:lifecycles>
      <bom:tools      > [0..1]  
         Start Choice [1]
            Start Sequence [0..*]
               <bom:tool> bom:toolType </bom:tool> [0..1] 
            End Sequence
            Start Sequence [0..1]
               <bom:components> bom:componentsType </bom:components> [0..1] 
               <bom:services> bom:servicesType </bom:services> [0..1] 
            End Sequence
         End Choice
      </bom:tools>
      <bom:authors      > [0..1]  
         Start Sequence [0..*]
            <bom:author> bom:organizationalContact </bom:author> [1]
         End Sequence
      </bom:authors>
      <bom:component> bom:component </bom:component> [0..1] 
      <bom:manufacture> bom:organizationalEntity </bom:manufacture> [0..1] 
      <bom:supplier> bom:organizationalEntity </bom:supplier> [0..1] 
      <bom:licenses> bom:licenseChoiceType </bom:licenses> [0..1]
      <bom:properties> bom:propertiesType </bom:properties> [0..1] 
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="metadata">
   <xs:sequence minOccurs="0" maxOccurs="1">
      <xs:element name="timestamp" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="lifecycles" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="lifecycle" minOccurs="0" maxOccurs="unbounded">
                  <xs:complexType>
                     <xs:choice>
                        <xs:sequence>
                           <xs:element name="phase" type="bom:lifecyclePhaseType" minOccurs="1" maxOccurs="1"/>
                        </xs:sequence>
                        <xs:sequence>
                           <xs:element name="name" type="xs:normalizedString" minOccurs="1" maxOccurs="1"/>
                           <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
                        </xs:sequence>
                     </xs:choice>
                  </xs:complexType>
               </xs:element>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="tools" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:choice>
               <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="tool" type="bom:toolType" minOccurs="0"/>
               </xs:sequence>
               <xs:sequence minOccurs="0" maxOccurs="1">
                  <xs:element name="components" type="bom:componentsType" minOccurs="0" maxOccurs="1"/>
                  <xs:element name="services" type="bom:servicesType" minOccurs="0" maxOccurs="1"/>
               </xs:sequence>
            </xs:choice>
         </xs:complexType>
      </xs:element>
      <xs:element name="authors" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="author" type="bom:organizationalContact"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="component" type="bom:component" minOccurs="0"/>
      <xs:element name="manufacture" type="bom:organizationalEntity" minOccurs="0" maxOccurs="1"/>
      <xs:element name="supplier" type="bom:organizationalEntity" minOccurs="0" maxOccurs="1"/>
      <xs:element name="licenses" type="bom:licenseChoiceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

Complex Type: modelCardType

Super-types: None
Sub-types: None
Name modelCardType
Abstract no
<...
 bom-ref="bom:refType" [0..1] 
>
   <bom:modelParameters   > [0..1]  
      <bom:approach      > [0..1]  
         <bom:type> bom:machineLearningApproachType </bom:type> [0..1] 
      </bom:approach>
      <bom:task> xs:string </bom:task> [0..1] 
      <bom:architectureFamily> xs:string </bom:architectureFamily> [0..1] 
      <bom:modelArchitecture> xs:string </bom:modelArchitecture> [0..1] 
      <bom:datasets      > [0..1]  
         Start Choice [0..*]
            <bom:ref> union of: [ bom:refLinkType,bom:bomLinkElementType ] </bom:ref> [0..1] 
            <bom:dataset> bom:componentDataType </bom:dataset> [0..1]
         End Choice
      </bom:datasets>
      <bom:inputs      > [0..1]  
         <bom:input         > [0..*] 
            <bom:format> xs:string </bom:format> [1] 
         </bom:input>
      </bom:inputs>
      <bom:outputs      > [0..1]  
         <bom:output         > [0..*] 
            <bom:format> xs:string </bom:format> [1] 
         </bom:output>
      </bom:outputs>
   </bom:modelParameters>
   <bom:quantitativeAnalysis   > [0..1]  
      <bom:performanceMetrics      > [0..1] 
         <bom:performanceMetric         > [0..*] 
            <bom:type> xs:string </bom:type> [0..1] 
            <bom:value> xs:string </bom:value> [0..1] 
            <bom:slice> xs:string </bom:slice> [0..1] 
            <bom:confidenceInterval            > [0..1]  
               <bom:lowerBound> xs:string </bom:lowerBound> [0..1] 
               <bom:upperBound> xs:string </bom:upperBound> [0..1] 
            </bom:confidenceInterval>
         </bom:performanceMetric>
      </bom:performanceMetrics>
      <bom:graphics      > [0..1]  
         <bom:description> xs:string </bom:description> [0..1] 
         <bom:collection         > [0..1]  
            <bom:graphic            > [0..*] 
               <bom:name> xs:string </bom:name> [0..1] 
               <bom:image> bom:attachedTextType </bom:image> [0..1] 
            </bom:graphic>
         </bom:collection>
      </bom:graphics>
   </bom:quantitativeAnalysis>
   <bom:considerations   > [0..1]  
      <bom:users      > [0..1]  
         <bom:user> xs:string </bom:user> [0..1]
      </bom:users>
      <bom:useCases      > [0..1]  
         <bom:useCase> xs:string </bom:useCase> [0..1]
      </bom:useCases>
      <bom:technicalLimitations      > [0..1]  
         <bom:technicalLimitation> xs:string </bom:technicalLimitation> [0..1]
      </bom:technicalLimitations>
      <bom:performanceTradeoffs      > [0..1]  
         <bom:performanceTradeoff> xs:string </bom:performanceTradeoff> [0..1]
      </bom:performanceTradeoffs>
      <bom:ethicalConsiderations      > [0..1]  
         <bom:ethicalConsideration         > [0..*] 
            <bom:name> xs:string </bom:name> [0..1] 
            <bom:mitigationStrategy> xs:string </bom:mitigationStrategy> [0..1] 
         </bom:ethicalConsideration>
      </bom:ethicalConsiderations>
      <bom:fairnessAssessments      > [0..1]  
         <bom:fairnessAssessment         > [0..*] 
            <bom:groupAtRisk> xs:string </bom:groupAtRisk> [0..1] 
            <bom:benefits> xs:string </bom:benefits> [0..1] 
            <bom:harms> xs:string </bom:harms> [0..1] 
            <bom:mitigationStrategy> xs:string </bom:mitigationStrategy> [0..1] 
         </bom:fairnessAssessment>
      </bom:fairnessAssessments>
   </bom:considerations>
</...>
<xs:complexType name="modelCardType">
   <xs:sequence>
      <xs:element name="modelParameters" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="approach" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="type" type="bom:machineLearningApproachType" minOccurs="0" maxOccurs="1"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="task" type="xs:string" minOccurs="0" maxOccurs="1"/>
               <xs:element name="architectureFamily" type="xs:string" minOccurs="0" maxOccurs="1"/>
               <xs:element name="modelArchitecture" type="xs:string" minOccurs="0" maxOccurs="1"/>
               <xs:element name="datasets" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="ref" minOccurs="0" maxOccurs="1">
                           <xs:simpleType>
                              <xs:union memberTypes="bom:refLinkType bom:bomLinkElementType"/>
                           </xs:simpleType>
                        </xs:element>
                        <xs:element name="dataset" type="bom:componentDataType" minOccurs="0" maxOccurs="1"/>
                     </xs:choice>
                  </xs:complexType>
               </xs:element>
               <xs:element name="inputs" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="input" minOccurs="0" maxOccurs="unbounded">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="format" type="xs:string" minOccurs="1" maxOccurs="1"/>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="outputs" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="output" minOccurs="0" maxOccurs="unbounded">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="format" type="xs:string" minOccurs="1" maxOccurs="1"/>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="quantitativeAnalysis" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="performanceMetrics" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="performanceMetric" minOccurs="0" maxOccurs="unbounded">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="slice" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="confidenceInterval" minOccurs="0" maxOccurs="1">
                                    <xs:complexType>
                                       <xs:sequence>
                                          <xs:element name="lowerBound" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                          <xs:element name="upperBound" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                       </xs:sequence>
                                    </xs:complexType>
                                 </xs:element>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="graphics" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="collection" minOccurs="0" maxOccurs="1">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="graphic" minOccurs="0" maxOccurs="unbounded">
                                    <xs:complexType>
                                       <xs:sequence>
                                          <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                          <xs:element name="image" type="bom:attachedTextType" minOccurs="0" maxOccurs="1"/>
                                       </xs:sequence>
                                    </xs:complexType>
                                 </xs:element>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:element name="considerations" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence>
               <xs:element name="users" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="user" type="xs:string" minOccurs="0" maxOccurs="1"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="useCases" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="useCase" type="xs:string" minOccurs="0" maxOccurs="1"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="technicalLimitations" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="technicalLimitation" type="xs:string" minOccurs="0" maxOccurs="1"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="performanceTradeoffs" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="performanceTradeoff" type="xs:string" minOccurs="0" maxOccurs="1"/>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="ethicalConsiderations" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="ethicalConsideration" minOccurs="0" maxOccurs="unbounded">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="mitigationStrategy" type="xs:string" minOccurs="0" maxOccurs="1"/>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="fairnessAssessments" minOccurs="0" maxOccurs="1">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="fairnessAssessment" minOccurs="0" maxOccurs="unbounded">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="groupAtRisk" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="benefits" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="harms" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                 <xs:element name="mitigationStrategy" type="xs:string" minOccurs="0" maxOccurs="1"/>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
   </xs:sequence>
   <xs:attribute name="bom-ref" type="bom:refType"/>
</xs:complexType>

Complex Type: organizationOrIndividualType

Super-types: None
Sub-types: None
Name organizationOrIndividualType
Abstract no
No documentation provided.
<...>
   Start Choice [1]
      <bom:organization> bom:organizationalEntity </bom:organization> [0..1]
      <bom:individual> bom:organizationalContact </bom:individual> [0..1]
   End Choice
</...>
<xs:complexType name="organizationOrIndividualType">
   <xs:choice>
      <xs:element name="organization" type="bom:organizationalEntity" minOccurs="0" maxOccurs="1"/>
      <xs:element name="individual" type="bom:organizationalContact" minOccurs="0" maxOccurs="1"/>
   </xs:choice>
</xs:complexType>

Complex Type: organizationalContact

Super-types: None
Sub-types: None
Name organizationalContact
Abstract no
No documentation provided.
<...
 bom-ref="bom:refType" [0..1] 
 Allow any attributes from a namespace other than this schema's namespace (lax validation).
>
   Start Sequence [0..1]
      <bom:name> xs:normalizedString </bom:name> [0..1] 
      <bom:email> xs:normalizedString </bom:email> [0..1] 
      <bom:phone> xs:normalizedString </bom:phone> [0..1] 
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="organizationalContact">
   <xs:sequence minOccurs="0" maxOccurs="1">
      <xs:element name="name" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="email" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="phone" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="bom-ref" type="bom:refType"/>
   <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

Complex Type: organizationalEntity

Super-types: None
Sub-types: None
Name organizationalEntity
Abstract no
No documentation provided.
<...
 bom-ref="bom:refType" [0..1] 
 Allow any attributes from a namespace other than this schema's namespace (lax validation).
>
   Start Sequence [0..1]
      <bom:name> xs:normalizedString </bom:name> [0..1] 
      <bom:url> xs:anyURI </bom:url> [0..*] 
      <bom:contact> bom:organizationalContact </bom:contact> [0..*] 
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="organizationalEntity">
   <xs:sequence minOccurs="0" maxOccurs="1">
      <xs:element name="name" type="xs:normalizedString" minOccurs="0" maxOccurs="1"/>
      <xs:element name="url" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="contact" type="bom:organizationalContact" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="bom-ref" type="bom:refType"/>
   <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

Complex Type: outputType

Super-types: None
Sub-types: None
Name outputType
Abstract no
<...
 Allow any attributes from any namespace (lax validation).
>
   Start Choice [1]
      <bom:resource> bom:resourceReferenceType </bom:resource> [1] 
      <bom:environmentVars      > [1]  
         Start Sequence [0..*]
            Start Choice [1]
               <bom:environmentVar> bom:propertyType </bom:environmentVar> [0..1]
               <bom:value> xs:string </bom:value> [0..1]
            End Choice
         End Sequence
      </bom:environmentVars>
      <bom:data> bom:attachedTextType </bom:data> [1] 
   End Choice
   <bom:type> bom:outputTypeEnum </bom:type> [0..1] 
   <bom:source> bom:resourceReferenceType </bom:source> [0..1] 
   <bom:target> bom:resourceReferenceType </bom:target> [0..1] 
   <bom:properties> bom:propertiesType </bom:properties> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="outputType">
   <xs:sequence>
      <xs:choice>
         <xs:element name="resource" type="bom:resourceReferenceType" minOccurs="1" maxOccurs="1"/>
         <xs:element name="environmentVars" minOccurs="1" maxOccurs="1">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="unbounded">
<-- maxOccurs="unbounded" NEEDS to be set on the sequence, not the individual elements -->                  <xs:choice>
                     <xs:element name="environmentVar" type="bom:propertyType" minOccurs="0" maxOccurs="1"/>
                     <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1"/>
                  </xs:choice>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="data" type="bom:attachedTextType" minOccurs="1" maxOccurs="1"/>
      </xs:choice>
      <xs:element name="type" type="bom:outputTypeEnum" minOccurs="0" maxOccurs="1"/>
      <xs:element name="source" type="bom:resourceReferenceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="target" type="bom:resourceReferenceType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="properties" type="bom:propertiesType" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: parameterType

Super-types: None
Sub-types: None
Name parameterType
Abstract no
<...
 Allow any attributes from any namespace (lax validation).
>
   <bom:name> xs:string </bom:name> [0..1] 
   <bom:value> xs:string </bom:value> [0..1] 
   <bom:dataType> xs:string </bom:dataType> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="parameterType">
   <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:element name="dataType" type="xs:string" minOccurs="0" maxOccurs="1"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>

Complex Type: parametersType

Super-types: None
Sub-types: None
Name parametersType
Abstract no
No documentation provided.
<...>
   <bom:parameter> bom:parameterType </bom:parameter> [0..*]
</...>
<xs:complexType name="parametersType">
   <xs:sequence>
      <xs:element name="parameter" type="bom:parameterType" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: patchType

Super-types: None
Sub-types: None
Name patchType
Abstract no
No documentation provided.
<...
 type="bom:patchClassification" [1] 
>
   <bom:diff> bom:diffType </bom:diff> [0..1] 
   <bom:resolves   > [0..1] 
      Start Sequence [0..*]
         <bom:issue> bom:issueType </bom:issue> [1]
      End Sequence
   </bom:resolves>
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="patchType">
   <xs:sequence>
      <xs:element name="diff" type="bom:diffType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="resolves" minOccurs="0" maxOccurs="1">
         <xs:complexType>
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
               <xs:element name="issue" type="bom:issueType"/>
            </xs:sequence>
         </xs:complexType>
      </xs:element>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="type" type="bom:patchClassification" use="required"/>
</xs:complexType>

Complex Type: patchesType

Super-types: None
Sub-types: None
Name patchesType
Abstract no
<...>
   Start Sequence [0..*]
      <bom:patch> bom:patchType </bom:patch> [1] 
      Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
   End Sequence
</...>
<xs:complexType name="patchesType">
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="patch" type="bom:patchType"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
</xs:complexType>

Complex Type: pedigreeType

Super-types: None
Sub-types: None
Name pedigreeType
Abstract no
<...>
   <bom:ancestors> bom:componentsType </bom:ancestors> [0..1] 
   <bom:descendants> bom:componentsType </bom:descendants> [0..1] 
   <bom:variants> bom:componentsType </bom:variants> [0..1] 
   <bom:commits> bom:commitsType </bom:commits> [0..1] 
   <bom:patches> bom:patchesType </bom:patches> [0..1] 
   <bom:notes> xs:string </bom:notes> [0..1] 
   Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</...>
<xs:complexType name="pedigreeType">
   <xs:sequence>
      <xs:element name="ancestors" type="bom:componentsType" minOccurs="0" maxOccurs="1"/>
      <xs:element name="descendants" type="