wiseml-ruby 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/version.rb +1 -1
- data/lib/wiseml/setup/capability.rb +1 -1
- data/lib/wiseml/setup/node.rb +3 -3
- data/lib/wiseml/setup/setup.rb +2 -2
- data/lib/wiseml/trace/message.rb +1 -1
- data/lib/wiseml/trace/trace.rb +1 -1
- data/lib/wiseml/wiseml.rb +18 -2
- data/test/test_xml.rb +9 -5
- data/test/wiseml.xsd +306 -0
- metadata +4 -4
- data/test/wiseml.model.xsd +0 -89
data/lib/version.rb
CHANGED
data/lib/wiseml/setup/node.rb
CHANGED
@@ -6,12 +6,12 @@ module WiseML
|
|
6
6
|
# properties of a node. Setters and getters are implicitly defined
|
7
7
|
# trough the accesors
|
8
8
|
|
9
|
-
xml_accessor :id, :
|
10
|
-
xml_accessor :capabilities, :as => [Capability]
|
9
|
+
xml_accessor :id, :from => "@id"
|
11
10
|
xml_accessor :position, :as => Position
|
11
|
+
xml_accessor :gateway
|
12
12
|
xml_accessor :nodeType
|
13
13
|
xml_accessor :description
|
14
|
-
xml_accessor :
|
14
|
+
xml_accessor :capabilities, :as => [Capability]
|
15
15
|
xml_accessor :programDetails
|
16
16
|
xml_accessor :data, :as => [Data]
|
17
17
|
xml_accessor :message, :as => Trace::Message
|
data/lib/wiseml/setup/setup.rb
CHANGED
@@ -6,12 +6,12 @@ module WiseML
|
|
6
6
|
# properties of a setup. Setters and getters are implicitly defined
|
7
7
|
# trough the accesors
|
8
8
|
|
9
|
-
xml_accessor :id
|
9
|
+
xml_accessor :id, :as => Integer
|
10
10
|
xml_accessor :origin, :as => Origin
|
11
11
|
xml_accessor :timeinfo, :as => TimeInfo
|
12
12
|
xml_accessor :interpolation
|
13
|
-
xml_accessor :description
|
14
13
|
xml_accessor :coordinateType
|
14
|
+
xml_accessor :description
|
15
15
|
xml_accessor :defaults, :as => Defaults
|
16
16
|
xml_accessor :nodes, :as => [Node]
|
17
17
|
xml_accessor :link, :as => [Link]
|
data/lib/wiseml/trace/message.rb
CHANGED
data/lib/wiseml/trace/trace.rb
CHANGED
data/lib/wiseml/wiseml.rb
CHANGED
@@ -7,11 +7,27 @@ module WiseML
|
|
7
7
|
|
8
8
|
include ROXML
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
NAMESPACE = "http://wisebed.eu/ns/wiseml/1.0"
|
11
|
+
|
12
|
+
xml_accessor :version, :from => "@version"
|
12
13
|
xml_accessor :setup, :as => Setup::Setup
|
13
14
|
xml_accessor :scenario, :as => Scenario::Scenario
|
14
15
|
xml_accessor :trace, :as => Trace::Trace
|
16
|
+
|
17
|
+
def to_xmldoc
|
18
|
+
doc = Nokogiri::XML::Document.new
|
19
|
+
doc.root = self.to_xml
|
20
|
+
doc.root.add_namespace_definition(nil, NAMESPACE)
|
21
|
+
doc
|
22
|
+
end
|
23
|
+
|
24
|
+
def write_to(string_or_io)
|
25
|
+
to_xmldoc.write_to(string_or_io, :encoding => 'UTF-8')
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_s
|
29
|
+
to_xmldoc.root.to_s
|
30
|
+
end
|
15
31
|
|
16
32
|
end
|
17
33
|
end
|
data/test/test_xml.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "test/unit"
|
2
2
|
|
3
|
-
require File.dirname(__FILE__) + '/../lib/
|
3
|
+
require File.dirname(__FILE__) + '/../lib/wiseml.rb'
|
4
4
|
|
5
5
|
class TestXml < Test::Unit::TestCase
|
6
6
|
|
@@ -22,12 +22,16 @@ class TestXml < Test::Unit::TestCase
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def test_write_to_xml
|
25
|
-
# xsd file seems outdated and is itself invalid...
|
26
|
-
#xsd = Nokogiri::XML::Schema("wiseml.model.xsd")
|
27
25
|
|
28
|
-
|
29
|
-
|
26
|
+
# writes the xml document to a file
|
27
|
+
@wisexml.write_to(File.open("out.xml","w"))
|
30
28
|
|
29
|
+
# and read both schema and document to validate
|
30
|
+
xsd = Nokogiri::XML::Schema(File.read("wiseml.xsd"))
|
31
|
+
doc = Nokogiri::XML(File.read("out.xml"))
|
32
|
+
|
33
|
+
# empty as in not a single error -> validates
|
34
|
+
assert(xsd.validate(doc).empty?)
|
31
35
|
end
|
32
36
|
|
33
37
|
end
|
data/test/wiseml.xsd
ADDED
@@ -0,0 +1,306 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!--
|
3
|
+
W3C XML schema for WiseML, version 1.0
|
4
|
+
|
5
|
+
NOTE: This W3C XML schema is converted from the RELAX NG schema.
|
6
|
+
It is unsupported and unmaintained.
|
7
|
+
|
8
|
+
Created by Martin Bor (m.c.bor@tudelt.nl) on 2010-03-16.
|
9
|
+
Copyright 2010 TU Delft. All rights reserved.
|
10
|
+
-->
|
11
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
|
12
|
+
targetNamespace="http://wisebed.eu/ns/wiseml/1.0" xmlns:wiseml="http://wisebed.eu/ns/wiseml/1.0">
|
13
|
+
<!-- ROOT -->
|
14
|
+
<xs:element name="wiseml">
|
15
|
+
<xs:complexType>
|
16
|
+
<xs:sequence>
|
17
|
+
<xs:element ref="wiseml:setup" />
|
18
|
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="wiseml:scenario" />
|
19
|
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="wiseml:trace" />
|
20
|
+
</xs:sequence>
|
21
|
+
<xs:attribute name="version" use="required">
|
22
|
+
<xs:simpleType>
|
23
|
+
<xs:restriction base="xs:token">
|
24
|
+
<xs:enumeration value="1.0" />
|
25
|
+
</xs:restriction>
|
26
|
+
</xs:simpleType>
|
27
|
+
</xs:attribute>
|
28
|
+
</xs:complexType>
|
29
|
+
</xs:element>
|
30
|
+
<!-- SETUP -->
|
31
|
+
<xs:element name="setup">
|
32
|
+
<xs:complexType>
|
33
|
+
<xs:sequence>
|
34
|
+
<xs:group minOccurs="0" ref="wiseml:setup.properties" />
|
35
|
+
<xs:element minOccurs="0" ref="wiseml:defaults" />
|
36
|
+
<xs:group maxOccurs="unbounded" ref="wiseml:node" />
|
37
|
+
<xs:group minOccurs="0" maxOccurs="unbounded" ref="wiseml:link" />
|
38
|
+
</xs:sequence>
|
39
|
+
</xs:complexType>
|
40
|
+
</xs:element>
|
41
|
+
<xs:group name="setup.properties">
|
42
|
+
<xs:sequence>
|
43
|
+
<xs:element minOccurs="0" ref="wiseml:origin" />
|
44
|
+
<xs:element minOccurs="0" ref="wiseml:timeinfo" />
|
45
|
+
<xs:element minOccurs="0" ref="wiseml:interpolation" />
|
46
|
+
<xs:element minOccurs="0" ref="wiseml:coordinateType" />
|
47
|
+
<xs:element minOccurs="0" ref="wiseml:description" />
|
48
|
+
</xs:sequence>
|
49
|
+
</xs:group>
|
50
|
+
<xs:element name="origin" type="wiseml:coordinate" />
|
51
|
+
<xs:element name="timeinfo" type="wiseml:timeinfo" />
|
52
|
+
<xs:element name="interpolation" type="wiseml:interpolation" />
|
53
|
+
<xs:element name="coordinateType" type="xs:string" />
|
54
|
+
<xs:element name="description" type="xs:string" />
|
55
|
+
<xs:complexType name="timeinfo">
|
56
|
+
<xs:sequence>
|
57
|
+
<xs:element ref="wiseml:start" />
|
58
|
+
<xs:choice>
|
59
|
+
<xs:element ref="wiseml:end" />
|
60
|
+
<xs:element ref="wiseml:duration" />
|
61
|
+
</xs:choice>
|
62
|
+
<xs:element ref="wiseml:unit" />
|
63
|
+
</xs:sequence>
|
64
|
+
</xs:complexType>
|
65
|
+
<xs:element name="start" type="xs:dateTime" />
|
66
|
+
<xs:element name="end" type="xs:dateTime" />
|
67
|
+
<xs:element name="duration" type="xs:string" />
|
68
|
+
<xs:element name="unit" type="xs:string" />
|
69
|
+
<!-- DEFAULTS -->
|
70
|
+
<xs:element name="defaults">
|
71
|
+
<xs:complexType>
|
72
|
+
<xs:sequence>
|
73
|
+
<xs:element minOccurs="0" name="node" type="wiseml:node.properties" />
|
74
|
+
<xs:element minOccurs="0" name="link" type="wiseml:link.properties" />
|
75
|
+
</xs:sequence>
|
76
|
+
</xs:complexType>
|
77
|
+
</xs:element>
|
78
|
+
<!-- NODE -->
|
79
|
+
<xs:group name="node">
|
80
|
+
<xs:sequence>
|
81
|
+
<xs:element name="node">
|
82
|
+
<xs:complexType>
|
83
|
+
<xs:complexContent>
|
84
|
+
<xs:extension base="wiseml:node.properties">
|
85
|
+
<xs:attribute name="id" use="required" />
|
86
|
+
</xs:extension>
|
87
|
+
</xs:complexContent>
|
88
|
+
</xs:complexType>
|
89
|
+
</xs:element>
|
90
|
+
</xs:sequence>
|
91
|
+
</xs:group>
|
92
|
+
<xs:complexType name="node.properties">
|
93
|
+
<xs:sequence>
|
94
|
+
<xs:element minOccurs="0" ref="wiseml:position" />
|
95
|
+
<xs:element minOccurs="0" ref="wiseml:gateway" />
|
96
|
+
<xs:element minOccurs="0" ref="wiseml:programDetails" />
|
97
|
+
<xs:element minOccurs="0" ref="wiseml:nodeType" />
|
98
|
+
<xs:element minOccurs="0" ref="wiseml:description" />
|
99
|
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="wiseml:capability" />
|
100
|
+
</xs:sequence>
|
101
|
+
</xs:complexType>
|
102
|
+
<xs:element name="position" type="wiseml:coordinate" />
|
103
|
+
<xs:element name="gateway" type="xs:boolean" />
|
104
|
+
<xs:element name="programDetails" type="xs:string" />
|
105
|
+
<xs:element name="nodeType" type="xs:string" />
|
106
|
+
<!-- LINK -->
|
107
|
+
<xs:group name="link">
|
108
|
+
<xs:sequence>
|
109
|
+
<xs:element name="link">
|
110
|
+
<xs:complexType>
|
111
|
+
<xs:complexContent>
|
112
|
+
<xs:extension base="wiseml:link.properties">
|
113
|
+
<xs:attribute name="source" use="required" />
|
114
|
+
<xs:attribute name="target" use="required" />
|
115
|
+
</xs:extension>
|
116
|
+
</xs:complexContent>
|
117
|
+
</xs:complexType>
|
118
|
+
</xs:element>
|
119
|
+
</xs:sequence>
|
120
|
+
</xs:group>
|
121
|
+
<xs:complexType name="link.properties">
|
122
|
+
<xs:sequence>
|
123
|
+
<xs:element minOccurs="0" ref="wiseml:encrypted" />
|
124
|
+
<xs:element minOccurs="0" ref="wiseml:virtual" />
|
125
|
+
<xs:element minOccurs="0" ref="wiseml:rssi" />
|
126
|
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="wiseml:capability" />
|
127
|
+
</xs:sequence>
|
128
|
+
</xs:complexType>
|
129
|
+
<xs:element name="encrypted" type="xs:boolean" />
|
130
|
+
<xs:element name="virtual" type="xs:boolean" />
|
131
|
+
<xs:element name="rssi">
|
132
|
+
<xs:complexType>
|
133
|
+
<xs:attribute name="datatype" use="required" type="wiseml:dtypes" />
|
134
|
+
<xs:attribute name="unit" use="required" type="wiseml:units" />
|
135
|
+
<xs:attribute name="default" use="required" />
|
136
|
+
</xs:complexType>
|
137
|
+
</xs:element>
|
138
|
+
<!-- SETUP COMMON ELEMENTS -->
|
139
|
+
<xs:element name="capability">
|
140
|
+
<xs:complexType>
|
141
|
+
<xs:sequence>
|
142
|
+
<xs:element ref="wiseml:name" />
|
143
|
+
<xs:element ref="wiseml:datatype" />
|
144
|
+
<xs:element name="unit" type="wiseml:units" />
|
145
|
+
<xs:element ref="wiseml:default" />
|
146
|
+
</xs:sequence>
|
147
|
+
</xs:complexType>
|
148
|
+
</xs:element>
|
149
|
+
<xs:element name="name" type="xs:string" />
|
150
|
+
<xs:element name="datatype" type="wiseml:dtypes" />
|
151
|
+
<xs:element name="default" type="xs:string" />
|
152
|
+
<!-- SCENARIO -->
|
153
|
+
<xs:element name="scenario">
|
154
|
+
<xs:complexType>
|
155
|
+
<xs:group maxOccurs="unbounded" ref="wiseml:scenario.item" />
|
156
|
+
<xs:attribute name="id" use="required" />
|
157
|
+
</xs:complexType>
|
158
|
+
</xs:element>
|
159
|
+
<xs:group name="scenario.item">
|
160
|
+
<xs:sequence>
|
161
|
+
<xs:element ref="wiseml:timestamp" />
|
162
|
+
<xs:choice maxOccurs="unbounded">
|
163
|
+
<xs:element ref="wiseml:enableNode" />
|
164
|
+
<xs:element ref="wiseml:disableNode" />
|
165
|
+
<xs:element ref="wiseml:enableLink" />
|
166
|
+
<xs:element ref="wiseml:disableLink" />
|
167
|
+
<xs:group ref="wiseml:node.scenario" />
|
168
|
+
</xs:choice>
|
169
|
+
</xs:sequence>
|
170
|
+
</xs:group>
|
171
|
+
<xs:element name="enableNode">
|
172
|
+
<xs:complexType>
|
173
|
+
<xs:attribute name="id" use="required" />
|
174
|
+
</xs:complexType>
|
175
|
+
</xs:element>
|
176
|
+
<xs:element name="disableNode">
|
177
|
+
<xs:complexType>
|
178
|
+
<xs:attribute name="id" use="required" />
|
179
|
+
</xs:complexType>
|
180
|
+
</xs:element>
|
181
|
+
<xs:element name="enableLink">
|
182
|
+
<xs:complexType>
|
183
|
+
<xs:attribute name="source" use="required" />
|
184
|
+
<xs:attribute name="target" use="required" />
|
185
|
+
</xs:complexType>
|
186
|
+
</xs:element>
|
187
|
+
<xs:element name="disableLink">
|
188
|
+
<xs:complexType>
|
189
|
+
<xs:attribute name="source" use="required" />
|
190
|
+
<xs:attribute name="target" use="required" />
|
191
|
+
</xs:complexType>
|
192
|
+
</xs:element>
|
193
|
+
<xs:group name="node.scenario">
|
194
|
+
<xs:sequence>
|
195
|
+
<xs:element name="node">
|
196
|
+
<xs:complexType>
|
197
|
+
<xs:sequence maxOccurs="unbounded">
|
198
|
+
<xs:element minOccurs="0" ref="wiseml:position" />
|
199
|
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="wiseml:data" />
|
200
|
+
</xs:sequence>
|
201
|
+
<xs:attribute name="id" use="required" />
|
202
|
+
</xs:complexType>
|
203
|
+
</xs:element>
|
204
|
+
</xs:sequence>
|
205
|
+
</xs:group>
|
206
|
+
<xs:element name="data">
|
207
|
+
<xs:complexType mixed="true">
|
208
|
+
<xs:attribute name="key" use="required" />
|
209
|
+
</xs:complexType>
|
210
|
+
</xs:element>
|
211
|
+
<!-- TRACE -->
|
212
|
+
<xs:element name="trace">
|
213
|
+
<xs:complexType>
|
214
|
+
<xs:group maxOccurs="unbounded" ref="wiseml:trace.item" />
|
215
|
+
<xs:attribute name="id" use="required" />
|
216
|
+
</xs:complexType>
|
217
|
+
</xs:element>
|
218
|
+
<xs:group name="trace.item">
|
219
|
+
<xs:sequence>
|
220
|
+
<xs:element ref="wiseml:timestamp" />
|
221
|
+
<xs:choice maxOccurs="unbounded">
|
222
|
+
<xs:group ref="wiseml:node.traceitem" />
|
223
|
+
<xs:group ref="wiseml:link.traceitem" />
|
224
|
+
</xs:choice>
|
225
|
+
</xs:sequence>
|
226
|
+
</xs:group>
|
227
|
+
<xs:element name="timestamp" type="xs:string" />
|
228
|
+
<xs:group name="node.traceitem">
|
229
|
+
<xs:sequence>
|
230
|
+
<xs:element name="node">
|
231
|
+
<xs:complexType>
|
232
|
+
<xs:sequence>
|
233
|
+
<xs:element minOccurs="0" ref="wiseml:position" />
|
234
|
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="wiseml:data" />
|
235
|
+
</xs:sequence>
|
236
|
+
<xs:attribute name="id" use="required" />
|
237
|
+
</xs:complexType>
|
238
|
+
</xs:element>
|
239
|
+
</xs:sequence>
|
240
|
+
</xs:group>
|
241
|
+
<xs:group name="link.traceitem">
|
242
|
+
<xs:sequence>
|
243
|
+
<xs:element name="link">
|
244
|
+
<xs:complexType>
|
245
|
+
<xs:sequence>
|
246
|
+
<xs:element minOccurs="0" name="rssi" type="xs:string" />
|
247
|
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="wiseml:data" />
|
248
|
+
</xs:sequence>
|
249
|
+
<xs:attribute name="source" use="required" />
|
250
|
+
<xs:attribute name="target" use="required" />
|
251
|
+
</xs:complexType>
|
252
|
+
</xs:element>
|
253
|
+
</xs:sequence>
|
254
|
+
</xs:group>
|
255
|
+
<!-- DATA TYPES -->
|
256
|
+
<xs:simpleType name="dtypes">
|
257
|
+
<xs:restriction base="xs:token">
|
258
|
+
<xs:enumeration value="decimal" />
|
259
|
+
<xs:enumeration value="integer" />
|
260
|
+
</xs:restriction>
|
261
|
+
</xs:simpleType>
|
262
|
+
<xs:simpleType name="units">
|
263
|
+
<xs:restriction base="xs:token">
|
264
|
+
<xs:enumeration value="meters" />
|
265
|
+
<xs:enumeration value="centimeters" />
|
266
|
+
<xs:enumeration value="radians" />
|
267
|
+
<xs:enumeration value="degrees" />
|
268
|
+
<xs:enumeration value="seconds" />
|
269
|
+
<xs:enumeration value="milliseconds" />
|
270
|
+
<xs:enumeration value="dBm" />
|
271
|
+
<xs:enumeration value="kelvin" />
|
272
|
+
<xs:enumeration value="percentage" />
|
273
|
+
<xs:enumeration value="lux" />
|
274
|
+
<xs:enumeration value="raw" />
|
275
|
+
</xs:restriction>
|
276
|
+
</xs:simpleType>
|
277
|
+
<xs:simpleType name="interpolation">
|
278
|
+
<xs:restriction base="xs:token">
|
279
|
+
<xs:enumeration value="none" />
|
280
|
+
<xs:enumeration value="linear" />
|
281
|
+
<xs:enumeration value="polynomial" />
|
282
|
+
<xs:enumeration value="cubic" />
|
283
|
+
<xs:enumeration value="spline" />
|
284
|
+
</xs:restriction>
|
285
|
+
</xs:simpleType>
|
286
|
+
<xs:attributeGroup name="unit">
|
287
|
+
<xs:attribute name="unit" use="required" type="wiseml:units" />
|
288
|
+
</xs:attributeGroup>
|
289
|
+
<xs:attributeGroup name="dtype">
|
290
|
+
<xs:attribute name="datatype" use="required" type="wiseml:dtypes" />
|
291
|
+
</xs:attributeGroup>
|
292
|
+
<xs:complexType name="coordinate">
|
293
|
+
<xs:sequence>
|
294
|
+
<xs:element ref="wiseml:x" />
|
295
|
+
<xs:element ref="wiseml:y" />
|
296
|
+
<xs:element minOccurs="0" ref="wiseml:z" />
|
297
|
+
<xs:element minOccurs="0" ref="wiseml:phi" />
|
298
|
+
<xs:element minOccurs="0" ref="wiseml:theta" />
|
299
|
+
</xs:sequence>
|
300
|
+
</xs:complexType>
|
301
|
+
<xs:element name="x" type="xs:double" />
|
302
|
+
<xs:element name="y" type="xs:double" />
|
303
|
+
<xs:element name="z" type="xs:double" />
|
304
|
+
<xs:element name="phi" type="xs:double" />
|
305
|
+
<xs:element name="theta" type="xs:double" />
|
306
|
+
</xs:schema>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wiseml-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -89,7 +89,7 @@ files:
|
|
89
89
|
- test/test_xml.rb
|
90
90
|
- test/wisebed_uzl_demo.json
|
91
91
|
- test/wisebed_uzl_demo.xml
|
92
|
-
- test/wiseml.
|
92
|
+
- test/wiseml.xsd
|
93
93
|
- wiseml-ruby.gemspec
|
94
94
|
homepage: ''
|
95
95
|
licenses: []
|
@@ -119,4 +119,4 @@ test_files:
|
|
119
119
|
- test/test_xml.rb
|
120
120
|
- test/wisebed_uzl_demo.json
|
121
121
|
- test/wisebed_uzl_demo.xml
|
122
|
-
- test/wiseml.
|
122
|
+
- test/wiseml.xsd
|
data/test/wiseml.model.xsd
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://wiseml.model" xmlns:ns1="http://wiseml.model/setup" elementFormDefault="qualified" targetNamespace="http://wiseml.model">
|
2
|
-
<xs:import namespace="http://wiseml.model/setup" schemaLocation="setup.xsd"/>
|
3
|
-
<xs:element type="tns:wiseml" name="wiseml"/>
|
4
|
-
<xs:complexType name="wiseml">
|
5
|
-
<xs:sequence>
|
6
|
-
<xs:element name="setup" minOccurs="0">
|
7
|
-
<xs:complexType>
|
8
|
-
<xs:sequence>
|
9
|
-
<xs:element name="node" minOccurs="0" maxOccurs="unbounded">
|
10
|
-
<xs:complexType>
|
11
|
-
<xs:sequence>
|
12
|
-
<xs:element type="xs:string" name="id" minOccurs="0"/>
|
13
|
-
<xs:element type="ns1:capability" name="capability" minOccurs="0" maxOccurs="unbounded"/>
|
14
|
-
<xs:element name="position" minOccurs="0">
|
15
|
-
<xs:complexType>
|
16
|
-
<xs:sequence/>
|
17
|
-
<xs:attribute type="xs:float" use="required" name="x"/>
|
18
|
-
<xs:attribute type="xs:float" use="required" name="y"/>
|
19
|
-
<xs:attribute type="xs:float" use="required" name="z"/>
|
20
|
-
<xs:attribute type="xs:int" use="required" name="phi"/>
|
21
|
-
<xs:attribute type="xs:int" use="required" name="theta"/>
|
22
|
-
</xs:complexType>
|
23
|
-
</xs:element>
|
24
|
-
<xs:element type="xs:string" name="nodeType" minOccurs="0"/>
|
25
|
-
<xs:element type="xs:string" name="description" minOccurs="0"/>
|
26
|
-
<xs:element type="xs:string" name="programDetails" minOccurs="0"/>
|
27
|
-
</xs:sequence>
|
28
|
-
<xs:attribute type="xs:int" use="required" name="gateway"/>
|
29
|
-
</xs:complexType>
|
30
|
-
</xs:element>
|
31
|
-
<xs:element name="origin" minOccurs="0">
|
32
|
-
<xs:complexType>
|
33
|
-
<xs:sequence/>
|
34
|
-
<xs:attribute type="xs:float" use="required" name="x"/>
|
35
|
-
<xs:attribute type="xs:float" use="required" name="y"/>
|
36
|
-
<xs:attribute type="xs:float" use="required" name="z"/>
|
37
|
-
<xs:attribute type="xs:int" use="required" name="phi"/>
|
38
|
-
<xs:attribute type="xs:int" use="required" name="theta"/>
|
39
|
-
</xs:complexType>
|
40
|
-
</xs:element>
|
41
|
-
<xs:element name="timeinfo" minOccurs="0">
|
42
|
-
<xs:complexType>
|
43
|
-
<xs:sequence>
|
44
|
-
<xs:element type="xs:string" name="unit" minOccurs="0"/>
|
45
|
-
</xs:sequence>
|
46
|
-
<xs:attribute type="xs:dateTime" name="start"/>
|
47
|
-
<xs:attribute type="xs:dateTime" name="end"/>
|
48
|
-
<xs:attribute type="xs:int" use="required" name="duration"/>
|
49
|
-
</xs:complexType>
|
50
|
-
</xs:element>
|
51
|
-
<xs:element type="xs:string" name="interpolation" minOccurs="0"/>
|
52
|
-
<xs:element type="xs:string" name="description" minOccurs="0"/>
|
53
|
-
<xs:element name="link" minOccurs="0" maxOccurs="unbounded">
|
54
|
-
<xs:complexType>
|
55
|
-
<xs:sequence>
|
56
|
-
<xs:element type="xs:string" name="source" minOccurs="0"/>
|
57
|
-
<xs:element type="xs:string" name="target" minOccurs="0"/>
|
58
|
-
<xs:element type="ns1:capability" name="capability" minOccurs="0" maxOccurs="unbounded"/>
|
59
|
-
<xs:element name="rssi" minOccurs="0">
|
60
|
-
<xs:complexType>
|
61
|
-
<xs:sequence>
|
62
|
-
<xs:element type="xs:string" name="datatype" minOccurs="0"/>
|
63
|
-
<xs:element type="xs:string" name="unit" minOccurs="0"/>
|
64
|
-
</xs:sequence>
|
65
|
-
</xs:complexType>
|
66
|
-
</xs:element>
|
67
|
-
</xs:sequence>
|
68
|
-
<xs:attribute type="xs:boolean" use="required" name="encrypted"/>
|
69
|
-
<xs:attribute type="xs:boolean" use="required" name="virtual"/>
|
70
|
-
</xs:complexType>
|
71
|
-
</xs:element>
|
72
|
-
</xs:sequence>
|
73
|
-
</xs:complexType>
|
74
|
-
</xs:element>
|
75
|
-
<xs:element name="scenario" minOccurs="0">
|
76
|
-
<xs:complexType>
|
77
|
-
<xs:sequence/>
|
78
|
-
<xs:attribute type="xs:int" use="required" name="id"/>
|
79
|
-
</xs:complexType>
|
80
|
-
</xs:element>
|
81
|
-
<xs:element name="trace" minOccurs="0">
|
82
|
-
<xs:complexType>
|
83
|
-
<xs:sequence/>
|
84
|
-
<xs:attribute type="xs:int" use="required" name="id"/>
|
85
|
-
</xs:complexType>
|
86
|
-
</xs:element>
|
87
|
-
</xs:sequence>
|
88
|
-
</xs:complexType>
|
89
|
-
</xs:schema>
|