Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
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
Exemplo n.º 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):])
Exemplo n.º 4
0
 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)