def set_xsd(self): """Setejar el fitxer xsd""" if self.tipus not in XSD_DATA: msg = _('Codi de proces \'%s\' no suportat') % self.tipus raise except_f1('Error', msg) if self.pas not in XSD_DATA[self.tipus]: msg = _('Codi de pas \'%s\' no suportat') % self.pas raise except_f1('Error', msg) try: if isinstance(XSD_DATA[self.tipus][self.pas], tuple): trobat = False root = objectify.fromstring(self.str_xml) for fitxer in XSD_DATA[self.tipus][self.pas]: if fitxer.split(".xsd")[0] in root.tag: trobat = True break if not trobat: msg = (_('Tipus de fitxer \'%s\' no suportat') % root.tag) raise except_f1('Error', msg) else: fitxer = XSD_DATA[self.tipus][self.pas] self._header = fitxer.split(".xsd")[0] xsd = switching.get_data(fitxer) self.f_xsd = open(xsd, 'r') except: msg = (_('Fitxer \'%s\' corrupte') % switching.get_data(XSD_DATA[self.tipus])) raise except_f1('Error', msg)
if fitxer.split(".xsd")[0] in root.tag: trobat = True break if not trobat: msg = (_('Tipus de fitxer \'%s\' no suportat') % root.tag) raise except_f1('Error', msg) else: fitxer = XSD_DATA[self.tipus][self.pas] self._header = fitxer.split(".xsd")[0] xsd = switching.get_data(fitxer) self.f_xsd = open(xsd, 'r') except except_f1, e: raise e except: msg = (_('Fitxer \'%s\' corrupte') % switching.get_data(XSD_DATA[self.tipus])) raise except_f1('Error', msg) def get_pas_xml(self): """Obtenir el pas del missatge""" return self.pas def parse_xml(self): """Importar el contingut de l'xml""" self.check_fpos(self.f_xsd) schema = etree.XMLSchema(file=self.f_xsd) parser = objectify.makeparser(schema=schema) try: self.obj = objectify.fromstring(self.str_xml, parser) except Exception, e: raise except_f1('Error', _(u'Document invàlid: {0}').format(e))