-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathProject.xsd
More file actions
685 lines (679 loc) · 32.5 KB
/
Project.xsd
File metadata and controls
685 lines (679 loc) · 32.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
<?xml version="1.0" encoding="UTF-8"?>
<!--**************************************************************************
schema: Project.xsd v 2.0
Author(s):
v 2.0 Michael Palmquist (SolarNexus Inc)
v 1.x Michael Palmquist (SolarNexus Inc), Devan Johnson (kW Engineering), Paul Cobb (SaveEnergy123)
Description: Schema describes the entirety of a project, including participants, site details, system measures, costs, etc.
**************************************************************************** -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.iepmodel.net"
xmlns="http://www.iepmodel.net" elementFormDefault="qualified">
<xs:include schemaLocation="Appliance.xsd"/>
<xs:include schemaLocation="Building.xsd"/>
<xs:include schemaLocation="Common.xsd"/>
<xs:include schemaLocation="DistributionSystem.xsd"/>
<xs:include schemaLocation="CommonElectrical.xsd"/>
<xs:include schemaLocation="HVACSystem.xsd"/>
<xs:include schemaLocation="LightingSystem.xsd"/>
<xs:include schemaLocation="Participant.xsd"/>
<xs:include schemaLocation="PvSystem.xsd"/>
<xs:include schemaLocation="SolarThermalSystem.xsd"/>
<xs:include schemaLocation="UtilityService.xsd"/>
<xs:include schemaLocation="WaterHeatingSystem.xsd"/>
<xs:element name="project" type="project"/>
<xs:complexType name="changeLog">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="changeEntry" type="changeEntry"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="changeEntry">
<xs:sequence>
<xs:choice>
<xs:element minOccurs="0" name="participantId" type="xs:IDREF"/>
<xs:element minOccurs="0" name="author" type="xs:string"/>
</xs:choice>
<xs:element name="date" type="xs:dateTime"/>
<xs:element name="decsription" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="projectClassificationEnum">
<xs:annotation>
<xs:documentation>This defines whether the project is New Construction or a Retrofit</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="RETROFIT"/>
<xs:enumeration value="NEW_CONSTRUCTION"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="lineItem">
<xs:annotation>
<xs:documentation>We include costs at this level in order capture the costs that are applicable to multiple measures such as administrative costs</xs:documentation>
</xs:annotation>
<xs:attribute name="id" use="optional" type="xs:IDREF"/>
<xs:attribute name="sku" type="xs:string"/>
<xs:attribute name="provider" type="xs:string">
<xs:annotation>
<xs:documentation>If a material, this is the manufacturer of the product. If a service or labor, this is the party providing it.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="description" type="xs:string"/>
<xs:attribute name="unit" type="xs:string"/>
<xs:attribute name="UnitCost" type="xs:float"/>
<xs:attribute name="taxable" type="xs:boolean">
<xs:annotation>
<xs:documentation>Will sales tax be applied to this item?</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="quantity" type="xs:float" use="required"/>
<xs:attribute name="measureIdRef">
<xs:annotation>
<xs:documentation>If this cost is attributable to a specific measure, this can be captured. Useful if separate costs must be attributed to separate measures.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="itemizedList">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="lineItem" type="lineItem"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="priceBreakdown">
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="retailPrice" type="xs:float">
<xs:annotation>
<xs:documentation>The Price of the Scope of Work, before sales tax is applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="salesTaxRate" type="xs:float">
<xs:annotation>
<xs:documentation>Local tax rate applied applied to the taxable items in the line items. Given as a decimal number (for example, use 0.032 for 3.2%)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="salesTax" type="xs:float"/>
<xs:element name="retailPriceWithTax" type="xs:float" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is the total retail price for this Scope of Work, including sales tax.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="incentivesToBeReceivedByContractor"
type="xs:float">
<xs:annotation>
<xs:documentation>Amount that the contractor may deduct from the scope of work's retail price because the contractor will collect the incentive money rather than asking the customer to pay the contractor and acquire it themselves.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="contractPrice" type="xs:float">
<xs:annotation>
<xs:documentation>The price that the contractor is quoting to the customer in exchange for completing the defined scope of work. May be the the RetailPriceWithTax less any IncentivesToBeReceivedByContractor.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="solution">
<xs:annotation>
<xs:documentation>Defines a specific scope of work from a single service provider. Benefits for the work are calculated at this level instead of at the Measure level since multiple Measures may impact a single Benefit. For example putting in a new high efficiency furnace and sealing the ducts will have different impact than the benefit for each measure taken independently.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="serviceProvider" type="xs:IDREF" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The provider of the scope of work.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateProvided" type="xs:date" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The date scope of work was provided.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="expirationDate" type="xs:date" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Specify the date or time period after which this scope of work offer expires.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is a simple Name describing the Scope of Work such as 'HVAC upgrade'</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is a set of general descriptions of the work being done</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="salesStatus" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The currently known sales status of the Scope of Work. Some examples might be "Proposed", or "Sold." </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="measures">
<xs:complexType>
<xs:sequence>
<xs:element name="measure" type="xs:IDREF" minOccurs="1"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A reference to the specific Measures taken for this Scope of Work</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="itemizedList" type="itemizedList">
<xs:annotation>
<xs:documentation>This is the typical list of Line Items presented in a scope of work to describe in detail what materials and labor will be delivered for the contract price.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="customerPrice" type="priceBreakdown"/>
<xs:element name="plannedStartDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
<xs:element name="plannedFinishDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
<xs:element name="totalBenefits" type="benefit" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The Benefits obtained for all Measures combined in the Scope of Work. This does not necessarily reflect a direct rollup of all of the individual measure benefits as some combination of measures may impact measure benefits. Individual measure benefits may be expressed independent of other measures.
For example: The total benefit of a Lighting efficiency measure combined with a high efficiency HVAC measure would not equal the sum of the measures benefit if implemented independently.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="transaction" type="transaction">
<xs:annotation>
<xs:documentation>Defines the type of transaction (sale, lease, etc) and its parameters.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="extension">
<xs:annotation>
<xs:documentation>Element to allow inclusion of any other content within the Scope of Work as an extension. NOTE: Since most of the IEP model consists of optional elements, you will not find specific elements with an ANY available for extension.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" namespace="##any" processContents="lax"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
</xs:complexType>
<xs:complexType name="programMeasureCode">
<xs:annotation>
<xs:documentation>This is used to match to existing measure codes usually defined for the purposes of incentives such as the PG&E measure codes</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="provider" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the program, or organization.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="code" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The program provider's identifier for the measure.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The textual name or description of the measure as defined by the program.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="systemTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="PV_SYSTEM"/>
<xs:enumeration value="SOLAR_THERMAL"/>
<xs:enumeration value="BUILDING_ENVELOPE"/>
<xs:enumeration value="HVAC"/>
<xs:enumeration value="LIGHTING"/>
<xs:enumeration value="WATER_HEATING"/>
<xs:enumeration value="APPLIANCE"/>
<xs:enumeration value="DISTRIBUTION_SYSTEM"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="systemAddition">
<xs:attribute name="systemType" type="systemTypeEnum"/>
<xs:attribute name="systemIdRef" type="xs:IDREF" use="required"/>
</xs:complexType>
<xs:complexType name="systemRemoval">
<xs:attribute name="systemType" type="systemTypeEnum"/>
<xs:attribute name="systemIdRef" type="xs:IDREF" use="required"/>
</xs:complexType>
<xs:complexType name="systemModification">
<xs:attribute name="systemType" type="systemTypeEnum"/>
<xs:attribute name="existingSystemIdRef" type="xs:IDREF" use="required"/>
<xs:attribute name="modifiedSystemIdRef" type="xs:IDREF" use="required"/>
<xs:attribute name="codeCompliantReferenceSystemIdRef" type="xs:IDREF">
<xs:annotation>
<xs:documentation>System modifications and replacements may be compared against a code compliant set of systems that is different from the existing baseline equipment. Specifically used for incentive calculations where incentives are only paid for incremental savings above code.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="systemReplacement">
<xs:attribute name="systemType" type="systemTypeEnum"/>
<xs:attribute name="existingSystemIdRef" type="xs:IDREF" use="required"/>
<xs:attribute name="modifiedSystemIdRef" type="xs:IDREF" use="required"/>
<xs:attribute name="codeCompliantReferenceSystemIdRef" type="xs:IDREF">
<xs:annotation>
<xs:documentation>System modifications and replacements may be compared against a code compliant set of systems that is different from the existing baseline equipment. Specifically used for incentive calculations where incentives are only paid for incremental savings above code.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="measureAction">
<xs:annotation>
<xs:documentation>Independent actions that make up a measure implementation. Each measure has a single action (i.e. removing one piece of equipment, or remove and replace, or modify, or add).</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="systemAddition" type="systemAddition"> </xs:element>
<xs:element name="systemModification" type="systemModification"/>
<xs:element name="systemReplacement" type="systemReplacement"> </xs:element>
<xs:element name="systemRemoval" type="systemRemoval"> </xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="measure">
<xs:annotation>
<xs:documentation>Measure is intended to define a single specific measure to be taken in a scope of work.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is simply a descriptive name</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is intended to be the general description</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="details" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is used for more detailed descriptions of the measure, for instance, it may contain multiple steps</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="author" type="dataOriginator" minOccurs="0">
<xs:annotation>
<xs:documentation>This is the original author or initiator of the measure</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="reasonForChange" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Why is the measure being implemented?</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="goals">
<xs:complexType>
<xs:sequence>
<xs:element name="goal" type="xs:string" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>What are the intended goals to be achieved with this measure. This is optional as goals may be defined at the Project level.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="measureAction" type="measureAction" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is intended to define the actions to be taken on the system at a high level, either adding, removing or modifying the system</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="incentiveProgramCategory" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>Used for filtering measures based on what incentive program category.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="programMeasureCodes">
<xs:complexType>
<xs:sequence>
<xs:element name="programMeasureCode" type="programMeasureCode"
minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Describes an incentive provider's codes corresponding to the defined measure. For example, the PG&E measure codes.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="benefits">
<xs:complexType>
<xs:sequence>
<xs:element name="benefit" type="benefit" minOccurs="1"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Describes a benefit (or cost) associated with the described measure. Typically used to described energy production, or savings, expected incentive payments, greenhouse gas savings, etc. Can also be used to describe costs as negative benefits.
If BenefitsAnalysisOrder is defined, then benefits should be incremental relative to that order.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="benefitsAnalysisOrder" type="xs:int" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is used when analyzing the impact of the measure benefits. Specific measures need to be processed in an order based on the load priority of the system, i.e. efficiency change of a furnace and then apply the leakage of the ducts.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="costs">
<xs:complexType>
<xs:sequence>
<xs:element name="cost" type="cost" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>This defines the Costs for this particular measure. This is optional as costs may be rolled up at the Scope of Work level</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
<xs:complexType name="transaction">
<xs:sequence>
<xs:element name="financeOption" type="xs:string">
<xs:annotation>
<xs:documentation>Common values include: cash, refinance, secured loan, unsecured loan, lease, PPA.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="downPayment" type="xs:float">
<xs:annotation>
<xs:documentation>Dollar amount customer pays upfront.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="term" type="xs:float">
<xs:annotation>
<xs:documentation>Finance term in years.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="financeRate" type="xs:float">
<xs:annotation>
<xs:documentation>Percentage rate of interest (APR) for a loan, or escalation in payment amounts (lease / PPA).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="initialMonthlyPayment" type="xs:float">
<xs:annotation>
<xs:documentation>The amount of the customer's initial monthly payment. This amount may grow the next year in the case of a lease/PPA with an annual escalation rate.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="IssuanceCost" type="xs:float">
<xs:annotation>
<xs:documentation>A transaction cost, in dollars. Some finance mechanisms charge a processing fee, for example, that the customer must pay upfront. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="terminationOption" type="terminationOptionEnum">
<xs:annotation>
<xs:documentation>Describes what happens at the end of the finance period. The customer may PURCHASE the asset, RENEW the lease/PPA, or RETURN the asset.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="residualValue" type="xs:float">
<xs:annotation>
<xs:documentation>When termination option is "purchase," this describes the purchase price at that time in the future.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="extension">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" namespace="##any" processContents="lax"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="terminationOptionEnum">
<xs:annotation>
<xs:documentation>Describes what happens at the end of the finance period. The customer may PURCHASE the asset, RENEW the lease/PPA, or RETURN the asset.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="PURCHASE"/>
<xs:enumeration value="RENEW"/>
<xs:enumeration value="RETURN"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="project">
<xs:annotation>
<xs:documentation>Project is intended to consolidate at a high level all of the necessary information required to complete a project.
Can be used for multiple use cases where data is passed between parties/tools, including: project leads, collection of site audit data, proposing a set of measures, proposing a scope of work based on defined measures, etc.
Included reference to Utility Service here instead of in Building since Project encapsulates building</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is a simple descriptive name</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>A more general description of the project. Details are expected to be included at the Measure level</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="projectClassification" type="projectClassificationEnum" minOccurs="0"
maxOccurs="1"/>
<xs:element minOccurs="0" name="changeLog" type="changeLog" maxOccurs="1"/>
<xs:element minOccurs="0" name="applicationReferenceIds">
<xs:annotation>
<xs:documentation>This element holds each vendor's identifiers for this project. </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1"
name="applicationReferenceId" type="applicationId">
<xs:annotation>
<xs:documentation>ID of the object represented by this XML rewithin a corresponding software application. Used by the software to identify its corresponding record within the application's database. AKA a primary key. Important if the data is passed from one application back to an originating application, for example.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="assignedTo">
<xs:annotation>
<xs:documentation>Element identifies the assigned owner of this project, typically an employee. Use when pushing a project into another system and assigning it to a user. </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="id" type="xs:string"/>
<xs:element minOccurs="0" name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="participants">
<xs:annotation>
<xs:documentation>A collection of any and all participants in the project. Most commonly contains a participant in role of customer, but may also contain others such as subcontractors, financiers, etc.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="participant" type="participant" minOccurs="1"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>An individual or organization.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="projectInitiator" type="dataOriginator" maxOccurs="1" minOccurs="0">
<xs:annotation>
<xs:documentation>This is intended to identify the participant who initially collected the project data. This could be a website as well as a person</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateInitiated" type="xs:date" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The date that the project's definition was started (not it's actual implementation).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="projectTimeframe" type="xs:string">
<xs:annotation>
<xs:documentation>A description of the timeframe in which the project will likely occur. Typically defined by the customer.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateCompleted" type="xs:date" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is the date that the project was completed, i.e. signed off by the customer</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="leadSource" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This defines from where the lead originally came.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="goal" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>This is intended to define the customers and service providers high level goals for the project. Detailed goals are expected to be recorded at the Measure level</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="financePreference" type="xs:string">
<xs:annotation>
<xs:documentation>Customer's preferred or likely method of financing the project. Note that individual scopes of work can have their own finance mechanism associated with an actual transaction description.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="utilityServices">
<xs:complexType>
<xs:sequence>
<xs:element name="utilityService" type="utilityService" minOccurs="1"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>This references the Utility company providing energy to the site.
Included reference to Utility Service here instead of in Building since Project encapsulates building</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="site" type="site" minOccurs="0">
<xs:annotation>
<xs:documentation>The site element describes the property on which the project is being considered or implemented. It describes ownership and jurisdictional information, as well as physical attributes associated with the property and grounds. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="buildings">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="building" type="building"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="shadowSources">
<xs:annotation>
<xs:documentation>Collection of objects on or nearby the site that may cast shadows upon the site areas where solar arrays may be installed.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="shadowSource"
type="shadowSource"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="equipmentLocations">
<xs:complexType>
<xs:all>
<xs:element name="equipmentLocation" type="equipmentLocation"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="groundArrayInstallAreas" type="groundArrayInstallAreas"/>
<xs:element minOccurs="0" name="measures">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="measure"
type="measure">
<xs:annotation>
<xs:documentation>This is a list of requested and/or proposed and/or additional optional measures</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="solutions">
<xs:annotation>
<xs:documentation>A collection of defined solutions to attain the project's goals.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="solution" type="solution">
<xs:annotation>
<xs:documentation>A solution is a definition of the proposed work to be done, including one or more measures, labor and materials items, schedule, pricing, financing, etc. Each solution may be from a specific service provider.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="electricDistributionSystems" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="electricDistributionSystem" type="electricDistributionSystem" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="pvSystems" minOccurs="0">
<xs:annotation>
<xs:documentation>Collection of PV system definitions. Multiple PV system options may be defined and proposed for a particular project. </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="pvSystem" type="pvSystem"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="solarThermalSystems">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="solarThermalSystem"
type="SolarThermalSystemType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="appliances">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="existingAppliance"
type="appliance"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="hvacSystems">
<xs:complexType>
<xs:sequence>
<xs:element name="HVACSystem" type="HVACSystemType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="lightingSystems">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="lightingSystem"
type="LightingSystemType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="waterHeatingSystems">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="waterHeatingSystem"
type="WaterHeatingSystemType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="distributionSystems">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="distributionSystem"
type="DistributionSystemType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="schedules">
<xs:annotation>
<xs:documentation>This is a container for all schedule definitions for the systems within the project.
This design is modeled on the gbxml Schedule.
The organization is consistent in many energy management systems and programable controllers. Typically schedules for these are created first by creating the Day schedule and then build Week schedules upon Day schedules and Year schedules built off of Week schedules.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="DaySchedule"
type="daySchedule"/>
<xs:element maxOccurs="unbounded" minOccurs="1" name="WeekSchedule"
type="weekSchedule"/>
<xs:element maxOccurs="unbounded" minOccurs="1" name="Schedule"
type="schedule"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="extension">
<xs:annotation>
<xs:documentation>Element to allow inclusion of any other content within the Project as an extension. NOTE: Since most of the IEP model consists of optional elements, you will not find specific elements with an ANY available for extension.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" namespace="##any" processContents="lax"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
</xs:complexType>
</xs:schema>