\STc@s\dZddlZddlZddlZddlZddlmZmZmZddl m Z m Z m Z ddl m Z m Z ddl m Z ddlmZmZddlmZd ejfd YZd ejfd YZdd d deddZdd d deddZdd d deddZdd d deddZdS(s Components for reading XML files from a SAX producer. WWW: http://4suite.com/4DOM e-mail: support@4suite.com Copyright (c) 2000 Fourthought Inc, USA. All Rights Reserved. See http://4suite.com/COPYRIGHT for license and copyright information iN(tsaxlibtsaxextstdrivers(tEntityt DocumentTypetDocument(RR(timplementation(t SplitQNamet ReleaseNode(treadertXmlDomGeneratorcBseZddZddZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZRS(icCs ||_dS(N(t _keepAllWs(tselft keepAllWs((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt__init__s cCs|dkrHtjddd}tjdd||_|j|_n||_|jj|_g|_|jj|jd|_ dS(s If None is passed in as the doc, set up an empty document to act as owner and also add all elements to this document tN( tNoneRtcreateDocumentTypetcreateDocumentt _ownerDoct _rootNodetcreateDocumentFragmentt _nodeStacktappendt _currText(R townerDoctdt((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt initStates    cCs|j|jS(N(t_completeTextNodeR(R ((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt getRootNode/s cCsB|jr>|jj|j}|jdj|d|_ndS(NiR(RRtcreateTextNodeRt appendChild(R tnew_text((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyR3s cCs8|jj|j|||}|jjjj|dS(N(RtcreateNotationt documentTypet notationst setNamedItem(R tnametpublicIdtsystemIdt new_notation((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt notationDecl:scCs5tj|j|||}|jjjj|dS(N(Rt createEntityRR"tentitiesR$(R R%R&R't notationNameR(((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pytunparsedEntityDecl>scCs7|j|jj||}|jdj|dS(Ni(RRtcreateProcessingInstructionRR(R ttargettdatatp((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pytprocessingInstructionCs cCs[|j|jj|}x(|jD]}|j|||q)W|jj|dS(N(RRt createElementtkeyst setAttributeRR(R R%tattribst new_elementtcurr_attrib_key((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt startElementHs cCs9|j|jd}|jd=|jdj|dS(Ni(RRR(R R%R7((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt endElementSs   cCs+|jr'|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. N(R R(R tchtstarttlength((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pytignorableWhitespaceYs cCs|j||||!|_dS(N(R(R R;R<R=((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt characterscscCs |dS(N((R t exception((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyterrorjscCs |dS(N((R R@((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt fatalErrormsN(t__name__t __module__RRRRRR)R-R2R9R:R>R?RARB(((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyR s          tReadercBs5eZdddeddZdZddZRS(icCs|p'|rtjjp'tjj|_|rnddlm}|j||j}|jj |n|||_ |jj |j |jj |j |jj |j dS(Ni(tcatalog(RtXMLValParserFactoryt make_parsertXMLParserFactorytparsertxml.parsers.xmlprocRFt SAX_catalogtCatParserFactorytsetEntityResolverthandlertsetDocumentHandlert setDTDHandlertsetErrorHandler(R tvalidateR tcatNametsaxHandlerClassRJRFt cat_handler((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyRrs-cCst|dS(N(R(R tnode((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt releaseNodescCs0|jjd||jj||jjS(NR(RORRJt parseFileR(R tstreamt ownerDocument((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt fromStreamsN(RCRDRR RRXR\(((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyREqs  icCs(t|||||}|j||S(N(RER\(RZR[RSR RTRURJR ((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt FromXmlStreamsc Cs1tj|}t|||||||}|S(N(t cStringIOtStringIOR]( ttextR[RSR RTRURJtfptrv((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pytFromXmls c CsCt|d}z"t|||||||}Wd|jX|S(Ntr(topenR]tclose( tfileNameR[RSR RTRURJRaRb((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt FromXmlFiles  c CsCtj|}z"t|||||||}Wd|jX|S(N(turllib2turlopenR]Rf( turlR[RSR RTRURJRaRb((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt FromXmlUrls  (t__doc__tsyststringR^Ritxml.saxRRRtxml.domRRRRt xml.dom.extRRR t HandlerBaseR RERR]RcRhRl(((sJ/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/reader/Sax.pyt s"0[