wiseml-ruby 0.0.2 → 0.0.3

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,3 +1,3 @@
1
1
  module WiseML
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -9,7 +9,7 @@ module WiseML
9
9
  xml_accessor :name
10
10
  xml_accessor :datatype
11
11
  xml_accessor :unit
12
- xml_accessor :defaultValue
12
+ xml_accessor :default
13
13
  xml_accessor :nodes, :as => [Node]
14
14
  xml_accessor :links, :as => [Link]
15
15
  xml_accessor :description
@@ -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, :as => Integer
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 :gateway
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
@@ -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]
@@ -7,7 +7,7 @@ module WiseML
7
7
  # trough the accesors
8
8
 
9
9
  xml_accessor :timestamp
10
- xml_accessor :id
10
+ xml_accessor :id, :from => "@id"
11
11
  xml_accessor :data
12
12
 
13
13
  end
@@ -6,7 +6,7 @@ module WiseML
6
6
  # properties of a Trace. 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 :timestamp, :as => [Scenario::Timestamp]
11
11
  xml_accessor :children
12
12
 
@@ -7,11 +7,27 @@ module WiseML
7
7
 
8
8
  include ROXML
9
9
 
10
- xml_accessor :version
11
- xml_accessor :xmlns
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
@@ -1,6 +1,6 @@
1
1
  require "test/unit"
2
2
 
3
- require File.dirname(__FILE__) + '/../lib/wise_ml.rb'
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
- doc = Nokogiri::XML::Document.new
29
- doc.root = @wisexml.to_xml
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
@@ -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.2
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-01 00:00:00.000000000 Z
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.model.xsd
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.model.xsd
122
+ - test/wiseml.xsd
@@ -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>