big file storage

This commit is contained in:
Nathan Rashleigh committed 2026-09-18 23:22:55 +10:00
1 parent 91fe0211d4
commit 9b11a4ded6
1265 files changed
+149378 -60

No files matched your search

Binary file not shown.
File diff suppressed because it is too large. Load diff
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
### JSON / Protobuf / Whatever
## Controls
- Allow mRIDs to be updated
Binary file not shown.
@@ -0,0 +1,207 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
Device
Debug ^fd7Tc6Kt
Resource Tree ^DawCTW7R
MUP ^JjFzgK2n
FSA ^kzQDYtJR
NMI ^5t8rQ56W
DERP ^kyRiQkwJ
mrid
values
time ^m02Mc0wj
mrid
values
time ^QkKOFhIG
mrid
values
time ^j5BrWMIY
Control Plane ^q1p1MHte
Control
History ^ScgFIALW
all present? ^AZucXgmM
mrid
values
time ^6slA3AYg
mrid
values
time ^7UWAnjjt
mrid
values
time ^pEfXAAAO
Data Plane ^q9BP3syi
last posted
^gKlBXkJj
%%
## Drawing
```compressed-json
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
```
%%
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large. Load diff
+4
View File
@@ -0,0 +1,4 @@
- Device Resource Tree
- Control History
Binary file not shown.
Binary file not shown.
Binary file not shown.
+6923
View File
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+49
View File
@@ -0,0 +1,49 @@
## 61968 Common Functions
### DER Group Formation and Management Functions
| Function | Description | Chapter Reference |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| **DER Group Creation** | **This function allows a software entity to define a logical group of DER and to exchange the definition of this group with other applications or businesses. The purpose of grouping is subsequent monitoring and management at the group level.** | **Chapter 6** |
| **DER Group Member Query** | **This function allows one entity to inquire from another to learn the current members of a DER Group.** | **Chapter 9** |
| **DER Group Deletion** | **This function deletes a previously created group** | **Chapter 10** |
| **DER Group Maintenance** | **This set of functions provides the ability to add, update, or delete members from a group.** | **Chapter 11** |
### DER Group Capabilities and Monitoring Functions
| Function | Description | Chapter Reference |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| **Status Monitoring of DER Groups** | **This function allows the exchange of real-time status information for DER groups. This function addresses dynamic data, including present value and the present range of adjustability (i.e. the min/max dispatchable range of manageable parameters).** | **Chapter 13** |
| Capability of DER Groups | This function allows the exchange of information indicative of the installed capability of a DER group in terms of the grid- supportive services that it is capable of supporting. This data is generally static, changing only as equipment changes are made, not varying in real time. | Chapter 12 |
| DER Group Output Forecasting | This function allows the exchange of forecast information regarding the availability of real and reactive power from DER groups. Note: This function does not relate to how forecasts are determined (e.g. weather data, sky-viewing cameras, etc.) but only to how such information might be exchanged between entities. | Chapter 14 |
| **DER Group Historical Meter Data** | **This function allows for exchange of interval meter data that is indicative of the aggregate production of a group of DER.** | **Chapter 15** |
### DER Group Limitation and Operational Boundary Functions
| Function | Description | Chapter Reference |
| --- | --- | --- |
| **DER Group Maximum Real Power Limiting** | **This function sets limits on the aggregate power generated and/or absorbed by DER groups** | **Chapter 16** |
| DER Group Ramp Rate Limit Control | This function sets limits on the rate at which DER group real and reactive power levels may rise and fall | Chapter 17 |
| DER Group Phase Balance Limiting | This function sets limits on the phase imbalance for real and reactive power of DER groups | Chapter 18 |
### DER Group Control Functions
| Function | Description | Chapter Reference |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **Real Power Dispatch of DER Groups** | **This function allows the dispatch of real power to/from DER groups.** | **Chapter 19** |
| DER Group Curve Settings | This function manages curve functions (e.g. volt-var control, watt-frequency control) for DER groups. | Chapter 22 |
| Regulation Function | This function allows DER Groups to provide Regulation services to system operators and balancing authorities. | Chapter 24 |
| Schedules for DER Services | As an alternative to real-time requests, this function allows the exchange of schedules for DER group services, such as the Real Power Dispatch function. | Integrated into Each Function |
| Ride-Through Service | This function allows event ride-through characteristics to be changed for a group of DER. | |
| Energy Price-Based Management | This function enables DER groups to be provided with energy price information and to be configured to provide services based on price. | Chapter 25 |
| Service Cost-Based Management and Bidding | This function (or data-exchange addition to other functions) enables queries regarding the availability of DER services on a cost-basis and also the offer/provision of services based on a cost. | Chapter 26 |
| Voltage Regulation Settings | This function allows for adjustment of a target voltage regulating setting of a group of DER. This could be used, for example, in coordination with a conservation voltage reduction system. | Chapter 21 |
| Connect/Disconnect Control | This function allows for remotely turning groups of systems on or off. Potential uses include maintenance, disabling of malfunctioning equipment, and anti-islanding. | Chapter 28 |
### Potential Additional/Future Functions
| Function | Description | Chapter Reference |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| Fast Up-Down Regulation Services | This function allows groups of DER to be rapidly dispatched (e.g. 4 seconds update rate) both up and down in real power in order to help regulate the system. | |
| Dynamic System Voltage Stabilization Services | This function allows groups of DER to provide real and/or reactive power in response to the rate of change (dV/dt) of the service voltage amplitude at each DER. The behaviors would resist voltage fluctuations. | |
| DER Group Mode Management | This function notifies groups of DER of changes to circuit configuration and other conditions that may merit a change in inverter modes. | |
+17
View File
@@ -0,0 +1,17 @@
# CIM
## Overview
### primer document
outlines all the parts of the CIM and the thinking behind it
[[3002032389_Common Information Model Primer_ Eleventh Edition.PDF]]
### common functions document from EPRI
outlines pretty much everything we'll be expected to do and how, tables below summarise them and I have highlighted the ones particularly important to us
[[3002008215_Common Functions For DER Group Management, Third Edition.PDF]]
[[61968 Common Functions]]
### test cases
[[Test Cases - 61968-5]]
### the rest of the CIM
[[Summary of CIM]]
### tech choices
[[tech choices]]
@@ -0,0 +1,259 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
FlexGW ^qODGWIb6
DERAPI ^21P88HbJ
<cim:PowerTransformer rdf:ID="_f1769d7c-9aeb-11e5-91da-b8763fd99c5f">
<cim:Equipment.EquipmentContainer rdf:resource="#_f17695d8-9aeb-11e5-91da-b8763fd99c5f"/>
<cim:Equipment.normallyInService>true</cim:Equipment.normallyInService>
<cim:IdentifiedObject.description>3244 3245 0 &apos;1 &apos;</cim:IdentifiedObject.description>
<cim:IdentifiedObject.name>HOGASEN T1</cim:IdentifiedObject.name>
<cim:IdentifiedObject.mRID>f1769d7c-9aeb-11e5-91da-b8763fd99c5f</cim:IdentifiedObject.mRID>
</cim:PowerTransformer> ^FiCk1zd9
RDF - CIM-XML ^6q4zx41g
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2015 rel. 4 sp1 (x64) (http://www.altova.com)-->
<tns:CreateDERGroups xmlns="http://iec.ch/TC57/2017/DERGroups#" xmlns:msg="http://iec.ch/TC57/2011/schema/message" xmlns:tns="http://iec.ch/TC57/2017/DERGroupsMessage" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n1="http://www.altova.com/samplexml/other-namespace" xsi:schemaLocation="http://iec.ch/TC57/2017/DERGroupsMessage DERGroupsMessage.xsd">
<tns:Header>
<msg:Verb>create</msg:Verb>
<msg:Noun>DERGroups</msg:Noun>
<msg:Timestamp>2017-05-31T13:55:27-06:00</msg:Timestamp>
<msg:MessageID>bc9b3eaa-bdc0-4d61-9577-0c78515fee65</msg:MessageID>
<msg:CorrelationID>bb9a2075-e2e1-43ba-a234- e5d800bfff6e</msg:CorrelationID>
</tns:Header>
<tns:Payload>
<DERGroups>
<EndDeviceGroup>
<mRID>a20c559c-dda3-41e5-98b7-41afeb63ae5b</mRID>
<description>DER Group 1</description>
<DERFunction>
<connectDisconnect>true</connectDisconnect>
<frequencyWattCurveFunction>false</frequencyWattCurveFunction>
<maxRealPowerLimiting>false</maxRealPowerLimiting>
<rampRateControl>false</rampRateControl>
<reactivePowerDispatch>false</reactivePowerDispatch>
<realPowerDispatch>true</realPowerDispatch>
<voltageRegulation>false</voltageRegulation>
<voltVarCurveFunction>false</voltVarCurveFunction>
<voltWattCurveFunction>false</voltWattCurveFunction>
</DERFunction>
<EndDevices>
<mRID>23cbd502-128a-4c4e-b7cd-5eaf6d9ae275</mRID>
</EndDevices>
<EndDevices>
<mRID>7fc50292-2e8a-4e9c-80ae-9105f50ce3ea</mRID>
</EndDevices>
<EndDevices>
<mRID>63d092b7-baed-4bfe-ad97-5709f2ce4ec9</mRID>
</EndDevices>
<Names>
<name>DG1</name>
</Names>
<version>
<date>2017-05-31T13:55:01-06:00</date>
<major>1</major>
<minor>0</minor>
<revision>0</revision>
</version>
</EndDeviceGroup>
</DERGroups>
</tns:Payload>
</tns:CreateDERGroups> ^J5oZLxyB
61968-100 - SOAP ^A9TrshcK
<MirrorUsagePoint href="/mup/99a76667cac86b060bffdccd180bd102ff98f5e9/upt/62633866316438622d65306400055436">
<mRID>62633866316438622d65306400055436</mRID>
<description>SiteReading</description>
<roleFlags>03</roleFlags>
<serviceCategoryKind>0</serviceCategoryKind>
<status>1</status>
<deviceLFDI>9CDC4D1C68B2BF69E2BAEABF74F06F7200055436</deviceLFDI>
<MirrorMeterReading>
<mRID>31353431666461372d65613600055436</mRID>
<ReadingType>
<accumulationBehaviour>0</accumulationBehaviour>
<commodity>1</commodity>
<dataQualifier>2</dataQualifier>
<flowDirection>1</flowDirection>
<kind>37</kind>
<powerOfTenMultiplier>0</powerOfTenMultiplier>
<uom>38</uom>
</ReadingType>
</MirrorMeterReading>
<MirrorMeterReading>
<mRID>63643463643962392d65626600055436</mRID>
<ReadingType>
<accumulationBehaviour>0</accumulationBehaviour>
<commodity>1</commodity>
<dataQualifier>2</dataQualifier>
<flowDirection>1</flowDirection>
<kind>37</kind>
<powerOfTenMultiplier>0</powerOfTenMultiplier>
<uom>63</uom>
</ReadingType>
</MirrorMeterReading>
<MirrorMeterReading>
<mRID>39393662393834302d63396300055436</mRID>
<ReadingType>
<accumulationBehaviour>0</accumulationBehaviour>
<commodity>1</commodity>
<dataQualifier>2</dataQualifier>
<flowDirection>1</flowDirection>
<kind>37</kind>
<powerOfTenMultiplier>0</powerOfTenMultiplier>
<uom>29</uom>
</ReadingType>
</MirrorMeterReading>
<postRate>300</postRate>
</MirrorUsagePoint> ^pnLJsiKn
2030.5 - XML (SOAPish) ^WiPlKBwF
SPAQL ^ym38VtAo
Question
How do we get from CIM-XML -> ^BpmF2kCX
61968-5 Actual Functions
61968-10 Test of -5
61970 CIM itself (data shape)
^HCTtnxVH
%%
## Drawing
```compressed-json
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
```
%%
Binary file not shown.
+32
View File
@@ -0,0 +1,32 @@
## Summary of CIM
| | **CIM Profile Description** |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IEC 61968-1 | This Part of the IEC 61968 International Standard identifies and establishes recommendations for standard interfaces based on an Interface Reference Model (IRM). Subsequent clauses of this standard are based on each interface identified in the IRM. This set of standards is limited to the definition of interfaces. They provide for interoperability among different computer systems, platforms, and languages. Methods and technologies used to implement functionality conforming to these interfaces are recommended in IEC 61968-100. |
| IEC 61968-3 | This part of the IEC 61968 International Standard specifies the information content of a set of message types that can be used to supervise main substation topology (breaker and switch state) and control equipment status. It also provides the means for handling network connectivity and loading conditions. Finally, it makes it possible for utilities to locate customer telephone complaints and supervise the location of field crews. |
| IEC 61968-4 | This Part of IEC 61968 International Standard specifies the information content of a set of message types that can be used to support many of the business functions related to records and asset management. |
| **IEC 61968-5** | **This Part of IEC 61968 International Standard specifies a set of functions that are needed for enterprise integration of DERMS functions. These exchanges are most likely between a DERMS and a DMS. However, an enterprise integration standard leveraging IEC 61968-100:2013 for application integration, there are no technical limitation for systems with which a DERMS might exchange information.** |
| IEC 61968-6 | This Part of IEC 61968 International Standard specifies the information content of a set of message types that can be used to support business functions related to Maintenance and Construction. Typical uses of the message types defined in Part 6 include planned maintenance, unplanned maintenance, conditional maintenance, and work management |
| IEC 61968-7 | This Part of IEC 61968 International Standard specifies the information content of a set of message types that can be used to support business functions related to engineering design. |
| IEC 61968-8 | This Part of IEC 61968 International Standard specifies the information content of a set of message types that can be used to support many of the business functions related to customer support. |
| **IEC 61968-9** | **This Part of IEC 61968 International Standard specifies the information content of a set of message types that can be used to support many of the business functions related to meter reading and control.** |
| IEC 61968-13 | This part of IEC 61968 specifies profiles that can be used to exchange Network Models in a Utility or between a Utility and external applications to the utility. This standard provides a list of profiles which allow to model balanced and unbalanced distribution networks in order to conduct network analysis (Power flow calculation). |
| **IEC 61968-100** | **This document specifies an implementation profile for the application of the other parts of IEC 61968 using common integration technologies, including JMS and web services. This International Standard also provides guidance with respect to the use of Enterprise Service Bus (ESB) technologies.** |
| IEC 61970-452 | This document contains a subset of classes, class attributes, and associations from the CIM UML necessary to describe a static transmission network model. This document defines a Core Equipment Profile, an Operation Profile, and a Short Circuit Profile. |
| IEC 61970-453 | This document contains a subset of classes, class attributes, and associations from the CIM UML necessary to exchange schematic information between systems. This document defines a Diagram Layout Profile. |
| IEC 61970-456 | This document contains a subset of classes, class attributes, and associations from the CIM UML necessary to describe the steady state of a power system network. This document defines a State Variables Profile and a Topology Profile. |
| IEC 61970-457 | This international standard specifies a standard interface for exchanging dynamic model information needed to support the analysis of the steady state stability (small-signal stability) and/or transient stability of a power system or parts of it. The schema(s) for expressing the dynamic model information shall be derived directly from the CIM.<br><br>The scope of this standard includes only the dynamic model information that needs to be exchanged as part of a dynamic study, namely the type, description and parameters of each control equipment associated with a piece of power system equipment included in the steady state solution of a complete power system network model. |
| IEC 61970-458 | This international standard specifies a standard interface to support the models and objects required for power generation information exchanges. The scope of information exchange includes all generation processes such as bulk and distributed resources, including processes generating by-products such as heat or steam. The scope of information exchange is focused on Generation specific applications such as scheduling, optimization, operation and maintenance of the Generation resources. |
| IEC 61970-459 | This international standard specifies a framework for network model exchange including description of network model parts, boundaries between network model parts, complete power flow cases and responsible authorities. The boundaries act as a frame where network model parts fit. A network model part, boundary or power flow case is described by additional meta-data such as source, author, study time, description, development of time (audit trail) etc. This additional meta-data is described in the framework information model and will be part of the IEC 61970 300 series documents. |
| IEC 61970-460 | This international standard specifies a standard interface for exchanging incremental network models of proposed changes to IEC 61970 network models used for network analysis. These incremental network models of proposed changes are called IEC 61970 Projects, or in this document, simply ‘Projects’.<br><br>The scope of this document shall include models for all types of changes that impact IEC 61970 network model datasets. The initial version of this specification, however, focuses on Projects that define plans for new construction activity in the power grid.<br><br>The exchanges which are in scope here, (i.e. the proposed change) are datasets of long-term interest which are a fundamental component used by various parties in the construction of network analysis cases for many different purposes. |
| IEC 62325-351 | This part of IEC 62325 provides the European style market profile specifications that support the European style design electricity markets. These electricity markets are based on the European regulations, and on the concepts of third-party access and zonal market. |
| IEC 62325-450 | This document provides the modelling rules necessary to ensure that Contextual Models derived from the CIM for information exchanges between electricity market actors participating in various market business processes are in conformity with the CIM model. |
| IEC 62325-451-1 | This document provides for the European style market profile the generic technical and application acknowledgement document that can be used in all European style market processes. |
| IEC 62325-451-2 | This document provides for the European style market profile the time-based scheduling process. These market processes are based on the European regulations, and on the concepts of third-party access and zonal market. |
| IEC 62325-451-3 | This document provides for the European style market profile the transmission capacity allocation business process based on either explicit or implicit auction that can be used throughout a European style market. |
| IEC 62325-451-4 | This document provides for the European style market profile the settlement and reconciliation business process that can be used throughout a European style market. |
| IEC 62325-451-5 | This document provides for the European style market profile the problem statement and status request business processes that can be used throughout a European style market. |
| IEC 62325-451-6 | This document provides for the European style market profile the publication (or transparency) information exchanges to submit either to a data aggregator or to an electronic publication platform the necessary information to be published about the electricity market. |
| IEC 62325-451-7 | This document provides, for the European style market profile, the necessary information to be exchanged between Balancing Service Providers, Transmission System Operators and a Common Merit Order List about the Electricity Balancing market. |
| IEC 62325-451-8 | Based on the European style market profile, IEC 62325-351, this document specifies a package for the HVDC Scheduling business processes and the associated document’s contextual models, assembly models and XML schema for use within European style markets. |
| IEC 62325-451-10 | Based on the European style market contextual model (IEC 62325-351), this particular part of IEC 62325 series specifies a UML package for the Energy Consumption Data business process and its associated document contextual model, assembly model and XML schema for use within the European style electricity markets. |
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+43
View File
@@ -0,0 +1,43 @@
# tech choices
## overview
the CIM itself is not prescriptive about how we should build interfaces, but most of the existing tooling is built around java.
## Data
### RDF
this is the main format used to store the huge graph of objects that make up the grid. you can see it in use in the [nordic 44 repo](https://github.com/statnett/Nordic44/tree/main/instances/Grid/jsonld)
comes in a bunch of flavours, this is heavily used in europe, even in the transport sector.
**schenider will love it if we start working with this.**
- `cimxml` – *IEC 61970-600-1*
XML text format, we will in all likelihood encounter this
- `jsonld` – *IEC 61970-553*
JSON Linked Data. also available and promoted by IEC but not as widespread
looking forward, this seems like a great tech to look into to store a graph of the network so we can extend the data the DERMS has / gives us with our own knowledge of the network. for example which DER are connected to which substation
### XML
the test script uses plain old xml as SOAP+HTTP as a sort of reference implementation.
without knowing much about our interface to gridsite / energisa they will likely want to use this as our interface.
conceivably would could do a whole SOAP+JSON+HTTP thing if we can get buyin from energisa, that would help reduce the appeal of java
### WSDL / XSD
when we actually get the models from IEC there are a bunch of tools we can use to codegen classes for whatever lang
https://github.com/cimug-org/CIMTool
IEC has a section about JSON schemas as well as XML. we can conceivably
## java
it might actually be worth it for us to just bite the bullet and build some java services. prabhu has some experience with it and so do i, while i'm away might be a good use of time to do some quick investigations and see how it feels.
https://github.com/apache/jena
apache db specifically for storing and querying RDF
aws has their own hosted version of this
## rust
most of my POC has been in rust because i think we can use its [into](https://doc.rust-lang.org/rust-by-example/conversion/try_from_try_into.html) traits to convert to and from different representations, it's super fast, the type system is really powerful etc etc.
there are some cool tools (alpha) like [camel](https://github.com/IkoAfianando/rust-camel) that use native java bridges to abstract away all the apache stuff and let you write rust business logic
reality is we might have to build a bunch of stuff ourselves if we don't want to use java/apache type tools, my preference would be to do it in rust because we can use them to write very high quality and fast code, as opposed to trying to strongarm them into making half decent python code
## python
Binary file not shown.
@@ -0,0 +1,520 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
Endeavour Energy
OnPrem ^TZOpvYhn
Grid Services Function ^nBvz3ZY3
Control
Plane ^ZQiR55Id
Data
Plane ^KtepeddS
IEEE
2030.5
API ^Ve4qM9j2
Direct Connect
Gateway #2 ^Rd1FXm5K
Direct Connect
Gateway #1 ^PpAXIeBZ
Endeavour
Energy
Resources ^cmg9mwuU
Switchdin
Resources ^7NATbqjn
PEGA ^RagtwAr9
OEM
Aggregator ^B3wUvcNa
Direct
DER ^b4O8Vzk5
mTLS - 2030.5 ^IDGJX1vz
In-Band Registration ^UYUc8R4q
Aggregated
DER ^gvMvwOro
Aggregated
DER ^npyd27XH
Aggregated
DER ^p5oyvWxv
POST /rg
NMI ^LQDcsYo7
DER
Resources ^UFiNwytY
Out of Band
Registration ^1UPMkHI2
AWS - EE VPC ^W0Sxvxq2
All Telemetry ^PY8jPJTV
Connectivity Test Initiation ^ZQbXPF00
POST - https://control.test.gsf.ee.switchdin.com/devices ^daOPoDHL
Registration Telemetry ^0v971B19
AFAIK we will not need to have an outgoing DirectConnect
PEGA is hosted inside AWS, we can use VPC peering or equivalent
to ensure traffic stays within AWS ^sOkf9qwe
ntr note ^r4jOZwBC
??? ^BcuniuRp
Endeavour
DMZ ^NVW6zGGB
Azure - Sydney
australiaeast ^csZwP5Ox
AWS - Sydney
ap-southeast-2 ^A6dYfZtN
APIM ^GOWIft0S
CPE
Azure East
Palo Alto ^UPqqvSoy
tunnel 1 ^EcCFeeWg
tunnel 2 ^F1wtro17
3.107.218.87 ^DvVLAsFh
13.211.101.233 ^Z4wLztyg
20.193.18.21 ^Sccu7elb
Virtual
Gateway ^0nhbtkkG
Customer
Gateway
AZ East ^Le7kStB1
Site to Site
VPN ^Fg8HFlE1
All Telemetry ^KTds5Frr
ECS Cluster - GSF ^rj96ZNlF
Data
Plane ^VzKbzRoV
IEEE
2030.5
API ^8Vq4bD3d
AWS - Sydney
ap-southeast-2
GSF VPC ^45ZAIgkj
Virtual
Gateway ^hcuxFET2
Customer
Gateway
AZ East ^JVSwD8Io
Site to Site
VPN ^RXZ1jWlh
## Embedded Files
b349e50b739d4c56c2d754eb30a3aa30bfae1a32: [[Pasted Image 20250130163208_699.png]]
420189ea9558db76400455b1ca5fe1afb557ce2c: [[Pasted Image 20250130163129_690.png]]
%%
## Drawing
```compressed-json
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=
```
%%
File diff suppressed because it is too large. Load diff
Binary file not shown.
+5
View File
@@ -0,0 +1,5 @@
- just need to supply public subnets
- bgp gateway ip
- will be added to direct connect route table to go thru to ee azure
provision cert for pega
Binary file not shown.
Binary file not shown.
+7
View File
@@ -0,0 +1,7 @@
Why?
- helping OEMs write shit clients
- supply our own bulletproof client with all the TLS setup
- isn't this the droplet?
- struggling to connect with DSOs
- data plane is ok
- probably want eventstream too
@@ -0,0 +1,5 @@
- control plane should show data type documentation
- on sitect override all controls with empty control list
- for established devices that already have a schedule
- default control aggressive setgradw
- active control aggressive ramptms
Binary file not shown.
+18
View File
@@ -0,0 +1,18 @@
- 4 hour schedules
- 30 min controls
- rolling window
1200 - [ 1: 10000, 2: 9000, 3: 9000, 4: 9000, 5: 9000, 6: 9000, 7: 9000, 8: 8000 ]
1230 - [ 2: 9000, 3: 10000, 4: 11000, 5: 9000, 6: 8000, 7: 8000, 8: 8000, 9: 8000 ]
- [x] ditch pex
- [ ] aggregator validate client
- [ ] traceid in haproxy
- [ ] tracestate lfdi / fp
- [x] filter health check and metrics
- [x] traces
### Data Plane API Types
- [ ] link up with analytics events
- [ ]
+35
View File
@@ -0,0 +1,35 @@
### DERCapability Subscriber
```
2024-11-19T05:01:15 {"url": "/SW_API/device/61F852F042A80ED07B1C5843FB2FEEE3576AE7F3/capabilities", "data": "DnspDerCapability(cloud_event_time=datetime.datetime(2024, 11, 19, 5, 0, 44, 223089, tzinfo=TzInfo(UTC)), device_id='61F852F042A80ED07B1C5843FB2FEEE3576AE7F3', modesSupported='50004c', rtgMaxA=200.0, rtgMaxAh=None, rtgMaxVar=60000.0, rtgMaxVarNeg=-60000.0, rtgMaxW=60000.0, rtgMaxVA=40000.0, rtgMaxChargeRateW=None, rtgMaxDischargeRateW=None, type='4')", "result": "", "status": 200, "event": "HTTP Interface Upstream response", "level": "info", "timestamp": "2024-11-19T05:01:15.181205Z"}
```
### ConnectionPoint Subscriber
```
2024-11-19T05:01:14 {"url": "/SW_API/device/reg", "cp": "DnspConnectionPoint(cloud_event_time=datetime.datetime(2024, 11, 19, 5, 0, 43, 828546, tzinfo=TzInfo(UTC)), device_id='61f852f042a80ed07b1c5843fb2feee3576ae7f3', nmi='99999999999')", "result": "", "status": 200, "event": "EE CP response", "level": "info", "timestamp": "2024-11-19T05:01:14.094909Z"}
```
### DERSettings
```
2024-11-19T05:01:15 {"url": "/SW_API/device/61F852F042A80ED07B1C5843FB2FEEE3576AE7F3/settings", "data": "DnspDerSettings(cloud_event_time=datetime.datetime(2024, 11, 19, 5, 0, 44, 129529, tzinfo=TzInfo(UTC)), device_id='61F852F042A80ED07B1C5843FB2FEEE3576AE7F3', setMaxW=60000.0, setMaxVar=60000.0, setMaxVarNeg=-60000.0, setMaxVA=40000.0, setMaxChargeRateW=None, setMaxDischargeRateW=None)", "result": "", "status": 200, "event": "HTTP Interface Upstream response", "level": "info", "timestamp": "2024-11-19T05:01:15.495178Z"}
```
### DERStatus
```
2024-11-19T05:01:15 {"url": "/SW_API/devices/61F852F042A80ED07B1C5843FB2FEEE3576AE7F3/messages/events", "data": "DnspDerStatus(cloud_event_time=datetime.datetime(2024, 11, 19, 5, 0, 44, 333282, tzinfo=TzInfo(UTC)), device_id='61F852F042A80ED07B1C5843FB2FEEE3576AE7F3', der_status=[DERStatusItem(alarmStatus=[StringStatusItem(value='00', timestamp='1731992444')], stateOfChargeStatus=None, connectStatus=None, inverterStatus=[IntegerStatusItem(value=4, timestamp='1731992444')], operationalModeStatus=[IntegerStatusItem(value=2, timestamp='1731992444')], storConnectStatus=None, genConnectStatus=[StringStatusItem(value='03', timestamp='1731992444')])])", "result": "", "status": 200, "event": "HTTP Interface Upstream response", "level": "info", "timestamp": "2024-11-19T05:01:15.074144Z"}
```
### EndDevice
```
2024-11-19T05:01:09 {"url": "/SW_API/device/reg", "cp": "DnspEndDevice(cloud_event_time=datetime.datetime(2024, 11, 19, 5, 0, 38, 9109, tzinfo=TzInfo(UTC)), device_id='61f852f042a80ed07b1c5843fb2feee3576ae7f3', aggregator='61F852F042A80ED07B1C5843FB2FEEE3576AE7F3AF32D5953EAB2CDDD6ECC9AD')", "result": "", "status": 200, "event": "EE Edev response", "level": "info", "timestamp": "2024-11-19T05:01:09.360123Z"}
```
### MUP
```
2024-11-19T05:01:09 {"url": "/SW_API/devices/61F852F042A80ED07B1C5843FB2FEEE3576AE7F3/messages/events", "data": "DnspMup(cloud_event_time=datetime.datetime(2024, 11, 19, 5, 0, 38, 386601, tzinfo=TzInfo(UTC)), device_id='61F852F042A80ED07B1C5843FB2FEEE3576AE7F3', mirror_meter_reading=[MirrorMeterReading(data_name=4, data_qualifier='2', uom='63', phase='0', role_flag='0x3', reading=[Reading(value=200.0, end=1731992438, duration=0)])])", "result": "", "status": 200, "event": "HTTP Interface Upstream response", "level": "info", "timestamp": "2024-11-19T05:01:09.295091Z"}
```
### RSPS
```
2024-11-19T05:11:57 {"mrid": "328d3025a04421f5a4ed672888888888", "lfdi": "61F852F042A80ED07B1C5843FB2FEEE3576AE7F3", "status": 2, "xml": "<DERControlResponse xsi:schemaLocation=\"urn:ieee:std:2030.5:ns sep.xsd\" xmlns=\"urn:ieee:std:2030.5:ns\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:csipaus=\"https://csipaus.org/ns\" >\n <createdDateTime>1731993117</createdDateTime>\n <endDeviceLFDI>61F852F042A80ED07B1C5843FB2FEEE3576AE7F3</endDeviceLFDI>\n <status>2</status>\n <subject>328d3025a04421f5a4ed672888888888</subject>\n</DERControlResponse>\n", "event": "ControlResponse", "level": "info", "timestamp": "2024-11-19T05:11:57.869048Z"}
2024-11-19T05:11:58 {"res": "<ClientResponse(https://eederc.dev.endeavourenergy.com.au/SW_API/controls) [200 OK]>\n<CIMultiDictProxy('Content-Length': '0', 'x-ms-middleware-request-id': '00000000-0000-0000-0000-000000000000', 'Request-Context': 'appId=', 'Date': 'Tue, 19 Nov 2024 05:11:57 GMT')>\n", "text": "", "event": "RSPS post successful", "level": "info", "timestamp": "2024-11-19T05:11:58.057141Z"}
```
+38
View File
@@ -0,0 +1,38 @@
## prod
### DER
US SERCA
`endeavour-energy-gsf-prod.switchdin.com`
AU SERCA
`der.endeavour-energy-gsf-prod.switchdin.com`
probably just add an entry for both.
you may want to add one for
`nepki.endeavour-energy-gsf-prod.switchdin.com`
or similar so we can run them all in parallel
### Control Plane
`control.endeavour-energy-gsf-prod.switchdin.com`
### Docs (Optional)
`docs.endeavour-energy-gsf-prod.switchdin.com`
## test
### DER
`test.gsf.ee.switchdin.com`
### Control Plane
`control.test.gsf.ee.switchdin.com`
### Docs (Optional)
`docs.test.gsf.ee.switchdin.com`
Whitespace-only changes.
@@ -0,0 +1,968 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
Low Cost Solutions ^SDX6nwEV
Type A - Discrete
In this model for each deployment we run
all required services.
No code changes, high scaling, high baseline cost. ^7hNY97Qe
Redpanda ^RoCyhRLC
Valkey ^rCpi49fO
2030p5 ^TrUXfngC
Control ^Tm3slxYD
Data ^1zm0lqDZ
Lake ^1M5Fc72N
Tempo ^tpT8rmzD
Grafana ^tM7OVayt
OTel ^umbLfDoa
HAProxy ^Oty3Qr8Q
Sentinel ^q2YR8jjQ
Infra ^XI2X5xLX
GSF ^k6Xdc6V4
Monitor ^do3s2dg5
Tier 1&2 Deployments
- Full Monitoring
- Full HA
- Single Tenant
- 10000s of devices ^SzH7my3a
ap-southeast-2a ^lxM0c7xD
ap-southeast-2b ^qH0Zor00
ap-southeast-2c ^szJfeqad
Redpanda ^13B0qFjC
Redpanda ^GnO2xBIx
Redpanda ^k0WgsguX
Valkey ^MCPFchbH
Valkey ^QmIi3OaR
Valkey ^PYyEFxzh
Sentinel ^tP1TohFl
Tempo ^R5JMtVJp
Grafana ^iw1H703t
OTel ^oTYVx33i
2030p5 ^LVaBhvg0
Control ^BEEHDlxE
Data ^KODZlt74
Lake ^VzrVGBpY
HAProxy ^XQRYrVLd
Prometheus ^BowV0lA1
Prometheus ^o494yn1K
Namespaces ^3VMCUXy6
Type B - Shared
In this model we have one big cluster where tenants
share
We separate GSF deployments and give them their own Valkey
but we monitor them together and use the same Event Broker
as these are the main drivers of baseline cost and HA requirements.
Because our T1 & T2 K8s deployments can support 7000+ devices
this simply scales down baseline costs and simplifies maintenance and
monitoring overheads at the cost of increased risk.
Some minor code changes required to separate and ACL topics. ^FTMrFGmb
Redpanda ^4WPInonA
& ^SdZTQ8it
Monitor ^im5Fae0b
Redpanda ^lTUuhTwg
Redpanda ^nbfUA8Ow
Redpanda ^KsqwBg8f
Tempo ^LsK43nJG
Prometheus ^W8pr3ls5
Grafana ^vRCBD2cB
OTel ^TvLqvfiT
2030p5 ^ndZiu2iP
Control ^NqQherWU
Data ^aUbJzslv
Lake ^P2vimex3
HAProxy ^0hdj4HFa
- Full Monitoring
- Full HA
- Multiple Tenants
- 10000s of devices ^wo9FFmfh
ap-southeast-2a ^hdAPlvtW
ap-southeast-2b ^SakZ0KHP
ap-southeast-2c ^aZFwTATq
Redpanda ^yfSrxVMZ
Valkey ^P6zl4uPu
Sentinel ^XGnvM6Uy
Tempo ^aQtWkT3V
Grafana ^FaMX6PcO
Prometheus ^2REHvgyg
OTel ^V7olqSp7
2030p5 ^a4Mb2HZm
Control ^Yd8FH94O
Data ^jEGiRqTc
Lake ^xjNm6b1a
HAProxy ^Cnoc1ZR8
Infra ^8gmHAdXY
Barbados ^1UfpzRmt
Monitor ^GAbhGicV
Namespaces ^QtqpJXaG
2030p5 ^PWRO2dd7
Control ^BzBSKWFR
Data ^zHvdbBlc
Lake ^uVLJqu7H
HAProxy ^SR5Djhom
Sadales
Tīkls ^j0AKJeSJ
Valkey ^uKrrPBIC
Sentinel ^xQ8LcX91
2030p5 ^C8DJ48xK
Control ^saVrBJP0
Data ^6XfD0x5U
Lake ^xhwgSGIG
HAProxy ^2BnOUdBH
Valkey ^U1HgZbYa
Sentinel ^qQZmLe9Z
Sentinel ^LG1A3R8d
Valkey ^AmXFctYJ
K8s Cluster ^PpcdvNtB
Type C - Solo Yolo
In this model we relax true HA requirements to really drive cost down.
Roughly equivalent to the binpacking strategy
Everything is run on a single node with NVME attached storage
We aggressively snapshot this node's disks using EBS snapshots that are automatically available region wide.
We configure an AutoScalingGroup that ensures 1 of these instances is running at all times in our ap-se2 region.
Instead of using EKS we leverage k3s and its ability to store cluster state in S3
In the case of a node/AZ failure
- the ASG provisions a new node in a different AZ
- this node uses a secret key stored in SecretsManager to access the stored cluster state in S3
- as the cluster is restored it will reroute route53 and load balancer targets to itself
Possible Downtime:
<5m for instance bootstrap and cluster initialisation
<15m data loss since last snapshot
^JbTROVHR
Redpanda ^Fom1p8WI
Valkey ^yo3G8QRi
Tempo ^4OGdnH3W
Grafana ^7ZhDTPeJ
Prometheus ^Lv9dfc2j
OTel ^Qd1C3Jdr
2030p5 ^IsE20XAk
Control ^duFxbfyL
Data ^QQHBwrTC
Lake ^EJZbCtyW
HAProxy ^TB3XD90Y
Infra ^ofY8Y1WT
GSF ^VMSvmo6D
Monitor ^QQz5v4Xb
GSF K8s Node - ap-southeast-2a ^QNHWVjrY
Namespaces ^YYY1wDQt
Redpanda ^zBQl5fYx
Valkey ^VdU6Tqqn
Tempo ^dLI8xZ4n
Grafana ^UzEkH2WN
Prometheus ^DPpO2OMV
OTel ^tWjYMHS2
2030p5 ^K9srqSsK
Control ^VY4DOk1K
Data ^UT0KKeIz
Lake ^tjYOFXeG
HAProxy ^th06olLv
k3s ^zykPaird
s3 ^gkHUDbja
cluster state ^JbxAtExy
Redpanda ^IuOtFKKE
Valkey ^FK4xxRxy
Tempo ^SkSUhtKo
Grafana ^7DY3knnJ
Prometheus ^QO7q1fXu
OTel ^9OkdCbwW
2030p5 ^zfZkzprg
Control ^hdPQNlEo
Data ^Ras65nSt
Lake ^MGlMnSGo
HAProxy ^x1CyikJN
GSF K8s Node - ap-southeast-2b ^HHAWLQjM
k3s ^febr3F9m
AZ / Node Failure ^jXf2F050
restore ^tZYlKr0w
EBS Snapshot ^CLYuOPnX
%%
## Drawing
```compressed-json
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
JVDFN0WdRpxlmEtsQNUZmBBYGyAgAA==
```
%%
Binary file not shown.
+56
View File
@@ -0,0 +1,56 @@
- Benefits
- simplifies and automates HA
- EKS control planes are [multi AZ by default](https://docs.aws.amazon.com/eks/latest/userguide/disaster-recovery-resiliency.html)
- self healing
- requires no developer interaction
- can still use managed services
- rds
- redis
- can deploy a second redis for event streaming if redpanda not suitable
- reduces number of AWS accounts
- cost savings, see below
- cloud agnostic
- security improvements
- no need for devs to SSH into machines to debug
- flux for gitops
- allows for easy deployments of new OEMs
- maintains single tenancy with namespaces
- Cost
- Last Month's Bill:
### PROD
**Total USD 1,079.60**
$0.0146/hr t2.micro USD 10.51
$0.20/hr c5a.xlarge USD 144.00
c5a.xlarge Compute Savings Plans USD 144.00
$0.80/hr c5a.4xlarge USD 576.00
$1.60/hr c5a.8xlarge Instance Hour 1,440 Hrs USD 2,304.00
c5a.8xlarge Compute Savings Plans 1,131.817 Hrs
### DANDIS
**Total USD 1,020.67**
$0.0238 per t3a.small USD 51.38
$0.0475 per t3a.medium USD 34.15
$0.0695 per r6gd.medium USD 50.04
$0.20 per c5a.xlarge USD 431.60
c5a.xlarge Compute Savings Plans USD 431.60
$0.432 per m6a.2xlarge USD 311.04
$0.80 per c5a.4xlarge USD 575.20
c5a.4xlarge Compute Savings Plans USD 1.14
- [EC2 Cost Estimate](https://calculator.aws/#/estimate?%20id=0180036d04e86d221898455f124054dc18922ca5&id=883b6de14b680f78f87f3fffd07b1b99455abd73)
- utilises servers more
- DANDIS m6a.2xlarge running at ~10% cpu usually
- autoscaling
- fargate possible but annoying
- EKS
- dev + prod all we need
- flat $0.10/hr per cluster
- 2 Clusters x 0.10 USD per hour x 730 hours per month = 146.00 USD
- less than a single c5a.xlarge
3 of which in DANDIS account doing nothing
- In prod instances max 27% cpu across the last week
![[Pasted image 20240706155630.png]]
- DANDIS Instance Utilisation
![[Pasted image 20240706165010.png]]
+1
View File
@@ -0,0 +1 @@
{}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+52
View File
@@ -0,0 +1,52 @@
{
"type": "excalidraw",
"version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.13.1",
"elements": [],
"appState": {
"theme": "dark",
"viewBackgroundColor": "#ffffff",
"currentItemStrokeColor": "#1e1e1e",
"currentItemBackgroundColor": "transparent",
"currentItemFillStyle": "solid",
"currentItemStrokeWidth": 2,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 5,
"currentItemFontSize": 20,
"currentItemTextAlign": "left",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"currentItemArrowType": "round",
"scrollX": -637.8088555021559,
"scrollY": 7124.722137822241,
"zoom": {
"value": 0.1
},
"currentItemRoundness": "round",
"gridSize": 20,
"gridStep": 5,
"gridModeEnabled": false,
"gridColor": {
"Bold": "rgba(217, 217, 217, 0.5)",
"Regular": "rgba(230, 230, 230, 0.5)"
},
"currentStrokeOptions": null,
"frameRendering": {
"enabled": true,
"clip": true,
"name": true,
"outline": true
},
"objectsSnapModeEnabled": false,
"activeTool": {
"type": "selection",
"customType": null,
"locked": false,
"fromSelection": false,
"lastActiveTool": null
}
},
"files": {}
}
+4
View File
@@ -0,0 +1,4 @@
## Infra
alerts for prod dirrected to prod channel
check redpanda rack awareness
+14
View File
@@ -0,0 +1,14 @@
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
## Drawing
```compressed-json
N4IgLgngDgpiBcIYA8DGBDANgSwCYCd0B3EAGhADcZ8BnbAewDsEAmcm+gV31TkQAswYKDXgB6MQHNsYfpwBGAOlT0AtmIBeNCtlQbs6RmPry6uA4wC0KDDgLFLUTJ2lH8MTDHQ0YNMWHRJMRZFFhCABjIkT1UYRjAaBABtAF1ydCgoAGUAsD5QSXw8LOwNPkZOTExyHRgiACF0VABrQq5GXABhekx6fAQQAGIAM1GxkABfCaA==
```
%%
+12
View File
@@ -0,0 +1,12 @@
## Monitoring
- SLA reporting from logs / traces
- dashboard to match
- Consumer Group lag for HP Consumers
## MSK
- SCRAM / IAM only auth for MSK
- Figure out required perms for topics / cluster
- DataPlane telemetry types
## Foreign Account
https://www.tecracer.com/blog/2023/12/streamlined-kafka-schema-evolution-in-aws-using-msk-and-the-glue-schema-registry.html
+34
View File
@@ -0,0 +1,34 @@
## Situation
- Horizon Power wishes to connect to our Kafka broker to both
- Apply controls to DER
- Receive DER Telemetry
## Connection and Authorization
[Create an endpoint for HP to connect to our MSK](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html)
## Control Plane Interaction
### Can do (basically all POSTs/DELs)
- DER Controls
- Rate Management
- Device Registration
- NMI Whitelist
### For consideration
- GET /device
- DER Traffic (possibly could access DEREvents topic)
## Data Plane Interaction
### Fine as is
- Assurance
### Uplift
- v2 Telemetry Types
+3
View File
@@ -0,0 +1,3 @@
views:
- type: table
name: Table
+3
View File
@@ -0,0 +1,3 @@
views:
- type: table
name: Table
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,966 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- edited with XMLSpy v2010 rel. 3 (x64) (http://www.altova.com) by James Zuber (private) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dsig11="http://www.w3.org/2009/xmldsig11#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:oadr="http://openadr.org/oadr-2.0b/2012/07" xmlns:clm5ISO42173A="urn:un:unece:uncefact:codelist:standard:5:ISO42173A:2010-04-07" xmlns:pyld="http://docs.oasis-open.org/ns/energyinterop/201110/payloads" xmlns:ei="http://docs.oasis-open.org/ns/energyinterop/201110" xmlns:scale="http://docs.oasis-open.org/ns/emix/2011/06/siscale" xmlns:emix="http://docs.oasis-open.org/ns/emix/2011/06" xmlns:strm="urn:ietf:params:xml:ns:icalendar-2.0:stream" xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0" xmlns:power="http://docs.oasis-open.org/ns/emix/2011/06/power" xmlns:gb="http://naesb.org/espi" xmlns:atom="http://www.w3.org/2005/Atom" targetNamespace="http://openadr.org/oadr-2.0b/2012/07" elementFormDefault="qualified" attributeFormDefault="qualified">
<xs:import namespace="urn:ietf:params:xml:ns:icalendar-2.0:stream" schemaLocation="oadr_strm_20b.xsd"/>
<xs:import namespace="http://docs.oasis-open.org/ns/energyinterop/201110" schemaLocation="oadr_ei_20b.xsd"/>
<xs:import namespace="http://docs.oasis-open.org/ns/energyinterop/201110/payloads" schemaLocation="oadr_pyld_20b.xsd"/>
<xs:import namespace="http://docs.oasis-open.org/ns/emix/2011/06" schemaLocation="oadr_emix_20b.xsd"/>
<xs:import namespace="http://docs.oasis-open.org/ns/emix/2011/06/siscale" schemaLocation="oadr_siscale_20b.xsd"/>
<xs:import namespace="urn:ietf:params:xml:ns:icalendar-2.0" schemaLocation="oadr_xcal_20b.xsd"/>
<xs:import namespace="urn:un:unece:uncefact:codelist:standard:5:ISO42173A:2010-04-07" schemaLocation="oadr_ISO_ISO3AlphaCurrencyCode_20100407.xsd"/>
<xs:import namespace="http://naesb.org/espi" schemaLocation="oadr_greenbutton.xsd"/>
<xs:import namespace="http://www.w3.org/2005/Atom" schemaLocation="oadr_atom.xsd"/>
<xs:import namespace="http://www.w3.org/2009/xmldsig11#" schemaLocation="oadr_xmldsig11.xsd"/>
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="oadr_xmldsig.xsd"/>
<!-- ******* oadrPayload ******** -->
<!-- Root element for all payloads -->
<xs:element name="oadrPayload">
<xs:complexType>
<xs:sequence>
<xs:element ref="ds:Signature" minOccurs="0"/>
<xs:element ref="oadr:oadrSignedObject"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- ******* oadrSignedObject ******** -->
<!-- The URI attribute of the XML signature Reference element should point to this object (#oadr:oadrSignedObject) -->
<xs:element name="oadrSignedObject">
<xs:complexType>
<xs:choice>
<xs:element ref="oadr:oadrDistributeEvent"/>
<xs:element ref="oadr:oadrCreatedEvent"/>
<xs:element ref="oadr:oadrRequestEvent"/>
<xs:element ref="oadr:oadrResponse"/>
<xs:element ref="oadr:oadrCancelOpt"/>
<xs:element ref="oadr:oadrCanceledOpt"/>
<xs:element ref="oadr:oadrCreateOpt"/>
<xs:element ref="oadr:oadrCreatedOpt"/>
<xs:element ref="oadr:oadrCancelReport"/>
<xs:element ref="oadr:oadrCanceledReport"/>
<xs:element ref="oadr:oadrCreateReport"/>
<xs:element ref="oadr:oadrCreatedReport"/>
<xs:element ref="oadr:oadrRegisterReport"/>
<xs:element ref="oadr:oadrRegisteredReport"/>
<xs:element ref="oadr:oadrUpdateReport"/>
<xs:element ref="oadr:oadrUpdatedReport"/>
<xs:element ref="oadr:oadrCancelPartyRegistration"/>
<xs:element ref="oadr:oadrCanceledPartyRegistration"/>
<xs:element ref="oadr:oadrCreatePartyRegistration"/>
<xs:element ref="oadr:oadrCreatedPartyRegistration"/>
<xs:element ref="oadr:oadrRequestReregistration"/>
<xs:element ref="oadr:oadrQueryRegistration"/>
<xs:element ref="oadr:oadrPoll"/>
</xs:choice>
<xs:attribute name="Id" type="xs:ID" use="optional"/>
</xs:complexType>
</xs:element>
<!-- ##### EVENT PAYLOADS ##### -->
<!-- ******* oadrDistributeEvent ******** -->
<xs:element name="oadrDistributeEvent" type="oadr:oadrDistributeEventType">
<xs:annotation>
<xs:documentation>Send DR Events to a VEN</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrDistributeEventType">
<xs:sequence>
<xs:element ref="ei:eiResponse" minOccurs="0"/>
<xs:element ref="pyld:requestID"/>
<xs:element ref="ei:vtnID"/>
<xs:element name="oadrEvent" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>An object containing a demand response event</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="ei:eiEvent"/>
<xs:element ref="oadr:oadrResponseRequired"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ******* oadrCreatedEvent ******** -->
<xs:element name="oadrCreatedEvent" type="oadr:oadrCreatedEventType"/>
<xs:complexType name="oadrCreatedEventType">
<xs:sequence>
<xs:element ref="pyld:eiCreatedEvent"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ******* oadrRequestEvent ******** -->
<xs:element name="oadrRequestEvent" type="oadr:oadrRequestEventType"/>
<xs:complexType name="oadrRequestEventType">
<xs:sequence>
<xs:element ref="pyld:eiRequestEvent"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ******* oadrResponse ******** -->
<xs:element name="oadrResponse" type="oadr:oadrResponseType"/>
<xs:complexType name="oadrResponseType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ##### OPT PAYLOADS ##### -->
<!-- ****** oadrCancelOpt ******** -->
<xs:element name="oadrCancelOpt" type="oadr:oadrCancelOptType">
<xs:annotation>
<xs:documentation>Cancel an opt schedule</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCancelOptType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
<xs:element ref="ei:optID"/>
<xs:element ref="ei:venID"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrCanceledOpt ******** -->
<xs:element name="oadrCanceledOpt" type="oadr:oadrCanceledOptType">
<xs:annotation>
<xs:documentation>Acknowledge cancelation of an opt schedule</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCanceledOptType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="ei:optID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrCreateOpt ******** -->
<xs:element name="oadrCreateOpt" type="oadr:oadrCreateOptType">
<xs:annotation>
<xs:documentation>Create an optIn or optOut schedule</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCreateOptType">
<xs:complexContent>
<xs:extension base="ei:EiOptType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
<xs:element ref="ei:qualifiedEventID" minOccurs="0"/>
<xs:element ref="ei:eiTarget"/>
<xs:element ref="oadr:oadrDeviceClass" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ****** oadrCreatedOpt ******** -->
<xs:element name="oadrCreatedOpt" type="oadr:oadrCreatedOptType">
<xs:annotation>
<xs:documentation>Acknowledge receipt of an opt schedule</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCreatedOptType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="ei:optID"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ##### REPORT PAYLOADS ##### -->
<!-- ****** oadrCancelReport ******** -->
<xs:element name="oadrCancelReport" type="oadr:oadrCancelReportType">
<xs:annotation>
<xs:documentation>Cancel a report</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCancelReportType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
<xs:element ref="ei:reportRequestID" maxOccurs="unbounded"/>
<xs:element ref="pyld:reportToFollow"/>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrCanceledReport ******** -->
<xs:element name="oadrCanceledReport" type="oadr:oadrCanceledReportType"/>
<xs:complexType name="oadrCanceledReportType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="oadr:oadrPendingReports"/>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrCreateReport ******** -->
<xs:element name="oadrCreateReport" type="oadr:oadrCreateReportType">
<xs:annotation>
<xs:documentation>Request report from other party</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCreateReportType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
<xs:element ref="oadr:oadrReportRequest" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Request report</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrCreatedReport ******** -->
<xs:element name="oadrCreatedReport" type="oadr:oadrCreatedReportType">
<xs:annotation>
<xs:documentation>Acknowledge the request for report was received</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCreatedReportType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="oadr:oadrPendingReports">
<xs:annotation>
<xs:documentation>List of periodic reports that have not yet been delivered</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrRegisterReport ******** -->
<xs:element name="oadrRegisterReport" type="oadr:oadrRegisterReportType">
<xs:annotation>
<xs:documentation>Register Metadata report settings with other party</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrRegisterReportType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
<xs:element ref="oadr:oadrReport" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ei:venID" minOccurs="0"/>
<xs:element ref="ei:reportRequestID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrRegisteredReport ******** -->
<xs:element name="oadrRegisteredReport" type="oadr:oadrRegisteredReportType">
<xs:annotation>
<xs:documentation>Acknowledge registration of Metadata report by other party</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrRegisteredReportType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="oadr:oadrReportRequest" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrUpdateReport ******** -->
<xs:element name="oadrUpdateReport" type="oadr:oadrUpdateReportType">
<xs:annotation>
<xs:documentation>Send a previously requested report</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrUpdateReportType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
<xs:element ref="oadr:oadrReport" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ****** oadrUpdatedReport ******** -->
<xs:element name="oadrUpdatedReport" type="oadr:oadrUpdatedReportType">
<xs:annotation>
<xs:documentation>Acknowledge receipt of a report</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrUpdatedReportType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="oadr:oadrCancelReport" minOccurs="0"/>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ##### REGESTRATION PAYLOADS ##### -->
<!-- ******* oadrCancelPartyRegistration ******** -->
<xs:element name="oadrCancelPartyRegistration" type="oadr:oadrCancelPartyRegistrationType">
<xs:annotation>
<xs:documentation>Cancel a registration</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCancelPartyRegistrationType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
<xs:element ref="ei:registrationID"/>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ******* oadrCanceledPartyRegistration ******** -->
<xs:element name="oadrCanceledPartyRegistration" type="oadr:oadrCanceledPartyRegistrationType">
<xs:annotation>
<xs:documentation>Acknowledge cancelation of registration</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCanceledPartyRegistrationType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="ei:registrationID" minOccurs="0"/>
<xs:element ref="ei:venID" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ******* oadrCreatePartyRegistration ******** -->
<xs:element name="oadrCreatePartyRegistration" type="oadr:oadrCreatePartyRegistrationType">
<xs:annotation>
<xs:documentation>Used by VEN to initiate registration with VTN</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCreatePartyRegistrationType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
<xs:element ref="ei:registrationID" minOccurs="0">
<xs:annotation>
<xs:documentation>Used for re-registering an existing registration</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:venID" minOccurs="0"/>
<xs:element ref="oadr:oadrProfileName"/>
<xs:element ref="oadr:oadrTransportName"/>
<xs:element ref="oadr:oadrTransportAddress" minOccurs="0">
<xs:annotation>
<xs:documentation>Address of this VEN. Not required if http pull model</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:oadrReportOnly">
<xs:annotation>
<xs:documentation>ReportOnlyDeviceFlag - True or False</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:oadrXmlSignature">
<xs:annotation>
<xs:documentation>Implementation supports XML signatures - True or False</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:oadrVenName" minOccurs="0">
<xs:annotation>
<xs:documentation>Human readable name for VEN</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:oadrHttpPullModel" minOccurs="0">
<xs:annotation>
<xs:documentation>If transport is simpleHttp indicate if VEN is operating in pull exchange model - true or false</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ******* oadrCreatedPartyRegistration ******** -->
<xs:element name="oadrCreatedPartyRegistration" type="oadr:oadrCreatedPartyRegistrationType">
<xs:annotation>
<xs:documentation>Acknowledge receipt of VEN registration, provide VTN registration info</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrCreatedPartyRegistrationType">
<xs:sequence>
<xs:element ref="ei:eiResponse"/>
<xs:element ref="ei:registrationID" minOccurs="0"/>
<xs:element ref="ei:venID" minOccurs="0">
<xs:annotation>
<xs:documentation>venID not included in query unless already registered</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:vtnID"/>
<xs:element ref="oadr:oadrProfiles">
<xs:annotation>
<xs:documentation>VTN response to query registration returns all supported. This element is not required for a registration response</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:oadrRequestedOadrPollFreq" minOccurs="0">
<xs:annotation>
<xs:documentation>HTTP Pull Only - The VEN shall send an oadrPoll payload to the VTN at most once for each duration specified by this element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:oadrServiceSpecificInfo" minOccurs="0"/>
<xs:element name="oadrExtensions" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="oadrExtension" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="oadrExtensionName" type="xs:string"/>
<xs:element ref="oadr:oadrInfo" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ******* oadrRequestReregistration ******** -->
<xs:element name="oadrRequestReregistration" type="oadr:oadrRequestReregistrationType">
<xs:annotation>
<xs:documentation>Used by VTN to request that the VEN reregister</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrRequestReregistrationType">
<xs:sequence>
<xs:element ref="ei:venID"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ******* oadrQueryRegistration ******** -->
<xs:element name="oadrQueryRegistration" type="oadr:oadrQueryRegistrationType">
<xs:annotation>
<xs:documentation>Query VTN for registration information without actually registering</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrQueryRegistrationType">
<xs:sequence>
<xs:element ref="pyld:requestID"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ##### POLL PAYLOADS ##### -->
<!-- ******* oadrPoll ******** -->
<xs:element name="oadrPoll" type="oadr:oadrPollType">
<xs:annotation>
<xs:documentation>Query pull VTN for payloads with new or modified information</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrPollType">
<xs:sequence>
<xs:element ref="ei:venID"/>
</xs:sequence>
<xs:attribute ref="ei:schemaVersion" use="optional"/>
</xs:complexType>
<!-- ##### END OF PAYLOADS ##### -->
<!-- ****** Registration Payload Sub Elements ******** -->
<!-- ** oadrVenName ** -->
<xs:element name="oadrVenName" type="xs:string">
<xs:annotation>
<xs:documentation>VEN name. May be used in VTN GUI</xs:documentation>
</xs:annotation>
</xs:element>
<!-- ** oadrProfiles ** -->
<xs:element name="oadrProfiles">
<xs:annotation>
<xs:documentation>OpenADR profiles supported by the implementation</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="oadrProfile" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="oadr:oadrProfileName"/>
<xs:element ref="oadr:oadrTransports"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="oadrProfileName" type="oadr:oadrProfileType">
<xs:annotation>
<xs:documentation>OpenADR profile name such as 2.0a or 2.0b.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:simpleType name="oadrProfileType">
<xs:restriction base="xs:token">
<xs:enumeration value="2.0a"/>
<xs:enumeration value="2.0b"/>
</xs:restriction>
</xs:simpleType>
<!-- ** oadrTransports ** -->
<xs:element name="oadrTransports">
<xs:annotation>
<xs:documentation>OpenADR transports supported by implementation</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="oadrTransport" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="oadr:oadrTransportName"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="oadrTransportName" type="oadr:oadrTransportType">
<xs:annotation>
<xs:documentation>OpenADR transport name such as simpleHttp or xmpp</xs:documentation>
</xs:annotation>
</xs:element>
<xs:simpleType name="oadrTransportType">
<xs:restriction base="xs:token">
<xs:enumeration value="simpleHttp"/>
<xs:enumeration value="xmpp"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="oadrHttpPullModel" type="xs:boolean"/>
<!-- ** oadrServiceSpecifictInfo ** -->
<xs:element name="oadrServiceSpecificInfo">
<xs:annotation>
<xs:documentation>Service specific registration information</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="oadrService" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="oadr:oadrServiceName"/>
<xs:element ref="oadr:oadrInfo" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- ** oadrServiceName ** -->
<xs:element name="oadrServiceName" type="oadr:oadrServiceNameType"/>
<xs:simpleType name="oadrServiceNameType">
<xs:restriction base="xs:token">
<xs:enumeration value="EiEvent"/>
<xs:enumeration value="EiOpt"/>
<xs:enumeration value="EiReport"/>
<xs:enumeration value="EiRegisterParty"/>
<xs:enumeration value="OadrPoll"/>
</xs:restriction>
</xs:simpleType>
<!-- ** oadrInfo ** -->
<xs:element name="oadrInfo">
<xs:annotation>
<xs:documentation>A key value pair of service specific registration information</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="oadrKey" type="xs:string"/>
<xs:element name="oadrValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- ** oadrXmlSignature ** -->
<xs:element name="oadrXmlSignature" type="xs:boolean">
<xs:annotation>
<xs:documentation>Implementation supports XML signature</xs:documentation>
</xs:annotation>
</xs:element>
<!-- ** oadrReportOnly ** -->
<xs:element name="oadrReportOnly" type="xs:boolean">
<xs:annotation>
<xs:documentation>ReportOnlyDeviceFlag</xs:documentation>
</xs:annotation>
</xs:element>
<!-- ** oadrTransportAddress ** -->
<xs:element name="oadrTransportAddress" type="xs:string">
<xs:annotation>
<xs:documentation>Root address used to communicate with other party. Should include port if required</xs:documentation>
</xs:annotation>
</xs:element>
<!-- ** oadrRequestedOadrPollFreq ** -->
<xs:element name="oadrRequestedOadrPollFreq" type="xcal:DurationPropType">
<xs:annotation>
<xs:documentation>The VEN shall send an oadrPoll payload to the VTN at most once for each duration specified by this element</xs:documentation>
</xs:annotation>
</xs:element>
<!-- ******* ResponseRequired ******** -->
<xs:element name="oadrResponseRequired" type="oadr:ResponseRequiredType">
<xs:annotation>
<xs:documentation>Controls when optIn/optOut repsonse is required. Can be always or never</xs:documentation>
</xs:annotation>
</xs:element>
<xs:simpleType name="ResponseRequiredType">
<xs:annotation>
<xs:documentation>Defines what type of response is required</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="always">
<xs:annotation>
<xs:documentation>Always send a response for every event received.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="never">
<xs:annotation>
<xs:documentation>Never respond.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<!-- ****** Report Payload Sub Elements ******** -->
<xs:element name="oadrPendingReports" type="oadr:oadrPendingReportsType"/>
<xs:complexType name="oadrPendingReportsType">
<xs:sequence>
<xs:element ref="ei:reportRequestID" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- ****** Additional Units ******** -->
<!-- base unit; can be extended and used for custom reports-->
<xs:element name="customUnit" type="oadr:BaseUnitType" substitutionGroup="emix:itemBase"/>
<xs:complexType name="BaseUnitType" mixed="false">
<xs:annotation>
<xs:documentation>Custom Units</xs:documentation>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="emix:ItemBaseType">
<xs:sequence>
<xs:element name="itemDescription" type="xs:string"/>
<xs:element name="itemUnits" type="xs:string"/>
<xs:element ref="scale:siScaleCode"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- current -->
<xs:element name="current" type="oadr:CurrentType" substitutionGroup="emix:itemBase"/>
<xs:complexType name="CurrentType" mixed="false">
<xs:annotation>
<xs:documentation>Current</xs:documentation>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="emix:ItemBaseType">
<xs:sequence>
<xs:element name="itemDescription" type="xs:string" fixed="Current"/>
<xs:element name="itemUnits" type="xs:string" fixed="A"/>
<xs:element ref="scale:siScaleCode"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- currency -->
<xs:element name="currency" type="oadr:currencyType" substitutionGroup="emix:itemBase"/>
<xs:element name="currencyPerKWh" type="oadr:currencyType" substitutionGroup="emix:itemBase"/>
<xs:element name="currencyPerKW" type="oadr:currencyType" substitutionGroup="emix:itemBase"/>
<xs:element name="currencyPerThm" type="oadr:currencyType" substitutionGroup="emix:itemBase"/>
<xs:complexType name="currencyType" mixed="false">
<xs:annotation>
<xs:documentation>currency</xs:documentation>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="emix:ItemBaseType">
<xs:sequence>
<xs:element name="itemDescription" type="oadr:currencyItemDescriptionType"/>
<xs:element name="itemUnits" type="clm5ISO42173A:ISO3AlphaCurrencyCodeContentType">
<xs:annotation>
<xs:documentation>ISO enumeration of currency types, such as USD</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="scale:siScaleCode"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="currencyItemDescriptionType">
<xs:restriction base="xs:token">
<xs:enumeration value="currency"/>
<xs:enumeration value="currencyPerKW"/>
<xs:enumeration value="currencyPerKWh"/>
</xs:restriction>
</xs:simpleType>
<!-- Frequency units -->
<xs:element name="frequency" type="oadr:FrequencyType" substitutionGroup="emix:itemBase"/>
<xs:complexType name="FrequencyType" mixed="false">
<xs:annotation>
<xs:documentation>Frequency</xs:documentation>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="emix:ItemBaseType">
<xs:sequence>
<xs:element name="itemDescription" type="xs:string" fixed="Frequency"/>
<xs:element name="itemUnits" type="xs:string" fixed="Hz"/>
<xs:element ref="scale:siScaleCode"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Therm units -->
<xs:element name="Therm" type="oadr:ThermType" substitutionGroup="emix:itemBase"/>
<xs:complexType name="ThermType" mixed="false">
<xs:annotation>
<xs:documentation>Therm</xs:documentation>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="emix:ItemBaseType">
<xs:sequence>
<xs:element name="itemDescription" type="xs:string" fixed="Therm"/>
<xs:element name="itemUnits" type="xs:string" fixed="thm"/>
<xs:element ref="scale:siScaleCode"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- temperature -->
<xs:element name="temperature" type="oadr:temperatureType" substitutionGroup="emix:itemBase"/>
<xs:complexType name="temperatureType" mixed="false">
<xs:annotation>
<xs:documentation>temperature</xs:documentation>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="emix:ItemBaseType">
<xs:sequence>
<xs:element name="itemDescription" type="xs:string" fixed="temperature"/>
<xs:element name="itemUnits" type="oadr:temperatureUnitType">
<xs:annotation>
<xs:documentation>Temperature in Celsius or Fahrenheit</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="scale:siScaleCode"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="temperatureUnitType">
<xs:restriction base="xs:token">
<xs:enumeration value="celsius"/>
<xs:enumeration value="fahrenheit"/>
</xs:restriction>
</xs:simpleType>
<!-- pulseCount -->
<xs:element name="pulseCount" type="oadr:pulseCountType" substitutionGroup="emix:itemBase"/>
<xs:element name="pulseFactor" type="xs:float">
<xs:annotation>
<xs:documentation>kWh per count</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="pulseCountType" mixed="false">
<xs:annotation>
<xs:documentation>Pulse Count</xs:documentation>
</xs:annotation>
<xs:complexContent mixed="false">
<xs:extension base="emix:ItemBaseType">
<xs:sequence>
<xs:element name="itemDescription" type="xs:string" fixed="pulse count"/>
<xs:element name="itemUnits" type="xs:string" fixed="count">
<xs:annotation>
<xs:documentation>Pulse count from meter</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:pulseFactor"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Report Request -->
<xs:element name="oadrReportRequest" type="oadr:oadrReportRequestType"/>
<xs:complexType name="oadrReportRequestType">
<xs:annotation>
<xs:documentation>This type is used to request an EiReport</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="ei:reportRequestID"/>
<xs:element ref="ei:reportSpecifier"/>
</xs:sequence>
</xs:complexType>
<!-- eiReport -->
<xs:element name="oadrReport" type="oadr:oadrReportType"/>
<xs:complexType name="oadrReportType">
<xs:annotation>
<xs:documentation>eiReport is a Stream of [measurements] recorded over time and delivered to the requestor periodically. The readings may be actual, computed, summed if derived in some other manner.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="strm:StreamBaseType">
<xs:sequence>
<xs:element ref="ei:eiReportID" minOccurs="0">
<xs:annotation>
<xs:documentation>reference ID to this report.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:oadrReportDescription" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Define data points the implementation is capable of reporting on. Only used in Metadata report</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:reportRequestID">
<xs:annotation>
<xs:documentation>Reference to the oadrCreateReport request that defined this report.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:reportSpecifierID">
<xs:annotation>
<xs:documentation>Reference to Metadata report from which this report was derived.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:reportName" minOccurs="0">
<xs:annotation>
<xs:documentation>Name possibly for use in a user interface.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:createdDateTime"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Report Description Type -->
<xs:element name="oadrReportDescription" type="oadr:oadrReportDescriptionType"/>
<xs:complexType name="oadrReportDescriptionType">
<xs:annotation>
<xs:documentation>Describes the subject and attributes of a report.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="ei:rID"/>
<xs:element ref="ei:reportSubject" minOccurs="0"/>
<xs:element ref="ei:reportDataSource" minOccurs="0"/>
<xs:element ref="ei:reportType"/>
<xs:element ref="emix:itemBase" minOccurs="0">
<xs:annotation>
<xs:documentation>What is measured or tracked in this report (Units). </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ei:readingType"/>
<xs:element ref="emix:marketContext" minOccurs="0"/>
<xs:element ref="oadr:oadrSamplingRate" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oadrSamplingRateType">
<xs:sequence>
<xs:element name="oadrMinPeriod" type="xcal:DurationValueType">
<xs:annotation>
<xs:documentation>Minimum sampling period</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="oadrMaxPeriod" type="xcal:DurationValueType">
<xs:annotation>
<xs:documentation>Maximum sampling period</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="oadrOnChange" type="xs:boolean">
<xs:annotation>
<xs:documentation>If true then the data will be recorded when it changes, but at no greater a frequency than that specified by minPeriod.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="oadrSamplingRate" type="oadr:oadrSamplingRateType">
<xs:annotation>
<xs:documentation>Sampling rate for telemetry type data</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="oadrPayloadResourceStatus" type="oadr:oadrPayloadResourceStatusType" substitutionGroup="ei:payloadBase">
<xs:annotation>
<xs:documentation>Current resource status information</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrPayloadResourceStatusType">
<xs:annotation>
<xs:documentation>This is the payload for reports that require a status.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ei:PayloadBaseType">
<xs:sequence>
<xs:element name="oadrOnline" type="xs:boolean">
<xs:annotation>
<xs:documentation>If true then resource/asset is online, if false then offline.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="oadrManualOverride" type="xs:boolean">
<xs:annotation>
<xs:documentation>If true then the control of the load has been manually overridden</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="oadr:oadrLoadControlState" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="oadrLoadControlState" type="oadr:oadrLoadControlStateType"/>
<xs:complexType name="oadrLoadControlStateType">
<xs:sequence>
<xs:element name="oadrCapacity" type="oadr:oadrLoadControlStateTypeType" minOccurs="0"/>
<xs:element name="oadrLevelOffset" type="oadr:oadrLoadControlStateTypeType" minOccurs="0"/>
<xs:element name="oadrPercentOffset" type="oadr:oadrLoadControlStateTypeType" minOccurs="0"/>
<xs:element name="oadrSetPoint" type="oadr:oadrLoadControlStateTypeType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oadrLoadControlStateTypeType">
<xs:sequence>
<xs:element name="oadrMin" type="xs:float" minOccurs="0"/>
<xs:element name="oadrMax" type="xs:float" minOccurs="0"/>
<xs:element name="oadrCurrent" type="xs:float"/>
<xs:element name="oadrNormal" type="xs:float" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!--Green Button OpenADR Adaptor Types-->
<xs:complexType name="oadrGBItemBase">
<xs:complexContent>
<xs:extension base="emix:ItemBaseType">
<xs:sequence>
<xs:element ref="atom:feed"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="oadrGBStreamPayloadBase">
<xs:complexContent>
<xs:extension base="strm:StreamPayloadBaseType">
<xs:sequence>
<xs:element ref="atom:feed"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="oadrGBPayload" type="oadr:oadrGBStreamPayloadBase" substitutionGroup="strm:streamPayloadBase"/>
<xs:element name="oadrGBDataDescription" type="oadr:oadrGBItemBase" substitutionGroup="emix:itemBase"/>
<!--oadrDeviceClass-->
<xs:element name="oadrDeviceClass" type="ei:EiTargetType">
<xs:annotation>
<xs:documentation>Device Class target - use only endDeviceAsset.</xs:documentation>
</xs:annotation>
</xs:element>
<!--oadrReportPayload-->
<xs:element name="oadrReportPayload" type="oadr:oadrReportPayloadType" substitutionGroup="strm:streamPayloadBase">
<xs:annotation>
<xs:documentation>Data point values for reports</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="oadrReportPayloadType">
<xs:annotation>
<xs:documentation>Report payload for use in reports.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ei:ReportPayloadType">
<xs:sequence>
<xs:element ref="oadr:oadrDataQuality" minOccurs="0">
<xs:annotation>
<xs:documentation>Enumerated value for the quality of this data item</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--oadrDataQuality-->
<xs:element name="oadrDataQuality" type="oadr:oadrDataQualityTypeType"/>
<xs:simpleType name="oadrDataQualityTypeType">
<xs:union memberTypes="oadr:oadrDataQualityType ei:EiExtensionTokenType"/>
</xs:simpleType>
<xs:simpleType name="oadrDataQualityType">
<xs:restriction base="xs:token">
<xs:enumeration value="No Quality - No Value"/>
<xs:enumeration value="No New Value - Previous Value Used"/>
<xs:enumeration value="Quality Bad - Non Specific"/>
<xs:enumeration value="Quality Bad - Configuration Error"/>
<xs:enumeration value="Quality Bad - Not Connected"/>
<xs:enumeration value="Quality Bad - Device Failure"/>
<xs:enumeration value="Quality Bad - Sensor Failure"/>
<xs:enumeration value="Quality Bad - Last Known Value"/>
<xs:enumeration value="Quality Bad - Comm Failure"/>
<xs:enumeration value="Quality Bad - Out of Service"/>
<xs:enumeration value="Quality Uncertain - Non Specific"/>
<xs:enumeration value="Quality Uncertain - Last Usable Value"/>
<xs:enumeration value="Quality Uncertain - Sensor Not Accurate"/>
<xs:enumeration value="Quality Uncertain - EU Units Exceeded"/>
<xs:enumeration value="Quality Uncertain - Sub Normal"/>
<xs:enumeration value="Quality Good - Non Specific"/>
<xs:enumeration value="Quality Good - Local Override"/>
<xs:enumeration value="Quality Limit - Field/Not"/>
<xs:enumeration value="Quality Limit - Field/Low"/>
<xs:enumeration value="Quality Limit - Field/High"/>
<xs:enumeration value="Quality Limit - Field/Constant"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
@@ -0,0 +1,223 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================================== -->
<!-- ===== 5ISO 4217 3A - Code List Schema Module ===== -->
<!-- ====================================================================== -->
<!--
Schema agency: UN/CEFACT
Schema version: 7.0
Schema date: 31 August 2010
Code list name: ISO 3 alpha currency code
Code list agency: ISO
Code list version: 2010-04-07
Copyright (C) UN/CEFACT (2010). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to UN/CEFACT, except as needed for the purpose of developing UN/CEFACT specifications, in which case the procedures for copyrights defined in the UN/CEFACT Intellectual Property Rights document must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by UN/CEFACT or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and UN/CEFACT DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:clm5ISO42173A="urn:un:unece:uncefact:codelist:standard:5:ISO42173A:2010-04-07" xmlns:ccts="urn:un:unece:uncefact:documentation:standard:CoreComponentsTechnicalSpecification:2" targetNamespace="urn:un:unece:uncefact:codelist:standard:5:ISO42173A:2010-04-07" elementFormDefault="qualified" attributeFormDefault="unqualified" version="7.0">
<!-- ======================================================================= -->
<!-- ===== Element Declarations ===== -->
<!-- ======================================================================= -->
<!-- ===== Root Element ===== -->
<!-- ======================================================================= -->
<xsd:element name="ISO3AlphaCurrencyCode" type="clm5ISO42173A:ISO3AlphaCurrencyCodeContentType"/>
<!-- ================================================================== -->
<!-- ===== Type Definitions ===== -->
<!-- ================================================================== -->
<!-- ===== Type Definition: ISO 3 alpha currency code Content Type ===== -->
<!-- ================================================================== -->
<xsd:simpleType name="ISO3AlphaCurrencyCodeContentType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="AED"><xsd:annotation><xsd:documentation><ccts:Name>UAE Dirham</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="AFN"><xsd:annotation><xsd:documentation><ccts:Name>Afghani</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ALL"><xsd:annotation><xsd:documentation><ccts:Name>Lek</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="AMD"><xsd:annotation><xsd:documentation><ccts:Name>Armenian Dram</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ANG"><xsd:annotation><xsd:documentation><ccts:Name>Netherlands Antillian Guilder</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="AOA"><xsd:annotation><xsd:documentation><ccts:Name>Kwanza</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ARS"><xsd:annotation><xsd:documentation><ccts:Name>Argentine Peso</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="AUD"><xsd:annotation><xsd:documentation><ccts:Name>Australian Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="AWG"><xsd:annotation><xsd:documentation><ccts:Name>Aruban Guilder</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="AZN"><xsd:annotation><xsd:documentation><ccts:Name>Azerbaijanian Manat</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BAM"><xsd:annotation><xsd:documentation><ccts:Name>Convertible Marks</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BBD"><xsd:annotation><xsd:documentation><ccts:Name>Barbados Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BDT"><xsd:annotation><xsd:documentation><ccts:Name>Taka</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BGN"><xsd:annotation><xsd:documentation><ccts:Name>Bulgarian Lev</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BHD"><xsd:annotation><xsd:documentation><ccts:Name>Bahraini Dinar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BIF"><xsd:annotation><xsd:documentation><ccts:Name>Burundi Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BMD"><xsd:annotation><xsd:documentation><ccts:Name>Bermudian Dollar (customarily known as Bermuda Dollar)</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BND"><xsd:annotation><xsd:documentation><ccts:Name>Brunei Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BOB"><xsd:annotation><xsd:documentation><ccts:Name>Boliviano</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BOV"><xsd:annotation><xsd:documentation><ccts:Name>Mvdol</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BRL"><xsd:annotation><xsd:documentation><ccts:Name>Brazilian Real</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BSD"><xsd:annotation><xsd:documentation><ccts:Name>Bahamian Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BTN"><xsd:annotation><xsd:documentation><ccts:Name>Ngultrum</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BWP"><xsd:annotation><xsd:documentation><ccts:Name>Pula</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BYR"><xsd:annotation><xsd:documentation><ccts:Name>Belarussian Ruble</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="BZD"><xsd:annotation><xsd:documentation><ccts:Name>Belize Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CAD"><xsd:annotation><xsd:documentation><ccts:Name>Canadian Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CDF"><xsd:annotation><xsd:documentation><ccts:Name>Congolese Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CHE"><xsd:annotation><xsd:documentation><ccts:Name>WIR Euro</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CHF"><xsd:annotation><xsd:documentation><ccts:Name>Swiss Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CHW"><xsd:annotation><xsd:documentation><ccts:Name>WIR Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CLF"><xsd:annotation><xsd:documentation><ccts:Name>Unidades de fomento</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CLP"><xsd:annotation><xsd:documentation><ccts:Name>Chilean Peso</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CNY"><xsd:annotation><xsd:documentation><ccts:Name>Yuan Renminbi</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="COP"><xsd:annotation><xsd:documentation><ccts:Name>Colombian Peso</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="COU"><xsd:annotation><xsd:documentation><ccts:Name>Unidad de Valor Real</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CRC"><xsd:annotation><xsd:documentation><ccts:Name>Costa Rican Colon</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CUC"><xsd:annotation><xsd:documentation><ccts:Name>Peso Convertible</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CUP"><xsd:annotation><xsd:documentation><ccts:Name>Cuban Peso</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CVE"><xsd:annotation><xsd:documentation><ccts:Name>Cape Verde Escudo</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="CZK"><xsd:annotation><xsd:documentation><ccts:Name>Czech Koruna</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="DJF"><xsd:annotation><xsd:documentation><ccts:Name>Djibouti Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="DKK"><xsd:annotation><xsd:documentation><ccts:Name>Danish Krone</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="DOP"><xsd:annotation><xsd:documentation><ccts:Name>Dominican Peso</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="DZD"><xsd:annotation><xsd:documentation><ccts:Name>Algerian Dinar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="EEK"><xsd:annotation><xsd:documentation><ccts:Name>Kroon</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="EGP"><xsd:annotation><xsd:documentation><ccts:Name>Egyptian Pound</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ERN"><xsd:annotation><xsd:documentation><ccts:Name>Nakfa</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ETB"><xsd:annotation><xsd:documentation><ccts:Name>Ethiopian Birr</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="EUR"><xsd:annotation><xsd:documentation><ccts:Name>Euro</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="FJD"><xsd:annotation><xsd:documentation><ccts:Name>Fiji Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="FKP"><xsd:annotation><xsd:documentation><ccts:Name>Falkland Islands Pound</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GBP"><xsd:annotation><xsd:documentation><ccts:Name>Pound Sterling</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GEL"><xsd:annotation><xsd:documentation><ccts:Name>Lari</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GHS"><xsd:annotation><xsd:documentation><ccts:Name>Cedi</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GIP"><xsd:annotation><xsd:documentation><ccts:Name>Gibraltar Pound</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GMD"><xsd:annotation><xsd:documentation><ccts:Name>Dalasi</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GNF"><xsd:annotation><xsd:documentation><ccts:Name>Guinea Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GTQ"><xsd:annotation><xsd:documentation><ccts:Name>Quetzal</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GWP"><xsd:annotation><xsd:documentation><ccts:Name>Guinea-Bissau Peso</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="GYD"><xsd:annotation><xsd:documentation><ccts:Name>Guyana Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="HKD"><xsd:annotation><xsd:documentation><ccts:Name>Hong Kong Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="HNL"><xsd:annotation><xsd:documentation><ccts:Name>Lempira</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="HRK"><xsd:annotation><xsd:documentation><ccts:Name>Croatian Kuna</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="HTG"><xsd:annotation><xsd:documentation><ccts:Name>Gourde</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="HUF"><xsd:annotation><xsd:documentation><ccts:Name>Forint</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="IDR"><xsd:annotation><xsd:documentation><ccts:Name>Rupiah</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ILS"><xsd:annotation><xsd:documentation><ccts:Name>New Israeli Sheqel</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="INR"><xsd:annotation><xsd:documentation><ccts:Name>Indian Rupee</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="IQD"><xsd:annotation><xsd:documentation><ccts:Name>Iraqi Dinar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="IRR"><xsd:annotation><xsd:documentation><ccts:Name>Iranian Rial</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ISK"><xsd:annotation><xsd:documentation><ccts:Name>Iceland Krona</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="JMD"><xsd:annotation><xsd:documentation><ccts:Name>Jamaican Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="JOD"><xsd:annotation><xsd:documentation><ccts:Name>Jordanian Dinar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="JPY"><xsd:annotation><xsd:documentation><ccts:Name>Yen</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KES"><xsd:annotation><xsd:documentation><ccts:Name>Kenyan Shilling</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KGS"><xsd:annotation><xsd:documentation><ccts:Name>Som</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KHR"><xsd:annotation><xsd:documentation><ccts:Name>Riel</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KMF"><xsd:annotation><xsd:documentation><ccts:Name>Comoro Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KPW"><xsd:annotation><xsd:documentation><ccts:Name>North Korean Won</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KRW"><xsd:annotation><xsd:documentation><ccts:Name>Won</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KWD"><xsd:annotation><xsd:documentation><ccts:Name>Kuwaiti Dinar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KYD"><xsd:annotation><xsd:documentation><ccts:Name>Cayman Islands Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="KZT"><xsd:annotation><xsd:documentation><ccts:Name>Tenge</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="LAK"><xsd:annotation><xsd:documentation><ccts:Name>Kip</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="LBP"><xsd:annotation><xsd:documentation><ccts:Name>Lebanese Pound</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="LKR"><xsd:annotation><xsd:documentation><ccts:Name>Sri Lanka Rupee</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="LRD"><xsd:annotation><xsd:documentation><ccts:Name>Liberian Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="LSL"><xsd:annotation><xsd:documentation><ccts:Name>Loti</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="LTL"><xsd:annotation><xsd:documentation><ccts:Name>Lithuanian Litas</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="LVL"><xsd:annotation><xsd:documentation><ccts:Name>Latvian Lats</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="LYD"><xsd:annotation><xsd:documentation><ccts:Name>Libyan Dinar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MAD"><xsd:annotation><xsd:documentation><ccts:Name>Moroccan Dirham</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MAD"><xsd:annotation><xsd:documentation><ccts:Name>Moroccan Dirham</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MDL"><xsd:annotation><xsd:documentation><ccts:Name>Moldovan Leu</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MGA"><xsd:annotation><xsd:documentation><ccts:Name>Malagasy Ariary</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MKD"><xsd:annotation><xsd:documentation><ccts:Name>Denar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MMK"><xsd:annotation><xsd:documentation><ccts:Name>Kyat</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MNT"><xsd:annotation><xsd:documentation><ccts:Name>Tugrik</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MOP"><xsd:annotation><xsd:documentation><ccts:Name>Pataca</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MRO"><xsd:annotation><xsd:documentation><ccts:Name>Ouguiya</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MUR"><xsd:annotation><xsd:documentation><ccts:Name>Mauritius Rupee</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MVR"><xsd:annotation><xsd:documentation><ccts:Name>Rufiyaa</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MWK"><xsd:annotation><xsd:documentation><ccts:Name>Kwacha</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MXN"><xsd:annotation><xsd:documentation><ccts:Name>Mexican Peso</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MXV"><xsd:annotation><xsd:documentation><ccts:Name>Mexican Unidad de Inversion (UDI)</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MYR"><xsd:annotation><xsd:documentation><ccts:Name>Malaysian Ringgit</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="MZN"><xsd:annotation><xsd:documentation><ccts:Name>Metical</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="NAD"><xsd:annotation><xsd:documentation><ccts:Name>Namibia Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="NGN"><xsd:annotation><xsd:documentation><ccts:Name>Naira</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="NIO"><xsd:annotation><xsd:documentation><ccts:Name>Cordoba Oro</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="NOK"><xsd:annotation><xsd:documentation><ccts:Name>Norwegian Krone</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="NPR"><xsd:annotation><xsd:documentation><ccts:Name>Nepalese Rupee</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="NZD"><xsd:annotation><xsd:documentation><ccts:Name>New Zealand Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="OMR"><xsd:annotation><xsd:documentation><ccts:Name>Rial Omani</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="PAB"><xsd:annotation><xsd:documentation><ccts:Name>Balboa</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="PEN"><xsd:annotation><xsd:documentation><ccts:Name>Nuevo Sol</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="PGK"><xsd:annotation><xsd:documentation><ccts:Name>Kina</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="PHP"><xsd:annotation><xsd:documentation><ccts:Name>Philippine Peso</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="PKR"><xsd:annotation><xsd:documentation><ccts:Name>Pakistan Rupee</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="PLN"><xsd:annotation><xsd:documentation><ccts:Name>Zloty</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="PYG"><xsd:annotation><xsd:documentation><ccts:Name>Guarani</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="QAR"><xsd:annotation><xsd:documentation><ccts:Name>Qatari Rial</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="RON"><xsd:annotation><xsd:documentation><ccts:Name>New Leu</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="RSD"><xsd:annotation><xsd:documentation><ccts:Name>Serbian Dinar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="RUB"><xsd:annotation><xsd:documentation><ccts:Name>Russian Ruble</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="RWF"><xsd:annotation><xsd:documentation><ccts:Name>Rwanda Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SAR"><xsd:annotation><xsd:documentation><ccts:Name>Saudi Riyal</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SBD"><xsd:annotation><xsd:documentation><ccts:Name>Solomon Islands Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SCR"><xsd:annotation><xsd:documentation><ccts:Name>Seychelles Rupee</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SDG"><xsd:annotation><xsd:documentation><ccts:Name>Sudanese Pound</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SEK"><xsd:annotation><xsd:documentation><ccts:Name>Swedish Krona</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SGD"><xsd:annotation><xsd:documentation><ccts:Name>Singapore Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SHP"><xsd:annotation><xsd:documentation><ccts:Name>Saint Helena Pound</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SLL"><xsd:annotation><xsd:documentation><ccts:Name>Leone</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SOS"><xsd:annotation><xsd:documentation><ccts:Name>Somali Shilling</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SRD"><xsd:annotation><xsd:documentation><ccts:Name>Surinam Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="STD"><xsd:annotation><xsd:documentation><ccts:Name>Dobra</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SVC"><xsd:annotation><xsd:documentation><ccts:Name>El Salvador Colon</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SYP"><xsd:annotation><xsd:documentation><ccts:Name>Syrian Pound</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="SZL"><xsd:annotation><xsd:documentation><ccts:Name>Lilangeni</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="THB"><xsd:annotation><xsd:documentation><ccts:Name>Baht</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="TJS"><xsd:annotation><xsd:documentation><ccts:Name>Somoni</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="TMT"><xsd:annotation><xsd:documentation><ccts:Name>Manat</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="TND"><xsd:annotation><xsd:documentation><ccts:Name>Tunisian Dinar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="TOP"><xsd:annotation><xsd:documentation><ccts:Name>Pa'anga</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="TRY"><xsd:annotation><xsd:documentation><ccts:Name>Turkish Lira</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="TTD"><xsd:annotation><xsd:documentation><ccts:Name>Trinidad and Tobago Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="TWD"><xsd:annotation><xsd:documentation><ccts:Name>New Taiwan Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="TZS"><xsd:annotation><xsd:documentation><ccts:Name>Tanzanian Shilling</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="UAH"><xsd:annotation><xsd:documentation><ccts:Name>Hryvnia</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="UGX"><xsd:annotation><xsd:documentation><ccts:Name>Uganda Shilling</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="USD"><xsd:annotation><xsd:documentation><ccts:Name>US Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="USN"><xsd:annotation><xsd:documentation><ccts:Name>US Dollar (Next day)</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="USS"><xsd:annotation><xsd:documentation><ccts:Name>US Dollar (Same day)</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="UYI"><xsd:annotation><xsd:documentation><ccts:Name>Uruguay Peso en Unidades Indexadas</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="UYU"><xsd:annotation><xsd:documentation><ccts:Name>Peso Uruguayo</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="UZS"><xsd:annotation><xsd:documentation><ccts:Name>Uzbekistan Sum</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="VEF"><xsd:annotation><xsd:documentation><ccts:Name>Bolivar Fuerte</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="VND"><xsd:annotation><xsd:documentation><ccts:Name>Dong</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="VUV"><xsd:annotation><xsd:documentation><ccts:Name>Vatu</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="WST"><xsd:annotation><xsd:documentation><ccts:Name>Tala</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XAF"><xsd:annotation><xsd:documentation><ccts:Name>CFA Franc BEAC</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XAG"><xsd:annotation><xsd:documentation><ccts:Name>Silver</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XAU"><xsd:annotation><xsd:documentation><ccts:Name>Gold</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XBA"><xsd:annotation><xsd:documentation><ccts:Name>Bond Markets Units European Composite Unit (EURCO)</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XBB"><xsd:annotation><xsd:documentation><ccts:Name>European Monetary Unit (E.M.U.-6)</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XBC"><xsd:annotation><xsd:documentation><ccts:Name>European Unit of Account 9(E.U.A.-9)</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XBD"><xsd:annotation><xsd:documentation><ccts:Name>European Unit of Account 17(E.U.A.-17)</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XCD"><xsd:annotation><xsd:documentation><ccts:Name>East Caribbean Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XDR"><xsd:annotation><xsd:documentation><ccts:Name>SDR</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XFU"><xsd:annotation><xsd:documentation><ccts:Name>UIC-Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XOF"><xsd:annotation><xsd:documentation><ccts:Name>CFA Franc BCEAO †</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XPD"><xsd:annotation><xsd:documentation><ccts:Name>Palladium</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XPF"><xsd:annotation><xsd:documentation><ccts:Name>CFP Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XPF"><xsd:annotation><xsd:documentation><ccts:Name>CFP Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XPF"><xsd:annotation><xsd:documentation><ccts:Name>CFP Franc</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XPT"><xsd:annotation><xsd:documentation><ccts:Name>Platinum</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XTS"><xsd:annotation><xsd:documentation><ccts:Name>Codes specifically reserved for testing purposes</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="XXX"><xsd:annotation><xsd:documentation><ccts:Name>The codes assigned for transactions where no currency is involved are:</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="YER"><xsd:annotation><xsd:documentation><ccts:Name>Yemeni Rial</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ZAR"><xsd:annotation><xsd:documentation><ccts:Name>Rand</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ZMK"><xsd:annotation><xsd:documentation><ccts:Name>Zambian Kwacha</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
<xsd:enumeration value="ZWL"><xsd:annotation><xsd:documentation><ccts:Name>Zimbabwe Dollar</ccts:Name></xsd:documentation></xsd:annotation></xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Loaded 100 of 1265 files, more files were not shown because too many files have changed in this diff. Show more