Ignore:
Timestamp:
21/08/07 12:18:44 (12 years ago)
Author:
lawrence
Message:

Last bug fixes (well, fixes to handle content problems)
for ticket:853

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server/models
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/ndgRetrieve.py

    r2819 r2834  
    7171    if e is not None: 
    7272        return 0,'Document retrieve[%s] failed [%s]'%(uri,cgi.escape(e)) 
    73          
     73     
     74    try: 
    7475    x=xmlHandler2.xmlHandler(r,string=1) 
     76    return 1,x 
     77    except Exception,e: 
     78        logString='Document parse for [%s] failed [%s]'%(uri,e) 
     79        if logger: logger.info(logString) 
     80        return 0,'''<p>Unable to parse documment [%s]<br/>  
     81                    Reason was [%s]</p>'''%(uri,cgi.escape(str(e))) 
    7582     
    76     return 1,x 
    7783     
    7884import unittest 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/stubB.py

    r2791 r2834  
    212212                    if elem is not None: break 
    213213                if elem is None: 
    214                     f=file('tmp.xml','w') 
    215                     f.write(self.xml) 
    216                     f.close() 
    217214                    raise ValueError('StubB record does not contain an Activity, DE, DPT, ObsStn') 
    218215                elif elem.tag=='dgDataEntity': 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/xmlHandler2.py

    r2832 r2834  
    1414from xml.parsers.expat import ExpatError 
    1515import StringIO, re 
     16XMLHDR='<?xml version="1.0"' 
    1617 
    1718class xmlHandler: 
     
    2425         
    2526        self.r1=None   # we only use the regex if we need them 
    26          
     27 
    2728        if string: 
    2829            self.xmls=xml 
     
    3233            self.xmls=file(xmlf,'r').read() 
    3334         
     35        # Unfortunately we never know whether the incoming xml content is 
     36        # unicode or a string ... 
     37        try: 
     38            self.xmls=unicode(self.xmls,'utf-8') 
     39        except: 
     40            pass 
     41        self.xmls=self.xmls.encode('utf-8','replace') 
     42         
    3443        self.realns={}             
    3544        self.__getns() 
    3645         
    37         if xmlf is None:  
    38             xmlf=StringIO.StringIO(self.xmls.encode('utf-8')) # StringIO is supposed to be unicode! .encode('utf-8')) 
    39         
    4046        try: 
    41             self.tree=ET.parse(xmlf).getroot() 
     47            self.tree=ET.XML(self.xmls) 
    4248        except SyntaxError: 
    4349            self.xmls=self.__fixXML(self.xmls) 
    44             xmlf=StringIO.StringIO(self.xmls.encode('utf-8')) 
    45             self.tree=ET.parse(xmlf).getroot() 
     50            self.tree=ET.XML(self.xmls) 
     51         
    4652             
    4753        self.__updatens() 
     
    5460         
    5561 
    56         if self.xmls[0:19]=='<?xml version="1.0"': 
     62        if self.xmls[0:19]==XMLHDR: 
    5763            self.root=1 
    5864            hb1=self.xmls.find('>')+1 
Note: See TracChangeset for help on using the changeset viewer.