Commit 2e20a1bc authored by olivier R-D's avatar olivier R-D

xmlexport: also migrate idx of parent and reference targets

parent d5c5398f
......@@ -172,7 +172,7 @@ class XmlExporter(object):
if parent is not None:
node_class = node.get_node_class()
if node_class in (ua.NodeClass.Object, ua.NodeClass.Variable, ua.NodeClass.Method):
node_el.attrib["ParentNodeId"] = parent.nodeid.to_string()
node_el.attrib["ParentNodeId"] = self._node_to_string(parent)
self._add_sub_el(node_el, 'DisplayName', displayname)
if desc not in (None, ""):
self._add_sub_el(node_el, 'Description', desc.decode('utf-8'))
......@@ -308,7 +308,7 @@ class XmlExporter(object):
ref_el.attrib['ReferenceType'] = ref_name
if not ref.IsForward:
ref_el.attrib['IsForward'] = 'false'
ref_el.text = ref.NodeId.to_string()
ref_el.text = self._node_to_string(ref.NodeId)
self.aliases[ref_name] = ref.ReferenceTypeId.to_string()
......
......@@ -107,8 +107,9 @@ class XmlTests(object):
o20 = self.opc.nodes.objects.add_object(20, "xmlns20")
o200 = self.opc.nodes.objects.add_object(200, "xmlns200")
onew = self.opc.nodes.objects.add_object(new_ns, "xmlns_new")
vnew = onew.add_variable(new_ns, "xmlns_new_var", 9.99)
nodes = [o, o2, o20, o200, onew]
nodes = [o, o2, o20, o200, onew, vnew]
self.opc.export_xml(nodes, "export-ns.xml")
# delete node and change index og new_ns before re-importing
self.opc.delete_nodes(nodes)
......@@ -121,9 +122,12 @@ class XmlTests(object):
self.opc.import_xml("export-ns.xml")
for i in nodes[:-1]:
for i in nodes[:-2]:
i.get_browse_name()
with self.assertRaises(uaerrors.BadNodeIdUnknown):
onew.get_browse_name()
onew.nodeid.NamespaceIndex += 1
onew.get_browse_name()
vnew2 = onew.get_children()[0]
self.assertEqual(vnew.nodeid.NamespaceIndex + 1, vnew2.nodeid.NamespaceIndex)
vnew.nodeid.NamespaceIndex += 1
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment