diff -r a2f2981df9b0 -r 96b242e4c59d CodeFileTreeNode.py --- a/CodeFileTreeNode.py Wed Sep 25 11:50:40 2013 +0200 +++ b/CodeFileTreeNode.py Fri Sep 27 16:22:40 2013 +0200 @@ -1,10 +1,11 @@ -import os, re +import os, re, traceback from copy import deepcopy from lxml import etree from xmlclass import GenerateParserFromXSDstring from PLCControler import UndoBuffer +from ConfigTreeNode import XSDSchemaErrorMessage CODEFILE_XSD = """ )(?:)(?!)"), "]]>")]: codefile_xml = cre.sub(repl, codefile_xml) - self.CodeFile = etree.fromstring(codefile_xml, self.CodeFileParser) - self.CreateCodeFileBuffer(True) - + + try: + self.CodeFile, error = self.CodeFileParser.LoadXMLString(codefile_xml) + if error is not None: + self.GetCTRoot().logger.write_warning( + XMLSyntaxErrorMessage % ((self.CODEFILE_NAME,) + error)) + self.CreateCodeFileBuffer(True) + except Exception, exc: + self.GetCTRoot().logger.write_error(_("Couldn't load confnode parameters %s :\n %s") % (CTNName, unicode(exc))) + self.GetCTRoot().logger.write_error(traceback.format_exc()) else: self.CodeFile = self.CodeFileParser.CreateRoot() self.CreateCodeFileBuffer(False)