'Validate doc using Schematron.
Returns true if document is valid, false if not.'

def __call__(self, etree):

    self._clear_error_log()
    result = self._validator(etree)
    if self._store_report:
        self._validation_report = result
    errors = self._validation_errors(result)
    if errors:
        if isinstance(etree, _etree._Element):
            fname = (etree.getroottree().docinfo.URL or '<file>')
        else:
            fname = (etree.docinfo.URL or '<file>')
        for error in errors:
            self._append_log_message(domain=self._domain, type=self._error_type, level=self._level, line=0, message=_etree.tounicode(error), filename=fname)
        return False
    return True
