
    ܖi                     N   U d dgZ ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZ ddlmZ dd	lmZ d
dlmZmZmZ erddlmZ dZeeeef      ed<   	 ddlmZmZmZ erddlm Z!  G d de      Z# G d dee      Z$ G d d e$ee      Z%y# e$ rZ" ed      e"fZY dZ"["9dZ"["ww xY w)XmlValidatorXmlValidationError    )ABC)Iterable)TYPE_CHECKINGLiteralOptionalUnionoverload   )"MissingOptionalDependencyException)OutputFormat)BOM_XML   )BaseSchemabasedValidatorSchemabasedValidatorValidationError)SchemaVersionN_missing_deps_error)	XMLParser	XMLSchema
fromstring)	_LogEntryzzThis functionality requires optional dependencies.
Please install `cyclonedx-python-lib` with the extra "xml-validation".
c                       e Zd Zedd       Zy)r   c                      | |      S )ue   ⚠️ This is an internal API. It is not part of the public interface and may change without notice. )clses     \/var/www/html/content-pipeline/venv/lib/python3.12/site-packages/cyclonedx/validation/xml.py_make_from_xlez!XmlValidationError._make_from_xle3   s     1v    N)r   _XmlLogEntryreturnr   )__name__
__module____qualname__classmethodr    r   r!   r   r   r   2   s     r!   c                       e Zd ZU edeej                     fd       Zd fdZe	ddde
ded	   dee   fd
       Ze	de
ded   deee      fd       Zd	dde
dededeee   f   fdZereZd	dde
dededeee   f   fdZ xZS d	dde
dededeee   f   fdZdZed   ed<   edefd       Zedd       Z xZS )_BaseXmlValidatorr#   c                 "    t         j                  S N)r   XMLselfs    r   output_formatz_BaseXmlValidator.output_format<   s    r!   Nc                 $    t         |   |       y r+   )super__init__)r.   schema_version	__class__s     r   r2   z_BaseXmlValidator.__init__@   s    (r!   .)
all_errorsdatar5   Fc                     y r+   r   r.   r6   r5   s      r   validate_strz_BaseXmlValidator.validate_strF       r!   Tc                     y r+   r   r8   s      r   r9   z_BaseXmlValidator.validate_strJ   r:   r!   c                     y r+   r   r8   s      r   r9   z_BaseXmlValidator.validate_strN   s     	r!   c                <    | j                   d   | j                   d   )Nr   r   )_BaseXmlValidator__MDERRORr8   s      r   r9   z_BaseXmlValidator.validate_strX   s     ..#)::r!   c                   | j                   }|j                  t        t        |d      | j                              }|ry |j
                  }|rt        t        j                  |      S t        j                  |j                        S )Nutf8)encoding)parser)

_validatorvalidatexml_fromstringbytes_BaseXmlValidator__xml_parser	error_logmapr   r    
last_error)r.   r6   r5   	validatorvaliderrorss         r   r9   z_BaseXmlValidator.validate_str^   s     I&&$0,,./E ((F )88&A J'66v7H7HIJr!   r   _BaseXmlValidator__validatorc           
      (    t        dddddddd      S )NFT)attribute_defaultsdtd_validationload_dtd
no_networkresolve_entities	huge_treecompactrecover)r   r-   s    r   __xml_parserz_BaseXmlValidator.__xml_parsero   s%    #(!& r!   c                     | j                   s*| j                  }|t        d      t        |      | _         | j                   S )Nzmissing schema file)file)rN   _schema_fileNotImplementedErrorr   )r.   schema_files     r   rC   z_BaseXmlValidator._validatorz   sA    ##"//&-.CDD#,+#> ###r!   )r3   r   r#   N)r#   r   )r$   r%   r&   propertyr   r   r,   r/   r2   r   strr	   r   r9   r   boolr
   r   r>   rN   __annotations__r   rG   rC   __classcell__)r4   s   @r   r)   r)   :   s    w|'7'78    ) FI  WU^ hWiNj    WT] xPXYkPlGm   05(,	t'2D)EE	F '	 49	;	;,0	;4+X6H-IIJ	; 49	J	J,0	J4+X6H-IIJ	J .2Xk*1		) 	 
	 
	$ 
	$r!   r)   c                   ,    e Zd ZdZedee   fd       Zy)r   z0Validator for CycloneDX documents in XML format.r#   c                 @    t        j                  | j                        S r+   )_S_BOMgetr3   r-   s    r   r[   zXmlValidator._schema_file   s    zz$--..r!   N)r$   r%   r&   __doc__r^   r	   r_   r[   r   r!   r   r   r      s"    :/hsm / /r!   )&__all__abcr   collections.abcr   typingr   r   r	   r
   r   	exceptionr   schemar   schema._resr   re    r   r   r   r   r   tupleImportErrorra   
lxml.etreer   r   r   rE   r   r"   errr   r)   r   r   r!   r   <module>rt      s   & 1>/
0  $ D D : ! + M M&X\ Xe$F$STU \  8 G$0# G$T/$&>@T /s  <	S s   B B$
BB$