-
H=c       s     d  Z    d k Z d k Z d k Z d k Z d k Z d k Z 
 d k T d k T d k	 T d f  d     YZ
  d e f d     YZ d S(   s   This is the parts of xmlproc that are specific to validation. They
are an application class that receive data from the parser and a
subclass of the parser object that sets this up.

$Id: xmlval.py,v 1.16 2002/07/17 17:43:14 mikeolson Exp $
N(   s   *s   XMLValidatorc      s   d  Z    d   Z  d   Z ! d   Z + d   Z . d   Z 1 d   Z 4 d   Z 9 d   Z < d	   Z	 ? d
   Z
 B d   Z E d   Z I d d  Z L d   Z O d   Z R d   Z U d   Z X d   Z [ d   Z ^ d   Z a d   Z d d   Z g d d  Z j d   Z m e d  Z r d   Z v d   Z z d   Z  d   Z  d    Z  d!   Z  RS("   s   XML parser that validates a document and does some of what is required
    of a validating parser, like adding fixed and default attribute values
    etc.c    sb     t    |  _  t   |  _  t |  i  |  _  t |  i |  i  |  _  |  i	   d  S(   N(
   s   XMLProcessors   selfs   parsers   Applications   apps   CompleteDTDs   dtds   ValidatingApps   vals   reset(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   __init__ s
   c    s     |  i i |  d  S(   N(   s   selfs   parsers   parse_resources   sysid(   s   selfs   sysid(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   parse_resource s   c    s   ! " |  i i   # |  i i   % |  i i   & |  i i |  i  ' |  i |  i _ ( |  i |  i _ ) |  i i d  d  S(   Ni   (   s   selfs   dtds   resets   vals   parsers   set_applications   ents   set_read_external_subset(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   reset! s   c    s   + , |  i i |  d  S(   N(   s   selfs   parsers   feeds   data(   s   selfs   data(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   feed+ s   c    s   . / |  i i   d  S(   N(   s   selfs   parsers   close(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   close. s   c    s   1 2 |  i i   d  S(   N(   s   selfs   parsers   deref(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   deref1 s   c    s<   4 5 | |  _  6 |  i i |  i   7 | i |  i  d  S(   N(   s   apps   selfs   vals   set_real_apps   set_locators   parser(   s   selfs   app(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_application4 s   c    s   9 : |  i i |  d  S(   N(   s   selfs   parsers   set_error_languages   language(   s   selfs   language(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_error_language9 s   c    s   < = |  i i |  d  S(   N(   s   selfs   parsers   set_error_handlers   err(   s   selfs   err(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_error_handler< s   c    s   ? @ |  i i |  d  S(   N(   s   selfs   parsers   set_dtd_listeners   dtd_listener(   s   selfs   dtd_listener(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_dtd_listener? s   c    s   B C |  i i |  d  S(   N(   s   selfs   parsers   set_inputsource_factorys   isf(   s   selfs   isf(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_inputsource_factoryB s   c    s-   E F |  i i |  G |  i i |  d  S(   N(   s   selfs   vals   set_pubid_resolvers   pubress   parser(   s   selfs   pubres(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_pubid_resolverE s   i    c    s   I J |  i i |  d  S(   N(   s   selfs   parsers   set_data_after_wf_errors
   stop_on_wf(   s   selfs
   stop_on_wf(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_data_after_wf_errorI s   c    s   L M |  i i |  d  S(   N(   s   selfs   parsers	   set_sysids   sysid(   s   selfs   sysid(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys	   set_sysidL s   c    s
   O P d  S(   N(    (   s   selfs   read_it(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_read_external_subsetO s   c    s   R S |  i Sd  S(   N(   s   selfs   dtd(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_dtdR s   c    s   U V |  i i   Sd  S(   N(   s   selfs   parsers   get_current_sysid(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_current_sysidU s   c    s   X Y |  i i   Sd  S(   N(   s   selfs   parsers
   get_offset(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys
   get_offsetX s   c    s   [ \ |  i i   Sd  S(   N(   s   selfs   parsers   get_line(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_line[ s   c    s   ^ _ |  i i   Sd  S(   N(   s   selfs   parsers
   get_column(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys
   get_column^ s   c    s   a b |  i i   d  S(   N(   s   selfs   parsers
   parseStart(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys
   parseStarta s   c    s   d e |  i i   d  S(   N(   s   selfs   parsers   parseEnd(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   parseEndd s   i @  c    s   g h |  i i | |  d  S(   N(   s   selfs   parsers	   read_froms   files   bufsize(   s   selfs   files   bufsize(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys	   read_fromg s   c    s   j k |  i i   d  S(   N(   s   selfs   parsers   flush(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   flushj s   c    s   m n |  i i | |  d  S(   N(   s   selfs   parsers   report_errors   errnos   args(   s   selfs   errnos   args(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   report_errorm s   c    s   r s t |  i i Sd S(   s>   Returns the internal element stack. Note: this is a live list!N(   s   selfs   parsers   stack(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_elem_stackr s   c    s   v w x |  i i Sd S(   s    Returns the current data buffer.N(   s   selfs   parsers   data(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_data_bufferv s   c    s   z | } |  i i Sd S(   sP   Returns the start position of the current construct (tag, comment,
        etc).N(   s   selfs   parsers   prepos(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_construct_startz s   c    s      |  i i Sd S(   sN   Returns the end position of the current construct (tag, comment,
        etc).N(   s   selfs   parsers   pos(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_construct_end s   c    s*      |  i i |  i i |  i i !Sd S(   s.   Returns the raw form of the current construct.N(   s   selfs   parsers   datas   preposs   pos(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_raw_construct s   c    s#      t  d   |  i i  Sd S(   ss   Returns a snapshot of the entity stack. A list of the system
        identifier of the entity and its name, if any.c    s    |  d |  d f S(   Ni    i	   (   s   ent(   s   ent(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   <lambda> s    N(   s   maps   selfs   parsers	   ent_stack(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   get_current_ent_stack s   (!   s   __doc__s   __init__s   parse_resources   resets   feeds   closes   derefs   set_applications   set_error_languages   set_error_handlers   set_dtd_listeners   set_inputsource_factorys   set_pubid_resolvers   set_data_after_wf_errors	   set_sysids   set_read_external_subsets   get_dtds   get_current_sysids
   get_offsets   get_lines
   get_columns
   parseStarts   parseEnds	   read_froms   flushs   Nones   report_errors   get_elem_stacks   get_data_buffers   get_construct_starts   get_construct_ends   get_raw_constructs   get_current_ent_stack(    (    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   XMLValidator s@   	
s   ValidatingAppc      s    d  Z    d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d	   Z	 d
   Z
 )d   Z 0d   Z 7d   Z :d   Z =d   Z @d   Z Cd   Z RS(   s@   The object that uses the DTD to actually validate XML documents.c    sJ     | |  _   | |  _  t   |  _  t   |  _  |  i   d  S(   N(   s   dtds   selfs   parsers   Applications   realapps   PubIdResolvers   pubress   reset(   s   selfs   dtds   parser(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   __init__ s
   c    sO     t  |  _  d |  _  g  |  _  h  |  _  g  |  _  d |  _ d  S(   Ni    (   s   Nones   selfs   cur_elems	   cur_states   stacks   idss   idrefss
   _seen_root(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   reset s   c    s     | |  _ d  S(   N(   s   apps   selfs   realapp(   s   selfs   app(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_real_app s   c    s     | |  _  d  S(   N(   s   pubress   self(   s   selfs   pubres(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_pubid_resolver s   c    s-     t  i |  |   |  i i |  d  S(   N(   s   Applications   set_locators   selfs   locators   realapp(   s   selfs   locator(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_locator s   c    s    |  i i   }  |  i t j o  |  i d j o  |  i i |  i |  }  | d j os  |  i i
 |  i |  }  | o4  |  i i d | d | f   | d |  _ n  |  i i d |  n  | |  _ n  |  i i |  i |  i f  nC  |  i o | t j o
 | | j o  |  i i d |  n  d |  _  yP  |  i i |  |  _  |  i i   |  _  |  i |  i i |  |  Wn8  t j
 o)  |  i i d |   d |  _ n X |  i i | |  d  S(   Nii    i  i   i  i  i  (   s   selfs   dtds   get_root_elems	   decl_roots   cur_elems   Nones	   cur_states
   next_states   names   nexts   next_state_skips   skips   parsers   report_errors   stacks   appends
   _seen_roots   get_elems   get_start_states   validate_attributess   attrss   KeyErrors   realapps   handle_start_tag(   s   selfs   names   attrss   skips	   decl_roots   next(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   handle_start_tag s.   
 #(#c    s      |  i t j o |  i i |  i  oD  |  i i |  i  }  |  i i d | t
 i | d  f  n  |  i i |   |  i g  j o-  |  i d \ |  _ |  _  |  i d =n d S(   s>   Notifies the application of end tags (and empty element tags).i  s   , iN(   s   selfs   cur_elems   Nones   final_states	   cur_states   get_valid_elementss   valids   parsers   report_errors   names   strings   joins   realapps   handle_end_tags   stack(   s   selfs   names   valid(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   handle_end_tag s   *,c    s      |  i t j o |  i d j o  |  i i |  i d  }  | d j on  |  i i | | |   xD | | | !D ]2 }  | d j o  |  i i d   Pn q~ W d Sn  | |  _ n  |  i i | | |  d S(   s+   Notifies the application of character data.is   #PCDATAi    s    	
i  N(   s   selfs   cur_elems   Nones	   cur_states
   next_states   nexts   realapps   handle_ignorable_datas   datas   starts   ends   chs   parsers   report_errors   handle_data(   s   selfs   datas   starts   ends   chs   next(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   handle_data s   # 	c    s     xD| i   D ]3}  y  | i |  } Wn2  t j
 o#  |  i i	 d |   q n X | i
 d j o'  t i t i | |   | | <n | i | | |  i  | i
 d j oP |  i i | |  o |  i i	 d | |  n d |  i | | <n)| i
 d j o6 |  i i |  i i   |  i i   | | f  n | i
 d j oV xL t i | |  D]4 } |  i i |  i i   |  i i   | f  qWnw | i
 d j o |  i | |  nL | i
 d	 j o8 x. t i | |  D] } |  i |  q+Wn q Wxg | i   D]V } | i |  } | i d
 j o | i |  o |  i i	 d |  n q`Wd S(   sg   Validates the attributes against the element declaration and adds
        fixed and default attributes.i  s   CDATAs   IDi  s    s   IDREFs   IDREFSs   ENTITYs   ENTITIESs	   #REQUIREDi  N(   s   attrss   keyss   attrs   elements   get_attrs   decls   KeyErrors   selfs   parsers   report_errors   types   strings   joins   splits   validates   idss   has_keys   idrefss   appends   locators   get_lines
   get_columns   idrefs$   _ValidatingApp__validate_attr_entrefs   ent_refs   get_attr_list(   s   selfs   elements   attrss   decls   ent_refs   idrefs   attr(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   validate_attributes s@    	'6 	6 	 	$c    s   y |  i i |  } | i d j o  |  i i d  nP "y #|  i i | i  Wn/ $t	 j
 o  %|  i i d | i  n XWn, &t	 j
 o '|  i i d |  n Xd  S(   Ns    i  i  i  (
   s   selfs   dtds
   resolve_ges   names   ents   notations   parsers   report_errors   get_notations   KeyError(   s   selfs   names   ent(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   __validate_attr_entrefs   "c    sk   )*xN |  i D*]@ \ } } } +|  i i |  o ,|  i i d |  n q W.|  i	 i
   d  S(   Ni  (   s   selfs   idrefss   lines   cols   ids   idss   has_keys   parsers   report_errors   realapps   doc_end(   s   selfs   ids   lines   col(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   doc_end)s
    c    s/   01|  i i | | |  2| |  i _ d  S(   N(   s   selfs   realapps   handle_doctypes   rootnames   pub_ids   sys_ids   dtds	   root_elem(   s   selfs   rootnames   pub_ids   sys_id(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   handle_doctype0s   c    s   78|  i i   d  S(   N(   s   selfs   realapps	   doc_start(   s   self(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys	   doc_start7s   c    s   :;|  i i |  d  S(   N(   s   selfs   realapps   handle_comments   data(   s   selfs   data(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   handle_comment:s   c    s    =>|  i i | | |  d  S(   N(   s   selfs   realapps   handle_ignorable_datas   datas   starts   end(   s   selfs   datas   starts   end(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   handle_ignorable_data=s   c    s   @A|  i i | |  d  S(   N(   s   selfs   realapps	   handle_pis   targets   data(   s   selfs   targets   data(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys	   handle_pi@s   c    s    CD|  i i | | |  d  S(   N(   s   selfs   realapps   set_entity_infos   xmlvers   encs   sddecl(   s   selfs   xmlvers   encs   sddecl(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   set_entity_infoCs   (   s   __doc__s   __init__s   resets   set_real_apps   set_pubid_resolvers   set_locators   handle_start_tags   handle_end_tags   handle_datas   validate_attributess$   _ValidatingApp__validate_attr_entrefs   doc_ends   handle_doctypes	   doc_starts   handle_comments   handle_ignorable_datas	   handle_pis   set_entity_info(    (    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   ValidatingApp s$   	#*(   s   __doc__s   urlparses   oss   anydbms   strings   cPickles   times   xmlprocs   xmldtds   xmlapps   XMLValidators   Applications   ValidatingApp(   s   urlparses   cPickles   anydbms   strings   times   XMLValidators   oss   ValidatingApp(    (    sM   /usr/local/twc/lib/python2.2/site-packages/_xmlplus/parsers/xmlproc/xmlval.pys   ? s   9


