def validate(self, tree): logger.info('Validating file "%s"...' % self.filename) validation = True if LXML: dtdfile = os.path.join(os.path.dirname(__file__), 'cnml.dtd') try: with open(dtdfile, 'rb') as dtdfp: dtd = etree.DTD(dtdfp) logger.info('DTD validation: %s' % dtd.validate(tree)) errors = dtd.error_log.filter_from_errors() if len(errors) > 0: logger.warning('%d errors found:' % len(errors)) logger.warning(errors) validation = False except IOError: logger.error('DTD Validation failed: %s file not found' % dtdfile) validation = False else: logger.warn('DTD validation is not implemented with Minidom API') validation = False return validation
def validateDTDLxml(self, tree): validation = True dtdfile = os.path.join(os.path.dirname(__file__), 'cnml.dtd') try: with open(dtdfile, 'rb') as dtdfp: dtd = etree.DTD(dtdfp) logger.info('DTD validation: %s' % dtd.validate(tree)) errors = dtd.error_log.filter_from_errors() if len(errors) > 0: logger.warning('%d errors found:' % len(errors)) logger.warning(errors) validation = False except IOError: logger.error('DTD Validation failed: %s file not found' % dtdfile) validation = False return validation
def setLinkedParameters(self, devs, ifaces, nodes): didA = self.deviceA iidA = self.interfaceA nidA = self.nodeA didB = self.deviceB iidB = self.interfaceB nidB = self.nodeB if self.nodeB is None: #logger.info("Couldn't find linked node (%d) in link %d. It may be defined in a different CNML zone." % (self.nodeA, self.id)) return if didA in devs: self.deviceA = devs[didA] else: logger.warning('Device id %d not found' % self.deviceA) if didB in devs: self.deviceB = devs[didB] else: logger.warning('Device id %d not found' % self.deviceB) if iidA in ifaces: self.interfaceA = ifaces[iidA] else: logger.warning('Interface id %d not found' % self.interfaceA) if iidB in ifaces: self.interfaceB = ifaces[iidB] else: logger.warning('Interface id %d not found' % self.interfaceB) if nidA in nodes: self.nodeA = nodes[nidA] else: logger.warning('Node id %d not found' % self.nodeA) if nidB in nodes: self.nodeB = nodes[nidB] else: logger.warning('Node id %d not found' % self.nodeB)