
vÅÏ^v  ã               @   sR   d  Z  d d l Z d d l m Z Gd d „  d e ƒ Z Gd d „  d e ƒ Z d S)z'
Utilities for XML generation/parsing.
é    N)ÚXMLGeneratorc               @   s   e  Z d  Z d S)ÚUnserializableContentErrorN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú7/tmp/pip-build-8lau8j11/django/django/utils/xmlutils.pyr   	   s   r   c                   s@   e  Z d  Z d d d d „ Z d d „  Z ‡  f d d †  Z ‡  S)ÚSimplerXMLGeneratorNc             C   sL   | d k r i  } |  j  | | ƒ | d k	 r; |  j | ƒ |  j | ƒ d S)z9Convenience method for adding an element with no childrenN)ÚstartElementÚ
charactersÚ
endElement)ÚselfÚnameÚcontentsÚattrsr   r   r   ÚaddQuickElement   s    z#SimplerXMLGenerator.addQuickElementc             C   s8   | r$ t  j d | ƒ r$ t d ƒ ‚ t j |  | ƒ d  S)Nz[\x00-\x08\x0B-\x0C\x0E-\x1F]z/Control characters are not supported in XML 1.0)ÚreÚsearchr   r   r   )r   Úcontentr   r   r   r      s    zSimplerXMLGenerator.charactersc                s;   | r t  t | j ƒ  ƒ ƒ n | } t ƒ  j | | ƒ d  S)N)ÚdictÚsortedÚitemsÚsuperr
   )r   r   r   Zsorted_attrs)Ú	__class__r   r   r
      s    $z SimplerXMLGenerator.startElement)r   r   r   r   r   r
   r   r   )r   r   r	      s   	r	   )Ú__doc__r   Úxml.sax.saxutilsr   Ú
ValueErrorr   r	   r   r   r   r   Ú<module>   s   