\STc@sdZddlZddlZddlZddlZddlZddlmZmZm Z m Z ddl m Z m Z mZddl mZddl mZddlmZmZddl mZmZmZdd l mZdd l mZdd lmZd dd YZdeejejejfdYZdejfdYZddddeddZ!ddddeddZ"ddddeddZ#ddddeddZ$dS(s Components for reading XML files from a SAX2 producer. WWW: http://4suite.com/4DOM e-mail: support@4suite.com Copyright (c) 2000, 2001 Fourthought Inc, USA. All Rights Reserved. See http://4suite.com/COPYRIGHT for license and copyright information iN(tsaxlibtsaxutilstsax2extsthandler(tEntityt DocumentTypetDocument(tNode(timplementation(t SplitQNamet ReleaseNode(t XML_NAMESPACEtXMLNS_NAMESPACEtEMPTY_NAMESPACE(tElement(tAttr(treadert NsHandlercBs&eZddZdZdZRS(cCs$itd6td6|_g|_dS(Ntxml(R R tNonet _namespacest_namespaceStack(tselftownerDoc((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt initStates cCs@|ji}g}x|jD]\}}t|\}}|dkr#|jj|r|j|||<|r|||j|    &          cCsN|j|jd}|jd=||jjkrJ|jdj|ndS(Ni(RR'R R#R7(RR(R2R0((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt endElementNSs    cCs9|jr5|jdjtjkr5|j||_ndS(s If 'keepAllWs' permits, add ignorable white-space as a text node. A Document node cannot contain text nodes directly. If the white-space occurs outside the root element, there is no place for it in the DOM and it must be discarded. iN(R<R'R`RRaRI(Rtchars((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pytignorableWhitespace s"cCs|j||_dS(N(RI(RRw((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt charactersscCs"i|d6|d6|d6|_dS(NRJRKRL(RG(RRJRKRL((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pytxmlDeclscCs;|jj||||_|js7|jjdndS(NRO(sdoctype(R=RQRFRARHR(RROtpublicIDtsystemID((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pytstartDTD!s cCsV|jr<|j|jj|}|jdj|n|jjd|fdS(NiRN(RARR RVR'R7RHR(Rttextt new_comment((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyRN)s   cCs|jdS(N(R(R((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt startCDATA2s cCsB|jr>|jj|j}|jdj|d|_ndS(NiR@(RIR tcreateCDATASectionR'R7(RRc((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pytendCDATA6s   cCsD|jjj|j|||}|jjjj|dS(N(R t getFactorytcreateNotationtgetDocumentTypet getNotationst setNamedItem(RR(tpublicIdtsystemIdt new_notation((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt notationDecl@s$cCso|jrL|jjj|j|||}|jjjj|n|jjd||||fdS(NRP(R Rt createEntityRt getEntitiesRRHR(RR(RRtndataR((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyRXEs  $cCs |dS(N((Rt exception((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyterrorPscCs |dS(N((RR((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt fatalErrorSsN(R9R:RR?RRR"RRdRgRjRkRuRvRxRyRzR}RNRRRRXRR(((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyR;[s*  0    (       tReadercBs,eZdddeddZddZRS(ic Cs|p'|rtjjp'tjj|_|rnddlm}|j||j}|jj |n|||_ |jj |j |jj |j |jj |j y6|jjt j|j |jjt j|j Wn ttfk rnnXdS(Ni(tcatalog(RtXMLValParserFactoryt make_parsertXMLParserFactorytparsertxml.parsers.xmlprocRt SAX_catalogtCatParserFactorytsetEntityResolverRtsetContentHandlert setDTDHandlertsetErrorHandlert setPropertytproperty_lexical_handlertproperty_declaration_handlert SystemExittKeyboardInterrupt(RtvalidateR>tcatNametsaxHandlerClassRRt cat_handler((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyR?Xs$-cCsE|jjd|tj|}|jj||jj}|S(NR(RRRtprepare_input_sourceRtparseRd(RtstreamRtstrt((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt fromStreamps N(R9R:RR;R?R(((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyRWs icCs(t|||||}|j||S(N(RR(Rt ownerDocumentRR>RRRR((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt FromXmlStreamsc Cs1tj|}t|||||||}|S(N(t cStringIOtStringIOR( R~RRR>RRRtfptrv((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pytFromXmls c CsCt|d}z"t|||||||}Wd|jX|S(Ntr(topenRtclose( tfileNameRRR>RRRRR((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt FromXmlFiles  c CsCtj|}z"t|||||||}Wd|jX|S(N(turllib2turlopenRR( turlRRR>RRRRR((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt FromXmlUrls  ((%t__doc__tsysRlRtosRtxml.saxRRRRtxml.domRRRRRt xml.dom.extR R R R R RRRRtDefaultHandlertLexicalHandlert DeclHandlerR;RRRRRR(((sK/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax2.pyt s.<"A (