diff -r 9d0cb01312f0 -r 7f264cc6e75d CodeFileTreeNode.py --- a/CodeFileTreeNode.py Fri Sep 27 09:32:39 2013 +0900 +++ b/CodeFileTreeNode.py Sat Sep 28 15:59:50 2013 +0900 @@ -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( + XSDSchemaErrorMessage % ((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)