예제 #1
0
파일: exposure.py 프로젝트: pslh/oq-engine
 def _parse(self):
     try:
         for i in self._do_parse():
             yield i
     except etree.XMLSyntaxError as ex:
         # when using .iterparse, the error message does not
         # contain a file name
         raise xml.XMLValidationError(ex.message, self.file.name)
예제 #2
0
파일: core.py 프로젝트: bwyss/oq-engine
def unwrap_validation_error(jpype, runtime_exception, path=None):
    """Unwraps the nested exception of a runtime exception.  Throws
    either a XMLValidationError or the original Java exception"""
    ex = runtime_exception.__javaobject__

    if type(ex) is jpype.JPackage('org').gem.engine.XMLValidationError:
        raise xml.XMLValidationError(ex.getCause().getMessage(), path
                                     or ex.getFileName())

    if type(ex) is jpype.JPackage('org').gem.engine.XMLMismatchError:
        raise xml.XMLMismatchError(path or ex.getFileName(), ex.getActualTag(),
                                   ex.getExpectedTag())

    if ex.getCause() and type(ex.getCause()) is \
            jpype.JPackage('org').dom4j.DocumentException:
        raise xml.XMLValidationError(ex.getCause().getMessage(), path)

    raise runtime_exception
예제 #3
0
 def __init__(self, path):
     producer.FileProducer.__init__(self, path)
     nrml_schema = etree.XMLSchema(etree.parse(nrml_schema_file()))
     self.vuln_model = etree.parse(self.path).getroot()
     if not nrml_schema.validate(self.vuln_model):
         raise xml.XMLValidationError(
             nrml_schema.error_log.last_error, path)
     model_el = self.vuln_model.getchildren()[0]
     if model_el.tag != "%svulnerabilityModel" % NRML:
         raise xml.XMLMismatchError(
             path, 'vulnerabilityModel', str(model_el.tag)[len(NRML):])
예제 #4
0
파일: fragility.py 프로젝트: pslh/oq-engine
 def _parse(self):
     try:
         for i in self._do_parse():
             yield i
     except etree.XMLSyntaxError as ex:
         raise xml.XMLValidationError(ex.message, self.file.name)