File: //lib64/python2.7/site-packages/drv_libxml2.pyo
�
�hc           @   s7  d  Z  d Z d Z d d l Z d d l m Z m Z e e f Z d d l Td 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 e j d	 � d
 Z d �  Z y d d l Z Wn# e k
 r� Z e d e � � n Xd
 e
 j f d �  �  YZ d e
 j f d �  �  YZ  d �  Z! d S(   s�   A SAX2 driver for libxml2, on top of it's XmlReader API
USAGE
    # put this file (drv_libxml2.py) in PYTHONPATH
    import xml.sax
    reader = xml.sax.make_parser(["drv_libxml2"])
    # ...and the rest is standard python sax.
CAVEATS
    - Lexical handlers are supported, except for start/endEntity
      (waiting for XmlReader.ResolveEntity) and start/endDTD
    - Error callbacks are not exactly synchronous, they tend
      to be invoked before the corresponding content callback,
      because the underlying reader interface parses
      data by chunks of 512 bytes
    
TODO
    - search for TODO
    - some ErrorHandler events (warning)
    - some ContentHandler events (setDocumentLocator, skippedEntity)
    - EntityResolver (using libxml2.?)
    - DTDHandler (if/when libxml2 exposes such node types)
    - DeclHandler (if/when libxml2 exposes such node types)
    - property_xml_string?
    - feature_string_interning?
    - Incremental parser
    - additional performance tuning:
      - one might cache callbacks to avoid some name lookups
      - one might implement a smarter way to pass attributes to startElement
        (some kind of lazy evaluation?)
      - there might be room for improvement in start/endPrefixMapping
      - other?
u    Stéphane Bidoul <sbi@skynet.be>s   0.3i����N(   t
   StringTypet   UnicodeType(   t   *(   t	   xmlreadert   saxutils(
   t   feature_namespacest   feature_namespace_prefixest   feature_string_interningt   feature_validationt   feature_external_gest   feature_external_pest   property_lexical_handlert   property_declaration_handlert   property_dom_nodet   property_xml_stringt   utf8i   c         C   s"