node-opcua-modeler 2.76.0 → 2.77.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.
@@ -1,7 +1,7 @@
1
- import { BuildModelOptionsBase } from "..";
2
- import { Symbols } from "..";
3
- export declare function buildModel(data: BuildModelOptionsBase): Promise<{
4
- markdown: string;
5
- xmlModel: string;
6
- symbols: Symbols;
7
- }>;
1
+ import { BuildModelOptionsBase } from "..";
2
+ import { Symbols } from "..";
3
+ export declare function buildModel(data: BuildModelOptionsBase): Promise<{
4
+ markdown: string;
5
+ xmlModel: string;
6
+ symbols: Symbols;
7
+ }>;
@@ -1,22 +1,22 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.buildModel = void 0;
13
- const nodeJS_1 = require("node-opcua-address-space/nodeJS");
14
- const __1 = require("..");
15
- function buildModel(data) {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- const option1 = Object.assign(Object.assign({}, data), { xmlLoader: nodeJS_1.readNodeSet2XmlFile });
18
- return (0, __1.buildModelInner)(option1);
19
- });
20
- }
21
- exports.buildModel = buildModel;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildModel = void 0;
13
+ const nodeJS_1 = require("node-opcua-address-space/nodeJS");
14
+ const __1 = require("..");
15
+ function buildModel(data) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const option1 = Object.assign(Object.assign({}, data), { xmlLoader: nodeJS_1.readNodeSet2XmlFile });
18
+ return (0, __1.buildModelInner)(option1);
19
+ });
20
+ }
21
+ exports.buildModel = buildModel;
22
22
  //# sourceMappingURL=build_model.js.map
@@ -1,5 +1,5 @@
1
- export * from "./symbol_cvs";
2
- export * from "./build_model";
3
- export * from "./build_documentation_to_file";
4
- export * from "..";
5
- export { generateAddressSpace } from "node-opcua-address-space/nodeJS";
1
+ export * from "./symbol_cvs";
2
+ export * from "./build_model";
3
+ export * from "./build_documentation_to_file";
4
+ export * from "..";
5
+ export { generateAddressSpace } from "node-opcua-address-space/nodeJS";
@@ -1,24 +1,24 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.generateAddressSpace = void 0;
18
- __exportStar(require("./symbol_cvs"), exports);
19
- __exportStar(require("./build_model"), exports);
20
- __exportStar(require("./build_documentation_to_file"), exports);
21
- __exportStar(require(".."), exports);
22
- var nodeJS_1 = require("node-opcua-address-space/nodeJS");
23
- Object.defineProperty(exports, "generateAddressSpace", { enumerable: true, get: function () { return nodeJS_1.generateAddressSpace; } });
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.generateAddressSpace = void 0;
18
+ __exportStar(require("./symbol_cvs"), exports);
19
+ __exportStar(require("./build_model"), exports);
20
+ __exportStar(require("./build_documentation_to_file"), exports);
21
+ __exportStar(require(".."), exports);
22
+ var nodeJS_1 = require("node-opcua-address-space/nodeJS");
23
+ Object.defineProperty(exports, "generateAddressSpace", { enumerable: true, get: function () { return nodeJS_1.generateAddressSpace; } });
24
24
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- import { Symbols } from "..";
2
- export declare function saveSymbolsToCSV(csvFilename: string, symbols: Symbols): Promise<void>;
3
- export declare function getPresetSymbolsFromCSV(csvFilename: string): Promise<Symbols>;
1
+ import { Symbols } from "..";
2
+ export declare function saveSymbolsToCSV(csvFilename: string, symbols: Symbols): Promise<void>;
3
+ export declare function getPresetSymbolsFromCSV(csvFilename: string): Promise<Symbols>;
@@ -1,64 +1,64 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getPresetSymbolsFromCSV = exports.saveSymbolsToCSV = void 0;
13
- const fs = require("fs");
14
- const csv_parse_1 = require("csv-parse");
15
- const __1 = require("..");
16
- // node 14 onward : import { readFile, writeFile } from "fs/promises";
17
- const { readFile, writeFile } = fs.promises;
18
- function saveSymbolsToCSV(csvFilename, symbols) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- yield writeFile(csvFilename, (0, __1.toCSV)(symbols), "utf-8");
21
- });
22
- }
23
- exports.saveSymbolsToCSV = saveSymbolsToCSV;
24
- function getPresetSymbolsFromCSV(csvFilename) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- if (!fs.existsSync(csvFilename)) {
27
- return [];
28
- }
29
- try {
30
- const data = yield readFile(csvFilename, "utf-8");
31
- const records = yield new Promise((resolve) => {
32
- const output = [];
33
- (0, csv_parse_1.parse)(data, {
34
- cast: (value, context) => {
35
- if (context.index === 1) {
36
- return parseInt(value, 10);
37
- }
38
- return value;
39
- }
40
- })
41
- .on("readable", function () {
42
- let record = this.read();
43
- while (record) {
44
- output.push(record);
45
- record = this.read();
46
- }
47
- })
48
- .on("end", () => {
49
- resolve(output);
50
- });
51
- });
52
- return records;
53
- }
54
- catch (err) {
55
- if (err instanceof Error) {
56
- // tslint:disable-next-line: no-console
57
- console.log("getPresetSymbols err = ", err.message);
58
- }
59
- return [];
60
- }
61
- });
62
- }
63
- exports.getPresetSymbolsFromCSV = getPresetSymbolsFromCSV;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getPresetSymbolsFromCSV = exports.saveSymbolsToCSV = void 0;
13
+ const fs = require("fs");
14
+ const csv_parse_1 = require("csv-parse");
15
+ const __1 = require("..");
16
+ // node 14 onward : import { readFile, writeFile } from "fs/promises";
17
+ const { readFile, writeFile } = fs.promises;
18
+ function saveSymbolsToCSV(csvFilename, symbols) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ yield writeFile(csvFilename, (0, __1.toCSV)(symbols), "utf-8");
21
+ });
22
+ }
23
+ exports.saveSymbolsToCSV = saveSymbolsToCSV;
24
+ function getPresetSymbolsFromCSV(csvFilename) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ if (!fs.existsSync(csvFilename)) {
27
+ return [];
28
+ }
29
+ try {
30
+ const data = yield readFile(csvFilename, "utf-8");
31
+ const records = yield new Promise((resolve) => {
32
+ const output = [];
33
+ (0, csv_parse_1.parse)(data, {
34
+ cast: (value, context) => {
35
+ if (context.index === 1) {
36
+ return parseInt(value, 10);
37
+ }
38
+ return value;
39
+ }
40
+ })
41
+ .on("readable", function () {
42
+ let record = this.read();
43
+ while (record) {
44
+ output.push(record);
45
+ record = this.read();
46
+ }
47
+ })
48
+ .on("end", () => {
49
+ resolve(output);
50
+ });
51
+ });
52
+ return records;
53
+ }
54
+ catch (err) {
55
+ if (err instanceof Error) {
56
+ // tslint:disable-next-line: no-console
57
+ console.log("getPresetSymbols err = ", err.message);
58
+ }
59
+ return [];
60
+ }
61
+ });
62
+ }
63
+ exports.getPresetSymbolsFromCSV = getPresetSymbolsFromCSV;
64
64
  //# sourceMappingURL=symbol_cvs.js.map
package/package.json CHANGED
@@ -1,39 +1,39 @@
1
1
  {
2
2
  "name": "node-opcua-modeler",
3
- "version": "2.76.0",
3
+ "version": "2.77.0",
4
4
  "description": "pure nodejs OPCUA SDK - module - model",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc -b",
9
- "clean": "npx rimraf dist *.tsbuildinfo",
9
+ "clean": "npx rimraf node_modules dist *.tsbuildinfo",
10
10
  "test": "mocha"
11
11
  },
12
12
  "author": "Etienne Rossignon",
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
15
  "cli-table3": "^0.6.2",
16
- "csv-parse": "5.2.0",
17
- "node-opcua-address-space": "2.76.0",
18
- "node-opcua-assert": "2.76.0",
19
- "node-opcua-basic-types": "2.76.0",
20
- "node-opcua-client-dynamic-extension-object": "2.76.0",
21
- "node-opcua-constants": "2.74.0",
22
- "node-opcua-data-model": "2.76.0",
23
- "node-opcua-debug": "2.76.0",
24
- "node-opcua-factory": "2.76.0",
25
- "node-opcua-nodeid": "2.76.0",
26
- "node-opcua-nodesets": "2.74.0",
27
- "node-opcua-numeric-range": "2.76.0",
28
- "node-opcua-schemas": "2.76.0",
29
- "node-opcua-service-translate-browse-path": "2.76.0",
30
- "node-opcua-status-code": "2.76.0",
31
- "node-opcua-types": "2.76.0",
32
- "node-opcua-variant": "2.76.0",
16
+ "csv-parse": "5.3.0",
17
+ "node-opcua-address-space": "2.77.0",
18
+ "node-opcua-assert": "2.77.0",
19
+ "node-opcua-basic-types": "2.77.0",
20
+ "node-opcua-client-dynamic-extension-object": "2.77.0",
21
+ "node-opcua-constants": "2.77.0",
22
+ "node-opcua-data-model": "2.77.0",
23
+ "node-opcua-debug": "2.77.0",
24
+ "node-opcua-factory": "2.77.0",
25
+ "node-opcua-nodeid": "2.77.0",
26
+ "node-opcua-nodesets": "2.77.0",
27
+ "node-opcua-numeric-range": "2.77.0",
28
+ "node-opcua-schemas": "2.77.0",
29
+ "node-opcua-service-translate-browse-path": "2.77.0",
30
+ "node-opcua-status-code": "2.77.0",
31
+ "node-opcua-types": "2.77.0",
32
+ "node-opcua-variant": "2.77.0",
33
33
  "yargs": "15.4.1"
34
34
  },
35
35
  "devDependencies": {
36
- "node-opcua-leak-detector": "2.76.0",
36
+ "node-opcua-leak-detector": "2.77.0",
37
37
  "should": "^13.2.3",
38
38
  "sinon": "^14.0.0"
39
39
  },
@@ -50,5 +50,5 @@
50
50
  "internet of things"
51
51
  ],
52
52
  "homepage": "http://node-opcua.github.io/",
53
- "gitHead": "75d9b8cf894c8fbadf77d2c4a48a730d055465e7"
53
+ "gitHead": "5c8d45772d786fa4ba59369dd26679353ab5482b"
54
54
  }
@@ -72,10 +72,12 @@ export async function addExtensionObjectDataType(namespace: Namespace, options:
72
72
  ? resolveNodeId(structureDefinition.baseDataType)
73
73
  : resolveNodeId("Structure");
74
74
 
75
+ const isAbstract = options.isAbstract || false;
76
+
75
77
  const dataType = namespace.createDataType({
76
78
  browseName: options.browseName,
77
79
  description: options.description,
78
- isAbstract: options.isAbstract,
80
+ isAbstract,
79
81
  subtypeOf
80
82
  });
81
83
 
@@ -104,6 +106,7 @@ export async function addExtensionObjectDataType(namespace: Namespace, options:
104
106
  className,
105
107
  dataType.getStructureDefinition(),
106
108
  dataTypeFactory,
109
+ isAbstract,
107
110
  cache
108
111
  );
109
112
  const Constructor = createDynamicObjectConstructor(schema, dataTypeFactory) as ConstructorFuncWithSchema;
@@ -23,6 +23,17 @@
23
23
  {
24
24
  "path": "../node-opcua-constants"
25
25
  },
26
+ {
27
+ "path": "../node-opcua-factory"
28
+ },
29
+
30
+ {
31
+ "path": "../node-opcua-schemas"
32
+ },
33
+ {
34
+ "path": "../node-opcua-status-code"
35
+ },
36
+
26
37
  {
27
38
  "path": "../node-opcua-data-model"
28
39
  },
@@ -45,7 +56,7 @@
45
56
  "path": "../node-opcua-variant"
46
57
  },
47
58
  {
48
- "path": "../node-opcua-xml2json"
59
+ "path": "../node-opcua-debug"
49
60
  },
50
61
  {
51
62
  "path": "../node-opcua-leak-detector"
@@ -1,125 +0,0 @@
1
- <?xml version="1.0"?>
2
- <UANodeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd">
3
- <NamespaceUris>
4
- <Uri>http://acme.com/Boiler/V0</Uri>
5
- <Uri>http://opcfoundation.org/UA/DI/</Uri>
6
- </NamespaceUris>
7
- <Models/>
8
- <Aliases>
9
- <Alias Alias="2:DeviceHealthEnumeration">ns=2;i=6244</Alias>
10
- <Alias Alias="Boolean">i=1</Alias>
11
- <Alias Alias="DateTime">i=13</Alias>
12
- <Alias Alias="HasComponent">i=47</Alias>
13
- <Alias Alias="HasModellingRule">i=37</Alias>
14
- <Alias Alias="HasProperty">i=46</Alias>
15
- <Alias Alias="HasSubtype">i=45</Alias>
16
- <Alias Alias="HasTypeDefinition">i=40</Alias>
17
- <Alias Alias="IdType">i=256</Alias>
18
- <Alias Alias="NumericRange">i=291</Alias>
19
- <Alias Alias="Organizes">i=35</Alias>
20
- <Alias Alias="String">i=12</Alias>
21
- </Aliases>
22
- <!--ReferenceTypes-->
23
- <!--ObjectTypes-->
24
- <!--ObjectType - 1:BoilerType {{{{ -->
25
- <UAObjectType NodeId="ns=1;i=1008" BrowseName="1:BoilerType">
26
- <DisplayName>BoilerType</DisplayName>
27
- <References>
28
- <Reference ReferenceType="HasSubtype" IsForward="false">ns=2;i=1002</Reference>
29
- <Reference ReferenceType="HasComponent">ns=1;i=1009</Reference>
30
- </References>
31
- </UAObjectType>
32
- <UAVariable NodeId="ns=1;i=1009" BrowseName="2:DeviceHealth" DataType="2:DeviceHealthEnumeration">
33
- <DisplayName>DeviceHealth</DisplayName>
34
- <References>
35
- <Reference ReferenceType="HasTypeDefinition">i=63</Reference>
36
- <Reference ReferenceType="HasModellingRule">i=78</Reference>
37
- </References>
38
- </UAVariable>
39
- <!--ObjectType - 1:BoilerType }}}}-->
40
- <!--VariableTypes-->
41
- <!--Other Nodes-->
42
- <!-- StaticStringNodeIdPattern StaticNumericNodeIdRange StaticNodeIdTypes NamespaceVersion NamespaceUri NamespacePublicationDate IsNamespaceSubset http://acme.com/Boiler/V0 BoilerType DeviceHealth-->
43
- <UAVariable NodeId="ns=1;i=1007" BrowseName="StaticStringNodeIdPattern" DataType="String">
44
- <DisplayName>StaticStringNodeIdPattern</DisplayName>
45
- <Description>A regular expression which matches string node ids are the same in every server that exposes them.</Description>
46
- <References>
47
- <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
48
- <Reference ReferenceType="HasModellingRule">i=78</Reference>
49
- </References>
50
- </UAVariable>
51
- <UAVariable NodeId="ns=1;i=1006" BrowseName="StaticNumericNodeIdRange" ValueRank="1" DataType="NumericRange">
52
- <DisplayName>StaticNumericNodeIdRange</DisplayName>
53
- <Description>A list of ranges for numeric node ids which are the same in every server that exposes them.</Description>
54
- <References>
55
- <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
56
- <Reference ReferenceType="HasModellingRule">i=78</Reference>
57
- </References>
58
- </UAVariable>
59
- <UAVariable NodeId="ns=1;i=1005" BrowseName="StaticNodeIdTypes" ValueRank="1" DataType="IdType">
60
- <DisplayName>StaticNodeIdTypes</DisplayName>
61
- <Description>A list of IdTypes for nodes which are the same in every server that exposes them.</Description>
62
- <References>
63
- <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
64
- <Reference ReferenceType="HasModellingRule">i=78</Reference>
65
- </References>
66
- </UAVariable>
67
- <UAVariable NodeId="ns=1;i=1002" BrowseName="NamespaceVersion" DataType="String">
68
- <DisplayName>NamespaceVersion</DisplayName>
69
- <Description>The human readable string representing version of the namespace.</Description>
70
- <References>
71
- <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
72
- <Reference ReferenceType="HasModellingRule">i=78</Reference>
73
- </References>
74
- <Value>
75
- <String>1.0.0</String>
76
- </Value>
77
- </UAVariable>
78
- <UAVariable NodeId="ns=1;i=1001" BrowseName="NamespaceUri" DataType="String">
79
- <DisplayName>NamespaceUri</DisplayName>
80
- <Description>The URI of the namespace.</Description>
81
- <References>
82
- <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
83
- <Reference ReferenceType="HasModellingRule">i=78</Reference>
84
- </References>
85
- <Value>
86
- <String>http://acme.com/Boiler/V0</String>
87
- </Value>
88
- </UAVariable>
89
- <UAVariable NodeId="ns=1;i=1003" BrowseName="NamespacePublicationDate" DataType="DateTime">
90
- <DisplayName>NamespacePublicationDate</DisplayName>
91
- <Description>The publication date for the namespace.</Description>
92
- <References>
93
- <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
94
- <Reference ReferenceType="HasModellingRule">i=78</Reference>
95
- </References>
96
- <Value>
97
- <DateTime>2020-01-16T10:11:59.351Z</DateTime>
98
- </Value>
99
- </UAVariable>
100
- <UAVariable NodeId="ns=1;i=1004" BrowseName="IsNamespaceSubset" DataType="Boolean">
101
- <DisplayName>IsNamespaceSubset</DisplayName>
102
- <Description>If TRUE then the server only supports a subset of the namespace.</Description>
103
- <References>
104
- <Reference ReferenceType="HasTypeDefinition">i=68</Reference>
105
- <Reference ReferenceType="HasModellingRule">i=78</Reference>
106
- </References>
107
- </UAVariable>
108
- <!--Object - 1:http://acme.com/Boiler/V0 {{{{ -->
109
- <UAObject NodeId="ns=1;i=1000" BrowseName="1:http://acme.com/Boiler/V0">
110
- <DisplayName>http://acme.com/Boiler/V0</DisplayName>
111
- <Description>Provides the metadata for a namespace used by the server.</Description>
112
- <References>
113
- <Reference ReferenceType="HasTypeDefinition">i=11616</Reference>
114
- <Reference ReferenceType="Organizes" IsForward="false">i=11715</Reference>
115
- <Reference ReferenceType="HasProperty">ns=1;i=1001</Reference>
116
- <Reference ReferenceType="HasProperty">ns=1;i=1002</Reference>
117
- <Reference ReferenceType="HasProperty">ns=1;i=1003</Reference>
118
- <Reference ReferenceType="HasProperty">ns=1;i=1004</Reference>
119
- <Reference ReferenceType="HasProperty">ns=1;i=1005</Reference>
120
- <Reference ReferenceType="HasProperty">ns=1;i=1006</Reference>
121
- <Reference ReferenceType="HasProperty">ns=1;i=1007</Reference>
122
- </References>
123
- </UAObject>
124
- <!--Object - 1:http://acme.com/Boiler/V0 }}}} -->
125
- </UANodeSet>