
    ܖiC                     T   U d dl mZmZmZmZmZ d dlmZ d dl	m
ZmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZmZ ddlmZmZ erdd	lm Z   G d
 dee      Z! G d de!e      Z" G d de!e      Z# G d de!e      Z$ G d de!e      Z% G d de!e      Z& G d de!e      Z' G d de!e      Z( G d de!e      Z)ejT                  e)ejV                  e(ejX                  e'ejZ                  e&ej\                  e%ej^                  e$ej`                  e#ejb                  e"iZ2e3ee4e!   f   e5d<   y)    )TYPE_CHECKINGAnyLiteralOptionalUnion)parseString)Elementtostring   )OutputFormatSchemaVersion)
SCHEMA_VERSIONSBaseSchemaVersionSchemaVersion1Dot0SchemaVersion1Dot1SchemaVersion1Dot2SchemaVersion1Dot3SchemaVersion1Dot4SchemaVersion1Dot5SchemaVersion1Dot6SchemaVersion1Dot7   )
BaseOutputBomRefDiscriminator)Bomc                        e Zd Zd fdZedefd       Zedeej                     fd       Z
ddeddfdZedeeeef      defd	       Zdd
deeeef      dedefdZdefdZ xZS )XmlreturnNc                 4    t         |   |       d| _        y )N)bom )super__init___bom_xml)selfr    	__class__s     X/var/www/html/content-pipeline/venv/lib/python3.12/site-packages/cyclonedx/output/xml.pyr#   zXml.__init__+   s    S!    c                     | j                   S N)schema_version_enumr%   s    r'   schema_versionzXml.schema_version/   s    '''r(   c                 "    t         j                  S r*   )r   XMLr,   s    r'   output_formatzXml.output_format3   s    r(   force_regenerationc           	      l   | j                   r|sy t        | j                     }| j                         }|j	                          | j                         }t        j                  |      5  dt        |j                  |d|      d|dd      z   | _
        d d d        d| _         y # 1 sw Y   d| _         y xY w)Nz<?xml version="1.0" ?>
F)	as_stringxmlnsxmlunicode)methoddefault_namespaceencodingxml_declarationT)	generatedr   r+   get_bomvalidateget_target_namespacer   from_bom	xml_dumpsas_xmlr$   )r%   r1   _viewr    r4   s        r'   generatezXml.generate7   s    >>"4 8 89lln))+ ))#. 		'6

U%  9	
 !&:' 'DM		' 		' s   (+B##B3vc                 R    t        | t              rd| z  S t        | t              r| S y)N r!   )
isinstanceintstr)rD   s    r'   __make_indentzXml.__make_indentL   s'    a7NaHr(   indentrL   kwargsc                    | j                          || j                  S t        | j                        j                  | j	                  |            S )NrK   )rC   r$   dom_parseStringtoprettyxml_Xml__make_indent)r%   rL   rM   s      r'   output_as_stringzXml.output_as_stringT   sM     	 &t}} 	
OMM5&;%%f- ' 
	
r(   c                 (    d| j                          S )Nz http://cyclonedx.org/schema/bom/)get_schema_versionr,   s    r'   r>   zXml.get_target_namespace^   s    1$2I2I2K1LMMr(   )r    r   r   N)F)__name__
__module____qualname__r#   propertyr   r-   r   r   r/   r0   boolrC   staticmethodr   r   rH   rI   rQ   r   rR   r>   __classcell__)r&   s   @r'   r   r   *   s      ( ( (  w|'7'78    4 D * %S/2 s   >B
!)%S/!:
#&
+.
Nc Nr(   r   c                       e Zd ZdefdZy)	XmlV1Dot0r   c                 <    t        d| j                         dd      S )Nr    1)r4   version)
XmlElementr>   r,   s    r'   _create_bom_elementzXmlV1Dot0._create_bom_elementd   s    %4+D+D+FSV!WXXr(   N)rU   rV   rW   ra   rb    r(   r'   r]   r]   b   s    YZ Yr(   r]   c                       e Zd Zy)	XmlV1Dot1NrU   rV   rW   rc   r(   r'   re   re   h       r(   re   c                       e Zd Zy)	XmlV1Dot2Nrf   rc   r(   r'   ri   ri   l   rg   r(   ri   c                       e Zd Zy)	XmlV1Dot3Nrf   rc   r(   r'   rk   rk   p   rg   r(   rk   c                       e Zd Zy)	XmlV1Dot4Nrf   rc   r(   r'   rm   rm   t   rg   r(   rm   c                       e Zd Zy)	XmlV1Dot5Nrf   rc   r(   r'   ro   ro   x   rg   r(   ro   c                       e Zd Zy)	XmlV1Dot6Nrf   rc   r(   r'   rq   rq   |   rg   r(   rq   c                       e Zd Zy)	XmlV1Dot7Nrf   rc   r(   r'   rs   rs      rg   r(   rs   BY_SCHEMA_VERSIONN)6typingr   r   r   r   r   xml.dom.minidomr   rO   xml.etree.ElementTreer	   ra   r
   r@   schemar   r   schema.schemar   r   r   r   r   r   r   r   r   r   r!   r   r   	model.bomr   r   r]   re   ri   rk   rm   ro   rq   rs   V1_7V1_6V1_5V1_4V1_3V1_2V1_1V1_0rt   dicttype__annotations__rc   r(   r'   <module>r      s4  & @ ? : N 0   .5N
Z 5NpY' Y	' 		' 		' 		' 		' 		' 		' 	
 									5 4tCy01 	r(   