node-opcua-address-space 2.135.0 → 2.137.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/source/helpers/adjust_browse_direction.js +1 -2
- package/dist/source/helpers/adjust_browse_direction.js.map +1 -1
- package/dist/source/helpers/argument_list.js +6 -7
- package/dist/source/helpers/argument_list.js.map +1 -1
- package/dist/source/helpers/call_helpers.js +1 -2
- package/dist/source/helpers/call_helpers.js.map +1 -1
- package/dist/source/helpers/coerce_enum_value.js +1 -2
- package/dist/source/helpers/coerce_enum_value.js.map +1 -1
- package/dist/source/helpers/dump_tools.js +5 -6
- package/dist/source/helpers/dump_tools.js.map +1 -1
- package/dist/source/helpers/ensure_secure_access.js +1 -2
- package/dist/source/helpers/ensure_secure_access.js.map +1 -1
- package/dist/source/helpers/make_optionals_map.d.ts +1 -3
- package/dist/source/helpers/make_optionals_map.js +7 -4
- package/dist/source/helpers/make_optionals_map.js.map +1 -1
- package/dist/source/helpers/multiform_func.js +2 -3
- package/dist/source/helpers/multiform_func.js.map +1 -1
- package/dist/source/helpers/resolve_opaque_on_address_space.js +1 -2
- package/dist/source/helpers/resolve_opaque_on_address_space.js.map +1 -1
- package/dist/source/index.d.ts +2 -0
- package/dist/source/index.js +2 -0
- package/dist/source/index.js.map +1 -1
- package/dist/source/interfaces/alarms_and_conditions/condition_snapshot.d.ts +0 -3
- package/dist/source/interfaces/alarms_and_conditions/ua_acknowledgeable_condition_ex.d.ts +0 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_condition_ex.d.ts +0 -2
- package/dist/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.js.map +1 -1
- package/dist/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.d.ts +1 -1
- package/dist/source/interfaces/state_machine/ua_shelved_state_machine_ex.d.ts +1 -2
- package/dist/source/interfaces/state_machine/ua_state_machine_type.d.ts +1 -0
- package/dist/source/loader/decode_xml_extension_object.d.ts +1 -1
- package/dist/source/loader/decode_xml_extension_object.js +4 -5
- package/dist/source/loader/decode_xml_extension_object.js.map +1 -1
- package/dist/source/loader/ensure_datatype_extracted.js +32 -4
- package/dist/source/loader/ensure_datatype_extracted.js.map +1 -1
- package/dist/source/loader/generateAddressSpaceRaw.js +3 -4
- package/dist/source/loader/generateAddressSpaceRaw.js.map +1 -1
- package/dist/source/loader/load_nodeset2.js +145 -737
- package/dist/source/loader/load_nodeset2.js.map +1 -1
- package/dist/source/loader/make_semver_compatible.js +1 -2
- package/dist/source/loader/make_semver_compatible.js.map +1 -1
- package/dist/source/loader/make_xml_extension_object_parser.d.ts +1 -6
- package/dist/source/loader/make_xml_extension_object_parser.js +52 -73
- package/dist/source/loader/make_xml_extension_object_parser.js.map +1 -1
- package/dist/source/loader/namespace_post_step.d.ts +4 -6
- package/dist/source/loader/namespace_post_step.js +5 -5
- package/dist/source/loader/namespace_post_step.js.map +1 -1
- package/dist/source/loader/parsers/extension_object_parser.d.ts +51 -0
- package/dist/source/loader/parsers/extension_object_parser.js +269 -0
- package/dist/source/loader/parsers/extension_object_parser.js.map +1 -0
- package/dist/source/loader/parsers/localized_text_parser.d.ts +25 -0
- package/dist/source/loader/parsers/localized_text_parser.js +30 -0
- package/dist/source/loader/parsers/localized_text_parser.js.map +1 -0
- package/dist/source/loader/parsers/nodeid_parser.d.ts +11 -0
- package/dist/source/loader/parsers/nodeid_parser.js +20 -0
- package/dist/source/loader/parsers/nodeid_parser.js.map +1 -0
- package/dist/source/loader/parsers/qualified_name_parser.d.ts +26 -0
- package/dist/source/loader/parsers/qualified_name_parser.js +35 -0
- package/dist/source/loader/parsers/qualified_name_parser.js.map +1 -0
- package/dist/source/loader/parsers/variant_parser.d.ts +29 -0
- package/dist/source/loader/parsers/variant_parser.js +328 -0
- package/dist/source/loader/parsers/variant_parser.js.map +1 -0
- package/dist/source/loader/register_node_promoter.js +2 -3
- package/dist/source/loader/register_node_promoter.js.map +1 -1
- package/dist/source/pseudo_session.d.ts +0 -2
- package/dist/source/pseudo_session.js +3 -3
- package/dist/source/pseudo_session.js.map +1 -1
- package/dist/source/session_context.d.ts +1 -1
- package/dist/source/session_context.js +3 -3
- package/dist/source/session_context.js.map +1 -1
- package/dist/source/set_namespace_meta_data.js +1 -2
- package/dist/source/set_namespace_meta_data.js.map +1 -1
- package/dist/source/ua_addin.d.ts +11 -0
- package/dist/source/ua_addin.js +42 -0
- package/dist/source/ua_addin.js.map +1 -0
- package/dist/source/ua_interface.d.ts +2 -0
- package/dist/source/ua_interface.js +35 -0
- package/dist/source/ua_interface.js.map +1 -0
- package/dist/source/xml_writer.d.ts +3 -5
- package/dist/src/_instantiate_helpers.d.ts +1 -1
- package/dist/src/_instantiate_helpers.js +6 -7
- package/dist/src/_instantiate_helpers.js.map +1 -1
- package/dist/src/_mandatory_child_or_requested_optional_filter.d.ts +3 -1
- package/dist/src/_mandatory_child_or_requested_optional_filter.js +6 -5
- package/dist/src/_mandatory_child_or_requested_optional_filter.js.map +1 -1
- package/dist/src/address_space.d.ts +1 -5
- package/dist/src/address_space.js +1 -1
- package/dist/src/address_space.js.map +1 -1
- package/dist/src/address_space_change_event_tools.js +3 -4
- package/dist/src/address_space_change_event_tools.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition.d.ts +4 -7
- package/dist/src/alarms_and_conditions/condition.js +1 -25
- package/dist/src/alarms_and_conditions/condition.js.map +1 -1
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.d.ts +2 -20
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js +211 -234
- package/dist/src/alarms_and_conditions/condition_snapshot_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js +4 -5
- package/dist/src/alarms_and_conditions/deviation_alarm_helper.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.d.ts +0 -2
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js +1 -2
- package/dist/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_base_event_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.d.ts +0 -2
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js +3 -3
- package/dist/src/alarms_and_conditions/ua_certificate_expiration_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_condition_impl.d.ts +0 -2
- package/dist/src/alarms_and_conditions/ua_condition_impl.js +10 -12
- package/dist/src/alarms_and_conditions/ua_condition_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.js.map +1 -1
- package/dist/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.js.map +1 -1
- package/dist/src/apply_condition_refresh.d.ts +1 -3
- package/dist/src/apply_condition_refresh.js +4 -5
- package/dist/src/apply_condition_refresh.js.map +1 -1
- package/dist/src/base_node_impl.d.ts +0 -1
- package/dist/src/base_node_impl.js +11 -11
- package/dist/src/base_node_impl.js.map +1 -1
- package/dist/src/base_node_private.d.ts +4 -7
- package/dist/src/base_node_private.js +23 -25
- package/dist/src/base_node_private.js.map +1 -1
- package/dist/src/check_value_rank_compatibility.js +1 -2
- package/dist/src/check_value_rank_compatibility.js.map +1 -1
- package/dist/src/data_access/add_dataItem_stuff.js +1 -2
- package/dist/src/data_access/add_dataItem_stuff.js.map +1 -1
- package/dist/src/data_access/adjust_datavalue_status_code.js +1 -2
- package/dist/src/data_access/adjust_datavalue_status_code.js.map +1 -1
- package/dist/src/data_access/ua_multistate_discrete_impl.js +3 -3
- package/dist/src/data_access/ua_multistate_discrete_impl.js.map +1 -1
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js +5 -5
- package/dist/src/data_access/ua_multistate_value_discrete_impl.js.map +1 -1
- package/dist/src/data_access/ua_two_state_discrete_impl.js +3 -3
- package/dist/src/data_access/ua_two_state_discrete_impl.js.map +1 -1
- package/dist/src/extension_object_array_node.js +4 -5
- package/dist/src/extension_object_array_node.js.map +1 -1
- package/dist/src/get_basic_datatype.js +2 -3
- package/dist/src/get_basic_datatype.js.map +1 -1
- package/dist/src/historical_access/address_space_historical_data_node.js +5 -5
- package/dist/src/historical_access/address_space_historical_data_node.js.map +1 -1
- package/dist/src/index_current.d.ts +3 -1
- package/dist/src/index_current.js +3 -1
- package/dist/src/index_current.js.map +1 -1
- package/dist/src/namespace_impl.js +3 -3
- package/dist/src/namespace_impl.js.map +1 -1
- package/dist/src/namespace_private.js +1 -2
- package/dist/src/namespace_private.js.map +1 -1
- package/dist/src/nodeset_tools/adjust_namespace_array.js +1 -2
- package/dist/src/nodeset_tools/adjust_namespace_array.js.map +1 -1
- package/dist/src/nodeset_tools/construct_namespace_dependency.d.ts +2 -2
- package/dist/src/nodeset_tools/construct_namespace_dependency.js +12 -12
- package/dist/src/nodeset_tools/construct_namespace_dependency.js.map +1 -1
- package/dist/src/nodeset_tools/dump_to_bsd.js +5 -6
- package/dist/src/nodeset_tools/dump_to_bsd.js.map +1 -1
- package/dist/src/nodeset_tools/nodeset_to_xml.d.ts +1 -1
- package/dist/src/nodeset_tools/nodeset_to_xml.js +62 -46
- package/dist/src/nodeset_tools/nodeset_to_xml.js.map +1 -1
- package/dist/src/private_namespace.js +3 -4
- package/dist/src/private_namespace.js.map +1 -1
- package/dist/src/reference_impl.js +4 -4
- package/dist/src/reference_impl.js.map +1 -1
- package/dist/src/role_permissions.js +1 -2
- package/dist/src/role_permissions.js.map +1 -1
- package/dist/src/state_machine/finite_state_machine.js +6 -6
- package/dist/src/state_machine/finite_state_machine.js.map +1 -1
- package/dist/src/state_machine/ua_shelving_state_machine_ex.d.ts +0 -1
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js +2 -2
- package/dist/src/state_machine/ua_shelving_state_machine_ex.js.map +1 -1
- package/dist/src/state_machine/ua_two_state_variable.js +4 -4
- package/dist/src/state_machine/ua_two_state_variable.js.map +1 -1
- package/dist/src/tool_isSubtypeOf.d.ts +1 -1
- package/dist/src/tool_isSubtypeOf.js +18 -16
- package/dist/src/tool_isSubtypeOf.js.map +1 -1
- package/dist/src/ua_addin.d.ts +11 -0
- package/dist/src/ua_addin.js +43 -0
- package/dist/src/ua_addin.js.map +1 -0
- package/dist/src/ua_data_type_impl.js +7 -6
- package/dist/src/ua_data_type_impl.js.map +1 -1
- package/dist/src/ua_object_type_impl.js +2 -1
- package/dist/src/ua_object_type_impl.js.map +1 -1
- package/dist/src/ua_reference_type_impl.d.ts +1 -1
- package/dist/src/ua_reference_type_impl.js +3 -3
- package/dist/src/ua_reference_type_impl.js.map +1 -1
- package/dist/src/ua_variable_impl.js +6 -3
- package/dist/src/ua_variable_impl.js.map +1 -1
- package/dist/src/ua_variable_impl_ext_obj.js +15 -15
- package/dist/src/ua_variable_impl_ext_obj.js.map +1 -1
- package/dist/src/ua_variable_type_impl.d.ts +2 -0
- package/dist/src/ua_variable_type_impl.js +8 -4
- package/dist/src/ua_variable_type_impl.js.map +1 -1
- package/dist/src/validate_data_type_correctness.js +1 -2
- package/dist/src/validate_data_type_correctness.js.map +1 -1
- package/dist/tsconfig_common.tsbuildinfo +1 -1
- package/distHelpers/add_event_generator_object.js +1 -2
- package/distHelpers/add_event_generator_object.js.map +1 -1
- package/distHelpers/alarms_and_conditions_demo.js +1 -2
- package/distHelpers/alarms_and_conditions_demo.js.map +1 -1
- package/distHelpers/assertHasMatchingReference.js +1 -2
- package/distHelpers/assertHasMatchingReference.js.map +1 -1
- package/distHelpers/boiler_system.js +2 -3
- package/distHelpers/boiler_system.js.map +1 -1
- package/distHelpers/create_minimalist_address_space_nodeset.js +1 -2
- package/distHelpers/create_minimalist_address_space_nodeset.js.map +1 -1
- package/distHelpers/date_utils.js +1 -2
- package/distHelpers/date_utils.js.map +1 -1
- package/distHelpers/get_address_space_fixture.js +1 -2
- package/distHelpers/get_address_space_fixture.js.map +1 -1
- package/distHelpers/get_mini_address_space.js +2 -2
- package/distHelpers/get_mini_address_space.js.map +1 -1
- package/distNodeJS/generate_address_space.js +2 -3
- package/distNodeJS/generate_address_space.js.map +1 -1
- package/package.json +24 -24
- package/source/helpers/make_optionals_map.ts +9 -6
- package/source/index.ts +3 -0
- package/source/interfaces/alarms_and_conditions/instantiate_exclusive_deviation_alarm_options.ts +3 -1
- package/source/interfaces/alarms_and_conditions/instantiate_exclusive_limit_alarm_options.ts +3 -1
- package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_deviation_alarm_options.ts +3 -1
- package/source/interfaces/alarms_and_conditions/instantiate_non_exclusive_limit_alarm_options.ts +3 -1
- package/source/interfaces/alarms_and_conditions/ua_discrete_alarm_ex.ts +3 -1
- package/source/interfaces/alarms_and_conditions/ua_exclusive_deviation_alarm_ex.ts +18 -16
- package/source/interfaces/alarms_and_conditions/ua_exclusive_limit_alarm_ex.ts +5 -3
- package/source/interfaces/data_access/ua_multistate_discrete_ex.ts +4 -2
- package/source/interfaces/state_machine/ua_exclusive_limit_state_machine_type_ex.ts +4 -2
- package/source/interfaces/state_machine/ua_program_state_machine_type.ts +3 -1
- package/source/interfaces/state_machine/ua_shelved_state_machine_ex.ts +1 -1
- package/source/interfaces/state_machine/ua_state_machine_type.ts +14 -7
- package/source/loader/decode_xml_extension_object.ts +4 -3
- package/source/loader/ensure_datatype_extracted.ts +38 -2
- package/source/loader/generateAddressSpaceRaw.ts +4 -4
- package/source/loader/load_nodeset2.ts +212 -901
- package/source/loader/make_xml_extension_object_parser.ts +87 -123
- package/source/loader/namespace_post_step.ts +6 -5
- package/source/loader/parsers/extension_object_parser.ts +364 -0
- package/source/loader/parsers/localized_text_parser.ts +34 -0
- package/source/loader/parsers/nodeid_parser.ts +17 -0
- package/source/loader/parsers/qualified_name_parser.ts +43 -0
- package/source/loader/parsers/variant_parser.ts +427 -0
- package/source/loader/register_node_promoter.ts +2 -5
- package/source/session_context.ts +1 -1
- package/source/ua_addin.ts +52 -0
- package/source/ua_interface.ts +38 -0
- package/source/xml_writer.ts +4 -5
- package/src/_instantiate_helpers.ts +8 -2
- package/src/_mandatory_child_or_requested_optional_filter.ts +9 -7
- package/src/address_space.ts +1 -1
- package/src/alarms_and_conditions/condition.ts +0 -32
- package/src/alarms_and_conditions/condition_snapshot_impl.ts +176 -189
- package/src/alarms_and_conditions/ua_acknowledgeable_condition_impl.ts +1 -3
- package/src/alarms_and_conditions/ua_base_event_impl.ts +6 -2
- package/src/alarms_and_conditions/ua_condition_impl.ts +11 -13
- package/src/alarms_and_conditions/ua_exclusive_limit_alarm_impl.ts +3 -1
- package/src/alarms_and_conditions/ua_exclusive_rate_of_change_alarm_impl.ts +3 -1
- package/src/apply_condition_refresh.ts +4 -4
- package/src/base_node_impl.ts +13 -13
- package/src/base_node_private.ts +6 -11
- package/src/data_access/ua_multistate_value_discrete_impl.ts +1 -1
- package/src/historical_access/address_space_historical_data_node.ts +3 -3
- package/src/index_current.ts +4 -1
- package/src/nodeset_tools/construct_namespace_dependency.ts +9 -8
- package/src/nodeset_tools/dump_to_bsd.ts +7 -7
- package/src/nodeset_tools/nodeset_to_xml.ts +78 -43
- package/src/tool_isSubtypeOf.ts +20 -16
- package/src/ua_data_type_impl.ts +5 -4
- package/src/ua_object_type_impl.ts +4 -1
- package/src/ua_reference_type_impl.ts +6 -6
- package/src/ua_variable_impl.ts +4 -0
- package/src/ua_variable_impl_ext_obj.ts +2 -1
- package/src/ua_variable_type_impl.ts +11 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dumpToBSD =
|
|
3
|
+
exports.dumpToBSD = dumpToBSD;
|
|
4
4
|
const node_opcua_assert_1 = require("node-opcua-assert");
|
|
5
5
|
const node_opcua_types_1 = require("node-opcua-types");
|
|
6
6
|
const node_opcua_nodeid_1 = require("node-opcua-nodeid");
|
|
@@ -31,7 +31,7 @@ function buildXmlName(addressSpace, map, nodeId) {
|
|
|
31
31
|
}
|
|
32
32
|
const typeName = node.browseName.name;
|
|
33
33
|
const n = node.nodeId;
|
|
34
|
-
const prefix = (n.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC && n.namespace === 0) ? (n.value <= 15 ? "opc" : "ua") : map
|
|
34
|
+
const prefix = (n.identifierType === node_opcua_nodeid_1.NodeIdType.NUMERIC && n.namespace === 0) ? (n.value <= 15 ? "opc" : "ua") : map.get(node.nodeId.namespace);
|
|
35
35
|
return prefix + ":" + (typeName === "Structure" && prefix === "ua" ? "ExtensionObject" : typeName);
|
|
36
36
|
}
|
|
37
37
|
// eslint-disable-next-line max-statements
|
|
@@ -131,15 +131,15 @@ function dumpToBSD(namespace) {
|
|
|
131
131
|
xw.writeAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
|
|
132
132
|
xw.writeAttribute("xmlns:ua", "http://opcfoundation.org/UA/");
|
|
133
133
|
xw.writeAttribute("xmlns:tns", namespace.namespaceUri);
|
|
134
|
-
const map =
|
|
135
|
-
map
|
|
134
|
+
const map = new Map();
|
|
135
|
+
map.set(namespace.index, "tns");
|
|
136
136
|
for (const dependantNamespace of dependency) {
|
|
137
137
|
const namespaceIndex = dependantNamespace.index;
|
|
138
138
|
if (namespaceIndex === 0 || namespaceIndex === namespace.index) {
|
|
139
139
|
continue;
|
|
140
140
|
}
|
|
141
141
|
const ns = shortcut(dependantNamespace);
|
|
142
|
-
map
|
|
142
|
+
map.set(namespaceIndex, ns);
|
|
143
143
|
xw.writeAttribute(`xmlns:${ns}`, dependantNamespace.namespaceUri);
|
|
144
144
|
}
|
|
145
145
|
xw.writeAttribute("DefaultByteOrder", "LittleEndian");
|
|
@@ -159,5 +159,4 @@ function dumpToBSD(namespace) {
|
|
|
159
159
|
// xw.endDocument();
|
|
160
160
|
return xw.toString();
|
|
161
161
|
}
|
|
162
|
-
exports.dumpToBSD = dumpToBSD;
|
|
163
162
|
//# sourceMappingURL=dump_to_bsd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dump_to_bsd.js","sourceRoot":"","sources":["../../../src/nodeset_tools/dump_to_bsd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dump_to_bsd.js","sourceRoot":"","sources":["../../../src/nodeset_tools/dump_to_bsd.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export declare function sortByBrowseName(x: BaseNode, y: BaseNode): number;
|
|
|
3
3
|
type NodeIdString = string;
|
|
4
4
|
export interface BuildAliasesData {
|
|
5
5
|
aliases: Record<string, NodeIdString>;
|
|
6
|
-
aliases_visited?:
|
|
6
|
+
aliases_visited?: Set<string>;
|
|
7
7
|
}
|
|
8
8
|
export interface DumpXMLOptions {
|
|
9
9
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sortByBrowseName =
|
|
3
|
+
exports.sortByBrowseName = sortByBrowseName;
|
|
4
4
|
/* eslint-disable complexity */
|
|
5
5
|
/**
|
|
6
6
|
* @module node-opcua-address-space
|
|
@@ -53,7 +53,7 @@ function _dumpDescription(xw, node) {
|
|
|
53
53
|
}
|
|
54
54
|
function translateNodeId(xw, nodeId) {
|
|
55
55
|
(0, node_opcua_assert_1.assert)(nodeId instanceof node_opcua_nodeid_1.NodeId);
|
|
56
|
-
const nn = xw.translationTable
|
|
56
|
+
const nn = xw.translationTable.get(nodeId.namespace);
|
|
57
57
|
const translatedNode = new node_opcua_nodeid_1.NodeId(nodeId.identifierType, nodeId.value, nn);
|
|
58
58
|
return translatedNode;
|
|
59
59
|
}
|
|
@@ -62,7 +62,7 @@ function n(xw, nodeId) {
|
|
|
62
62
|
}
|
|
63
63
|
function translateBrowseName(xw, browseName) {
|
|
64
64
|
(0, node_opcua_assert_1.assert)(browseName instanceof node_opcua_data_model_1.QualifiedName);
|
|
65
|
-
const nn = xw.translationTable
|
|
65
|
+
const nn = xw.translationTable.get(browseName.namespaceIndex);
|
|
66
66
|
const translatedBrowseName = new node_opcua_data_model_1.QualifiedName({ namespaceIndex: nn, name: browseName.name });
|
|
67
67
|
return translatedBrowseName;
|
|
68
68
|
}
|
|
@@ -237,9 +237,7 @@ function _dumpNodeId(xw, v) {
|
|
|
237
237
|
xw.text(n(xw, v));
|
|
238
238
|
xw.endElement();
|
|
239
239
|
}
|
|
240
|
-
|
|
241
|
-
function _dumpVariantValue(xw, dataType, node, value) {
|
|
242
|
-
const dataTypeNode = node.addressSpace.findDataType(node.dataType);
|
|
240
|
+
function _dumpVariantValue(xw, dataTypeNodeId, dataType, addressSpace, value) {
|
|
243
241
|
if (value === undefined || value === null) {
|
|
244
242
|
return;
|
|
245
243
|
}
|
|
@@ -248,13 +246,14 @@ function _dumpVariantValue(xw, dataType, node, value) {
|
|
|
248
246
|
}
|
|
249
247
|
const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
|
|
250
248
|
xw.startElement(`${uax}${node_opcua_variant_1.DataType[dataType]}`);
|
|
251
|
-
const definitionMap = (0, decode_xml_extension_object_1.makeDefinitionMap)(
|
|
252
|
-
_dumpVariantInnerValue(xw, dataType,
|
|
249
|
+
const definitionMap = (0, decode_xml_extension_object_1.makeDefinitionMap)(addressSpace);
|
|
250
|
+
_dumpVariantInnerValue(xw, dataType, dataTypeNodeId, definitionMap, addressSpace, value);
|
|
253
251
|
xw.endElement();
|
|
254
252
|
}
|
|
255
|
-
function _dumpVariantInnerExtensionObject(xw, definitionMap, definition, value) {
|
|
253
|
+
function _dumpVariantInnerExtensionObject(xw, definitionMap, definition, addressSpace, value) {
|
|
256
254
|
const namespaceUri = findXsdNamespaceUri(xw, definition.defaultEncodingId);
|
|
257
255
|
const ns = getPrefix(xw, namespaceUri);
|
|
256
|
+
const isUnion = definition.structureType === node_opcua_types_1.StructureType.Union || definition.structureType === node_opcua_types_1.StructureType.UnionWithSubtypedValues;
|
|
258
257
|
for (const field of definition.fields || []) {
|
|
259
258
|
const dataTypeNodeId = field.dataType;
|
|
260
259
|
const fieldName = field.name;
|
|
@@ -274,14 +273,21 @@ function _dumpVariantInnerExtensionObject(xw, definitionMap, definition, value)
|
|
|
274
273
|
/** */
|
|
275
274
|
};
|
|
276
275
|
if (definition instanceof node_opcua_types_1.StructureDefinition) {
|
|
277
|
-
fun = _dumpVariantInnerExtensionObject.bind(null, xw, definitionMap, definition);
|
|
276
|
+
fun = _dumpVariantInnerExtensionObject.bind(null, xw, definitionMap, definition, addressSpace);
|
|
278
277
|
}
|
|
279
278
|
else if (definition instanceof node_opcua_types_1.EnumDefinition) {
|
|
280
279
|
fun = _dumpVariantInnerValueEnum.bind(null, xw, definition);
|
|
281
280
|
}
|
|
281
|
+
else if (definition?.dataType == node_opcua_variant_1.DataType.Variant) {
|
|
282
|
+
fun = (value) => {
|
|
283
|
+
xw.startElement("Value");
|
|
284
|
+
_dumpVariantValue(xw, field.dataType, value.dataType, addressSpace, value.value);
|
|
285
|
+
xw.endElement();
|
|
286
|
+
};
|
|
287
|
+
}
|
|
282
288
|
else {
|
|
283
289
|
const baseType = definition.dataType;
|
|
284
|
-
fun = _dumpVariantInnerValue.bind(null, xw, baseType, dataTypeNodeId, definitionMap);
|
|
290
|
+
fun = _dumpVariantInnerValue.bind(null, xw, baseType, dataTypeNodeId, definitionMap, addressSpace);
|
|
285
291
|
}
|
|
286
292
|
try {
|
|
287
293
|
if (field.valueRank === -1) {
|
|
@@ -308,6 +314,14 @@ function _dumpVariantInnerExtensionObject(xw, definitionMap, definition, value)
|
|
|
308
314
|
restoreDefaultNamespace(xw);
|
|
309
315
|
xw.endElement();
|
|
310
316
|
}
|
|
317
|
+
else {
|
|
318
|
+
if (!isUnion && !field.isOptional) {
|
|
319
|
+
// field is mandatory but is null=> provide an empty array
|
|
320
|
+
startElementEx(xw, ns, fieldName, namespaceUri);
|
|
321
|
+
restoreDefaultNamespace(xw);
|
|
322
|
+
xw.endElement();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
311
325
|
}
|
|
312
326
|
}
|
|
313
327
|
function _dumpVariantInnerValueEnum(xw, definition, value) {
|
|
@@ -318,7 +332,7 @@ function _dumpVariantInnerValueEnum(xw, definition, value) {
|
|
|
318
332
|
xw.text(`${field?.name}_${field?.value[1]}`);
|
|
319
333
|
}
|
|
320
334
|
// eslint-disable-next-line complexity
|
|
321
|
-
function _dumpVariantInnerValue(xw, dataType, dataTypeNodeId, definitionMap, value) {
|
|
335
|
+
function _dumpVariantInnerValue(xw, dataType, dataTypeNodeId, definitionMap, addressSpace, value) {
|
|
322
336
|
const uax = getPrefix(xw, "http://opcfoundation.org/UA/2008/02/Types.xsd");
|
|
323
337
|
switch (dataType) {
|
|
324
338
|
case null:
|
|
@@ -372,7 +386,7 @@ function _dumpVariantInnerValue(xw, dataType, dataTypeNodeId, definitionMap, val
|
|
|
372
386
|
}
|
|
373
387
|
break;
|
|
374
388
|
case node_opcua_variant_1.DataType.ExtensionObject:
|
|
375
|
-
_dumpVariantExtensionObjectValue(xw, dataTypeNodeId, definitionMap, value);
|
|
389
|
+
_dumpVariantExtensionObjectValue(xw, dataTypeNodeId, definitionMap, addressSpace, value);
|
|
376
390
|
break;
|
|
377
391
|
case node_opcua_variant_1.DataType.XmlElement:
|
|
378
392
|
_dumpXmlElement(xw, value);
|
|
@@ -380,6 +394,9 @@ function _dumpVariantInnerValue(xw, dataType, dataTypeNodeId, definitionMap, val
|
|
|
380
394
|
case node_opcua_variant_1.DataType.StatusCode:
|
|
381
395
|
xw.text(value.value.toString());
|
|
382
396
|
break;
|
|
397
|
+
case node_opcua_variant_1.DataType.Variant:
|
|
398
|
+
_dumpVariantInnerValue(xw, value.dataType, dataTypeNodeId, definitionMap, addressSpace, value.value);
|
|
399
|
+
break;
|
|
383
400
|
default:
|
|
384
401
|
errorLog("_dumpVariantInnerValue incomplete " + value + " " + "DataType=" + dataType + "=" + node_opcua_variant_1.DataType[dataType]);
|
|
385
402
|
// throw new Error("_dumpVariantInnerValue incomplete " + value + " " + "DataType=" + dataType + "=" + DataType[dataType]);
|
|
@@ -392,19 +409,19 @@ function _dumpVariantInnerValue(xw, dataType, dataTypeNodeId, definitionMap, val
|
|
|
392
409
|
* @param value
|
|
393
410
|
* @private
|
|
394
411
|
*/
|
|
395
|
-
function _dumpVariantExtensionObjectValue_Body(xw, definitionMap, name, definition, value) {
|
|
412
|
+
function _dumpVariantExtensionObjectValue_Body(xw, definitionMap, name, definition, addressSpace, value) {
|
|
396
413
|
if (value) {
|
|
397
414
|
const namespaceUri = findXsdNamespaceUri(xw, definition.defaultEncodingId);
|
|
398
415
|
const ns = getPrefix(xw, namespaceUri);
|
|
399
416
|
startElementEx(xw, ns, `${name}`, namespaceUri);
|
|
400
417
|
if (value) {
|
|
401
|
-
_dumpVariantInnerExtensionObject(xw, definitionMap, definition, value);
|
|
418
|
+
_dumpVariantInnerExtensionObject(xw, definitionMap, definition, addressSpace, value);
|
|
402
419
|
}
|
|
403
420
|
restoreDefaultNamespace(xw);
|
|
404
421
|
xw.endElement();
|
|
405
422
|
}
|
|
406
423
|
}
|
|
407
|
-
function _dumpVariantExtensionObjectValue(xw, dataTypeNodeId, definitionMap, value) {
|
|
424
|
+
function _dumpVariantExtensionObjectValue(xw, dataTypeNodeId, definitionMap, addressSpace, value) {
|
|
408
425
|
const { name, definition } = definitionMap.findDefinition(dataTypeNodeId);
|
|
409
426
|
// const encodingDefaultXml = (getStructureTypeConstructor(schema.name) as any).encodingDefaultXml;
|
|
410
427
|
const encodingDefaultXml = value.schema.encodingDefaultXml;
|
|
@@ -427,7 +444,7 @@ function _dumpVariantExtensionObjectValue(xw, dataTypeNodeId, definitionMap, val
|
|
|
427
444
|
}
|
|
428
445
|
xw.endElement();
|
|
429
446
|
startElementEx(xw, uax, "Body", "http://opcfoundation.org/UA/2008/02/Types.xsd");
|
|
430
|
-
_dumpVariantExtensionObjectValue_Body(xw, definitionMap, name, definition, value);
|
|
447
|
+
_dumpVariantExtensionObjectValue_Body(xw, definitionMap, name, definition, addressSpace, value);
|
|
431
448
|
restoreDefaultNamespace(xw);
|
|
432
449
|
xw.endElement();
|
|
433
450
|
}
|
|
@@ -442,7 +459,7 @@ function _dumpVariantExtensionObjectValue2(xw, addressSpace, value) {
|
|
|
442
459
|
warningLog("_dumpVariantExtensionObjectValue2: Cannot find dataType for ", dataTypeNodeId.toString());
|
|
443
460
|
return;
|
|
444
461
|
}
|
|
445
|
-
_dumpVariantExtensionObjectValue(xw, dataTypeNode.nodeId, definitionMap, value);
|
|
462
|
+
_dumpVariantExtensionObjectValue(xw, dataTypeNode.nodeId, definitionMap, addressSpace, value);
|
|
446
463
|
}
|
|
447
464
|
// eslint-disable-next-line complexity
|
|
448
465
|
function _isDefaultValue(value) {
|
|
@@ -556,7 +573,7 @@ function _dumpValue(xw, node, variant) {
|
|
|
556
573
|
}
|
|
557
574
|
}
|
|
558
575
|
else {
|
|
559
|
-
const encodeXml = _dumpVariantValue.bind(null, xw, variant.dataType, node);
|
|
576
|
+
const encodeXml = _dumpVariantValue.bind(null, xw, node.dataType, variant.dataType, node.addressSpace);
|
|
560
577
|
switch (variant.arrayType) {
|
|
561
578
|
case node_opcua_variant_1.VariantArrayType.Matrix:
|
|
562
579
|
case node_opcua_variant_1.VariantArrayType.Array:
|
|
@@ -626,7 +643,7 @@ function dumpReferencedNodes(xw, node, forward) {
|
|
|
626
643
|
(0, node_opcua_assert_1.assert)(typeDefinitionObj instanceof base_node_impl_1.BaseNodeImpl);
|
|
627
644
|
if (typeDefinitionObj.nodeId.namespace === node.nodeId.namespace) {
|
|
628
645
|
// only output node if it is on the same namespace
|
|
629
|
-
if (!xw.visitedNode
|
|
646
|
+
if (!xw.visitedNode.has(_hash(typeDefinitionObj))) {
|
|
630
647
|
dumpNodeInXml(xw, typeDefinitionObj);
|
|
631
648
|
}
|
|
632
649
|
}
|
|
@@ -641,7 +658,7 @@ function dumpReferencedNodes(xw, node, forward) {
|
|
|
641
658
|
(0, node_opcua_assert_1.assert)(r.length === 1);
|
|
642
659
|
if (subTypeOf.nodeId.namespace === node.nodeId.namespace) {
|
|
643
660
|
// only output node if it is on the same namespace
|
|
644
|
-
if (!xw.visitedNode
|
|
661
|
+
if (!xw.visitedNode.has(_hash(subTypeOf))) {
|
|
645
662
|
dumpNodeInXml(xw, subTypeOf);
|
|
646
663
|
}
|
|
647
664
|
}
|
|
@@ -654,7 +671,7 @@ function dumpReferencedNodes(xw, node, forward) {
|
|
|
654
671
|
const nodeChild = reference_impl_1.ReferenceImpl.resolveReferenceNode(addressSpace, reference);
|
|
655
672
|
(0, node_opcua_assert_1.assert)(nodeChild instanceof base_node_impl_1.BaseNodeImpl);
|
|
656
673
|
if (nodeChild.nodeId.namespace === node.nodeId.namespace) {
|
|
657
|
-
if (!xw.visitedNode
|
|
674
|
+
if (!xw.visitedNode.has(_hash(nodeChild))) {
|
|
658
675
|
debugLog(node.nodeId.toString(), " dumping child ", nodeChild.browseName.toString(), nodeChild.nodeId.toString());
|
|
659
676
|
dumpNodeInXml(xw, nodeChild);
|
|
660
677
|
}
|
|
@@ -833,13 +850,13 @@ function dumpUADataType(xw, node) {
|
|
|
833
850
|
dumpAggregates(xw, node);
|
|
834
851
|
}
|
|
835
852
|
function _markAsVisited(xw, node) {
|
|
836
|
-
xw.visitedNode = xw.visitedNode ||
|
|
837
|
-
(0, node_opcua_assert_1.assert)(!xw.visitedNode
|
|
838
|
-
xw.visitedNode
|
|
853
|
+
xw.visitedNode = xw.visitedNode || new Set();
|
|
854
|
+
(0, node_opcua_assert_1.assert)(!xw.visitedNode.has(_hash(node)));
|
|
855
|
+
xw.visitedNode.add(_hash(node));
|
|
839
856
|
}
|
|
840
857
|
function dumpUAVariable(xw, node) {
|
|
841
858
|
(0, node_opcua_assert_1.assert)(node.nodeClass === node_opcua_data_model_1.NodeClass.Variable);
|
|
842
|
-
if (xw.visitedNode
|
|
859
|
+
if (xw.visitedNode.has(_hash(node))) {
|
|
843
860
|
return;
|
|
844
861
|
}
|
|
845
862
|
_markAsVisited(xw, node);
|
|
@@ -875,9 +892,9 @@ function dumpUAVariable(xw, node) {
|
|
|
875
892
|
}
|
|
876
893
|
function dumpUAVariableType(xw, node) {
|
|
877
894
|
(0, node_opcua_assert_1.assert)(node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType);
|
|
878
|
-
xw.visitedNode = xw.visitedNode ||
|
|
879
|
-
(0, node_opcua_assert_1.assert)(!xw.visitedNode
|
|
880
|
-
xw.visitedNode
|
|
895
|
+
xw.visitedNode = xw.visitedNode || new Set();
|
|
896
|
+
(0, node_opcua_assert_1.assert)(!xw.visitedNode.has(_hash(node)));
|
|
897
|
+
xw.visitedNode.add(_hash(node));
|
|
881
898
|
dumpReferencedNodes(xw, node, false);
|
|
882
899
|
const addressSpace = node.addressSpace;
|
|
883
900
|
xw.startElement("UAVariableType");
|
|
@@ -921,9 +938,9 @@ function dumpUAObject(xw, node) {
|
|
|
921
938
|
}
|
|
922
939
|
function _dumpUAObject(xw, node) {
|
|
923
940
|
(0, node_opcua_assert_1.assert)(node.nodeClass === node_opcua_data_model_1.NodeClass.Object);
|
|
924
|
-
xw.visitedNode = xw.visitedNode ||
|
|
925
|
-
(0, node_opcua_assert_1.assert)(!xw.visitedNode
|
|
926
|
-
xw.visitedNode
|
|
941
|
+
xw.visitedNode = xw.visitedNode || new Set();
|
|
942
|
+
(0, node_opcua_assert_1.assert)(!xw.visitedNode.has(_hash(node)));
|
|
943
|
+
xw.visitedNode.add(_hash(node));
|
|
927
944
|
// dump SubTypeOf and HasTypeDefinition
|
|
928
945
|
dumpReferencedNodes(xw, node, false);
|
|
929
946
|
xw.startElement("UAObject");
|
|
@@ -943,7 +960,7 @@ function dumpElementInFolder(xw, node) {
|
|
|
943
960
|
if (node.nodeId.namespace !== aggregate.nodeId.namespace) {
|
|
944
961
|
return;
|
|
945
962
|
}
|
|
946
|
-
if (!xw.visitedNode
|
|
963
|
+
if (!xw.visitedNode.has(_hash(aggregate))) {
|
|
947
964
|
aggregate.dumpXML(xw);
|
|
948
965
|
}
|
|
949
966
|
}
|
|
@@ -962,7 +979,7 @@ function dumpAggregates(xw, node) {
|
|
|
962
979
|
if (_hasHigherPriorityThan(xw, aggregate.nodeId.namespace, node.nodeId.namespace)) {
|
|
963
980
|
continue;
|
|
964
981
|
}
|
|
965
|
-
if (!xw.visitedNode
|
|
982
|
+
if (!xw.visitedNode.has(_hash(aggregate))) {
|
|
966
983
|
aggregate.dumpXML(xw);
|
|
967
984
|
}
|
|
968
985
|
}
|
|
@@ -1015,13 +1032,13 @@ function resolveDataTypeName(addressSpace, dataType) {
|
|
|
1015
1032
|
function buildUpAliases(node, xw, data) {
|
|
1016
1033
|
const addressSpace = node.addressSpace;
|
|
1017
1034
|
if (!data.aliases_visited)
|
|
1018
|
-
data.aliases_visited =
|
|
1035
|
+
data.aliases_visited = new Set();
|
|
1019
1036
|
const k = _hash(node);
|
|
1020
1037
|
// istanbul ignore next
|
|
1021
|
-
if (data.aliases_visited
|
|
1038
|
+
if (data.aliases_visited.has(k)) {
|
|
1022
1039
|
return;
|
|
1023
1040
|
}
|
|
1024
|
-
data.aliases_visited
|
|
1041
|
+
data.aliases_visited.add(k);
|
|
1025
1042
|
// put datatype into aliases list
|
|
1026
1043
|
if (node.nodeClass === node_opcua_data_model_1.NodeClass.Variable || node.nodeClass === node_opcua_data_model_1.NodeClass.VariableType) {
|
|
1027
1044
|
const nodeV = node;
|
|
@@ -1098,7 +1115,6 @@ function sortByBrowseName(x, y) {
|
|
|
1098
1115
|
}
|
|
1099
1116
|
return 0;
|
|
1100
1117
|
}
|
|
1101
|
-
exports.sortByBrowseName = sortByBrowseName;
|
|
1102
1118
|
function sortByNodeId(a, b) {
|
|
1103
1119
|
return a.nodeId.toString() < b.nodeId.toString() ? -1 : 1;
|
|
1104
1120
|
}
|
|
@@ -1154,7 +1170,7 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
|
|
|
1154
1170
|
if (namespace.index === 0) {
|
|
1155
1171
|
continue;
|
|
1156
1172
|
}
|
|
1157
|
-
const translatedIndex = translationTable
|
|
1173
|
+
const translatedIndex = translationTable.get(namespace.index);
|
|
1158
1174
|
const smallName = `ns${translatedIndex}`;
|
|
1159
1175
|
xw.writeAttribute(`xmlns:${smallName}`, makeTypeXsd(namespace.namespaceUri));
|
|
1160
1176
|
namespacesMap[namespace.namespaceUri] = smallName;
|
|
@@ -1165,9 +1181,9 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
|
|
|
1165
1181
|
initXmlWriterEx(xw, namespacesMap, namespaceArray);
|
|
1166
1182
|
xw.startElement("NamespaceUris");
|
|
1167
1183
|
// let's sort the dependencies in the same order as the translation table
|
|
1168
|
-
const sortedDependencies = dependency.sort((a, b) => (translationTable
|
|
1184
|
+
const sortedDependencies = dependency.sort((a, b) => (translationTable.get(a.index) > translationTable.get(b.index) ? 1 : -1));
|
|
1169
1185
|
doDebug && debugLog(sortedDependencies.map((a) => a.index + " + " + a.namespaceUri).join("\n"));
|
|
1170
|
-
doDebug && debugLog("translation table ", translationTable);
|
|
1186
|
+
doDebug && debugLog("translation table ", translationTable.entries());
|
|
1171
1187
|
for (const depend of sortedDependencies) {
|
|
1172
1188
|
if (depend.index === 0) {
|
|
1173
1189
|
continue; // ignore namespace 0
|
|
@@ -1202,7 +1218,7 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
|
|
|
1202
1218
|
buildUpAliases(node, xw, data);
|
|
1203
1219
|
}
|
|
1204
1220
|
writeAliases(xw, data.aliases);
|
|
1205
|
-
xw.visitedNode =
|
|
1221
|
+
xw.visitedNode = new Set();
|
|
1206
1222
|
// -------------- writeReferences
|
|
1207
1223
|
xw.writeComment("ReferenceTypes");
|
|
1208
1224
|
const referenceTypes = [...this._referenceTypeIterator()].sort(sortByBrowseName);
|
|
@@ -1230,7 +1246,7 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
|
|
|
1230
1246
|
xw.writeComment("DataTypes");
|
|
1231
1247
|
// xx xw.writeComment(" "+ objectTypes.map(x=>x.browseName.name.toString()).join(" "));
|
|
1232
1248
|
for (const dataType of dataTypes.sort(sortByNodeId)) {
|
|
1233
|
-
if (!xw.visitedNode
|
|
1249
|
+
if (!xw.visitedNode.has(_hash(dataType))) {
|
|
1234
1250
|
dumpNodeInXml(xw, dataType);
|
|
1235
1251
|
}
|
|
1236
1252
|
}
|
|
@@ -1269,7 +1285,7 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
|
|
|
1269
1285
|
const objectTypes = [...this._objectTypeIterator()].sort(sortByBrowseName);
|
|
1270
1286
|
// xx xw.writeComment(" "+ objectTypes.map(x=>x.browseName.name.toString()).join(" "));
|
|
1271
1287
|
for (const objectType of objectTypes.sort(sortByNodeId)) {
|
|
1272
|
-
if (!xw.visitedNode
|
|
1288
|
+
if (!xw.visitedNode.has(_hash(objectType))) {
|
|
1273
1289
|
dumpNodeInXml(xw, objectType);
|
|
1274
1290
|
}
|
|
1275
1291
|
}
|
|
@@ -1278,7 +1294,7 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
|
|
|
1278
1294
|
const variableTypes = [...this._variableTypeIterator()].sort(sortByBrowseName);
|
|
1279
1295
|
// xx xw.writeComment("ObjectTypes "+ variableTypes.map(x=>x.browseName.name.toString()).join(" "));
|
|
1280
1296
|
for (const variableType of variableTypes.sort(sortByNodeId)) {
|
|
1281
|
-
if (!xw.visitedNode
|
|
1297
|
+
if (!xw.visitedNode.has(_hash(variableType))) {
|
|
1282
1298
|
dumpNodeInXml(xw, variableType);
|
|
1283
1299
|
}
|
|
1284
1300
|
}
|
|
@@ -1286,7 +1302,7 @@ namespace_impl_1.NamespaceImpl.prototype.toNodeset2XML = function () {
|
|
|
1286
1302
|
xw.writeComment("Other Nodes");
|
|
1287
1303
|
const nodes = [...this.nodeIterator()].sort(sortByBrowseName);
|
|
1288
1304
|
for (const node of nodes.sort(sortByNodeId)) {
|
|
1289
|
-
if (!xw.visitedNode
|
|
1305
|
+
if (!xw.visitedNode.has(_hash(node))) {
|
|
1290
1306
|
dumpNodeInXml(xw, node);
|
|
1291
1307
|
}
|
|
1292
1308
|
}
|