def import_xml(self, xmlpath, act_server): """ import xml and return added nodes """ self.logger.info("Importing XML file %s", xmlpath) self.parser = xmlparser.XMLParser(xmlpath, act_server) nodes = [] for nodedata in self.parser: if nodedata.nodetype == 'UAObject': node = self.add_object(nodedata) elif nodedata.nodetype == 'UAObjectType': node = self.add_object_type(nodedata) elif nodedata.nodetype == 'UAVariable': node = self.add_variable(nodedata) elif nodedata.nodetype == 'UAVariableType': node = self.add_variable_type(nodedata) elif nodedata.nodetype == 'UAReferenceType': node = self.add_reference_type(nodedata) elif nodedata.nodetype == 'UADataType': node = self.add_datatype(nodedata) elif nodedata.nodetype == 'UAMethod': node = self.add_method(nodedata) else: self.logger.warning("Not implemented node type: %s ", nodedata.nodetype) continue nodes.append(node) return nodes
def run(self): sys.stderr.write("Generating Python code {0} for XML file {1}".format( self.output_path, self.input_path) + "\n") self.output_file = open(self.output_path, "w") self.make_header() self.parser = xmlparser.XMLParser(self.input_path) for node in self.parser.get_node_datas(): if node.nodetype == 'UAObject': self.make_object_code(node) elif node.nodetype == 'UAObjectType': self.make_object_type_code(node) elif node.nodetype == 'UAVariable': self.make_variable_code(node) elif node.nodetype == 'UAVariableType': self.make_variable_type_code(node) elif node.nodetype == 'UAReferenceType': self.make_reference_code(node) elif node.nodetype == 'UADataType': self.make_datatype_code(node) elif node.nodetype == 'UAMethod': self.make_method_code(node) else: sys.stderr.write("Not implemented node type: " + node.nodetype + "\n") self.output_file.close()
def import_xml(self, xmlpath=None, xmlstring=None): """ import xml and return added nodes """ self.logger.info("Importing XML file %s", xmlpath) self.parser = xmlparser.XMLParser(xmlpath, xmlstring) self.namespaces = self._map_namespaces(self.parser.get_used_namespaces()) self.aliases = self._map_aliases(self.parser.get_aliases()) self.refs = [] dnodes = self.parser.get_node_datas() dnodes = self.make_objects(dnodes) nodes_parsed = self._sort_nodes_by_parentid(dnodes) nodes = [] for nodedata in nodes_parsed: # self.parser: try: node = self._add_node_data(nodedata) except Exception: self.logger.warning("failure adding node %s", nodedata) raise nodes.append(node) self.refs, remaining_refs = [], self.refs self._add_references(remaining_refs) if len(self.refs) != 0: self.logger.warning("The following references could not be imported and are probaly broken: %s", self.refs) return nodes
def import_xml(self, xmlpath): """ import xml and return added nodes """ self.logger.info("Importing XML file %s", xmlpath) self.parser = xmlparser.XMLParser(xmlpath) self.namespaces = self._map_namespaces( self.parser.get_used_namespaces()) self.aliases = self._map_aliases(self.parser.get_aliases()) self.refs = [] dnodes = self.parser.get_node_datas() dnodes = self.make_objects(dnodes) nodes_parsed = self._sort_nodes_by_parentid(dnodes) nodes = [] for nodedata in nodes_parsed: # self.parser: try: node = self._add_node_data(nodedata) except Exception: self.logger.warning("failure adding node %s", nodedata) raise nodes.append(node) self.refs, remaining_refs = [], self.refs self._add_references(remaining_refs) assert len(self.refs) == 0, self.refs return nodes
def import_xml(self, xmlpath): self.logger.info("Importing XML file %s", xmlpath) self.parser = xmlparser.XMLParser(xmlpath) for node in self.parser: if node.nodetype == 'UAObject': self.add_object(node) elif node.nodetype == 'UAObjectType': self.add_object_type(node) elif node.nodetype == 'UAVariable': self.add_variable(node) elif node.nodetype == 'UAVariableType': self.add_variable_type(node) elif node.nodetype == 'UAReferenceType': self.add_reference(node) elif node.nodetype == 'UADataType': self.add_datatype(node) elif node.nodetype == 'UAMethod': self.add_method(node) else: self.logger.info("Not implemented node type: %s ", node.nodetype)
def import_xml(self, xmlpath): """ import xml and return added nodes """ self.logger.info("Importing XML file %s", xmlpath) self.parser = xmlparser.XMLParser(xmlpath) dnodes = self.parser.get_node_datas() dnodes = self.make_objects(dnodes) self.namespaces = self._map_namespaces( self.parser.get_used_namespaces()) self.aliases = self._map_aliases(self.parser.get_aliases()) nodes_parsed = self._sort_nodes_by_parentid(dnodes) nodes = [] for nodedata in nodes_parsed: # self.parser: if nodedata.nodetype == 'UAObject': node = self.add_object(nodedata) elif nodedata.nodetype == 'UAObjectType': node = self.add_object_type(nodedata) elif nodedata.nodetype == 'UAVariable': node = self.add_variable(nodedata) elif nodedata.nodetype == 'UAVariableType': node = self.add_variable_type(nodedata) elif nodedata.nodetype == 'UAReferenceType': node = self.add_reference_type(nodedata) elif nodedata.nodetype == 'UADataType': node = self.add_datatype(nodedata) elif nodedata.nodetype == 'UAMethod': node = self.add_method(nodedata) else: self.logger.warning("Not implemented node type: %s ", nodedata.nodetype) continue nodes.append(node) return nodes
def import_xml(self, xmlpath, act_server): """ import xml and return added nodes """ self.logger.info("Importing XML file %s", xmlpath) self.parser = xmlparser.XMLParser(xmlpath, act_server) self.namespaces = self._map_namespaces( self.parser.get_used_namespaces(), act_server) self.aliases = self._map_aliases(self.parser.get_aliases()) # The ordering of nodes currently only works if namespaces are # defined in XML. # Also, it is recommended not to use node ids without namespace prefix! nodes_parsed = self._sort_nodes_by_parentid(self.parser) nodes = [] for nodedata in nodes_parsed: # self.parser: if nodedata.nodetype == 'UAObject': node = self.add_object(nodedata) elif nodedata.nodetype == 'UAObjectType': node = self.add_object_type(nodedata) elif nodedata.nodetype == 'UAVariable': node = self.add_variable(nodedata) elif nodedata.nodetype == 'UAVariableType': node = self.add_variable_type(nodedata) elif nodedata.nodetype == 'UAReferenceType': node = self.add_reference_type(nodedata) elif nodedata.nodetype == 'UADataType': node = self.add_datatype(nodedata) elif nodedata.nodetype == 'UAMethod': node = self.add_method(nodedata) else: self.logger.warning("Not implemented node type: %s ", nodedata.nodetype) continue nodes.append(node) return nodes