Exemplo n.º 1
0
 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()
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
    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