bcl 0.5.7.pre → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,422 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- edited with XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) by Daniel Macumber (NREL) -->
3
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
4
+ <xs:annotation>
5
+ <xs:documentation>Measure.xsd describes the measures that are in the building component library or NREL analysis platform library.</xs:documentation>
6
+ </xs:annotation>
7
+ <xs:element name="schema_version" fixed="3.0">
8
+ <xs:annotation>
9
+ <xs:documentation>schema version</xs:documentation>
10
+ </xs:annotation>
11
+ <xs:simpleType>
12
+ <xs:restriction base="xs:string"/>
13
+ </xs:simpleType>
14
+ </xs:element>
15
+ <xs:element name="uid" type="xs:string">
16
+ <xs:annotation>
17
+ <xs:documentation>universally unique identifier which does not chage each time a new version is created</xs:documentation>
18
+ </xs:annotation>
19
+ </xs:element>
20
+ <xs:element name="version_id" type="xs:string">
21
+ <xs:annotation>
22
+ <xs:documentation>universally unique identifier which changes each time a new version is created</xs:documentation>
23
+ </xs:annotation>
24
+ </xs:element>
25
+ <xs:element name="version_modified" type="xs:dateTime">
26
+ <xs:annotation>
27
+ <xs:documentation>timestamp at which the current version_id was created</xs:documentation>
28
+ </xs:annotation>
29
+ </xs:element>
30
+ <xs:element name="xml_checksum" type="xs:string">
31
+ <xs:annotation>
32
+ <xs:documentation>checksum of selected xml elements and attributes, used to detect changes to the xml</xs:documentation>
33
+ </xs:annotation>
34
+ </xs:element>
35
+ <xs:element name="error">
36
+ <xs:annotation>
37
+ <xs:documentation>record an error with this component or measure</xs:documentation>
38
+ </xs:annotation>
39
+ </xs:element>
40
+ <xs:element name="name" type="xs:string">
41
+ <xs:annotation>
42
+ <xs:documentation>snake cased machine readable name, e.g. 'my_name'</xs:documentation>
43
+ </xs:annotation>
44
+ </xs:element>
45
+ <xs:element name="display_name" type="xs:string">
46
+ <xs:annotation>
47
+ <xs:documentation>user facing name, e.g. 'My Name'</xs:documentation>
48
+ </xs:annotation>
49
+ </xs:element>
50
+ <xs:element name="description" type="xs:string">
51
+ <xs:annotation>
52
+ <xs:documentation>user facing description</xs:documentation>
53
+ </xs:annotation>
54
+ </xs:element>
55
+ <xs:element name="modeler_description" type="xs:string">
56
+ <xs:annotation>
57
+ <xs:documentation>technical description of the content's implementation details</xs:documentation>
58
+ </xs:annotation>
59
+ </xs:element>
60
+ <xs:element name="class_name" type="xs:string">
61
+ <xs:annotation>
62
+ <xs:documentation>for measures only. the name of the Ruby class implementing a measure</xs:documentation>
63
+ </xs:annotation>
64
+ </xs:element>
65
+ <xs:element name="arguments">
66
+ <xs:annotation>
67
+ <xs:documentation>for measures only. arguments are computed based on a particular model and passed to the measure at run time. actual values passed to the measure at run time are not captured here, only properties of the arguments </xs:documentation>
68
+ </xs:annotation>
69
+ <xs:complexType>
70
+ <xs:sequence>
71
+ <xs:element name="argument" minOccurs="0" maxOccurs="unbounded">
72
+ <xs:complexType>
73
+ <xs:sequence>
74
+ <xs:element ref="name"/>
75
+ <xs:element ref="display_name"/>
76
+ <xs:element ref="description" minOccurs="0"/>
77
+ <xs:element name="type">
78
+ <xs:annotation>
79
+ <xs:documentation>type of the argument</xs:documentation>
80
+ </xs:annotation>
81
+ <xs:simpleType>
82
+ <xs:restriction base="xs:string">
83
+ <xs:enumeration value="Boolean"/>
84
+ <xs:enumeration value="Double"/>
85
+ <xs:enumeration value="Integer"/>
86
+ <xs:enumeration value="String"/>
87
+ <xs:enumeration value="Choice"/>
88
+ <xs:enumeration value="Path"/>
89
+ </xs:restriction>
90
+ </xs:simpleType>
91
+ </xs:element>
92
+ <xs:element name="units" type="xs:string" minOccurs="0">
93
+ <xs:annotation>
94
+ <xs:documentation>units of the argument value in format parsable by OpenStudio::convert</xs:documentation>
95
+ </xs:annotation>
96
+ </xs:element>
97
+ <xs:element name="required" type="xs:boolean">
98
+ <xs:annotation>
99
+ <xs:documentation>true if the argument is required in order for the measure to run</xs:documentation>
100
+ </xs:annotation>
101
+ </xs:element>
102
+ <xs:element name="model_dependent" type="xs:boolean" default="false">
103
+ <xs:annotation>
104
+ <xs:documentation>true if any of this argument's properties depend on the specific model used. default_value, choice_values, min_value, and max_value will not be populated for dynamic arguments</xs:documentation>
105
+ </xs:annotation>
106
+ </xs:element>
107
+ <xs:element name="default_value" type="xs:anySimpleType" minOccurs="0">
108
+ <xs:annotation>
109
+ <xs:documentation>default value for the argument</xs:documentation>
110
+ </xs:annotation>
111
+ </xs:element>
112
+ <xs:element name="choices" minOccurs="0">
113
+ <xs:annotation>
114
+ <xs:documentation>list of allowable values</xs:documentation>
115
+ </xs:annotation>
116
+ <xs:complexType>
117
+ <xs:sequence>
118
+ <xs:element name="choice" maxOccurs="unbounded">
119
+ <xs:complexType>
120
+ <xs:sequence>
121
+ <xs:element name="value" type="xs:anySimpleType">
122
+ <xs:annotation>
123
+ <xs:documentation>allowable value</xs:documentation>
124
+ </xs:annotation>
125
+ </xs:element>
126
+ <xs:element name="display_name" type="xs:string">
127
+ <xs:annotation>
128
+ <xs:documentation>user facing name for value</xs:documentation>
129
+ </xs:annotation>
130
+ </xs:element>
131
+ </xs:sequence>
132
+ </xs:complexType>
133
+ </xs:element>
134
+ </xs:sequence>
135
+ </xs:complexType>
136
+ </xs:element>
137
+ <xs:element name="min_value" type="xs:anySimpleType" minOccurs="0">
138
+ <xs:annotation>
139
+ <xs:documentation>minimum value</xs:documentation>
140
+ </xs:annotation>
141
+ </xs:element>
142
+ <xs:element name="max_value" type="xs:anySimpleType" minOccurs="0">
143
+ <xs:annotation>
144
+ <xs:documentation>maximum value</xs:documentation>
145
+ </xs:annotation>
146
+ </xs:element>
147
+ </xs:sequence>
148
+ </xs:complexType>
149
+ </xs:element>
150
+ </xs:sequence>
151
+ </xs:complexType>
152
+ </xs:element>
153
+ <xs:element name="masterguide_csi_values">
154
+ <xs:annotation>
155
+ <xs:documentation>for components only. values from the MASTERSPEC</xs:documentation>
156
+ </xs:annotation>
157
+ <xs:complexType>
158
+ <xs:sequence>
159
+ <xs:element name="masterguide_csi_value" maxOccurs="unbounded"/>
160
+ </xs:sequence>
161
+ </xs:complexType>
162
+ </xs:element>
163
+ <xs:element name="source">
164
+ <xs:annotation>
165
+ <xs:documentation>for components only. source of the data (the origin of the component information)</xs:documentation>
166
+ </xs:annotation>
167
+ <xs:complexType>
168
+ <xs:sequence minOccurs="0">
169
+ <xs:element name="manufacturer" type="xs:string" minOccurs="0"/>
170
+ <xs:element name="model" minOccurs="0"/>
171
+ <xs:element name="serial_no" minOccurs="0"/>
172
+ <xs:element name="year" minOccurs="0"/>
173
+ <xs:element name="url" minOccurs="0"/>
174
+ </xs:sequence>
175
+ </xs:complexType>
176
+ </xs:element>
177
+ <xs:element name="provenances">
178
+ <xs:annotation>
179
+ <xs:documentation>provenance is used to enter author information. </xs:documentation>
180
+ </xs:annotation>
181
+ <xs:complexType>
182
+ <xs:sequence>
183
+ <xs:element name="provenance" minOccurs="0" maxOccurs="unbounded">
184
+ <xs:complexType>
185
+ <xs:sequence>
186
+ <xs:element name="author" type="xs:string">
187
+ <xs:annotation>
188
+ <xs:documentation>author who uploaded the content, will be equal to the user account on the bcl site</xs:documentation>
189
+ </xs:annotation>
190
+ </xs:element>
191
+ <xs:element name="datetime" type="xs:dateTime">
192
+ <xs:annotation>
193
+ <xs:documentation>date content was uploaded</xs:documentation>
194
+ </xs:annotation>
195
+ </xs:element>
196
+ <xs:element name="comment" type="xs:string" minOccurs="0">
197
+ <xs:annotation>
198
+ <xs:documentation>general comment</xs:documentation>
199
+ </xs:annotation>
200
+ </xs:element>
201
+ </xs:sequence>
202
+ </xs:complexType>
203
+ </xs:element>
204
+ </xs:sequence>
205
+ </xs:complexType>
206
+ </xs:element>
207
+ <xs:element name="tags">
208
+ <xs:annotation>
209
+ <xs:documentation>tags are used to classify the content within the appropriate taxonomy. currently only one tag per piece of content is supported.</xs:documentation>
210
+ </xs:annotation>
211
+ <xs:complexType>
212
+ <xs:sequence>
213
+ <xs:element name="tag" type="xs:string" maxOccurs="unbounded"/>
214
+ </xs:sequence>
215
+ </xs:complexType>
216
+ </xs:element>
217
+ <xs:element name="attributes">
218
+ <xs:annotation>
219
+ <xs:documentation>attributes are descriptors of the content. attributes should be found in the corresponding taxonomy</xs:documentation>
220
+ </xs:annotation>
221
+ <xs:complexType>
222
+ <xs:sequence>
223
+ <xs:element name="attribute" minOccurs="0" maxOccurs="unbounded">
224
+ <xs:complexType>
225
+ <xs:sequence>
226
+ <xs:element name="name" type="xs:string">
227
+ <xs:annotation>
228
+ <xs:documentation>user facing attribute name (should be found in appropriate taxonomy)</xs:documentation>
229
+ </xs:annotation>
230
+ </xs:element>
231
+ <xs:element name="value" type="xs:anySimpleType"/>
232
+ <xs:element name="datatype">
233
+ <xs:simpleType>
234
+ <xs:restriction base="xs:string">
235
+ <xs:enumeration value="float"/>
236
+ <xs:enumeration value="integer"/>
237
+ <xs:enumeration value="string"/>
238
+ <xs:enumeration value="boolean"/>
239
+ </xs:restriction>
240
+ </xs:simpleType>
241
+ </xs:element>
242
+ <xs:element name="units" type="xs:string" minOccurs="0"/>
243
+ </xs:sequence>
244
+ </xs:complexType>
245
+ </xs:element>
246
+ </xs:sequence>
247
+ </xs:complexType>
248
+ </xs:element>
249
+ <xs:element name="files">
250
+ <xs:annotation>
251
+ <xs:documentation>files lists details on all of the files associated with this piece content</xs:documentation>
252
+ </xs:annotation>
253
+ <xs:complexType>
254
+ <xs:sequence>
255
+ <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
256
+ <xs:complexType>
257
+ <xs:sequence>
258
+ <xs:element name="version" minOccurs="0">
259
+ <xs:complexType>
260
+ <xs:sequence>
261
+ <xs:element name="software_program" type="xs:string">
262
+ <xs:annotation>
263
+ <xs:documentation>software program the file is associated with</xs:documentation>
264
+ </xs:annotation>
265
+ </xs:element>
266
+ <xs:element name="identifier" type="xs:string">
267
+ <xs:annotation>
268
+ <xs:documentation>version of software program that this file is associated with</xs:documentation>
269
+ </xs:annotation>
270
+ </xs:element>
271
+ <xs:element name="min_compatible" minOccurs="0">
272
+ <xs:annotation>
273
+ <xs:documentation>minimum version of the software this file is compatible with, if not specified assumed to be the version identifier</xs:documentation>
274
+ </xs:annotation>
275
+ </xs:element>
276
+ <xs:element name="max_compatible" minOccurs="0">
277
+ <xs:annotation>
278
+ <xs:documentation>maximum version of the software this file is compatible with, if not specified assumed to be any version min_compatible or higher</xs:documentation>
279
+ </xs:annotation>
280
+ </xs:element>
281
+ </xs:sequence>
282
+ </xs:complexType>
283
+ </xs:element>
284
+ <xs:element name="filename" type="xs:string">
285
+ <xs:annotation>
286
+ <xs:documentation>name of the file</xs:documentation>
287
+ </xs:annotation>
288
+ </xs:element>
289
+ <xs:element name="filetype" type="xs:string">
290
+ <xs:annotation>
291
+ <xs:documentation>ies, idf, </xs:documentation>
292
+ </xs:annotation>
293
+ </xs:element>
294
+ <xs:element name="usage_type">
295
+ <xs:annotation>
296
+ <xs:documentation>identifies the directory to search for the file in </xs:documentation>
297
+ </xs:annotation>
298
+ <xs:simpleType>
299
+ <xs:restriction base="xs:string">
300
+ <xs:enumeration value="script"/>
301
+ <xs:enumeration value="test"/>
302
+ <xs:enumeration value="resource"/>
303
+ </xs:restriction>
304
+ </xs:simpleType>
305
+ </xs:element>
306
+ <xs:element name="checksum" type="xs:string">
307
+ <xs:annotation>
308
+ <xs:documentation>checksum of the file as computed by OpenStudio::checksum</xs:documentation>
309
+ </xs:annotation>
310
+ </xs:element>
311
+ </xs:sequence>
312
+ </xs:complexType>
313
+ </xs:element>
314
+ </xs:sequence>
315
+ </xs:complexType>
316
+ </xs:element>
317
+ <xs:element name="costs">
318
+ <xs:annotation>
319
+ <xs:documentation>for components only. costs related to the component</xs:documentation>
320
+ </xs:annotation>
321
+ <xs:complexType>
322
+ <xs:sequence>
323
+ <xs:element name="cost" minOccurs="0" maxOccurs="unbounded">
324
+ <xs:complexType>
325
+ <xs:sequence>
326
+ <xs:element name="instance_name" type="xs:string">
327
+ <xs:annotation>
328
+ <xs:documentation>name of cost for reference</xs:documentation>
329
+ </xs:annotation>
330
+ </xs:element>
331
+ <xs:element name="cost_type">
332
+ <xs:annotation>
333
+ <xs:documentation>type of cost, includes low, high, average, estimate, etc</xs:documentation>
334
+ </xs:annotation>
335
+ <xs:simpleType>
336
+ <xs:restriction base="xs:string">
337
+ <xs:enumeration value="low"/>
338
+ <xs:enumeration value="high"/>
339
+ <xs:enumeration value="average"/>
340
+ <xs:enumeration value="estimate"/>
341
+ </xs:restriction>
342
+ </xs:simpleType>
343
+ </xs:element>
344
+ <xs:element name="category">
345
+ <xs:annotation>
346
+ <xs:documentation>ex: operations and maintenance cost, salvage cost, materials cost, installation cost, upgrade cost, etc.</xs:documentation>
347
+ </xs:annotation>
348
+ </xs:element>
349
+ <xs:element name="value" type="xs:float">
350
+ <xs:annotation>
351
+ <xs:documentation>cost value based on the supplemntal fields</xs:documentation>
352
+ </xs:annotation>
353
+ </xs:element>
354
+ <xs:element name="units" minOccurs="0">
355
+ <xs:annotation>
356
+ <xs:documentation>cost unit. If blank, absolute cost is assumed. ex: $/ft2, $/person, etc.</xs:documentation>
357
+ </xs:annotation>
358
+ </xs:element>
359
+ <xs:element name="interval" minOccurs="0">
360
+ <xs:annotation>
361
+ <xs:documentation>number describing the interval on which this cost is incurred. ex: 1, 6, 12. Use 0 for onetime costs</xs:documentation>
362
+ </xs:annotation>
363
+ </xs:element>
364
+ <xs:element name="interval_units" minOccurs="0">
365
+ <xs:annotation>
366
+ <xs:documentation>interval units. ex: day, month, year, etc.</xs:documentation>
367
+ </xs:annotation>
368
+ <xs:simpleType>
369
+ <xs:restriction base="xs:string">
370
+ <xs:enumeration value="year(s)"/>
371
+ <xs:enumeration value="month(s)"/>
372
+ <xs:enumeration value="day(s)"/>
373
+ </xs:restriction>
374
+ </xs:simpleType>
375
+ </xs:element>
376
+ <xs:element name="year" type="xs:int" minOccurs="0">
377
+ <xs:annotation>
378
+ <xs:documentation>source year of the costs</xs:documentation>
379
+ </xs:annotation>
380
+ </xs:element>
381
+ <xs:element name="start_year" minOccurs="0">
382
+ <xs:annotation>
383
+ <xs:documentation>define when this cost will start to incur. Useful when you may not want maintenance costs to start until n years after construction</xs:documentation>
384
+ </xs:annotation>
385
+ </xs:element>
386
+ <xs:element name="end_year" minOccurs="0">
387
+ <xs:annotation>
388
+ <xs:documentation>define whne this cost will stop incurring.</xs:documentation>
389
+ </xs:annotation>
390
+ </xs:element>
391
+ <xs:element name="location" minOccurs="0">
392
+ <xs:annotation>
393
+ <xs:documentation>the geographic location where the component was costed (i.e. national, colorado, denver, etc). By default all values should be national averages.</xs:documentation>
394
+ </xs:annotation>
395
+ </xs:element>
396
+ <xs:element name="currency" minOccurs="0">
397
+ <xs:annotation>
398
+ <xs:documentation>the currency of the cost. If blank, USD is assumed.</xs:documentation>
399
+ </xs:annotation>
400
+ </xs:element>
401
+ <xs:element name="source" type="xs:string" minOccurs="0">
402
+ <xs:annotation>
403
+ <xs:documentation>origin from which the cost data came</xs:documentation>
404
+ </xs:annotation>
405
+ </xs:element>
406
+ <xs:element name="reference_component_name" minOccurs="0">
407
+ <xs:annotation>
408
+ <xs:documentation>display name of reference component prior to retrofit (for marginal costs)</xs:documentation>
409
+ </xs:annotation>
410
+ </xs:element>
411
+ <xs:element name="reference_component_id" minOccurs="0">
412
+ <xs:annotation>
413
+ <xs:documentation>ID of reference component prior to retrofit (for marginal costs)</xs:documentation>
414
+ </xs:annotation>
415
+ </xs:element>
416
+ </xs:sequence>
417
+ </xs:complexType>
418
+ </xs:element>
419
+ </xs:sequence>
420
+ </xs:complexType>
421
+ </xs:element>
422
+ </xs:schema>
@@ -0,0 +1,445 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- edited with XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) by Daniel Macumber (NREL) -->
3
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
4
+ <xs:annotation>
5
+ <xs:documentation>Component.xsd describes the components that are in the building component library or NREL analysis platform library.</xs:documentation>
6
+ </xs:annotation>
7
+ <xs:element name="schema_version" fixed="3.0">
8
+ <xs:annotation>
9
+ <xs:documentation>schema version</xs:documentation>
10
+ </xs:annotation>
11
+ <xs:simpleType>
12
+ <xs:restriction base="xs:string"/>
13
+ </xs:simpleType>
14
+ </xs:element>
15
+ <xs:element name="uid" type="xs:string">
16
+ <xs:annotation>
17
+ <xs:documentation>universally unique identifier which does not chage</xs:documentation>
18
+ </xs:annotation>
19
+ </xs:element>
20
+ <xs:element name="version_id" type="xs:string">
21
+ <xs:annotation>
22
+ <xs:documentation>identifier which changes each time a new version is created</xs:documentation>
23
+ </xs:annotation>
24
+ </xs:element>
25
+ <xs:element name="version_modified" type="xs:dateTime">
26
+ <xs:annotation>
27
+ <xs:documentation>timestamp at which the current version_id was created</xs:documentation>
28
+ </xs:annotation>
29
+ </xs:element>
30
+ <xs:element name="xml_checksum" type="xs:string">
31
+ <xs:annotation>
32
+ <xs:documentation>checksum of selected xml elements and attributes, used to detect changes to the xml</xs:documentation>
33
+ </xs:annotation>
34
+ </xs:element>
35
+ <xs:element name="error">
36
+ <xs:annotation>
37
+ <xs:documentation>record an error with this component or measure</xs:documentation>
38
+ </xs:annotation>
39
+ </xs:element>
40
+ <xs:element name="name" type="xs:string">
41
+ <xs:annotation>
42
+ <xs:documentation>snake cased machine readable name</xs:documentation>
43
+ </xs:annotation>
44
+ </xs:element>
45
+ <xs:element name="display_name" type="xs:string">
46
+ <xs:annotation>
47
+ <xs:documentation>user facing name</xs:documentation>
48
+ </xs:annotation>
49
+ </xs:element>
50
+ <xs:element name="description" type="xs:string">
51
+ <xs:annotation>
52
+ <xs:documentation>user facing description</xs:documentation>
53
+ </xs:annotation>
54
+ </xs:element>
55
+ <xs:element name="modeler_description" type="xs:string">
56
+ <xs:annotation>
57
+ <xs:documentation>technical description of implementation details</xs:documentation>
58
+ </xs:annotation>
59
+ </xs:element>
60
+ <xs:element name="class_name" type="xs:string">
61
+ <xs:annotation>
62
+ <xs:documentation>for measures only. name of the Ruby class implementing a measure</xs:documentation>
63
+ </xs:annotation>
64
+ </xs:element>
65
+ <xs:element name="arguments">
66
+ <xs:annotation>
67
+ <xs:documentation>for measures only. arguments are computed based on a particular model and passed to the measure at run time. actual values passed to the measure at run time are not captured here, only properties of the arguments </xs:documentation>
68
+ </xs:annotation>
69
+ <xs:complexType>
70
+ <xs:sequence>
71
+ <xs:element name="argument" minOccurs="0" maxOccurs="unbounded">
72
+ <xs:complexType>
73
+ <xs:sequence>
74
+ <xs:element ref="name"/>
75
+ <xs:element ref="display_name"/>
76
+ <xs:element ref="description" minOccurs="0"/>
77
+ <xs:element name="type">
78
+ <xs:annotation>
79
+ <xs:documentation>type of the argument</xs:documentation>
80
+ </xs:annotation>
81
+ <xs:simpleType>
82
+ <xs:restriction base="xs:string">
83
+ <xs:enumeration value="Boolean"/>
84
+ <xs:enumeration value="Double"/>
85
+ <xs:enumeration value="Integer"/>
86
+ <xs:enumeration value="String"/>
87
+ <xs:enumeration value="Choice"/>
88
+ <xs:enumeration value="Path"/>
89
+ </xs:restriction>
90
+ </xs:simpleType>
91
+ </xs:element>
92
+ <xs:element name="units" type="xs:string" minOccurs="0">
93
+ <xs:annotation>
94
+ <xs:documentation>units of the argument value in format parsable by OpenStudio::convert</xs:documentation>
95
+ </xs:annotation>
96
+ </xs:element>
97
+ <xs:element name="required" type="xs:boolean">
98
+ <xs:annotation>
99
+ <xs:documentation>true if the argument is required in order for the measure to run</xs:documentation>
100
+ </xs:annotation>
101
+ </xs:element>
102
+ <xs:element name="model_dependent" type="xs:boolean" default="false">
103
+ <xs:annotation>
104
+ <xs:documentation>true if any of this argument's properties depend on the specific model used. default_value, choice_values, min_value, and max_value will not be populated for dynamic arguments</xs:documentation>
105
+ </xs:annotation>
106
+ </xs:element>
107
+ <xs:element name="default_value" type="xs:anySimpleType" minOccurs="0">
108
+ <xs:annotation>
109
+ <xs:documentation>default value for the argument</xs:documentation>
110
+ </xs:annotation>
111
+ </xs:element>
112
+ <xs:element name="choices" minOccurs="0">
113
+ <xs:annotation>
114
+ <xs:documentation>list of allowable values</xs:documentation>
115
+ </xs:annotation>
116
+ <xs:complexType>
117
+ <xs:sequence>
118
+ <xs:element name="choice" maxOccurs="unbounded">
119
+ <xs:complexType>
120
+ <xs:sequence>
121
+ <xs:element name="value" type="xs:anySimpleType">
122
+ <xs:annotation>
123
+ <xs:documentation>allowable value</xs:documentation>
124
+ </xs:annotation>
125
+ </xs:element>
126
+ <xs:element name="display_name" type="xs:string">
127
+ <xs:annotation>
128
+ <xs:documentation>user facing name for value</xs:documentation>
129
+ </xs:annotation>
130
+ </xs:element>
131
+ </xs:sequence>
132
+ </xs:complexType>
133
+ </xs:element>
134
+ </xs:sequence>
135
+ </xs:complexType>
136
+ </xs:element>
137
+ <xs:element name="min_value" type="xs:anySimpleType" minOccurs="0">
138
+ <xs:annotation>
139
+ <xs:documentation>minimum value</xs:documentation>
140
+ </xs:annotation>
141
+ </xs:element>
142
+ <xs:element name="max_value" type="xs:anySimpleType" minOccurs="0">
143
+ <xs:annotation>
144
+ <xs:documentation>maximum value</xs:documentation>
145
+ </xs:annotation>
146
+ </xs:element>
147
+ </xs:sequence>
148
+ </xs:complexType>
149
+ </xs:element>
150
+ </xs:sequence>
151
+ </xs:complexType>
152
+ </xs:element>
153
+ <xs:element name="masterguide_csi_values">
154
+ <xs:annotation>
155
+ <xs:documentation>for components only. values from the MASTERSPEC</xs:documentation>
156
+ </xs:annotation>
157
+ <xs:complexType>
158
+ <xs:sequence>
159
+ <xs:element name="masterguide_csi_value" maxOccurs="unbounded"/>
160
+ </xs:sequence>
161
+ </xs:complexType>
162
+ </xs:element>
163
+ <xs:element name="source">
164
+ <xs:annotation>
165
+ <xs:documentation>for components only. source of the data (the origin of the component information)</xs:documentation>
166
+ </xs:annotation>
167
+ <xs:complexType>
168
+ <xs:sequence minOccurs="0">
169
+ <xs:element name="manufacturer" type="xs:string" minOccurs="0"/>
170
+ <xs:element name="model" minOccurs="0"/>
171
+ <xs:element name="serial_no" minOccurs="0"/>
172
+ <xs:element name="year" minOccurs="0"/>
173
+ <xs:element name="url" minOccurs="0"/>
174
+ </xs:sequence>
175
+ </xs:complexType>
176
+ </xs:element>
177
+ <xs:element name="provenances">
178
+ <xs:annotation>
179
+ <xs:documentation>provenance is used to enter author information. </xs:documentation>
180
+ </xs:annotation>
181
+ <xs:complexType>
182
+ <xs:sequence>
183
+ <xs:element name="provenance" minOccurs="0" maxOccurs="unbounded">
184
+ <xs:complexType>
185
+ <xs:sequence>
186
+ <xs:element name="author" type="xs:string">
187
+ <xs:annotation>
188
+ <xs:documentation>author who uploaded the content, will be equal to the user account on the bcl site</xs:documentation>
189
+ </xs:annotation>
190
+ </xs:element>
191
+ <xs:element name="datetime" type="xs:dateTime">
192
+ <xs:annotation>
193
+ <xs:documentation>date content was uploaded</xs:documentation>
194
+ </xs:annotation>
195
+ </xs:element>
196
+ <xs:element name="comment" type="xs:string" minOccurs="0">
197
+ <xs:annotation>
198
+ <xs:documentation>general comment</xs:documentation>
199
+ </xs:annotation>
200
+ </xs:element>
201
+ </xs:sequence>
202
+ </xs:complexType>
203
+ </xs:element>
204
+ </xs:sequence>
205
+ </xs:complexType>
206
+ </xs:element>
207
+ <xs:element name="tags">
208
+ <xs:annotation>
209
+ <xs:documentation>tags are used to classify the content using the appropriate taxonomy. currently only one tag per piece of content is supported.</xs:documentation>
210
+ </xs:annotation>
211
+ <xs:complexType>
212
+ <xs:sequence>
213
+ <xs:element name="tag" type="xs:string" maxOccurs="unbounded"/>
214
+ </xs:sequence>
215
+ </xs:complexType>
216
+ </xs:element>
217
+ <xs:element name="attributes">
218
+ <xs:annotation>
219
+ <xs:documentation>attributes are descriptors of the content. attributes should be found in the corresponding taxonomy</xs:documentation>
220
+ </xs:annotation>
221
+ <xs:complexType>
222
+ <xs:sequence>
223
+ <xs:element name="attribute" minOccurs="0" maxOccurs="unbounded">
224
+ <xs:complexType>
225
+ <xs:sequence>
226
+ <xs:element name="name" type="xs:string">
227
+ <xs:annotation>
228
+ <xs:documentation>user facing attribute name (should be found in appropriate taxonomy)</xs:documentation>
229
+ </xs:annotation>
230
+ </xs:element>
231
+ <xs:element name="value" type="xs:anySimpleType"/>
232
+ <xs:element name="datatype">
233
+ <xs:simpleType>
234
+ <xs:restriction base="xs:string">
235
+ <xs:enumeration value="float"/>
236
+ <xs:enumeration value="integer"/>
237
+ <xs:enumeration value="string"/>
238
+ <xs:enumeration value="boolean"/>
239
+ </xs:restriction>
240
+ </xs:simpleType>
241
+ </xs:element>
242
+ <xs:element name="units" type="xs:string" minOccurs="0"/>
243
+ </xs:sequence>
244
+ </xs:complexType>
245
+ </xs:element>
246
+ </xs:sequence>
247
+ </xs:complexType>
248
+ </xs:element>
249
+ <xs:element name="files">
250
+ <xs:annotation>
251
+ <xs:documentation>files lists details on all of the files associated with this piece content</xs:documentation>
252
+ </xs:annotation>
253
+ <xs:complexType>
254
+ <xs:sequence>
255
+ <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
256
+ <xs:complexType>
257
+ <xs:sequence>
258
+ <xs:element name="version" minOccurs="0">
259
+ <xs:complexType>
260
+ <xs:sequence>
261
+ <xs:element name="software_program" type="xs:string">
262
+ <xs:annotation>
263
+ <xs:documentation>software program the file is associated with</xs:documentation>
264
+ </xs:annotation>
265
+ </xs:element>
266
+ <xs:element name="identifier" type="xs:string">
267
+ <xs:annotation>
268
+ <xs:documentation>version of software program that this file is associated with</xs:documentation>
269
+ </xs:annotation>
270
+ </xs:element>
271
+ <xs:element name="min_compatible" minOccurs="0">
272
+ <xs:annotation>
273
+ <xs:documentation>minimum version of the software this file is compatible with, if not specified assumed to be the version identifier</xs:documentation>
274
+ </xs:annotation>
275
+ </xs:element>
276
+ <xs:element name="max_compatible" minOccurs="0">
277
+ <xs:annotation>
278
+ <xs:documentation>maximum version of the software this file is compatible with, if not specified assumed to be any version min_compatible or higher</xs:documentation>
279
+ </xs:annotation>
280
+ </xs:element>
281
+ </xs:sequence>
282
+ </xs:complexType>
283
+ </xs:element>
284
+ <xs:element name="filename" type="xs:string">
285
+ <xs:annotation>
286
+ <xs:documentation>name of the file</xs:documentation>
287
+ </xs:annotation>
288
+ </xs:element>
289
+ <xs:element name="filetype" type="xs:string">
290
+ <xs:annotation>
291
+ <xs:documentation>ies, idf, </xs:documentation>
292
+ </xs:annotation>
293
+ </xs:element>
294
+ <xs:element name="usage_type">
295
+ <xs:annotation>
296
+ <xs:documentation>identifies the directory to search for the file in </xs:documentation>
297
+ </xs:annotation>
298
+ <xs:simpleType>
299
+ <xs:restriction base="xs:string">
300
+ <xs:enumeration value="script"/>
301
+ <xs:enumeration value="test"/>
302
+ <xs:enumeration value="resource"/>
303
+ </xs:restriction>
304
+ </xs:simpleType>
305
+ </xs:element>
306
+ <xs:element name="checksum" type="xs:string">
307
+ <xs:annotation>
308
+ <xs:documentation>checksum of the file as computed by OpenStudio::checksum</xs:documentation>
309
+ </xs:annotation>
310
+ </xs:element>
311
+ </xs:sequence>
312
+ </xs:complexType>
313
+ </xs:element>
314
+ </xs:sequence>
315
+ </xs:complexType>
316
+ </xs:element>
317
+ <xs:element name="costs">
318
+ <xs:complexType>
319
+ <xs:sequence>
320
+ <xs:element name="cost" minOccurs="0" maxOccurs="unbounded">
321
+ <xs:complexType>
322
+ <xs:sequence>
323
+ <xs:element name="instance_name" type="xs:string">
324
+ <xs:annotation>
325
+ <xs:documentation>name of cost for reference</xs:documentation>
326
+ </xs:annotation>
327
+ </xs:element>
328
+ <xs:element name="cost_type">
329
+ <xs:annotation>
330
+ <xs:documentation>type of cost, includes low, high, average, estimate, etc</xs:documentation>
331
+ </xs:annotation>
332
+ <xs:simpleType>
333
+ <xs:restriction base="xs:string">
334
+ <xs:enumeration value="low"/>
335
+ <xs:enumeration value="high"/>
336
+ <xs:enumeration value="average"/>
337
+ <xs:enumeration value="estimate"/>
338
+ </xs:restriction>
339
+ </xs:simpleType>
340
+ </xs:element>
341
+ <xs:element name="category">
342
+ <xs:annotation>
343
+ <xs:documentation>ex: operations and maintenance cost, salvage cost, materials cost, installation cost, upgrade cost, etc.</xs:documentation>
344
+ </xs:annotation>
345
+ </xs:element>
346
+ <xs:element name="value" type="xs:float">
347
+ <xs:annotation>
348
+ <xs:documentation>cost value based on the supplemntal fields</xs:documentation>
349
+ </xs:annotation>
350
+ </xs:element>
351
+ <xs:element name="units" minOccurs="0">
352
+ <xs:annotation>
353
+ <xs:documentation>cost unit. If blank, absolute cost is assumed. ex: $/ft2, $/person, etc.</xs:documentation>
354
+ </xs:annotation>
355
+ </xs:element>
356
+ <xs:element name="interval" minOccurs="0">
357
+ <xs:annotation>
358
+ <xs:documentation>number describing the interval on which this cost is incurred. ex: 1, 6, 12. Use 0 for onetime costs</xs:documentation>
359
+ </xs:annotation>
360
+ </xs:element>
361
+ <xs:element name="interval_units" minOccurs="0">
362
+ <xs:annotation>
363
+ <xs:documentation>interval units. ex: day, month, year, etc.</xs:documentation>
364
+ </xs:annotation>
365
+ <xs:simpleType>
366
+ <xs:restriction base="xs:string">
367
+ <xs:enumeration value="year(s)"/>
368
+ <xs:enumeration value="month(s)"/>
369
+ <xs:enumeration value="day(s)"/>
370
+ </xs:restriction>
371
+ </xs:simpleType>
372
+ </xs:element>
373
+ <xs:element name="year" type="xs:int" minOccurs="0">
374
+ <xs:annotation>
375
+ <xs:documentation>source year of the costs</xs:documentation>
376
+ </xs:annotation>
377
+ </xs:element>
378
+ <xs:element name="start_year" minOccurs="0">
379
+ <xs:annotation>
380
+ <xs:documentation>define when this cost will start to incur. Useful when you may not want maintenance costs to start until n years after construction</xs:documentation>
381
+ </xs:annotation>
382
+ </xs:element>
383
+ <xs:element name="end_year" minOccurs="0">
384
+ <xs:annotation>
385
+ <xs:documentation>define whne this cost will stop incurring.</xs:documentation>
386
+ </xs:annotation>
387
+ </xs:element>
388
+ <xs:element name="location" minOccurs="0">
389
+ <xs:annotation>
390
+ <xs:documentation>the geographic location where the component was costed (i.e. national, colorado, denver, etc). By default all values should be national averages.</xs:documentation>
391
+ </xs:annotation>
392
+ </xs:element>
393
+ <xs:element name="currency" minOccurs="0">
394
+ <xs:annotation>
395
+ <xs:documentation>the currency of the cost. If blank, USD is assumed.</xs:documentation>
396
+ </xs:annotation>
397
+ </xs:element>
398
+ <xs:element name="source" type="xs:string" minOccurs="0">
399
+ <xs:annotation>
400
+ <xs:documentation>origin from which the cost data came</xs:documentation>
401
+ </xs:annotation>
402
+ </xs:element>
403
+ <xs:element name="reference_component_name" minOccurs="0">
404
+ <xs:annotation>
405
+ <xs:documentation>display name of reference component prior to retrofit (for marginal costs)</xs:documentation>
406
+ </xs:annotation>
407
+ </xs:element>
408
+ <xs:element name="reference_component_id" minOccurs="0">
409
+ <xs:annotation>
410
+ <xs:documentation>ID of reference component prior to retrofit (for marginal costs)</xs:documentation>
411
+ </xs:annotation>
412
+ </xs:element>
413
+ </xs:sequence>
414
+ </xs:complexType>
415
+ </xs:element>
416
+ </xs:sequence>
417
+ </xs:complexType>
418
+ </xs:element>
419
+ <xs:element name="component">
420
+ <xs:annotation>
421
+ <xs:documentation>root element defining a component</xs:documentation>
422
+ </xs:annotation>
423
+ <xs:complexType>
424
+ <xs:sequence>
425
+ <xs:element ref="schema_version"/>
426
+ <xs:element ref="error" minOccurs="0"/>
427
+ <xs:element ref="name"/>
428
+ <xs:element ref="uid"/>
429
+ <xs:element ref="version_id"/>
430
+ <xs:element ref="version_modified" minOccurs="0"/>
431
+ <xs:element ref="xml_checksum"/>
432
+ <xs:element ref="masterguide_csi_values" minOccurs="0"/>
433
+ <xs:element ref="display_name"/>
434
+ <xs:element ref="description"/>
435
+ <xs:element ref="modeler_description"/>
436
+ <xs:element ref="provenances"/>
437
+ <xs:element ref="tags"/>
438
+ <xs:element ref="attributes"/>
439
+ <xs:element ref="source"/>
440
+ <xs:element ref="files"/>
441
+ <xs:element ref="costs"/>
442
+ </xs:sequence>
443
+ </xs:complexType>
444
+ </xs:element>
445
+ </xs:schema>