�
��Vc�� c s� � d Z ddlmZmZmZ ddlmZmZmZ ddlm Z ddl
mZmZ ddl
mZ ej Zej Zej Zej j Zej j Zej j Zej j Z ej � � Z ej dd� � ej dd � � ej dd
� � ej dd� � ej dd� � ej dd
� � ej dd� � ej dd� � ej dd� � d� Z G d� de� � Zd� Zd� Z G d� d� � ZeeefZ G d� de� � Z! G d� de� � Z" G d� de"� � Z# G d� de"� � Z$d Z%d!e%z Z& G d"� d#e� � Z' G d$� d%� � Z( G d&� d'e(e� � Z) G d(� d)e(e'� � Z* G d*� d+e+� � Z, G d,� d-e� � Z-d4d/�Z.d4d0�Z/d4d1�Z0d4d2�Z1d3� Z2dS )5z�Facility to use the Expat parser to load a minidom instance
from a string or file.
This avoids all the overhead of SAX and pulldom to gain performance.
� )�
xmlbuilder�minidom�Node)�EMPTY_NAMESPACE�EMPTY_PREFIX�XMLNS_NAMESPACE)�expat)�
_append_child�_set_attribute_node)�
NodeFilterNZcdataZenumeration�entity�entities�idZidrefZidrefsZnmtokenZnmtokens) ZCDATA�ENUMZENTITYZENTITIES�IDZIDREFZIDREFSZNMTOKENZNMTOKENSc sJ � e Zd ZdZdd�Zd� Zd� Zd� Zd� Zd� Z d � Z
d
� Zd� ZdS )
�ElementInfo��
_attr_info�_model�tagNameNc s0 � || _ g | _ || _ d S �N)r r r )�selfr �model� �-/usr/lib64/python3.11/xml/dom/expatbuilder.py�__init__zElementInfo.__init__? s � ������������ c s* � | j | j | j fS r r �r � r �__getstate__zElementInfo.__getstate__D s � �����T�\�9�9r c s0 � |\ | _ | _ | _ d S r r )r Zstate� r �__setstate__zElementInfo.__setstate__G s � �5:�2�����d�l�l�lr c s� � | j D ]F}|d |k r8|d }|d dk rt d c S t |d c S �Gt j S )N� �����r z(r )r �
_typeinfo_mapr �_no_type)r �aname�infoZt� r �getAttributeTypezElementInfo.getAttributeTypeJ ss � ��O� 3� 3�D��A�w�%��
3���H���Q�4�3�;� 3�(��0�0�0�0�(��b��2�2�2�2�
3� ��r c s � t j S r )r r$ )r �namespaceURI� localNamer r �getAttributeTypeNSzElementInfo.getAttributeTypeNST s � ���r c sv � | j r1| j d }|t j j t j j fvS dS �Nr F)r r r Z
XML_CTYPE_ANYZXML_CTYPE_MIXED)r �typer r �isElementContentzElementInfo.isElementContentW s? � ��;� ��;�q�>�D���� 9� %�� ;� =� =�
=� �5r c sT � | j r | j d t j j k S dS r, )r r r ZXML_CTYPE_EMPTYr r r �isEmptyzElementInfo.isEmpty_ s'