summaryrefslogtreecommitdiff
path: root/grc/base/ParseXML.py
diff options
context:
space:
mode:
Diffstat (limited to 'grc/base/ParseXML.py')
-rw-r--r--grc/base/ParseXML.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/grc/base/ParseXML.py b/grc/base/ParseXML.py
index 56097395dd..d66edffb69 100644
--- a/grc/base/ParseXML.py
+++ b/grc/base/ParseXML.py
@@ -20,6 +20,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
from lxml import etree
from . import odict
+xml_failures = {};
+
class XMLSyntaxError(Exception):
def __init__(self, error_log):
self._error_log = error_log
@@ -38,11 +40,15 @@ def validate_dtd(xml_file, dtd_file=None):
#perform parsing, use dtd validation if dtd file is not specified
parser = etree.XMLParser(dtd_validation=not dtd_file)
xml = etree.parse(xml_file, parser=parser)
- if parser.error_log: raise XMLSyntaxError(parser.error_log)
+ if parser.error_log:
+ xml_failures[xml_file] = parser.error_log;
+ raise XMLSyntaxError(parser.error_log)
#perform dtd validation if the dtd file is specified
if not dtd_file: return
dtd = etree.DTD(dtd_file)
- if not dtd.validate(xml.getroot()): raise XMLSyntaxError(dtd.error_log)
+ if not dtd.validate(xml.getroot()):
+ xml_failures[xml_file] = dtd.error_log;
+ raise XMLSyntaxError(dtd.error_log)
def from_file(xml_file):
"""