Files
2026-09-18 23:22:55 +10:00

6923 lines
373 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:ieee:std:2030.5:ns" targetNamespace="urn:ieee:std:2030.5:ns" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.1.0">
<xs:annotation>
<xs:documentation>The IEEE 2030.5 model is organized into function sets, represented by sub-packages. However, all structures are defined inside a single namespace.
Copyright
The IEEE Standards publication(s) ("Document") is approved by the IEEE Standards Association ("IEEE-SA") Standards Board and is published in accordance with established IEEE-SA Standards Board bylaws and operations procedures.
IEEE owns the copyright to this Document in all forms of media. Copyright in the text retrieved, displayed or output from this Document is owned by IEEE and is protected by the copyright laws of the United States and by international treaties. IEEE reserves all rights not expressly granted.
IEEE is providing the Document to you at no charge. However, the Document is not to be considered within the "Public Domain", as IEEE is, and at all times shall remain, the sole copyright holder in the Document.
Terms of Use
You may retrieve, download and print one (1) copy of each Document in this Program for your personal use. You may retain one (1) additional copy of this Document as your personal archive copy.
Except as allowed by the copyright laws of the United States of America or applicable international treaties, or as explicitly allowed in these Terms of Use, you may not further copy, prepare, and/or distribute copies of the Document, nor significant portions of the Document, in any form, without prior written permission from IEEE.
Requests for permission to reprint this Document, in whole or in part, or requests for a license to reproduce and/or distribute this Document, in any form, must be submitted via email to the Standards Licensing and Contracts (http://standards.ieee.org/contact/form.html), or in writing to:
IEEE-SA Licensing and Contracts
445 Hoes Lane
Piscataway, NJ 08855</xs:documentation>
</xs:annotation>
<xs:complexType name="DeviceCapability">
<xs:annotation>
<xs:documentation>Returned by the URI provided by DNS-SD, to allow clients to find the URIs to the resources in which they are interested.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="FunctionSetAssignmentsBase">
<xs:sequence>
<xs:element name="EndDeviceListLink" type="EndDeviceListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="MirrorUsagePointListLink" type="MirrorUsagePointListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="SelfDeviceLink" type="SelfDeviceLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AbstractDevice">
<xs:annotation>
<xs:documentation>The EndDevice providing the resources available within the DeviceCapabilities.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableResource">
<xs:sequence>
<xs:element name="ConfigurationLink" type="ConfigurationLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DERListLink" type="DERListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="deviceCategory" minOccurs="0" maxOccurs="1" type="DeviceCategoryType">
<xs:annotation>
<xs:documentation>This field is for use in devices that can adjust energy usage (e.g., demand response, distributed energy resources). For devices that do not respond to EndDeviceControls or DERControls (for instance, an ESI), this field should not have any bits set.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DeviceInformationLink" type="DeviceInformationLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DeviceStatusLink" type="DeviceStatusLink" minOccurs="0" maxOccurs="1" />
<xs:element name="FileStatusLink" type="FileStatusLink" minOccurs="0" maxOccurs="1" />
<xs:element name="IPInterfaceListLink" type="IPInterfaceListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="lFDI" minOccurs="0" maxOccurs="1" type="HexBinary160">
<xs:annotation>
<xs:documentation>Long form of device identifier. See the Security section for additional details.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LoadShedAvailabilityListLink" type="LoadShedAvailabilityListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="LogEventListLink" type="LogEventListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="PowerStatusLink" type="PowerStatusLink" minOccurs="0" maxOccurs="1" />
<xs:element name="sFDI" minOccurs="1" maxOccurs="1" type="SFDIType">
<xs:annotation>
<xs:documentation>Short form of device identifier, WITH the checksum digit. See the Security section for additional details.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DeviceStatus">
<xs:annotation>
<xs:documentation>Status of device</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="changedTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The time at which the reported values were recorded.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="onCount" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>The number of times that the device has been turned on: Count of "device on" times, since the last time the counter was reset</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opState" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Device operational state:
0 - Not applicable / Unknown
1 - Not operating
2 - Operating
3 - Starting up
4 - Shutting down
5 - At disconnect level
6 - kW ramping
7 - kVar ramping</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opTime" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Total time device has operated: re-settable: Accumulated time in seconds since the last time the counter was reset.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Temperature" type="Temperature" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="TimeLink" type="TimeLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EndDevice">
<xs:annotation>
<xs:documentation>Asset container that performs one or more end device functions. Contains information about individual devices in the network.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractDevice">
<xs:sequence>
<xs:element name="changedTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The time at which this resource was last modified or created.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="enabled" minOccurs="0" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>This attribute indicates whether or not an EndDevice is enabled, or registered, on the server. If a server sets this attribute to false, the device is no longer registered. It should be noted that servers can delete EndDevice instances, but using this attribute for some time is more convenient for clients.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FlowReservationRequestListLink" type="FlowReservationRequestListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="FlowReservationResponseListLink" type="FlowReservationResponseListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="FunctionSetAssignmentsListLink" type="FunctionSetAssignmentsListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="postRate" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>POST rate, or how often EndDevice and subordinate resources should be POSTed, in seconds. A client MAY indicate a preferred postRate when POSTing EndDevice. A server MAY add or modify postRate to indicate its preferred posting rate.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RegistrationLink" type="RegistrationLink" minOccurs="0" maxOccurs="1" />
<xs:element name="SubscriptionListLink" type="SubscriptionListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EndDeviceList">
<xs:annotation>
<xs:documentation>A List element to hold EndDevice objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="EndDevice" type="EndDevice" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Registration">
<xs:annotation>
<xs:documentation>Registration represents an authorization to access the resources on a host.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="dateTimeRegistered" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Contains the time at which this registration was created, by which clients MAY prioritize information providers with the most recent registrations, when no additional direction from the consumer is available.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="pIN" minOccurs="1" maxOccurs="1" type="PINType">
<xs:annotation>
<xs:documentation>Contains the registration PIN number associated with the device, including the checksum digit.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SelfDevice">
<xs:annotation>
<xs:documentation>The EndDevice providing the resources available within the DeviceCapabilities.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractDevice">
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Temperature">
<xs:annotation>
<xs:documentation>Specification of a temperature.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Multiplier for 'unit'.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="subject" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The subject of the temperature measurement
0 - Enclosure
1 - Transformer
2 - HeatSink</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>Value in Degrees Celsius (uom 23).</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FunctionSetAssignmentsBase">
<xs:annotation>
<xs:documentation>Defines a collection of function set instances that are to be used by one or more devices as indicated by the EndDevice object(s) of the server.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="CustomerAccountListLink" type="CustomerAccountListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DemandResponseProgramListLink" type="DemandResponseProgramListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DERProgramListLink" type="DERProgramListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="FileListLink" type="FileListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="MessagingProgramListLink" type="MessagingProgramListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="PrepaymentListLink" type="PrepaymentListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ResponseSetListLink" type="ResponseSetListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="TariffProfileListLink" type="TariffProfileListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="TimeLink" type="TimeLink" minOccurs="0" maxOccurs="1" />
<xs:element name="UsagePointListLink" type="UsagePointListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FunctionSetAssignments">
<xs:annotation>
<xs:documentation>Provides an identifiable, subscribable collection of resources for a particular device to consume.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="FunctionSetAssignmentsBase">
<xs:sequence>
<xs:element name="mRID" minOccurs="1" maxOccurs="1" type="mRIDType">
<xs:annotation>
<xs:documentation>The global identifier of the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>The description is a human readable text describing or naming the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="version" minOccurs="0" maxOccurs="1" type="VersionType">
<xs:annotation>
<xs:documentation>Contains the version number of the object. See the type definition for details.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="subscribable" use="optional" default="0" type="SubscribableType">
<xs:annotation>
<xs:documentation>Indicates whether or not subscriptions are supported for this resource, and whether or not conditional (thresholds) are supported. If not specified, is "not subscribable" (0).</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FunctionSetAssignmentsList">
<xs:annotation>
<xs:documentation>A List element to hold FunctionSetAssignments objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="FunctionSetAssignments" type="FunctionSetAssignments" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Condition">
<xs:annotation>
<xs:documentation>Indicates a condition that must be satisfied for the Notification to be triggered.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="attributeIdentifier" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>0 = Reading value
1-255 = Reserved</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lowerThreshold" minOccurs="1" maxOccurs="1" type="Int48">
<xs:annotation>
<xs:documentation>The value of the lower threshold</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="upperThreshold" minOccurs="1" maxOccurs="1" type="Int48">
<xs:annotation>
<xs:documentation>The value of the upper threshold</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SubscriptionBase">
<xs:annotation>
<xs:documentation>Holds the information related to a client subscription to receive updates to a resource automatically. The actual resources may be passed in the Notification by specifying a specific xsi:type for the Resource and passing the full representation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="subscribedResource" minOccurs="1" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>The resource for which the subscription applies. Query string parameters SHALL NOT be specified when subscribing to list resources. Should a query string parameter be specified, servers SHALL ignore them.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Subscription">
<xs:annotation>
<xs:documentation>Holds the information related to a client subscription to receive updates to a resource automatically.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscriptionBase">
<xs:sequence>
<xs:element name="Condition" type="Condition" minOccurs="0" maxOccurs="1" />
<xs:element name="encoding" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>0 - application/sep+xml
1 - application/sep-exi
2-255 - reserved</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="level" minOccurs="1" maxOccurs="1" type="String16">
<xs:annotation>
<xs:documentation>Contains the preferred schema and extensibility level indication such as "+S1"</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="limit" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>This element is used to indicate the maximum number of list items that should be included in a notification when the subscribed resource changes. This limit is meant to be functionally equivalent to the ‘limit’ query string parameter, but applies to both list resources as well as other resources. For list resources, if a limit of ‘0’ is specified, then notifications SHALL contain a list resource with results=’0’ (equivalent to a simple change notification). For list resources, if a limit greater than ‘0’ is specified, then notifications SHALL contain a list resource with results equal to the limit specified (or less, should the list contain fewer items than the limit specified or should the server be unable to provide the requested number of items for any reason) and follow the same rules for list resources (e.g., ordering). For non-list resources, if a limit of ‘0’ is specified, then notifications SHALL NOT contain a resource representation (equivalent to a simple change notification). For non-list resources, if a limit greater than ‘0’ is specified, then notifications SHALL contain the representation of the changed resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="notificationURI" minOccurs="1" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>The resource to which to post the notifications about the requested subscribed resource. Because this URI will exist on a server other than the one being POSTed to, this attribute SHALL be a fully-qualified absolute URI, not a relative reference.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SubscriptionList">
<xs:annotation>
<xs:documentation>A List element to hold Subscription objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="Subscription" type="Subscription" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Notification">
<xs:annotation>
<xs:documentation>Holds the information related to a client subscription to receive updates to a resource automatically. The actual resources may be passed in the Notification by specifying a specific xsi:type for the Resource and passing the full representation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscriptionBase">
<xs:sequence>
<xs:element name="newResourceURI" minOccurs="0" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>The new location of the resource, if moved. This attribute SHALL be a fully-qualified absolute URI, not a relative reference.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resource" type="Resource" minOccurs="0" maxOccurs="1" />
<xs:element name="status" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>0 = Default Status
1 = Subscription canceled, no additional information
2 = Subscription canceled, resource moved
3 = Subscription canceled, resource definition changed (e.g., a new version of IEEE 2030.5)
4 = Subscription canceled, resource deleted
All other values reserved.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="subscriptionURI" minOccurs="1" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>The subscription from which this notification was triggered. This attribute SHALL be a fully-qualified absolute URI, not a relative reference.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NotificationList">
<xs:annotation>
<xs:documentation>A List element to hold Notification objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="Notification" type="Notification" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERControlResponse">
<xs:annotation>
<xs:documentation>A response to a DERControl</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Response" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FlowReservationResponseResponse">
<xs:annotation>
<xs:documentation>A response to a FlowReservationResponse</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Response" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AppliedTargetReduction">
<xs:annotation>
<xs:documentation>Specifies the value of the TargetReduction applied by the device.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="type" minOccurs="1" maxOccurs="1" type="UnitType">
<xs:annotation>
<xs:documentation>Enumerated field representing the type of reduction requested.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Indicates the requested amount of the relevant commodity to be reduced.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DrResponse">
<xs:annotation>
<xs:documentation>A response to a Demand Response Load Control (EndDeviceControl) message.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Response">
<xs:sequence>
<xs:element name="ApplianceLoadReduction" type="ApplianceLoadReduction" minOccurs="0" maxOccurs="1" />
<xs:element name="AppliedTargetReduction" type="AppliedTargetReduction" minOccurs="0" maxOccurs="1" />
<xs:element name="DutyCycle" type="DutyCycle" minOccurs="0" maxOccurs="1" />
<xs:element name="Offset" type="Offset" minOccurs="0" maxOccurs="1" />
<xs:element name="overrideDuration" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Indicates the amount of time, in seconds, that the client partially opts-out during the demand response event. When overriding within the allowed override duration, the client SHALL send a partial opt-out (Response status code 8) for partial opt-out upon completion, with the total time the event was overridden (this attribute) populated. The client SHALL send a no participation status response (status type 10) if the user partially opts-out for longer than EndDeviceControl.overrideDuration.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SetPoint" type="SetPoint" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PriceResponse">
<xs:annotation>
<xs:documentation>A response related to a price message.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Response" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Response">
<xs:annotation>
<xs:documentation>The Response object is the generic response data repository which is extended for specific function sets.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="createdDateTime" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The createdDateTime field contains the date and time when the acknowledgement/status occurred in the client. The client will provide the timestamp to ensure the proper time is captured in case the response is delayed in reaching the server (server receipt time would not be the same as the actual confirmation time). The time reported from the client should be relative to the time server indicated by the FunctionSetAssignment that also indicated the event resource; if no FunctionSetAssignment exists, the time of the server where the event resource was hosted.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="endDeviceLFDI" minOccurs="1" maxOccurs="1" type="HexBinary160">
<xs:annotation>
<xs:documentation>Contains the LFDI of the device providing the response.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="status" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The status field contains the acknowledgement or status. Each event type (DRLC, DER, Price, or Text) can return different status information (e.g. an Acknowledge will be returned for a Price event where a DRLC event can return Event Received, Event Started, and Event Completed). The Status field value definitions are defined in Table 27: Response Types by Function Set.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="subject" minOccurs="1" maxOccurs="1" type="mRIDType">
<xs:annotation>
<xs:documentation>The subject field provides a method to match the response with the originating event. It is populated with the mRID of the original object.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ResponseList">
<xs:annotation>
<xs:documentation>A List element to hold Response objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="Response" type="Response" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ResponseSet">
<xs:annotation>
<xs:documentation>A container for a ResponseList.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="ResponseListLink" type="ResponseListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ResponseSetList">
<xs:annotation>
<xs:documentation>A List element to hold ResponseSet objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="ResponseSet" type="ResponseSet" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TextResponse">
<xs:annotation>
<xs:documentation>A response to a text message</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Response" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Time">
<xs:annotation>
<xs:documentation>Contains the representation of time, constantly updated.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="currentTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The current time, in the format defined by TimeType.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dstEndTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Time at which daylight savings ends (dstOffset no longer applied). Result of dstEndRule calculation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dstOffset" minOccurs="1" maxOccurs="1" type="TimeOffsetType">
<xs:annotation>
<xs:documentation>Daylight savings time offset from local standard time. A typical practice is advancing clocks one hour when daylight savings time is in effect, which would result in a positive dstOffset.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dstStartTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Time at which daylight savings begins (apply dstOffset). Result of dstStartRule calculation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="localTime" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Local time: localTime = currentTime + tzOffset (+ dstOffset when in effect).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="quality" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Metric indicating the quality of the time source from which the service acquired time. Lower (smaller) quality enumeration values are assumed to be more accurate.
3 - time obtained from external authoritative source such as NTP
4 - time obtained from level 3 source
5 - time manually set or obtained from level 4 source
6 - time obtained from level 5 source
7 - time intentionally uncoordinated
All other values are reserved for future use.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="tzOffset" minOccurs="1" maxOccurs="1" type="TimeOffsetType">
<xs:annotation>
<xs:documentation>Local time zone offset from currentTime. Does not include any daylight savings time offsets. For American time zones, a negative tzOffset SHALL be used (eg, EST = GMT-5 which is -18000).</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DeviceInformation">
<xs:annotation>
<xs:documentation>Contains identification and other information about the device that changes very infrequently, typically only when updates are applied, if ever.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="DRLCCapabilities" type="DRLCCapabilities" minOccurs="0" maxOccurs="1" />
<xs:element name="functionsImplemented" minOccurs="0" maxOccurs="1" type="HexBinary64">
<xs:annotation>
<xs:documentation>Bitmap indicating the function sets used by the device as a client.
0 - Device Capability
1 - Self Device Resource
2 - End Device Resource
3 - Function Set Assignments
4 - Subscription/Notification Mechanism
5 - Response
6 - Time
7 - Device Information
8 - Power Status
9 - Network Status
10 - Log Event
11 - Configuration Resource
12 - Software Download
13 - DRLC
14 - Metering
15 - Pricing
16 - Messaging
17 - Billing
18 - Prepayment
19 - Flow Reservation
20 - DER Control</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="gpsLocation" minOccurs="0" maxOccurs="1" type="GPSLocationType">
<xs:annotation>
<xs:documentation>GPS location of this device.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lFDI" minOccurs="1" maxOccurs="1" type="HexBinary160">
<xs:annotation>
<xs:documentation>Long form device identifier. See the Security section for full details.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfDate" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Date/time of manufacture</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfHwVer" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Manufacturer hardware version</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfID" minOccurs="1" maxOccurs="1" type="PENType">
<xs:annotation>
<xs:documentation>The manufacturer's IANA Enterprise Number.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfInfo" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Manufacturer dependent information related to the manufacture of this device</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfModel" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Manufacturer's model number</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfSerNum" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Manufacturer assigned serial number</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="primaryPower" minOccurs="1" maxOccurs="1" type="PowerSourceType">
<xs:annotation>
<xs:documentation>Primary source of power.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="secondaryPower" minOccurs="1" maxOccurs="1" type="PowerSourceType">
<xs:annotation>
<xs:documentation>Secondary source of power</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SupportedLocaleListLink" type="SupportedLocaleListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="swActTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Activation date/time of currently running software</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="swVer" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Currently running software version</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DRLCCapabilities">
<xs:annotation>
<xs:documentation>Contains information about the static capabilities of the device, to allow service providers to know what types of functions are supported, what the normal operating ranges and limits are, and other similar information, in order to provide better suggestions of applicable programs to receive the maximum benefit.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="averageEnergy" minOccurs="1" maxOccurs="1" type="RealEnergy">
<xs:annotation>
<xs:documentation>The average hourly energy usage when in normal operating mode.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxDemand" minOccurs="1" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>The maximum demand rating of this end device.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="optionsImplemented" minOccurs="1" maxOccurs="1" type="HexBinary32">
<xs:annotation>
<xs:documentation>Bitmap indicating the DRLC options implemented by the device.
0 - Target reduction (kWh)
1 - Target reduction (kW)
2 - Target reduction (Watts)
3 - Target reduction (Cubic Meters)
4 - Target reduction (Cubic Feet)
5 - Target reduction (US Gallons)
6 - Target reduction (Imperial Gallons)
7 - Target reduction (BTUs)
8 - Target reduction (Liters)
9 - Target reduction (kPA (gauge))
10 - Target reduction (kPA (absolute))
11 - Target reduction (Mega Joule)
12 - Target reduction (Unitless)
13-15 - Reserved
16 - Temperature set point
17 - Temperature offset
18 - Duty cycle
19 - Load adjustment percentage
20 - Appliance load reduction
21-31 - Reserved</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SupportedLocale">
<xs:annotation>
<xs:documentation>Specifies a locale that is supported</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="locale" minOccurs="1" maxOccurs="1" type="LocaleType">
<xs:annotation>
<xs:documentation>The code for a locale that is supported</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SupportedLocaleList">
<xs:annotation>
<xs:documentation>A List element to hold SupportedLocale objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="SupportedLocale" type="SupportedLocale" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PowerStatus">
<xs:annotation>
<xs:documentation>Contains the status of the device's power sources</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="batteryStatus" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Battery system status
0 = unknown
1 = normal (more than LowChargeThreshold remaining)
2 = low (less than LowChargeThreshold remaining)
3 = depleted (0% charge remaining)
4 = not applicable (mains powered only)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="changedTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The time at which the reported values were recorded.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="currentPowerSource" minOccurs="1" maxOccurs="1" type="PowerSourceType">
<xs:annotation>
<xs:documentation>This value will be fixed for devices powered by a single source. This value may change for devices able to transition between multiple power sources (mains to battery backup, etc.).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="estimatedChargeRemaining" minOccurs="0" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>Estimate of remaining battery charge as a percent of full charge.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="estimatedTimeRemaining" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Estimated time (in seconds) to total battery charge depletion (under current load)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PEVInfo" type="PEVInfo" minOccurs="0" maxOccurs="1" />
<xs:element name="sessionTimeOnBattery" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>If the device has a battery, this is the time since the device last switched to battery power, or the time since the device was restarted, whichever is less, in seconds.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="totalTimeOnBattery" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>If the device has a battery, this is the total time the device has been on battery power, in seconds. It may be reset when the battery is replaced.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PowerSourceType">
<xs:annotation>
<xs:documentation>0 - none
1 - mains
2 - battery
3 - local generation
4 - emergency
5 - unknown
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PEVInfo">
<xs:annotation>
<xs:documentation>Contains attributes that can be exposed by PEVs and other devices that have charging requirements.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="chargingPowerNow" minOccurs="1" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>This is the actual power flow in or out of the charger or inverter. This is calculated by the vehicle based on actual measurements. This number is positive for charging.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="energyRequestNow" minOccurs="1" maxOccurs="1" type="RealEnergy">
<xs:annotation>
<xs:documentation>This is the amount of energy that must be transferred from the grid to EVSE and PEV to achieve the target state of charge allowing for charger efficiency and any vehicle and EVSE parasitic loads. This is calculated by the vehicle and changes throughout the connection as forward or reverse power flow change the battery state of charge. This number is positive for charging.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxForwardPower" minOccurs="1" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>This is maximum power transfer capability that could be used for charging the PEV to perform the requested energy transfer. It is the lower of the vehicle or EVSE physical power limitations. It is not based on economic considerations. The vehicle may draw less power than this value based on its charging cycle. The vehicle defines this parameter. This number is positive for charging power flow.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="minimumChargingDuration" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>This is computed by the PEV based on the charging profile to complete the energy transfer if the maximum power is authorized. The value will never be smaller than the ratio of the energy request to the power request because the charging profile may not allow the maximum power to be used throughout the transfer. This is a critical parameter for determining whether any slack time exists in the charging cycle between the current time and the TCIN.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="targetStateOfCharge" minOccurs="1" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>This is the target state of charge that is to be achieved during charging before the time of departure (TCIN). The default value is 100%. The value cannot be set to a value less than the actual state of charge.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="timeChargeIsNeeded" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Time Charge is Needed (TCIN) is the time that the PEV is expected to depart. The value is manually entered using controls and displays in the vehicle or on the EVSE or using a mobile device. It is authenticated and saved by the PEV. This value may be updated during a charging session.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="timeChargingStatusPEV" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>This is the time that the parameters are updated, except for changes to TCIN.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IEEE_802_15_4">
<xs:annotation>
<xs:documentation>Contains 802.15.4 link layer specific attributes.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="capabilityInfo" minOccurs="1" maxOccurs="1" type="HexBinary8">
<xs:annotation>
<xs:documentation>As defined by IEEE 802.15.4</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NeighborListLink" type="NeighborListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="shortAddress" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>As defined by IEEE 802.15.4</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IPAddr">
<xs:annotation>
<xs:documentation>An Internet Protocol address object.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="address" minOccurs="1" maxOccurs="1" type="HexBinary128">
<xs:annotation>
<xs:documentation>An IP address value.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RPLInstanceListLink" type="RPLInstanceListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IPAddrList">
<xs:annotation>
<xs:documentation>List of IPAddr instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="IPAddr" type="IPAddr" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IPInterface">
<xs:annotation>
<xs:documentation>Specific IPInterface resource. This resource may be thought of as network status information for a specific network (IP) layer interface.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="ifDescr" minOccurs="0" maxOccurs="1" type="String192">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifHighSpeed" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifInBroadcastPkts" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifIndex" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifInDiscards" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Input Datagrams Discarded.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifInErrors" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifInMulticastPkts" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Multicast Datagrams Received.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifInOctets" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Bytes Received.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifInUcastPkts" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Datagrams Received.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifInUnknownProtos" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Datagrams with Unknown Protocol Received.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifMtu" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifName" minOccurs="0" maxOccurs="1" type="String16">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifOperStatus" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Use rules and assignments from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifOutBroadcastPkts" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Broadcast Datagrams Sent.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifOutDiscards" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Output Datagrams Discarded.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifOutErrors" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifOutMulticastPkts" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Multicast Datagrams Sent.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifOutOctets" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Bytes Sent.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifOutUcastPkts" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863]. Can be thought of as Datagrams Sent.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifPromiscuousMode" minOccurs="0" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifSpeed" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Use rules from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ifType" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Use rules and assignments from [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IPAddrListLink" type="IPAddrListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="lastResetTime" minOccurs="0" maxOccurs="1" type="Int64">
<xs:annotation>
<xs:documentation>Similar to ifLastChange in [RFC 2863].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lastUpdatedTime" minOccurs="0" maxOccurs="1" type="Int64">
<xs:annotation>
<xs:documentation>The date/time of the reported status.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLInterfaceListLink" type="LLInterfaceListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IPInterfaceList">
<xs:annotation>
<xs:documentation>List of IPInterface instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="IPInterface" type="IPInterface" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LLInterface">
<xs:annotation>
<xs:documentation>A link-layer interface object.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="CRCerrors" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Contains the number of CRC errors since reset.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="EUI64" minOccurs="1" maxOccurs="1" type="HexBinary64">
<xs:annotation>
<xs:documentation>Contains the EUI-64 of the link layer interface. 48 bit MAC addresses SHALL be changed into an EUI-64 using the method defined in [RFC 4291], Appendix A. (The method is to insert "0xFFFE" as described in the reference.)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IEEE_802_15_4" type="IEEE_802_15_4" minOccurs="0" maxOccurs="1" />
<xs:element name="linkLayerType" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Specifies the type of link layer interface associated with the IPInterface. Values are below.
0 = Unspecified
1 = IEEE 802.3 (Ethernet)
2 = IEEE 802.11 (WLAN)
3 = IEEE 802.15 (PAN)
4 = IEEE 1901 (PLC)
All other values reserved.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLAckNotRx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of times an ACK was not received for a frame transmitted (when ACK was requested).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLCSMAFail" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of times CSMA failed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLFramesDropRx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of dropped receive frames.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLFramesDropTx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of dropped transmit frames.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLFramesRx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of link layer frames received.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLFramesTx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of link layer frames transmitted.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLMediaAccessFail" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of times access to media failed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLOctetsRx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of Bytes received.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLOctetsTx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of Bytes transmitted.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLRetryCount" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of MAC transmit retries.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LLSecurityErrorRx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of receive security errors.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="loWPAN" type="loWPAN" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LLInterfaceList">
<xs:annotation>
<xs:documentation>List of LLInterface instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="LLInterface" type="LLInterface" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="loWPAN">
<xs:annotation>
<xs:documentation>Contains information specific to 6LoWPAN.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="octetsRx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of Bytes received</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="octetsTx" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of Bytes transmitted</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="packetsRx" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of packets received</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="packetsTx" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of packets transmitted</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rxFragError" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Number of errors receiving fragments</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Neighbor">
<xs:annotation>
<xs:documentation>Contains 802.15.4 link layer specific attributes.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="isChild" minOccurs="1" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>True if the neighbor is a child.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="linkQuality" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The quality of the link, as defined by 802.15.4</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="shortAddress" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>As defined by IEEE 802.15.4</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NeighborList">
<xs:annotation>
<xs:documentation>List of 15.4 neighbors.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="Neighbor" type="Neighbor" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RPLInstance">
<xs:annotation>
<xs:documentation>Specific RPLInstance resource. This resource may be thought of as network status information for a specific RPL instance associated with IPInterface.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="DODAGid" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DODAGroot" minOccurs="1" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="flags" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="groundedFlag" minOccurs="1" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MOP" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PRF" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rank" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RPLInstanceID" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RPLSourceRoutesListLink" type="RPLSourceRoutesListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="versionNumber" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>See [RFC 6550].</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RPLInstanceList">
<xs:annotation>
<xs:documentation>List of RPLInstances associated with the IPinterface.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="RPLInstance" type="RPLInstance" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RPLSourceRoutes">
<xs:annotation>
<xs:documentation>A RPL source routes object.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="DestAddress" minOccurs="1" maxOccurs="1" type="HexBinary128">
<xs:annotation>
<xs:documentation>See [RFC 6554].</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SourceRoute" minOccurs="1" maxOccurs="1" type="HexBinary128">
<xs:annotation>
<xs:documentation>See [RFC 6554].</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RPLSourceRoutesList">
<xs:annotation>
<xs:documentation>List or RPL source routes if the hosting device is the DODAGroot</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="RPLSourceRoutes" type="RPLSourceRoutes" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LogEvent">
<xs:annotation>
<xs:documentation>A time stamped instance of a significant event detected by the device.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="createdDateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time that the event occurred.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="details" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Human readable text that MAY be used to transmit additional details about the event. A host MAY remove this field when received.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="extendedData" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>May be used to transmit additional details about the event.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="functionSet" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>If the profileID indicates this is IEEE 2030.5, the functionSet is defined by IEEE 2030.5 and SHALL be one of the values from the table below (IEEE 2030.5 function set identifiers). If the profileID is anything else, the functionSet is defined by the identified profile.
0 General (not specific to a function set)
1 Publish and Subscribe
2 End Device
3 Function Set Assignment
4 Response
5 Demand Response and Load Control
6 Metering
7 Pricing
8 Messaging
9 Billing
10 Prepayment
11 Distributed Energy Resources
12 Time
13 Software Download
14 Device Information
15 Power Status
16 Network Status
17 Log Event List
18 Configuration
19 Security
All other values are reserved.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="logEventCode" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>An 8 bit unsigned integer. logEventCodes are scoped to a profile and a function set. If the profile is IEEE 2030.5, the logEventCode is defined by IEEE 2030.5 within one of the function sets of IEEE 2030.5. If the profile is anything else, the logEventCode is defined by the specified profile.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="logEventID" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>This 16-bit value, combined with createdDateTime, profileID, and logEventPEN, should provide a reasonable level of uniqueness.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="logEventPEN" minOccurs="1" maxOccurs="1" type="PENType">
<xs:annotation>
<xs:documentation>The Private Enterprise Number(PEN) of the entity that defined the profileID, functionSet, and logEventCode of the logEvent. IEEE 2030.5-assigned logEventCodes SHALL use the IEEE 2030.5 PEN. Combinations of profileID, functionSet, and logEventCode SHALL have unique meaning within a logEventPEN and are defined by the owner of the PEN.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="profileID" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The profileID identifies which profile (HA, BA, SE, etc) defines the following event information.
0 Not profile specific.
1 Vendor Defined
2 IEEE 2030.5
3 Home Automation
4 Building Automation
All other values are reserved.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LogEventList">
<xs:annotation>
<xs:documentation>A List element to hold LogEvent objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="LogEvent" type="LogEvent" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Configuration">
<xs:annotation>
<xs:documentation>This resource contains various settings to control the operation of the device</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableResource">
<xs:sequence>
<xs:element name="currentLocale" minOccurs="1" maxOccurs="1" type="LocaleType">
<xs:annotation>
<xs:documentation>[RFC 4646] identifier of the language-region currently in use.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PowerConfiguration" type="PowerConfiguration" minOccurs="0" maxOccurs="1" />
<xs:element name="PriceResponseCfgListLink" type="PriceResponseCfgListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="TimeConfiguration" type="TimeConfiguration" minOccurs="0" maxOccurs="1" />
<xs:element name="userDeviceName" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>User assigned, convenience name used for network browsing displays, etc. Example "My Thermostat"</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PowerConfiguration">
<xs:annotation>
<xs:documentation>Contains configuration related to the device's power sources</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="batteryInstallTime" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Time/Date at which battery was installed,</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lowChargeThreshold" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>In context of the PowerStatus resource, this is the value of EstimatedTimeRemaining below which BatteryStatus "low" is indicated and the PS_LOW_BATTERY is raised.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PriceResponseCfg">
<xs:annotation>
<xs:documentation>Configuration data that specifies how price responsive devices SHOULD respond to price changes while acting upon a given RateComponent.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="consumeThreshold" minOccurs="1" maxOccurs="1" type="Int32">
<xs:annotation>
<xs:documentation>Price responsive clients acting upon the associated RateComponent SHOULD consume the associated commodity while the price is less than this threshold.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxReductionThreshold" minOccurs="1" maxOccurs="1" type="Int32">
<xs:annotation>
<xs:documentation>Price responsive clients acting upon the associated RateComponent SHOULD reduce consumption to the maximum extent possible while the price is greater than this threshold.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RateComponentLink" type="RateComponentLink" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PriceResponseCfgList">
<xs:annotation>
<xs:documentation>A List element to hold PriceResponseCfg objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="PriceResponseCfg" type="PriceResponseCfg" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TimeConfiguration">
<xs:annotation>
<xs:documentation>Contains attributes related to the configuration of the time service.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dstEndRule" minOccurs="1" maxOccurs="1" type="DstRuleType">
<xs:annotation>
<xs:documentation>Rule to calculate end of daylight savings time in the current year. Result of dstEndRule must be greater than result of dstStartRule.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dstOffset" minOccurs="1" maxOccurs="1" type="TimeOffsetType">
<xs:annotation>
<xs:documentation>Daylight savings time offset from local standard time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dstStartRule" minOccurs="1" maxOccurs="1" type="DstRuleType">
<xs:annotation>
<xs:documentation>Rule to calculate start of daylight savings time in the current year. Result of dstEndRule must be greater than result of dstStartRule.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="tzOffset" minOccurs="1" maxOccurs="1" type="TimeOffsetType">
<xs:annotation>
<xs:documentation>Local time zone offset from UTCTime. Does not include any daylight savings time offsets.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="File">
<xs:annotation>
<xs:documentation>This resource contains various meta-data describing a file's characteristics. The meta-data provides general file information and also is used to support filtered queries of file lists</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="activateTime" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>This element MUST be set to the date/time at which this file is activated. If the activation time is less than or equal to current time, the LD MUST immediately place the file into the activated state (in the case of a firmware file, the file is now the running image). If the activation time is greater than the current time, the LD MUST wait until the specified activation time is reached, then MUST place the file into the activated state. Omission of this element means that the LD MUST NOT take any action to activate the file until a subsequent GET to this File resource provides an activateTime.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="fileURI" minOccurs="1" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>This element MUST be set to the URI location of the file binary artifact. This is the BLOB (binary large object) that is actually loaded by the LD</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lFDI" minOccurs="0" maxOccurs="1" type="HexBinary160">
<xs:annotation>
<xs:documentation>This element MUST be set to the LFDI of the device for which this file in targeted.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfHwVer" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>This element MUST be set to the hardware version for which this file is targeted.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfID" minOccurs="1" maxOccurs="1" type="PENType">
<xs:annotation>
<xs:documentation>This element MUST be set to the manufacturer's Private Enterprise Number (assigned by IANA).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfModel" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>This element MUST be set to the manufacturer model number for which this file is targeted. The syntax and semantics are left to the manufacturer.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfSerNum" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>This element MUST be set to the manufacturer serial number for which this file is targeted. The syntax and semantics are left to the manufacturer.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mfVer" minOccurs="1" maxOccurs="1" type="String16">
<xs:annotation>
<xs:documentation>This element MUST be set to the software version information for this file. The syntax and semantics are left to the manufacturer.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="size" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>This element MUST be set to the total size (in bytes) of the file referenced by fileURI.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="type" minOccurs="1" maxOccurs="1" type="HexBinary16">
<xs:annotation>
<xs:documentation>A value indicating the type of the file. MUST be one of the following values:
00 = Software Image
01 = Security Credential
02 = Configuration
03 = Log
04–7FFF = reserved
8000-FFFF = Manufacturer defined</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FileList">
<xs:annotation>
<xs:documentation>A List element to hold File objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="File" type="File" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FileStatus">
<xs:annotation>
<xs:documentation>This object provides status of device file load and activation operations.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="activateTime" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Date/time at which this File, referred to by FileLink, will be activated. Omission of or presence and value of this element MUST exactly match omission or presence and value of the activateTime element from the File resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FileLink" type="FileLink" minOccurs="0" maxOccurs="1" />
<xs:element name="loadPercent" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>This element MUST be set to the percentage of the file, indicated by FileLink, that was loaded during the latest load attempt. This value MUST be reset to 0 each time a load attempt is started for the File indicated by FileLink. This value MUST be increased when an LD receives HTTP response containing file content. This value MUST be set to 100 when the full content of the file has been received by the LD</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="nextRequestAttempt" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>This element MUST be set to the time at which the LD will issue its next GET request for file content from the File indicated by FileLink</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="request503Count" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>This value MUST be reset to 0 when FileLink is first pointed at a new File. This value MUST be incremented each time an
LD receives a 503 error from the FS.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requestFailCount" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>This value MUST be reset to 0 when FileLink is first pointed at a new File. This value MUST be incremented each time a GET request for file content failed. 503 errors MUST be excluded from this counter.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="status" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Current loading status of the file indicated by FileLink. This element MUST be set to one of the following values:
0 - No load operation in progress
1 - File load in progress (first request for file content has been issued by LD)
2 - File load failed
3 - File loaded successfully (full content of file has been received by the LD), signature verification in progress
4 - File signature verification failed
5 - File signature verified, waiting to activate file.
6 - File activation failed
7 - File activation in progress
8 - File activated successfully (this state may not be reached/persisted through an image activation)
9-255 - Reserved for future use.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="statusTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>This element MUST be set to the time at which file status transitioned to the value indicated in the status element.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LoadShedAvailabilityList">
<xs:annotation>
<xs:documentation>A List element to hold LoadShedAvailability objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="LoadShedAvailability" type="LoadShedAvailability" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ApplianceLoadReduction">
<xs:annotation>
<xs:documentation>The ApplianceLoadReduction object is used by a Demand Response service provider to provide signals for ENERGY STAR compliant appliances. See the definition of ApplianceLoadReductionType for more information.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="type" minOccurs="1" maxOccurs="1" type="ApplianceLoadReductionType">
<xs:annotation>
<xs:documentation>Indicates the type of appliance load reduction requested.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DemandResponseProgram">
<xs:annotation>
<xs:documentation>Demand response program.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="ActiveEndDeviceControlListLink" type="ActiveEndDeviceControlListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="availabilityUpdatePercentChangeThreshold" minOccurs="0" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>This attribute allows program providers to specify the requested granularity of updates to LoadShedAvailability sheddablePercent. If not present, or set to 0, then updates to LoadShedAvailability SHALL NOT be provided. If present and greater than zero, then clients SHALL provide their LoadShedAvailability if it has not previously been provided, and thereafter if the difference between the previously provided value and the current value of LoadShedAvailability sheddablePercent is greater than availabilityUpdatePercentChangeThreshold.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="availabilityUpdatePowerChangeThreshold" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>This attribute allows program providers to specify the requested granularity of updates to LoadShedAvailability sheddablePower. If not present, or set to 0, then updates to LoadShedAvailability SHALL NOT be provided. If present and greater than zero, then clients SHALL provide their LoadShedAvailability if it has not previously been provided, and thereafter if the difference between the previously provided value and the current value of LoadShedAvailability sheddablePower is greater than availabilityUpdatePowerChangeThreshold.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="EndDeviceControlListLink" type="EndDeviceControlListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="primacy" minOccurs="1" maxOccurs="1" type="PrimacyType">
<xs:annotation>
<xs:documentation>Indicates the relative primacy of the provider of this program.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DemandResponseProgramList">
<xs:annotation>
<xs:documentation>A List element to hold DemandResponseProgram objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="DemandResponseProgram" type="DemandResponseProgram" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DutyCycle">
<xs:annotation>
<xs:documentation>Duty cycle control is a device specific issue and is managed by the device. The duty cycle of the device under control should span the shortest practical time period in accordance with the nature of the device under control and the intent of the request for demand reduction. The default factory setting SHOULD be three minutes for each 10% of duty cycle. This indicates that the default time period over which a duty cycle is applied is 30 minutes, meaning a 10% duty cycle would cause a device to be ON for 3 minutes. The “off state” SHALL precede the “on state”.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="normalValue" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Contains the maximum On state duty cycle applied by the end device, as a percentage of time. The field not present indicates that this field has not been used by the end device.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EndDeviceControl">
<xs:annotation>
<xs:documentation>Instructs an EndDevice to perform a specified action.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="RandomizableEvent">
<xs:sequence>
<xs:element name="ApplianceLoadReduction" type="ApplianceLoadReduction" minOccurs="0" maxOccurs="1" />
<xs:element name="deviceCategory" minOccurs="1" maxOccurs="1" type="DeviceCategoryType">
<xs:annotation>
<xs:documentation>Specifies the bitmap indicating the categories of devices that SHOULD respond. Devices SHOULD ignore events that do not indicate their device category.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="drProgramMandatory" minOccurs="1" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>A flag to indicate if the EndDeviceControl is considered a mandatory event as defined by the service provider issuing the EndDeviceControl. The drProgramMandatory flag alerts the client/user that they will be subject to penalty or ineligibility based on the service provider’s program rules for that deviceCategory.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DutyCycle" type="DutyCycle" minOccurs="0" maxOccurs="1" />
<xs:element name="loadShiftForward" minOccurs="1" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates that the event intends to increase consumption. A value of true indicates the intention to increase usage value, and a value of false indicates the intention to decrease usage.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Offset" type="Offset" minOccurs="0" maxOccurs="1" />
<xs:element name="overrideDuration" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>The overrideDuration attribute provides a duration, in seconds, for which a client device is allowed to override this EndDeviceControl and still meet the contractual agreement with a service provider without opting out. If overrideDuration is not specified, then it SHALL default to 0.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SetPoint" type="SetPoint" minOccurs="0" maxOccurs="1" />
<xs:element name="TargetReduction" type="TargetReduction" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EndDeviceControlList">
<xs:annotation>
<xs:documentation>A List element to hold EndDeviceControl objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="EndDeviceControl" type="EndDeviceControl" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LoadShedAvailability">
<xs:annotation>
<xs:documentation>Indicates current consumption status and ability to shed load.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="availabilityDuration" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Indicates for how many seconds the consuming device will be able to reduce consumption at the maximum response level.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DemandResponseProgramLink" type="DemandResponseProgramLink" minOccurs="0" maxOccurs="1" />
<xs:element name="sheddablePercent" minOccurs="0" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>Maximum percent of current operating load that is estimated to be sheddable.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="sheddablePower" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Maximum amount of current operating load that is estimated to be sheddable, in Watts.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Offset">
<xs:annotation>
<xs:documentation>If a temperature offset is sent that causes the heating or cooling temperature set point to exceed the limit boundaries that are programmed into the device, the device SHALL respond by setting the temperature at the limit.
If an EDC is being targeted at multiple devices or to a device that controls multiple devices (e.g., EMS), it can provide multiple Offset types within one EDC. For events with multiple Offset types, a client SHALL select the Offset that best fits their operating function.
Alternatively, an event with a single Offset type can be targeted at an EMS in order to request a percentage load reduction on the average energy usage of the entire premise. An EMS SHOULD use the Metering function set to determine the initial load in the premise, reduce energy consumption by controlling devices at its disposal, and at the conclusion of the event, once again use the Metering function set to determine if the desired load reduction was achieved.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="coolingOffset" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The value change requested for the cooling offset, in degree C / 10. The value should be added to the normal set point for cooling, or if loadShiftForward is true, then the value should be subtracted from the normal set point.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="heatingOffset" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The value change requested for the heating offset, in degree C / 10. The value should be subtracted for heating, or if loadShiftForward is true, then the value should be added to the normal set point.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="loadAdjustmentPercentageOffset" minOccurs="0" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>The value change requested for the load adjustment percentage. The value should be subtracted from the normal setting, or if loadShiftForward is true, then the value should be added to the normal setting.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SetPoint">
<xs:annotation>
<xs:documentation>The SetPoint object is used to apply specific temperature set points to a temperature control device. The values of the heatingSetpoint and coolingSetpoint attributes SHALL be calculated as follows:
Cooling/Heating Temperature Set Point / 100 = temperature in degrees Celsius where -273.15°C &amp;lt;= temperature &amp;lt;= 327.67°C, corresponding to a Cooling and/or Heating Temperature Set Point. The maximum resolution this format allows is 0.01°C.
The field not present in a Response indicates that this field has not been used by the end device.
If a temperature is sent that exceeds the temperature limit boundaries that are programmed into the device, the device SHALL respond by setting the temperature at the limit.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="coolingSetpoint" minOccurs="0" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>This attribute represents the cooling temperature set point in degrees Celsius / 100. (Hundredths of a degree C)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="heatingSetpoint" minOccurs="0" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>This attribute represents the heating temperature set point in degrees Celsius / 100. (Hundredths of a degree C)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TargetReduction">
<xs:annotation>
<xs:documentation>The TargetReduction object is used by a Demand Response service provider to provide a RECOMMENDED threshold that a device/premises should maintain its consumption below. For example, a service provider can provide a RECOMMENDED threshold of some kWh for a 3-hour event. This means that the device/premises would maintain its consumption below the specified limit for the specified period.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="type" minOccurs="1" maxOccurs="1" type="UnitType">
<xs:annotation>
<xs:documentation>Indicates the type of reduction requested.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Indicates the requested amount of the relevant commodity to be reduced.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="MeterReading">
<xs:annotation>
<xs:documentation>Set of values obtained from the meter.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MeterReadingBase">
<xs:sequence>
<xs:element name="RateComponentListLink" type="RateComponentListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ReadingLink" type="ReadingLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ReadingSetListLink" type="ReadingSetListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ReadingTypeLink" type="ReadingTypeLink" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MeterReadingList">
<xs:annotation>
<xs:documentation>A List element to hold MeterReading objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="MeterReading" type="MeterReading" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Reading">
<xs:annotation>
<xs:documentation>Specific value measured by a meter or other asset.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ReadingBase">
<xs:sequence>
<xs:element name="localID" minOccurs="0" maxOccurs="1" type="HexBinary16">
<xs:annotation>
<xs:documentation>The local identifier for this reading within the reading set. localIDs are assigned in order of creation time. For interval data, this value SHALL increase with each interval time, and for block/tier readings, localID SHALL not be specified.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="subscribable" use="optional" default="0" type="SubscribableType">
<xs:annotation>
<xs:documentation>Indicates whether or not subscriptions are supported for this resource, and whether or not conditional (thresholds) are supported. If not specified, is "not subscribable" (0).</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingList">
<xs:annotation>
<xs:documentation>A List element to hold Reading objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="Reading" type="Reading" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingSet">
<xs:annotation>
<xs:documentation>A set of Readings of the ReadingType indicated by the parent MeterReading.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ReadingSetBase">
<xs:sequence>
<xs:element name="ReadingListLink" type="ReadingListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingSetList">
<xs:annotation>
<xs:documentation>A List element to hold ReadingSet objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="ReadingSet" type="ReadingSet" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingType">
<xs:annotation>
<xs:documentation>Type of data conveyed by a specific Reading. See IEC 61968 Part 9 Annex C for full definitions of these values.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="accumulationBehaviour" minOccurs="0" maxOccurs="1" type="AccumulationBehaviourType">
<xs:annotation>
<xs:documentation>The “accumulation behaviour” indicates how the value is represented to accumulate over time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="calorificValue" minOccurs="0" maxOccurs="1" type="UnitValueType">
<xs:annotation>
<xs:documentation>The amount of heat generated when a given mass of fuel is completely burned. The CalorificValue is used to convert the measured volume or mass of gas into kWh. The CalorificValue attribute represents the current active value.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="commodity" minOccurs="0" maxOccurs="1" type="CommodityType">
<xs:annotation>
<xs:documentation>Indicates the commodity applicable to this ReadingType.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="conversionFactor" minOccurs="0" maxOccurs="1" type="UnitValueType">
<xs:annotation>
<xs:documentation>Accounts for changes in the volume of gas based on temperature and pressure. The ConversionFactor attribute represents the current active value. The ConversionFactor is dimensionless. The default value for the ConversionFactor is 1, which means no conversion is applied. A price server can advertise a new/different value at any time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dataQualifier" minOccurs="0" maxOccurs="1" type="DataQualifierType">
<xs:annotation>
<xs:documentation>The data type can be used to describe a salient attribute of the data. Possible values are average, absolute, and etc.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="flowDirection" minOccurs="0" maxOccurs="1" type="FlowDirectionType">
<xs:annotation>
<xs:documentation>Anything involving current might have a flow direction. Possible values include forward and reverse.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="intervalLength" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Default interval length specified in seconds.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="kind" minOccurs="0" maxOccurs="1" type="KindType">
<xs:annotation>
<xs:documentation>Compound class that contains kindCategory and kindIndex</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxNumberOfIntervals" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>To be populated for mirrors of interval data to set the expected number of intervals per ReadingSet. Servers may discard intervals received that exceed this number.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numberOfConsumptionBlocks" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Number of consumption blocks. 0 means not applicable, and is the default if not specified. The value needs to be at least 1 if any actual prices are provided.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numberOfTouTiers" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The number of TOU tiers that can be used by any resource configured by this ReadingType. Servers SHALL populate this value with the largest touTier value that will &lt;i&gt;ever&lt;/i&gt; be used while this ReadingType is in effect. Servers SHALL set numberOfTouTiers equal to the number of standard TOU tiers plus the number of CPP tiers that may be used while this ReadingType is in effect. Servers SHALL specify a value between 0 and 255 (inclusive) for numberOfTouTiers (servers providing flat rate pricing SHOULD set numberOfTouTiers to 0, as in practice there is no difference between having no tiers and having one tier).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="phase" minOccurs="0" maxOccurs="1" type="PhaseCode">
<xs:annotation>
<xs:documentation>Contains phase information associated with the type.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="powerOfTenMultiplier" minOccurs="0" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Indicates the power of ten multiplier applicable to the unit of measure of this ReadingType.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="subIntervalLength" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Default sub-interval length specified in seconds for Readings of ReadingType. Some demand calculations are done over a number of smaller intervals. For example, in a rolling demand calculation, the demand value is defined as the rolling sum of smaller intervals over the intervalLength. The subintervalLength is the length of the smaller interval in this calculation. It SHALL be an integral division of the intervalLength. The number of sub-intervals can be calculated by dividing the intervalLength by the subintervalLength.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="supplyLimit" minOccurs="0" maxOccurs="1" type="UInt48">
<xs:annotation>
<xs:documentation>Reflects the supply limit set in the meter. This value can be compared to the Reading value to understand if limits are being approached or exceeded. Units follow the same definition as in this ReadingType.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="tieredConsumptionBlocks" minOccurs="0" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>Specifies whether or not the consumption blocks are differentiated by TOUTier or not. Default is false, if not specified.
true = consumption accumulated over individual tiers
false = consumption accumulated over all tiers</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="uom" minOccurs="0" maxOccurs="1" type="UomType">
<xs:annotation>
<xs:documentation>Indicates the measurement type for the units of measure for the readings of this type.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="UsagePoint">
<xs:annotation>
<xs:documentation>Logical point on a network at which consumption or production is either physically measured (e.g. metered) or estimated (e.g. unmetered street lights).</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="UsagePointBase">
<xs:sequence>
<xs:element name="deviceLFDI" minOccurs="0" maxOccurs="1" type="HexBinary160">
<xs:annotation>
<xs:documentation>The LFDI of the source device. This attribute SHALL be present when mirroring.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MeterReadingListLink" type="MeterReadingListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="UsagePointList">
<xs:annotation>
<xs:documentation>A List element to hold UsagePoint objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="UsagePoint" type="UsagePoint" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ConsumptionTariffInterval">
<xs:annotation>
<xs:documentation>One of a sequence of thresholds defined in terms of consumption quantity of a service such as electricity, water, gas, etc. It defines the steps or blocks in a step tariff structure, where startValue simultaneously defines the entry value of this step and the closing value of the previous step. Where consumption is greater than startValue, it falls within this block and where consumption is less than or equal to startValue, it falls within one of the previous blocks.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="consumptionBlock" minOccurs="1" maxOccurs="1" type="ConsumptionBlockType">
<xs:annotation>
<xs:documentation>Indicates the consumption block related to the reading. If not specified, is assumed to be "0 - N/A".</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="EnvironmentalCost" type="EnvironmentalCost" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="price" minOccurs="0" maxOccurs="1" type="Int32">
<xs:annotation>
<xs:documentation>The charge for this rate component, per unit of measure defined by the associated ReadingType, in currency specified in TariffProfile.
The Pricing service provider determines the appropriate price attribute value based on its applicable regulatory rules. For example, price could be net or inclusive of applicable taxes, fees, or levies.
The Billing function set provides the ability to represent billing information in a more detailed manner.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="startValue" minOccurs="1" maxOccurs="1" type="UInt48">
<xs:annotation>
<xs:documentation>The lowest level of consumption that defines the starting point of this consumption step or block. Thresholds start at zero for each billing period.
If specified, the first ConsumptionTariffInterval.startValue for a TimeTariffInteral instance SHALL begin at "0." Subsequent ConsumptionTariffInterval.startValue elements SHALL be greater than the previous one.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ConsumptionTariffIntervalList">
<xs:annotation>
<xs:documentation>A List element to hold ConsumptionTariffInterval objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="ConsumptionTariffInterval" type="ConsumptionTariffInterval" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CostKindType">
<xs:annotation>
<xs:documentation>0 - Carbon Dioxide emissions, in grams per unit
1 - Sulfur Dioxide emissions, in grams per unit
2 - Nitrogen Oxides emissions, in grams per unit
3 - Renewable generation, as a percentage of overall generation
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="EnvironmentalCost">
<xs:annotation>
<xs:documentation>Provides alternative or secondary price information for the relevant RateComponent. Supports jurisdictions that seek to convey the environmental price per unit of the specified commodity not expressed in currency.
Implementers and consumers can use this attribute to prioritize operations of their HAN devices (e.g., PEV charging during times of high availability of renewable electricity resources).</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="amount" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>The estimated or actual environmental or other cost, per commodity unit defined by the ReadingType, for this RateComponent (e.g., grams of carbon dioxide emissions each per kWh).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="costKind" minOccurs="1" maxOccurs="1" type="CostKindType">
<xs:annotation>
<xs:documentation>The kind of cost referred to in the amount.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="costLevel" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The relative level of the amount attribute. In conjunction with numCostLevels, this attribute informs a device of the relative scarcity of the amount attribute (e.g., a high or low availability of renewable generation).
numCostLevels and costLevel values SHALL ascend in order of scarcity, where "0" signals the lowest relative cost and higher values signal increasing cost. For example, if numCostLevels is equal to “3,” then if the lowest relative costLevel were equal to “0,” devices would assume this is the lowest relative period to operate. Likewise, if the costLevel in the next TimeTariffInterval instance is equal to “1,” then the device would assume it is relatively more expensive, in environmental terms, to operate during this TimeTariffInterval instance than the previous one.
There is no limit to the number of relative price levels other than that indicated in the attribute type, but for practicality, service providers should strive for simplicity and recognize the diminishing returns derived from increasing the numCostLevel value greater than four.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="numCostLevels" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The number of all relative cost levels.
In conjunction with costLevel, numCostLevels signals the relative scarcity of the commodity for the duration of the TimeTariffInterval instance (e.g., a relative indication of cost). This is useful in providing context for nominal cost signals to consumers or devices that might see a range of amount values from different service providres or from the same service provider.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RateComponent">
<xs:annotation>
<xs:documentation>Specifies the applicable charges for a single component of the rate, which could be generation price or consumption price, for example.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="ActiveTimeTariffIntervalListLink" type="ActiveTimeTariffIntervalListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="flowRateEndLimit" minOccurs="0" maxOccurs="1" type="UnitValueType">
<xs:annotation>
<xs:documentation>Specifies the maximum flow rate (e.g. kW for electricity) for which this RateComponent applies, for the usage point and given rate / tariff.
In combination with flowRateStartLimit, allows a service provider to define the demand or output characteristics for the particular tariff design. If a server includes the flowRateEndLimit attribute, then it SHALL also include flowRateStartLimit attribute.
For example, a service provider’s tariff limits customers to 20 kWs of demand for the given rate structure. Above this threshold (from 20-50 kWs), there are different demand charges per unit of consumption. The service provider can use flowRateStartLimit and flowRateEndLimit to describe the demand characteristics of the different rates. Similarly, these attributes can be used to describe limits on premises DERs that might be producing a commodity and sending it back into the distribution network.
Note: At the time of writing, service provider tariffs with demand-based components were not originally identified as being in scope, and service provider tariffs vary widely in their use of demand components and the method for computing charges. It is expected that industry groups (e.g., OpenSG) will document requirements in the future that the IEEE 2030.5 community can then use as source material for the next version of IEEE 2030.5.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="flowRateStartLimit" minOccurs="0" maxOccurs="1" type="UnitValueType">
<xs:annotation>
<xs:documentation>Specifies the minimum flow rate (e.g., kW for electricity) for which this RateComponent applies, for the usage point and given rate / tariff.
In combination with flowRateEndLimit, allows a service provider to define the demand or output characteristics for the particular tariff design. If a server includes the flowRateStartLimit attribute, then it SHALL also include flowRateEndLimit attribute.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReadingTypeLink" type="ReadingTypeLink" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Provides indication of the ReadingType with which this price is associated.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="roleFlags" minOccurs="1" maxOccurs="1" type="RoleFlagsType">
<xs:annotation>
<xs:documentation>Specifies the roles that this usage point has been assigned.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TimeTariffIntervalListLink" type="TimeTariffIntervalListLink" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RateComponentList">
<xs:annotation>
<xs:documentation>A List element to hold RateComponent objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="RateComponent" type="RateComponent" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TariffProfile">
<xs:annotation>
<xs:documentation>A schedule of charges; structure that allows the definition of tariff structures such as step (block) and time of use (tier) when used in conjunction with TimeTariffInterval and ConsumptionTariffInterval.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="currency" minOccurs="0" maxOccurs="1" type="CurrencyCode">
<xs:annotation>
<xs:documentation>The currency code indicating the currency for this TariffProfile.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="pricePowerOfTenMultiplier" minOccurs="0" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Indicates the power of ten multiplier for the price attribute.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="primacy" minOccurs="1" maxOccurs="1" type="PrimacyType">
<xs:annotation>
<xs:documentation>Indicates the relative primacy of the provider of this program.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rateCode" minOccurs="0" maxOccurs="1" type="String20">
<xs:annotation>
<xs:documentation>The rate code for this tariff profile. Provided by the Pricing service provider per its internal business needs and practices and provides a method to identify the specific rate code for the TariffProfile instance. This would typically not be communicated to the user except to facilitate troubleshooting due to its service provider-specific technical nature.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RateComponentListLink" type="RateComponentListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="serviceCategoryKind" minOccurs="1" maxOccurs="1" type="ServiceKind">
<xs:annotation>
<xs:documentation>The kind of service provided by this usage point.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TariffProfileList">
<xs:annotation>
<xs:documentation>A List element to hold TariffProfile objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="TariffProfile" type="TariffProfile" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TimeTariffInterval">
<xs:annotation>
<xs:documentation>Describes the time-differentiated portion of the RateComponent, if applicable, and provides the ability to specify multiple time intervals, each with its own consumption-based components and other attributes.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="RandomizableEvent">
<xs:sequence>
<xs:element name="ConsumptionTariffIntervalListLink" type="ConsumptionTariffIntervalListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="touTier" minOccurs="1" maxOccurs="1" type="TOUType">
<xs:annotation>
<xs:documentation>Indicates the time of use tier related to the reading. If not specified, is assumed to be "0 - N/A".</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TimeTariffIntervalList">
<xs:annotation>
<xs:documentation>A List element to hold TimeTariffInterval objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="TimeTariffInterval" type="TimeTariffInterval" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MessagingProgram">
<xs:annotation>
<xs:documentation>Provides a container for collections of text messages.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableIdentifiedObject">
<xs:sequence>
<xs:element name="ActiveTextMessageListLink" type="ActiveTextMessageListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="locale" minOccurs="1" maxOccurs="1" type="LocaleType">
<xs:annotation>
<xs:documentation>Indicates the language and region of the messages in this collection.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="primacy" minOccurs="1" maxOccurs="1" type="PrimacyType">
<xs:annotation>
<xs:documentation>Indicates the relative primacy of the provider of this program.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TextMessageListLink" type="TextMessageListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MessagingProgramList">
<xs:annotation>
<xs:documentation>A List element to hold MessagingProgram objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="MessagingProgram" type="MessagingProgram" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PriorityType">
<xs:annotation>
<xs:documentation>Indicates the priority of a message:
0 - Low
1 - Normal
2 - High
3 - Critical
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="TextMessage">
<xs:annotation>
<xs:documentation>Text message such as a notification.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Event">
<xs:sequence>
<xs:element name="originator" minOccurs="0" maxOccurs="1" type="String20">
<xs:annotation>
<xs:documentation>Indicates the human-readable name of the publisher of the message</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="priority" minOccurs="1" maxOccurs="1" type="PriorityType">
<xs:annotation>
<xs:documentation>The priority is used to inform the client of the priority of the particular message. Devices with constrained or limited resources for displaying Messages should use this attribute to determine how to handle displaying currently active Messages (e.g. if a device uses a scrolling method with a single Message viewable at a time it MAY want to push a low priority Message to the background and bring a newly received higher priority Message to the foreground).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="textMessage" minOccurs="1" maxOccurs="1" type="xs:string">
<xs:annotation>
<xs:documentation>The textMessage attribute contains the actual UTF-8 encoded text to be displayed in conjunction with the messageLength attribute which contains the overall length of the textMessage attribute. Clients and servers SHALL support a reception of a Message of 100 bytes in length. Messages that exceed the clients display size will be left to the client to choose what method to handle the message (truncation, scrolling, etc.).</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TextMessageList">
<xs:annotation>
<xs:documentation>A List element to hold TextMessage objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="TextMessage" type="TextMessage" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingPeriod">
<xs:annotation>
<xs:documentation>A Billing Period relates to the period of time on which a customer is billed. As an example the billing period interval for a particular customer might be 31 days starting on July 1, 2011. The start date and interval can change on each billing period. There may also be multiple billing periods related to a customer agreement to support different tariff structures.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="billLastPeriod" minOccurs="0" maxOccurs="1" type="Int48">
<xs:annotation>
<xs:documentation>The amount of the bill for the previous billing period.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="billToDate" minOccurs="0" maxOccurs="1" type="Int48">
<xs:annotation>
<xs:documentation>The bill amount related to the billing period as of the statusTimeStamp.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="interval" minOccurs="1" maxOccurs="1" type="DateTimeInterval">
<xs:annotation>
<xs:documentation>The time interval for this billing period.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="statusTimeStamp" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date / time of the last update of this resource.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingPeriodList">
<xs:annotation>
<xs:documentation>A List element to hold BillingPeriod objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="BillingPeriod" type="BillingPeriod" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingMeterReadingBase">
<xs:annotation>
<xs:documentation>Contains historical, target, and projection readings of various types, possibly associated with charges.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MeterReadingBase">
<xs:sequence>
<xs:element name="BillingReadingSetListLink" type="BillingReadingSetListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ReadingTypeLink" type="ReadingTypeLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingReading">
<xs:annotation>
<xs:documentation>Data captured at regular intervals of time. Interval data could be captured as incremental data, absolute data, or relative data. The source for the data is usually a tariff quantity or an engineering quantity. Data is typically captured in time-tagged, uniform, fixed-length intervals of 5 min, 10 min, 15 min, 30 min, or 60 min. However, consumption aggregations can also be represented with this class.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ReadingBase">
<xs:sequence>
<xs:element name="Charge" type="Charge" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingReadingList">
<xs:annotation>
<xs:documentation>A List element to hold BillingReading objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="BillingReading" type="BillingReading" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingReadingSet">
<xs:annotation>
<xs:documentation>Time sequence of readings of the same reading type.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ReadingSetBase">
<xs:sequence>
<xs:element name="BillingReadingListLink" type="BillingReadingListLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingReadingSetList">
<xs:annotation>
<xs:documentation>A List element to hold BillingReadingSet objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="BillingReadingSet" type="BillingReadingSet" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Charge">
<xs:annotation>
<xs:documentation>Charges contain charges on a customer bill. These could be items like taxes, levies, surcharges, rebates, or others. This is meant to allow the HAN device to retrieve enough information to be able to reconstruct an estimate of what the total bill would look like.
Providers can provide line item billing, including multiple charge kinds (e.g. taxes, surcharges) at whatever granularity desired, using as many Charges as desired during a billing period. There can also be any number of Charges associated with different ReadingTypes to distinguish between TOU tiers, consumption blocks, or demand charges.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="0" maxOccurs="1" type="String20">
<xs:annotation>
<xs:documentation>A description of the charge.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="kind" minOccurs="0" maxOccurs="1" type="ChargeKind">
<xs:annotation>
<xs:documentation>The type (kind) of charge.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="Int32">
<xs:annotation>
<xs:documentation>A monetary charge.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ChargeKind">
<xs:annotation>
<xs:documentation>Kind of charge.
0 - Consumption Charge
1 - Rebate
2 - Auxiliary Charge
3 - Demand Charge
4 - Tax Charge</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CustomerAccount">
<xs:annotation>
<xs:documentation>Assignment of a group of products and services purchased by the Customer through a CustomerAgreement, used as a mechanism for customer billing and payment. It contains common information from the various types of CustomerAgreements to create billings (invoices) for a Customer and receive payment.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="currency" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>The ISO 4217 code indicating the currency applicable to the bill amounts in the summary. See list at http://www.unece.org/cefact/recommendations/rec09/rec09_ecetrd203.pdf</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="customerAccount" minOccurs="0" maxOccurs="1" type="String42">
<xs:annotation>
<xs:documentation>The account number for the customer (if applicable).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CustomerAgreementListLink" type="CustomerAgreementListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="customerName" minOccurs="0" maxOccurs="1" type="String42">
<xs:annotation>
<xs:documentation>The name of the customer.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="pricePowerOfTenMultiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Indicates the power of ten multiplier for the prices in this function set.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ServiceSupplierLink" type="ServiceSupplierLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CustomerAccountList">
<xs:annotation>
<xs:documentation>A List element to hold CustomerAccount objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="CustomerAccount" type="CustomerAccount" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CustomerAgreement">
<xs:annotation>
<xs:documentation>Agreement between the customer and the service supplier to pay for service at a specific service location. It records certain billing information about the type of service provided at the service location and is used during charge creation to determine the type of service.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="ActiveBillingPeriodListLink" type="ActiveBillingPeriodListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ActiveProjectionReadingListLink" type="ActiveProjectionReadingListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ActiveTargetReadingListLink" type="ActiveTargetReadingListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="BillingPeriodListLink" type="BillingPeriodListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="HistoricalReadingListLink" type="HistoricalReadingListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="PrepaymentLink" type="PrepaymentLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ProjectionReadingListLink" type="ProjectionReadingListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="serviceAccount" minOccurs="0" maxOccurs="1" type="String42">
<xs:annotation>
<xs:documentation>The account number of the service account (if applicable).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="serviceLocation" minOccurs="0" maxOccurs="1" type="String42">
<xs:annotation>
<xs:documentation>The address or textual description of the service location.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TargetReadingListLink" type="TargetReadingListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="TariffProfileLink" type="TariffProfileLink" minOccurs="0" maxOccurs="1" />
<xs:element name="UsagePointLink" type="UsagePointLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CustomerAgreementList">
<xs:annotation>
<xs:documentation>A List element to hold CustomerAgreement objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="CustomerAgreement" type="CustomerAgreement" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HistoricalReading">
<xs:annotation>
<xs:documentation>To be used to present readings that have been processed and possibly corrected (as allowed, due to missing or incorrect data) by backend systems. This includes quality codes valid, verified, estimated, and derived / corrected.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="BillingMeterReadingBase" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HistoricalReadingList">
<xs:annotation>
<xs:documentation>A List element to hold HistoricalReading objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="HistoricalReading" type="HistoricalReading" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ProjectionReading">
<xs:annotation>
<xs:documentation>Contains values that forecast a future reading for the time or interval specified.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="BillingMeterReadingBase" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ProjectionReadingList">
<xs:annotation>
<xs:documentation>A List element to hold ProjectionReading objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="ProjectionReading" type="ProjectionReading" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TargetReading">
<xs:annotation>
<xs:documentation>Contains readings that specify a target or goal, such as a consumption target, to which billing incentives or other contractual ramifications may be associated.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="BillingMeterReadingBase" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TargetReadingList">
<xs:annotation>
<xs:documentation>A List element to hold TargetReading objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="TargetReading" type="TargetReading" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ServiceSupplier">
<xs:annotation>
<xs:documentation>Organisation that provides services to Customers.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="email" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>E-mail address for this service supplier.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="phone" minOccurs="0" maxOccurs="1" type="String20">
<xs:annotation>
<xs:documentation>Human-readable phone number for this service supplier.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="providerID" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Contains the IANA PEN for the commodity provider.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="web" minOccurs="0" maxOccurs="1" type="String42">
<xs:annotation>
<xs:documentation>Website URI address for this service supplier.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ServiceSupplierList">
<xs:annotation>
<xs:documentation>A List element to hold ServiceSupplier objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="ServiceSupplier" type="ServiceSupplier" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AccountBalance">
<xs:annotation>
<xs:documentation>AccountBalance contains the regular credit and emergency credit balance for this given service or commodity prepay instance. It may also contain status information concerning the balance data.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="availableCredit" minOccurs="1" maxOccurs="1" type="AccountingUnit">
<xs:annotation>
<xs:documentation>AvailableCredit shows the balance of the sum of credits minus the sum of charges. In a Central Wallet mode this value may be passed down to the Prepayment server via an out-of-band mechanism. In Local or ESI modes, this value may be calculated based upon summation of CreditRegister transactions minus consumption charges calculated using Metering (and possibly Pricing) function set data. This value may be negative; for instance, if disconnection is prevented due to a Supply Interruption Override.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="creditStatus" minOccurs="0" maxOccurs="1" type="CreditStatusType">
<xs:annotation>
<xs:documentation>CreditStatus identifies whether the present value of availableCredit is considered OK, low, exhausted, or negative.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="emergencyCredit" minOccurs="0" maxOccurs="1" type="AccountingUnit">
<xs:annotation>
<xs:documentation>EmergencyCredit is the amount of credit still available for the given service or commodity prepayment instance. If both availableCredit and emergyCredit are exhausted, then service will typically be disconnected.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="emergencyCreditStatus" minOccurs="0" maxOccurs="1" type="CreditStatusType">
<xs:annotation>
<xs:documentation>EmergencyCreditStatus identifies whether the present value of emergencyCredit is considered OK, low, exhausted, or negative.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AccountingUnit">
<xs:annotation>
<xs:documentation>Unit for accounting; use either 'energyUnit' or 'currencyUnit' to specify the unit for 'value'.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="energyUnit" minOccurs="0" maxOccurs="1" type="RealEnergy">
<xs:annotation>
<xs:documentation>Unit of service.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="monetaryUnit" minOccurs="1" maxOccurs="1" type="CurrencyCode">
<xs:annotation>
<xs:documentation>Unit of currency.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Multiplier for the 'energyUnit' or 'monetaryUnit'.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="Int32">
<xs:annotation>
<xs:documentation>Value of the monetary aspect</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CreditRegister">
<xs:annotation>
<xs:documentation>CreditRegister instances define a credit-modifying transaction. Typically this would be a credit-adding transaction, but may be a subtracting transaction (perhaps in response to an out-of-band debt signal).</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="creditAmount" minOccurs="1" maxOccurs="1" type="AccountingUnit">
<xs:annotation>
<xs:documentation>CreditAmount is the amount of credit being added by a particular CreditRegister transaction. Negative values indicate that credit is being subtracted.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="creditType" minOccurs="0" maxOccurs="1" type="CreditTypeType">
<xs:annotation>
<xs:documentation>CreditType indicates whether the credit transaction applies to regular or emergency credit.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="effectiveTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>EffectiveTime identifies the time at which the credit transaction goes into effect. For credit addition transactions, this is typically the moment at which the transaction takes place. For credit subtraction transactions, (e.g., non-fuel debt recovery transactions initiated from a back-haul or ESI) this may be a future time at which credit is deducted.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="token" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Token is security data that authenticates the legitimacy of the transaction. The details of this token are not defined by IEEE 2030.5. How a Prepayment server handles this field is left as vendor specific implementation or will be defined by one or more other standards.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CreditRegisterList">
<xs:annotation>
<xs:documentation>A List element to hold CreditRegister objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="CreditRegister" type="CreditRegister" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Prepayment">
<xs:annotation>
<xs:documentation>Prepayment (inherited from CIM SDPAccountingFunction)</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="AccountBalanceLink" type="AccountBalanceLink" minOccurs="1" maxOccurs="1" />
<xs:element name="ActiveCreditRegisterListLink" type="ActiveCreditRegisterListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="ActiveSupplyInterruptionOverrideListLink" type="ActiveSupplyInterruptionOverrideListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="creditExpiryLevel" minOccurs="0" maxOccurs="1" type="AccountingUnit">
<xs:annotation>
<xs:documentation>CreditExpiryLevel is the set point for availableCredit at which the service level may be changed. The typical value for this attribute is 0, regardless of whether the account balance is measured in a monetary or commodity basis. The units for this attribute SHALL match the units used for availableCredit.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CreditRegisterListLink" type="CreditRegisterListLink" minOccurs="1" maxOccurs="1" />
<xs:element name="lowCreditWarningLevel" minOccurs="0" maxOccurs="1" type="AccountingUnit">
<xs:annotation>
<xs:documentation>LowCreditWarningLevel is the set point for availableCredit at which the creditStatus attribute in the AccountBalance resource SHALL indicate that available credit is low. The units for this attribute SHALL match the units used for availableCredit. Typically, this value is set by the service provider.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lowEmergencyCreditWarningLevel" minOccurs="0" maxOccurs="1" type="AccountingUnit">
<xs:annotation>
<xs:documentation>LowEmergencyCreditWarningLevel is the set point for emergencyCredit at which the creditStatus attribute in the AccountBalance resource SHALL indicate that emergencycredit is low. The units for this attribute SHALL match the units used for availableCredit. Typically, this value is set by the service provider.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="prepayMode" minOccurs="1" maxOccurs="1" type="PrepayModeType">
<xs:annotation>
<xs:documentation>PrepayMode specifies whether the given Prepayment instance is operating in Credit, Central Wallet, ESI, or Local prepayment mode. The Credit mode indicates that prepayment is not presently in effect. The other modes are described in the Overview Section above.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PrepayOperationStatusLink" type="PrepayOperationStatusLink" minOccurs="1" maxOccurs="1" />
<xs:element name="SupplyInterruptionOverrideListLink" type="SupplyInterruptionOverrideListLink" minOccurs="1" maxOccurs="1" />
<xs:element name="UsagePoint" type="UsagePoint" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="UsagePointLink" type="UsagePointLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PrepaymentList">
<xs:annotation>
<xs:documentation>A List element to hold Prepayment objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="Prepayment" type="Prepayment" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PrepayModeType">
<xs:annotation>
<xs:documentation>0 - Central Wallet
1 - ESI
2 - Local
3 - Credit
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PrepayOperationStatus">
<xs:annotation>
<xs:documentation>PrepayOperationStatus describes the status of the service or commodity being conditionally controlled by the Prepayment function set.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="creditTypeChange" minOccurs="0" maxOccurs="1" type="CreditTypeChange">
<xs:annotation>
<xs:documentation>CreditTypeChange is used to define a pending change of creditTypeInUse, which will activate at a specified time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="creditTypeInUse" minOccurs="0" maxOccurs="1" type="CreditTypeType">
<xs:annotation>
<xs:documentation>CreditTypeInUse identifies whether the present mode of operation is consuming regular credit or emergency credit.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="serviceChange" minOccurs="0" maxOccurs="1" type="ServiceChange">
<xs:annotation>
<xs:documentation>ServiceChange is used to define a pending change of serviceStatus, which will activate at a specified time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="serviceStatus" minOccurs="1" maxOccurs="1" type="ServiceStatusType">
<xs:annotation>
<xs:documentation>ServiceStatus identifies whether the service is connected or disconnected, or armed for connection or disconnection.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ServiceChange">
<xs:annotation>
<xs:documentation>Specifies a change to the service status.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="newStatus" minOccurs="1" maxOccurs="1" type="ServiceStatusType">
<xs:annotation>
<xs:documentation>The new service status, to take effect at the time specified by startTime</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="startTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date/time when the change is to take effect.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SupplyInterruptionOverride">
<xs:annotation>
<xs:documentation>SupplyInterruptionOverride: There may be periods of time when social, regulatory or other concerns mean that service should not be interrupted, even when available credit has been exhausted. Each Prepayment instance links to a List of SupplyInterruptionOverride instances. Each SupplyInterruptionOverride defines a contiguous period of time during which supply SHALL NOT be interrupted.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="description" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>The description is a human readable text describing or naming the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="interval" minOccurs="1" maxOccurs="1" type="DateTimeInterval">
<xs:annotation>
<xs:documentation>Interval defines the period of time during which supply should not be interrupted.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SupplyInterruptionOverrideList">
<xs:annotation>
<xs:documentation>A List element to hold SupplyInterruptionOverride objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="SupplyInterruptionOverride" type="SupplyInterruptionOverride" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CreditStatusType">
<xs:annotation>
<xs:documentation>0 - Credit Ok
1 - Credit Low
2 - Credit Exhausted
3 - Credit Negative
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CreditTypeType">
<xs:annotation>
<xs:documentation>0 - Regular
1 - Emergency
2 - Regular, then Emergency
3 - Emergency, then Regular
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CreditTypeChange">
<xs:annotation>
<xs:documentation>Specifies a change to the credit type.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="newType" minOccurs="1" maxOccurs="1" type="CreditTypeType">
<xs:annotation>
<xs:documentation>The new credit type, to take effect at the time specified by startTime</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="startTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date/time when the change is to take effect.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceStatusType">
<xs:annotation>
<xs:documentation>0 - Connected
1 - Disconnected
2 - Armed for Connect
3 - Armed for Disconnect
4 - No Contactor
5 - Load Limited
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="RequestStatus">
<xs:annotation>
<xs:documentation>The RequestStatus object is used to indicate the current status of a Flow Reservation Request.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The dateTime attribute will provide a timestamp of when the request status was set. dateTime MUST be set to the time at which the status change occurred, not a time in the future or past.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="requestStatus" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Field representing the request status type.
0 = Requested
1 = Cancelled
All other values reserved.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FlowReservationRequest">
<xs:annotation>
<xs:documentation>Used to request flow transactions. Client EndDevices submit a request for charging or discharging from the server. The server creates an associated FlowReservationResponse containing the charging parameters and interval to provide a lower aggregated demand at the premises, or within a larger part of the distribution system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="creationTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The time at which the request was created.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="durationRequested" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>A value that is calculated by the storage device that defines the minimum duration, in seconds, that it will take to complete the actual flow transaction, including any ramp times and conditioning times, if applicable.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="energyRequested" minOccurs="1" maxOccurs="1" type="SignedRealEnergy">
<xs:annotation>
<xs:documentation>Indicates the total amount of energy, in Watt-Hours, requested to be transferred between the storage device and the electric power system. Positive values indicate charging and negative values indicate discharging. This sign convention is different than for the DER function where discharging is positive. Note that the energyRequestNow attribute in the PowerStatus Object must always represent a charging solution and it is not allowed to have a negative value.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="intervalRequested" minOccurs="1" maxOccurs="1" type="DateTimeInterval">
<xs:annotation>
<xs:documentation>The time window during which the flow reservation is needed. For example, if an electric vehicle is set with a 7:00 AM time charge is needed, and price drops to the lowest tier at 11:00 PM, then this window would likely be from 11:00 PM until 7:00 AM.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="powerRequested" minOccurs="1" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Indicates the sustained level of power, in Watts, that is requested. For charging this is calculated by the storage device and it represents the charging system capability (which for an electric vehicle must also account for any power limitations due to the EVSE control pilot). For discharging, a lower value than the inverter capability can be used as a target.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RequestStatus" type="RequestStatus" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FlowReservationRequestList">
<xs:annotation>
<xs:documentation>A List element to hold FlowReservationRequest objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="FlowReservationRequest" type="FlowReservationRequest" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FlowReservationResponse">
<xs:annotation>
<xs:documentation>The server may modify the charging or discharging parameters and interval to provide a lower aggregated demand at the premises, or within a larger part of the distribution system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Event">
<xs:sequence>
<xs:element name="energyAvailable" minOccurs="1" maxOccurs="1" type="SignedRealEnergy">
<xs:annotation>
<xs:documentation>Indicates the amount of energy available.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="powerAvailable" minOccurs="1" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Indicates the amount of power available.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="subject" minOccurs="1" maxOccurs="1" type="mRIDType">
<xs:annotation>
<xs:documentation>The subject field provides a method to match the response with the originating event. It is populated with the mRID of the corresponding FlowReservationRequest object.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FlowReservationResponseList">
<xs:annotation>
<xs:documentation>A List element to hold FlowReservationResponse objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="FlowReservationResponse" type="FlowReservationResponse" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DefaultDERControl">
<xs:annotation>
<xs:documentation>Contains control mode information to be used if no active DERControl is found.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableIdentifiedObject">
<xs:sequence>
<xs:element name="DERControlBase" type="DERControlBase" minOccurs="1" maxOccurs="1" />
<xs:element name="setESDelay" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Enter service delay, in hundredths of a second. When present, this value SHALL update the value of the corresponding setting (DERSettings::setESDelay).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESHighFreq" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Enter service frequency high. Specified in hundredths of Hz. When present, this value SHALL update the value of the corresponding setting (DERSettings::setESHighFreq).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESHighVolt" minOccurs="0" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>Enter service voltage high. Specified as an effective percent voltage, defined as (100% * (locally measured voltage - setVRefOfs) / setVRef), in hundredths of a percent. When present, this value SHALL update the value of the corresponding setting (DERSettings::setESHighVolt).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESLowFreq" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Enter service frequency low. Specified in hundredths of Hz. When present, this value SHALL update the value of the corresponding setting (DERSettings::setESLowFreq).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESLowVolt" minOccurs="0" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>Enter service voltage low. Specified as an effective percent voltage, defined as (100% * (locally measured voltage - setVRefOfs) / setVRef), in hundredths of a percent. When present, this value SHALL update the value of the corresponding setting (DERSettings::setESLowVolt).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESRampTms" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Enter service ramp time, in hundredths of a second. When present, this value SHALL update the value of the corresponding setting (DERSettings::setESRampTms).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESRandomDelay" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Enter service randomized delay, in hundredths of a second. When present, this value SHALL update the value of the corresponding setting (DERSettings::setESRandomDelay).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setGradW" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Set default rate of change (ramp rate) of active power output due to command or internal action, defined in %setWMax / second. Resolution is in hundredths of a percent/second. A value of 0 means there is no limit. Interpreted as a percentage change in output capability limit per second when used as a default ramp rate. When present, this value SHALL update the value of the corresponding setting (DERSettings::setGradW).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setSoftGradW" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Set soft-start rate of change (soft-start ramp rate) of active power output due to command or internal action, defined in %setWMax / second. Resolution is in hundredths of a percent/second. A value of 0 means there is no limit. Interpreted as a percentage change in output capability limit per second when used as a ramp rate. When present, this value SHALL update the value of the corresponding setting (DERSettings::setSoftGradW).</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FreqDroopType">
<xs:annotation>
<xs:documentation>Type for Frequency-Droop (Frequency-Watt) operation.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dBOF" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Frequency droop dead band for over-frequency conditions. In thousandths of Hz.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dBUF" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Frequency droop dead band for under-frequency conditions. In thousandths of Hz.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="kOF" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Frequency droop per-unit frequency change for over-frequency conditions corresponding to 1 per-unit power output change. In thousandths, unitless.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="kUF" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Frequency droop per-unit frequency change for under-frequency conditions corresponding to 1 per-unit power output change. In thousandths, unitless.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="openLoopTms" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Open loop response time, the duration from a step change in control signal input until the output changes by 90% of its final change before any overshoot, in hundredths of a second. Resolution is 1/100 sec. A value of 0 is used to mean no limit.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DER">
<xs:annotation>
<xs:documentation>Contains links to DER resources.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableResource">
<xs:sequence>
<xs:element name="AssociatedDERProgramListLink" type="AssociatedDERProgramListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="AssociatedUsagePointLink" type="AssociatedUsagePointLink" minOccurs="0" maxOccurs="1" />
<xs:element name="CurrentDERProgramLink" type="CurrentDERProgramLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DERAvailabilityLink" type="DERAvailabilityLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DERCapabilityLink" type="DERCapabilityLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DERSettingsLink" type="DERSettingsLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DERStatusLink" type="DERStatusLink" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERList">
<xs:annotation>
<xs:documentation>A List element to hold DER objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="DER" type="DER" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERSettings">
<xs:annotation>
<xs:documentation>Distributed energy resource settings</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableResource">
<xs:sequence>
<xs:element name="modesEnabled" minOccurs="0" maxOccurs="1" type="DERControlType">
<xs:annotation>
<xs:documentation>Bitmap indicating the DER Controls enabled on the device. See DERControlType for values. If a control is supported (see DERCapability::modesSupported), but not enabled, the control will not be executed if encountered.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESDelay" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Enter service delay, in hundredths of a second.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESHighFreq" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Enter service frequency high. Specified in hundredths of Hz.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESHighVolt" minOccurs="0" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>Enter service voltage high. Specified as an effective percent voltage, defined as (100% * (locally measured voltage - setVRefOfs) / setVRef), in hundredths of a percent.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESLowFreq" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Enter service frequency low. Specified in hundredths of Hz.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESLowVolt" minOccurs="0" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>Enter service voltage low. Specified as an effective percent voltage, defined as (100% * (locally measured voltage - setVRefOfs) / setVRef), in hundredths of a percent.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESRampTms" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Enter service ramp time, in hundredths of a second.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setESRandomDelay" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Enter service randomized delay, in hundredths of a second.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setGradW" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Set default rate of change (ramp rate) of active power output due to command or internal action, defined in %setWMax / second. Resolution is in hundredths of a percent/second. A value of 0 means there is no limit. Interpreted as a percentage change in output capability limit per second when used as a default ramp rate.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxA" minOccurs="0" maxOccurs="1" type="CurrentRMS">
<xs:annotation>
<xs:documentation>AC current maximum. Maximum AC current in RMS Amperes.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxAh" minOccurs="0" maxOccurs="1" type="AmpereHour">
<xs:annotation>
<xs:documentation>Maximum usable energy storage capacity of the DER, in AmpHours. Note: this may be different from physical capability.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxChargeRateVA" minOccurs="0" maxOccurs="1" type="ApparentPower">
<xs:annotation>
<xs:documentation>Apparent power charge maximum. Maximum apparent power the DER can absorb from the grid in Volt-Amperes. May differ from the apparent power maximum (setMaxVA).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxChargeRateW" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Maximum rate of energy transfer received by the storage device, in Watts. Defaults to rtgMaxChargeRateW.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxDischargeRateVA" minOccurs="0" maxOccurs="1" type="ApparentPower">
<xs:annotation>
<xs:documentation>Apparent power discharge maximum. Maximum apparent power the DER can deliver to the grid in Volt-Amperes. May differ from the apparent power maximum (setMaxVA).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxDischargeRateW" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Maximum rate of energy transfer delivered by the storage device, in Watts. Defaults to rtgMaxDischargeRateW.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxV" minOccurs="0" maxOccurs="1" type="VoltageRMS">
<xs:annotation>
<xs:documentation>AC voltage maximum setting.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxVA" minOccurs="0" maxOccurs="1" type="ApparentPower">
<xs:annotation>
<xs:documentation>Set limit for maximum apparent power capability of the DER (in VA). Defaults to rtgMaxVA.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxVar" minOccurs="0" maxOccurs="1" type="ReactivePower">
<xs:annotation>
<xs:documentation>Set limit for maximum reactive power delivered by the DER (in var). SHALL be a positive value &amp;lt;= rtgMaxVar (default).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxVarNeg" minOccurs="0" maxOccurs="1" type="ReactivePower">
<xs:annotation>
<xs:documentation>Set limit for maximum reactive power received by the DER (in var). If present, SHALL be a negative value &amp;gt;= rtgMaxVarNeg (default). If absent, defaults to negative setMaxVar.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxW" minOccurs="1" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Set limit for maximum active power capability of the DER (in W). Defaults to rtgMaxW.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMaxWh" minOccurs="0" maxOccurs="1" type="WattHour">
<xs:annotation>
<xs:documentation>Maximum energy storage capacity of the DER, in WattHours. Note: this may be different from physical capability.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMinPFOverExcited" minOccurs="0" maxOccurs="1" type="PowerFactor">
<xs:annotation>
<xs:documentation>Set minimum Power Factor displacement limit of the DER when injecting reactive power (over-excited); SHALL be a positive value between 0.0 (typically &amp;gt; 0.7) and 1.0. SHALL be &amp;gt;= rtgMinPFOverExcited (default).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMinPFUnderExcited" minOccurs="0" maxOccurs="1" type="PowerFactor">
<xs:annotation>
<xs:documentation>Set minimum Power Factor displacement limit of the DER when absorbing reactive power (under-excited); SHALL be a positive value between 0.0 (typically &amp;gt; 0.7) and 0.9999. If present, SHALL be &amp;gt;= rtgMinPFUnderExcited (default). If absent, defaults to setMinPFOverExcited.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setMinV" minOccurs="0" maxOccurs="1" type="VoltageRMS">
<xs:annotation>
<xs:documentation>AC voltage minimum setting.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setSoftGradW" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Set soft-start rate of change (soft-start ramp rate) of active power output due to command or internal action, defined in %setWMax / second. Resolution is in hundredths of a percent/second. A value of 0 means there is no limit. Interpreted as a percentage change in output capability limit per second when used as a ramp rate.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setVNom" minOccurs="0" maxOccurs="1" type="VoltageRMS">
<xs:annotation>
<xs:documentation>AC voltage nominal setting.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setVRef" minOccurs="0" maxOccurs="1" type="VoltageRMS">
<xs:annotation>
<xs:documentation>The nominal AC voltage (RMS) at the utility's point of common coupling.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="setVRefOfs" minOccurs="0" maxOccurs="1" type="VoltageRMS">
<xs:annotation>
<xs:documentation>The nominal AC voltage (RMS) offset between the DER's electrical connection point and the utility's point of common coupling.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="updatedTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Specifies the time at which the DER information was last updated.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERType">
<xs:annotation>
<xs:documentation>0 - Not applicable / Unknown
1 - Virtual or mixed DER
2 - Reciprocating engine
3 - Fuel cell
4 - Photovoltaic system
5 - Combined heat and power
6 - Other generation system
80 - Other storage system
81 - Electric vehicle
82 - EVSE
83 - Combined PV and storage
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DERAvailability">
<xs:annotation>
<xs:documentation>Indicates current reserve generation status</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableResource">
<xs:sequence>
<xs:element name="availabilityDuration" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Indicates number of seconds the DER will be able to deliver active power at the reservePercent level.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxChargeDuration" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Indicates number of seconds the DER will be able to receive active power at the reserveChargePercent level.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="readingTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The timestamp when the DER availability was last updated.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="reserveChargePercent" minOccurs="0" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>Percent of continuous received active power (%setMaxChargeRateW) that is estimated to be available in reserve.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="reservePercent" minOccurs="0" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>Percent of continuous delivered active power (%setMaxW) that is estimated to be available in reserve.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="statVarAvail" minOccurs="0" maxOccurs="1" type="ReactivePower">
<xs:annotation>
<xs:documentation>Estimated reserve reactive power, in var. Represents the lesser of received or delivered reactive power.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="statWAvail" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Estimated reserve active power, in watts.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERCapability">
<xs:annotation>
<xs:documentation>Distributed energy resource type and nameplate ratings.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="modesSupported" minOccurs="1" maxOccurs="1" type="DERControlType">
<xs:annotation>
<xs:documentation>Bitmap indicating the DER Controls implemented by the device. See DERControlType for values.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgAbnormalCategory" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Abnormal operating performance category as defined by IEEE 1547-2018. One of:
0 - not specified
1 - Category I
2 - Category II
3 - Category III
All other values reserved.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxA" minOccurs="0" maxOccurs="1" type="CurrentRMS">
<xs:annotation>
<xs:documentation>Maximum continuous AC current capability of the DER, in Amperes (RMS).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxAh" minOccurs="0" maxOccurs="1" type="AmpereHour">
<xs:annotation>
<xs:documentation>Usable energy storage capacity of the DER, in AmpHours.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxChargeRateVA" minOccurs="0" maxOccurs="1" type="ApparentPower">
<xs:annotation>
<xs:documentation>Maximum apparent power charge rating in Volt-Amperes. May differ from the maximum apparent power rating.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxChargeRateW" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Maximum rate of energy transfer received by the storage DER, in Watts.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxDischargeRateVA" minOccurs="0" maxOccurs="1" type="ApparentPower">
<xs:annotation>
<xs:documentation>Maximum apparent power discharge rating in Volt-Amperes. May differ from the maximum apparent power rating.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxDischargeRateW" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Maximum rate of energy transfer delivered by the storage DER, in Watts. Required for combined generation/storage DERs (e.g. DERType == 83).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxV" minOccurs="0" maxOccurs="1" type="VoltageRMS">
<xs:annotation>
<xs:documentation>AC voltage maximum rating.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxVA" minOccurs="0" maxOccurs="1" type="ApparentPower">
<xs:annotation>
<xs:documentation>Maximum continuous apparent power output capability of the DER, in VA.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxVar" minOccurs="0" maxOccurs="1" type="ReactivePower">
<xs:annotation>
<xs:documentation>Maximum continuous reactive power delivered by the DER, in var.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxVarNeg" minOccurs="0" maxOccurs="1" type="ReactivePower">
<xs:annotation>
<xs:documentation>Maximum continuous reactive power received by the DER, in var. If absent, defaults to negative rtgMaxVar.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxW" minOccurs="1" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Maximum continuous active power output capability of the DER, in watts. Represents combined generation plus storage output if DERType == 83.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMaxWh" minOccurs="0" maxOccurs="1" type="WattHour">
<xs:annotation>
<xs:documentation>Maximum energy storage capacity of the DER, in WattHours.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMinPFOverExcited" minOccurs="0" maxOccurs="1" type="PowerFactor">
<xs:annotation>
<xs:documentation>Minimum Power Factor displacement capability of the DER when injecting reactive power (over-excited); SHALL be a positive value between 0.0 (typically &amp;gt; 0.7) and 1.0. If absent, defaults to unity.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMinPFUnderExcited" minOccurs="0" maxOccurs="1" type="PowerFactor">
<xs:annotation>
<xs:documentation>Minimum Power Factor displacement capability of the DER when absorbing reactive power (under-excited); SHALL be a positive value between 0.0 (typically &amp;gt; 0.7) and 0.9999. If absent, defaults to rtgMinPFOverExcited.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgMinV" minOccurs="0" maxOccurs="1" type="VoltageRMS">
<xs:annotation>
<xs:documentation>AC voltage minimum rating.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgNormalCategory" minOccurs="0" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Normal operating performance category as defined by IEEE 1547-2018. One of:
0 - not specified
1 - Category A
2 - Category B
All other values reserved.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgOverExcitedPF" minOccurs="0" maxOccurs="1" type="PowerFactor">
<xs:annotation>
<xs:documentation>Specified over-excited power factor.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgOverExcitedW" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Active power rating in Watts at specified over-excited power factor (rtgOverExcitedPF). If present, rtgOverExcitedPF SHALL be present.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgReactiveSusceptance" minOccurs="0" maxOccurs="1" type="ReactiveSusceptance">
<xs:annotation>
<xs:documentation>Reactive susceptance that remains connected to the Area EPS in the cease to energize and trip state.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgUnderExcitedPF" minOccurs="0" maxOccurs="1" type="PowerFactor">
<xs:annotation>
<xs:documentation>Specified under-excited power factor.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgUnderExcitedW" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Active power rating in Watts at specified under-excited power factor (rtgUnderExcitedPF). If present, rtgUnderExcitedPF SHALL be present.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rtgVNom" minOccurs="0" maxOccurs="1" type="VoltageRMS">
<xs:annotation>
<xs:documentation>AC voltage nominal rating.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="type" minOccurs="1" maxOccurs="1" type="DERType">
<xs:annotation>
<xs:documentation>Type of DER; see DERType object</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERControlBase">
<xs:annotation>
<xs:documentation>Distributed Energy Resource (DER) control values.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="opModConnect" minOccurs="0" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>Set DER as connected (true) or disconnected (false). Used in conjunction with ramp rate when re-connecting. Implies galvanic isolation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModEnergize" minOccurs="0" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>Set DER as energized (true) or de-energized (false). Used in conjunction with ramp rate when re-energizing.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModFixedPFAbsorbW" minOccurs="0" maxOccurs="1" type="PowerFactorWithExcitation">
<xs:annotation>
<xs:documentation>The opModFixedPFAbsorbW function specifies a requested fixed Power Factor (PF) setting for when active power is being absorbed. The actual displacement SHALL be within the limits established by setMinPFOverExcited and setMinPFUnderExcited. If issued simultaneously with other reactive power controls (e.g. opModFixedVar) the control resulting in least var magnitude SHOULD take precedence.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModFixedPFInjectW" minOccurs="0" maxOccurs="1" type="PowerFactorWithExcitation">
<xs:annotation>
<xs:documentation>The opModFixedPFInjectW function specifies a requested fixed Power Factor (PF) setting for when active power is being injected. The actual displacement SHALL be within the limits established by setMinPFOverExcited and setMinPFUnderExcited. If issued simultaneously with other reactive power controls (e.g. opModFixedVar) the control resulting in least var magnitude SHOULD take precedence.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModFixedVar" minOccurs="0" maxOccurs="1" type="FixedVar">
<xs:annotation>
<xs:documentation>The opModFixedVar function specifies the delivered or received reactive power setpoint. The context for the setpoint value is determined by refType and SHALL be one of %setMaxW, %setMaxVar, or %statVarAvail. If issued simultaneously with other reactive power controls (e.g. opModFixedPFInjectW) the control resulting in least var magnitude SHOULD take precedence.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModFixedW" minOccurs="0" maxOccurs="1" type="SignedPerCent">
<xs:annotation>
<xs:documentation>The opModFixedW function specifies a requested charge or discharge mode setpoint, in %setMaxChargeRateW if negative value or %setMaxW or %setMaxDischargeRateW if positive value (in hundredths).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModFreqDroop" minOccurs="0" maxOccurs="1" type="FreqDroopType">
<xs:annotation>
<xs:documentation>Specifies a frequency-watt operation. This operation limits active power generation or consumption when the line frequency deviates from nominal by a specified amount.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModFreqWatt" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 0. The Frequency-Watt function limits active power generation or consumption when the line frequency deviates from nominal by a specified amount. The Frequency-Watt curve is specified as an array of Frequency-Watt pairs that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies a frequency in Hz. The y value specifies a corresponding active power output in %setMaxW.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModHFRTMayTrip" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 1. The High Frequency Ride-Through (HFRT) function is specified by one or two duration-frequency curves that define the operating region under high frequency conditions. Each HFRT curve is specified by an array of duration-frequency pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given frequency in seconds). The y value of each pair specifies a frequency, in Hz. This control specifies the "may trip" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModHFRTMustTrip" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 2. The High Frequency Ride-Through (HFRT) function is specified by a duration-frequency curve that defines the operating region under high frequency conditions. Each HFRT curve is specified by an array of duration-frequency pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given frequency in seconds). The y value of each pair specifies a frequency, in Hz. This control specifies the "must trip" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModHVRTMayTrip" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 3. The High Voltage Ride-Through (HVRT) function is specified by one, two, or three duration-volt curves that define the operating region under high voltage conditions. Each HVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percentage voltage, defined as ((locally measured voltage - setVRefOfs / setVRef). This control specifies the "may trip" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModHVRTMomentaryCessation" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 4. The High Voltage Ride-Through (HVRT) function is specified by duration-volt curves that define the operating region under high voltage conditions. Each HVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the "momentary cessation" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModHVRTMustTrip" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 5. The High Voltage Ride-Through (HVRT) function is specified by duration-volt curves that define the operating region under high voltage conditions. Each HVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the "must trip" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModLFRTMayTrip" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 6. The Low Frequency Ride-Through (LFRT) function is specified by one or two duration-frequency curves that define the operating region under low frequency conditions. Each LFRT curve is specified by an array of duration-frequency pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given frequency in seconds). The y value of each pair specifies a frequency, in Hz. This control specifies the "may trip" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModLFRTMustTrip" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 7. The Low Frequency Ride-Through (LFRT) function is specified by a duration-frequency curve that defines the operating region under low frequency conditions. Each LFRT curve is specified by an array of duration-frequency pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given frequency in seconds). The y value of each pair specifies a frequency, in Hz. This control specifies the "must trip" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModLVRTMayTrip" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 8. The Low Voltage Ride-Through (LVRT) function is specified by one, two, or three duration-volt curves that define the operating region under low voltage conditions. Each LVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the "may trip" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModLVRTMomentaryCessation" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 9. The Low Voltage Ride-Through (LVRT) function is specified by duration-volt curves that define the operating region under low voltage conditions. Each LVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the "momentary cessation" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModLVRTMustTrip" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 10. The Low Voltage Ride-Through (LVRT) function is specified by duration-volt curves that define the operating region under low voltage conditions. Each LVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the "must trip" region.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModMaxLimW" minOccurs="0" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>The opModMaxLimW function sets the maximum active power generation level at the electrical coupling point as a percentage of set capacity (%setMaxW, in hundredths). This limitation may be met e.g. by reducing PV output or by using excess PV output to charge associated storage.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModTargetVar" minOccurs="0" maxOccurs="1" type="ReactivePower">
<xs:annotation>
<xs:documentation>Target reactive power, in var. This control is likely to be more useful for aggregators, as individual DERs may not be able to maintain a target setting.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModTargetW" minOccurs="0" maxOccurs="1" type="ActivePower">
<xs:annotation>
<xs:documentation>Target output power, in Watts. This control is likely to be more useful for aggregators, as individual DERs may not be able to maintain a target setting.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModVoltVar" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 11. The static volt-var function provides over- or under-excited var compensation as a function of measured voltage. The volt-var curve is specified as an array of volt-var pairs that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef) and SHOULD support a domain of at least 0 - 135. If VRef is present in DERCurve, then the x value of each pair is additionally multiplied by (VRef / 10000). The y value specifies a target var output interpreted as a signed percentage (-100 to 100). The meaning of the y value is determined by yRefType and must be one of %setMaxW, %setMaxVar, or %statVarAvail.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModVoltWatt" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 12. The Volt-Watt reduces active power output as a function of measured voltage. The Volt-Watt curve is specified as an array of Volt-Watt pairs that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef) and SHOULD support a domain of at least 0 - 135. The y value specifies an active power output interpreted as a percentage (0 - 100). The meaning of the y value is determined by yRefType and must be one of %setMaxW or %statWAvail.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModWattPF" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 13. The Watt-PF function varies Power Factor (PF) as a function of delivered active power. The Watt-PF curve is specified as an array of Watt-PF coordinates that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies a watt setting in %setMaxW, (0 - 100). The PF output setting is a signed displacement in y value (PF sign SHALL be interpreted according to the EEI convention, where unity PF is considered unsigned). These settings are not expected to be updated very often during the life of the installation, therefore only a single curve is required. If issued simultaneously with other reactive power controls (e.g. opModFixedPFInjectW) the control resulting in least var magnitude SHOULD take precedence.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="opModWattVar" minOccurs="0" maxOccurs="1" type="DERCurveLink">
<xs:annotation>
<xs:documentation>Specify DERCurveLink for curveType == 14. The Watt-Var function varies vars as a function of delivered active power. The Watt-Var curve is specified as an array of Watt-Var pairs that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies a watt setting in %setMaxW, (0-100). The y value specifies a target var output interpreted as a signed percentage (-100 to 100). The meaning of the y value is determined by yRefType and must be one of %setMaxW, %setMaxVar, or %statVarAvail.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rampTms" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Requested ramp time, in hundredths of a second, for the device to transition from the current DERControl mode setting(s) to the new mode setting(s). If absent, use default ramp rate (setGradW). Resolution is 1/100 sec.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DERControl">
<xs:annotation>
<xs:documentation>Distributed Energy Resource (DER) time/event-based control.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="RandomizableEvent">
<xs:sequence>
<xs:element name="DERControlBase" type="DERControlBase" minOccurs="1" maxOccurs="1" />
<xs:element name="deviceCategory" minOccurs="0" maxOccurs="1" type="DeviceCategoryType">
<xs:annotation>
<xs:documentation>Specifies the bitmap indicating the categories of devices that SHOULD respond. Devices SHOULD ignore events that do not indicate their device category. If not present, all devices SHOULD respond.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERControlList">
<xs:annotation>
<xs:documentation>A List element to hold DERControl objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="DERControl" type="DERControl" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERControlType">
<xs:annotation>
<xs:documentation>Control modes supported by the DER. Bit positions SHALL be defined as follows:
0 - Charge mode
1 - Discharge mode
2 - opModConnect (Connect / Disconnect - implies galvanic isolation)
3 - opModEnergize (Energize / De-Energize)
4 - opModFixedPFAbsorbW (Fixed Power Factor Setpoint when absorbing active power)
5 - opModFixedPFInjectW (Fixed Power Factor Setpoint when injecting active power)
6 - opModFixedVar (Reactive Power Setpoint)
7 - opModFixedW (Charge / Discharge Setpoint)
8 - opModFreqDroop (Frequency-Watt Parameterized Mode)
9 - opModFreqWatt (Frequency-Watt Curve Mode)
10 - opModHFRTMayTrip (High Frequency Ride Through, May Trip Mode)
11 - opModHFRTMustTrip (High Frequency Ride Through, Must Trip Mode)
12 - opModHVRTMayTrip (High Voltage Ride Through, May Trip Mode)
13 - opModHVRTMomentaryCessation (High Voltage Ride Through, Momentary Cessation Mode)
14 - opModHVRTMustTrip (High Voltage Ride Through, Must Trip Mode)
15 - opModLFRTMayTrip (Low Frequency Ride Through, May Trip Mode)
16 - opModLFRTMustTrip (Low Frequency Ride Through, Must Trip Mode)
17 - opModLVRTMayTrip (Low Voltage Ride Through, May Trip Mode)
18 - opModLVRTMomentaryCessation (Low Voltage Ride Through, Momentary Cessation Mode)
19 - opModLVRTMustTrip (Low Voltage Ride Through, Must Trip Mode)
20 - opModMaxLimW (Maximum Active Power)
21 - opModTargetVar (Target Reactive Power)
22 - opModTargetW (Target Active Power)
23 - opModVoltVar (Volt-Var Mode)
24 - opModVoltWatt (Volt-Watt Mode)
25 - opModWattPF (Watt-PowerFactor Mode)
26 - opModWattVar (Watt-Var Mode)
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="HexBinary32" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DERCurve">
<xs:annotation>
<xs:documentation>DER related curves such as Volt-Var mode curves. Relationship between an independent variable (X-axis) and a dependent variable (Y-axis).</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="autonomousVRefEnable" minOccurs="0" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>If the curveType is opModVoltVar, then this field MAY be present. If the curveType is not opModVoltVar, then this field SHALL NOT be present. Enable/disable autonomous vRef adjustment. When enabled, the Volt-Var curve characteristic SHALL be adjusted autonomously as vRef changes and autonomousVRefTimeConstant SHALL be present. If a DER is able to support Volt-Var mode but is unable to support autonomous vRef adjustment, then the DER SHALL execute the curve without autonomous vRef adjustment. If not specified, then the value is false.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="autonomousVRefTimeConstant" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>If the curveType is opModVoltVar, then this field MAY be present. If the curveType is not opModVoltVar, then this field SHALL NOT be present. Adjustment range for vRef time constant, in hundredths of a second.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="creationTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The time at which the object was created.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CurveData" type="CurveData" minOccurs="1" maxOccurs="10" />
<xs:element name="curveType" minOccurs="1" maxOccurs="1" type="DERCurveType">
<xs:annotation>
<xs:documentation>Specifies the associated curve-based control mode.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="openLoopTms" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Open loop response time, the time to ramp up to 90% of the new target in response to the change in voltage, in hundredths of a second. Resolution is 1/100 sec. A value of 0 is used to mean no limit. When not present, the device SHOULD follow its default behavior.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rampDecTms" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Decreasing ramp rate, interpreted as a percentage change in output capability limit per second (e.g. %setMaxW / sec). Resolution is in hundredths of a percent/second. A value of 0 means there is no limit. If absent, ramp rate defaults to setGradW.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rampIncTms" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Increasing ramp rate, interpreted as a percentage change in output capability limit per second (e.g. %setMaxW / sec). Resolution is in hundredths of a percent/second. A value of 0 means there is no limit. If absent, ramp rate defaults to rampDecTms.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rampPT1Tms" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>The configuration parameter for a low-pass filter, PT1 is a time, in hundredths of a second, in which the filter will settle to 95% of a step change in the input value. Resolution is 1/100 sec.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="vRef" minOccurs="0" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>If the curveType is opModVoltVar, then this field MAY be present. If the curveType is not opModVoltVar, then this field SHALL NOT be present. The nominal AC voltage (RMS) adjustment to the voltage curve points for Volt-Var curves.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="xMultiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Exponent for X-axis value.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="yMultiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Exponent for Y-axis value.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="yRefType" minOccurs="1" maxOccurs="1" type="DERUnitRefType">
<xs:annotation>
<xs:documentation>The Y-axis units context.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CurrentDERProgramLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DERProgram. If present, this is the DERProgram containing the currently active DERControl.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERCurveList">
<xs:annotation>
<xs:documentation>A List element to hold DERCurve objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="DERCurve" type="DERCurve" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CurveData">
<xs:annotation>
<xs:documentation>Data point values for defining a curve or schedule</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="excitation" minOccurs="0" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>If yvalue is Power Factor, then this field SHALL be present. If yvalue is not Power Factor, then this field SHALL NOT be present.
True when DER is absorbing reactive power (under-excited), false
when DER is injecting reactive power (over-excited).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="xvalue" minOccurs="1" maxOccurs="1" type="Int32">
<xs:annotation>
<xs:documentation>The data value of the X-axis (independent) variable, depending on the curve type. See definitions in DERControlBase for further information.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="yvalue" minOccurs="1" maxOccurs="1" type="Int32">
<xs:annotation>
<xs:documentation>The data value of the Y-axis (dependent) variable, depending on the curve type. See definitions in DERControlBase for further information. If yvalue is Power Factor, the excitation field SHALL be present and yvalue SHALL be a positive value. If yvalue is not Power Factor, the excitation field SHALL NOT be present.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DERCurveType">
<xs:annotation>
<xs:documentation>0 - opModFreqWatt (Frequency-Watt Curve Mode)
1 - opModHFRTMayTrip (High Frequency Ride Through, May Trip Mode)
2 - opModHFRTMustTrip (High Frequency Ride Through, Must Trip Mode)
3 - opModHVRTMayTrip (High Voltage Ride Through, May Trip Mode)
4 - opModHVRTMomentaryCessation (High Voltage Ride Through, Momentary Cessation Mode)
5 - opModHVRTMustTrip (High Voltage Ride Through, Must Trip Mode)
6 - opModLFRTMayTrip (Low Frequency Ride Through, May Trip Mode)
7 - opModLFRTMustTrip (Low Frequency Ride Through, Must Trip Mode)
8 - opModLVRTMayTrip (Low Voltage Ride Through, May Trip Mode)
9 - opModLVRTMomentaryCessation (Low Voltage Ride Through, Momentary Cessation Mode)
10 - opModLVRTMustTrip (Low Voltage Ride Through, Must Trip Mode)
11 - opModVoltVar (Volt-Var Mode)
12 - opModVoltWatt (Volt-Watt Mode)
13 - opModWattPF (Watt-PowerFactor Mode)
14 - opModWattVar (Watt-Var Mode)
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DERProgram">
<xs:annotation>
<xs:documentation>Distributed Energy Resource program.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableIdentifiedObject">
<xs:sequence>
<xs:element name="ActiveDERControlListLink" type="ActiveDERControlListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DefaultDERControlLink" type="DefaultDERControlLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DERControlListLink" type="DERControlListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="DERCurveListLink" type="DERCurveListLink" minOccurs="0" maxOccurs="1" />
<xs:element name="primacy" minOccurs="1" maxOccurs="1" type="PrimacyType">
<xs:annotation>
<xs:documentation>Indicates the relative primacy of the provider of this Program.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERProgramList">
<xs:annotation>
<xs:documentation>A List element to hold DERProgram objects.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableList">
<xs:sequence>
<xs:element name="DERProgram" type="DERProgram" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERStatus">
<xs:annotation>
<xs:documentation>DER status information.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableResource">
<xs:sequence>
<xs:element name="alarmStatus" minOccurs="0" maxOccurs="1" type="HexBinary32">
<xs:annotation>
<xs:documentation>Bitmap indicating the status of DER alarms (see DER LogEvents for more details).
0 - DER_FAULT_OVER_CURRENT
1 - DER_FAULT_OVER_VOLTAGE
2 - DER_FAULT_UNDER_VOLTAGE
3 - DER_FAULT_OVER_FREQUENCY
4 - DER_FAULT_UNDER_FREQUENCY
5 - DER_FAULT_VOLTAGE_IMBALANCE
6 - DER_FAULT_CURRENT_IMBALANCE
7 - DER_FAULT_EMERGENCY_LOCAL
8 - DER_FAULT_EMERGENCY_REMOTE
9 - DER_FAULT_LOW_POWER_INPUT
10 - DER_FAULT_PHASE_ROTATION
11-31 - Reserved</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="genConnectStatus" minOccurs="0" maxOccurs="1" type="ConnectStatusType">
<xs:annotation>
<xs:documentation>Connect/status value for generator DER.
See ConnectStatusType for values.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="inverterStatus" minOccurs="0" maxOccurs="1" type="InverterStatusType">
<xs:annotation>
<xs:documentation>DER InverterStatus/value.
See InverterStatusType for values.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="localControlModeStatus" minOccurs="0" maxOccurs="1" type="LocalControlModeStatusType">
<xs:annotation>
<xs:documentation>The local control mode status.
See LocalControlModeStatusType for values.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="manufacturerStatus" minOccurs="0" maxOccurs="1" type="ManufacturerStatusType">
<xs:annotation>
<xs:documentation>Manufacturer status code.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="operationalModeStatus" minOccurs="0" maxOccurs="1" type="OperationalModeStatusType">
<xs:annotation>
<xs:documentation>Operational mode currently in use.
See OperationalModeStatusType for values.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="readingTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The timestamp when the current status was last updated.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="stateOfChargeStatus" minOccurs="0" maxOccurs="1" type="StateOfChargeStatusType">
<xs:annotation>
<xs:documentation>State of charge status.
See StateOfChargeStatusType for values.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="storageModeStatus" minOccurs="0" maxOccurs="1" type="StorageModeStatusType">
<xs:annotation>
<xs:documentation>Storage mode status.
See StorageModeStatusType for values.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="storConnectStatus" minOccurs="0" maxOccurs="1" type="ConnectStatusType">
<xs:annotation>
<xs:documentation>Connect/status value for storage DER.
See ConnectStatusType for values.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERUnitRefType">
<xs:annotation>
<xs:documentation>Specifies context for interpreting percent values:
0 - N/A
1 - %setMaxW
2 - %setMaxVar
3 - %statVarAvail
4 - %setEffectiveV
5 - %setMaxChargeRateW
6 - %setMaxDischargeRateW
7 - %statWAvail
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CurrentRMS">
<xs:annotation>
<xs:documentation>Average flow of charge through a conductor.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of value.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Value in amperes RMS (uom 5)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FixedPointType">
<xs:annotation>
<xs:documentation>Abstract type for specifying a fixed-point value without a given unit of measure.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>Dimensionless value</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="UnsignedFixedPointType">
<xs:annotation>
<xs:documentation>Abstract type for specifying an unsigned fixed-point value without a given unit of measure.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Dimensionless value</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ActivePower">
<xs:annotation>
<xs:documentation>The active (real) power P (in W) is the product of root-mean-square (RMS) voltage, RMS current, and cos(theta) where theta is the phase angle of current relative to voltage. It is the primary measure of the rate of flow of energy.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent for uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>Value in watts (uom 38)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AmpereHour">
<xs:annotation>
<xs:documentation>Available electric charge</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Value in ampere-hours (uom 106)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ApparentPower">
<xs:annotation>
<xs:documentation>The apparent power S (in VA) is the product of root mean square (RMS) voltage and RMS current.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Value in volt-amperes (uom 61)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReactivePower">
<xs:annotation>
<xs:documentation>The reactive power Q (in var) is the product of root mean square (RMS) voltage, RMS current, and sin(theta) where theta is the phase angle of current relative to voltage.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="Int16">
<xs:annotation>
<xs:documentation>Value in volt-amperes reactive (var) (uom 63)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReactiveSusceptance">
<xs:annotation>
<xs:documentation>Reactive susceptance</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Value in siemens (uom 53)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PowerFactor">
<xs:annotation>
<xs:documentation>Specifies a setpoint for Displacement Power Factor, the ratio between apparent and active powers at the fundamental frequency (e.g. 60 Hz).</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="displacement" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Significand of an unsigned value of cos(theta) between 0 and 1.0. E.g. a value of 0.95 may be specified as a displacement of 950 and a multiplier of -3.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of 'displacement'.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PowerFactorWithExcitation">
<xs:annotation>
<xs:documentation>Specifies a setpoint for Displacement Power Factor, the ratio between apparent and active powers at the fundamental frequency (e.g. 60 Hz) and includes an excitation flag.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="displacement" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Significand of an unsigned value of cos(theta) between 0 and 1.0. E.g. a value of 0.95 may be specified as a displacement of 950 and a multiplier of -3.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="excitation" minOccurs="1" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>True when DER is absorbing reactive power (under-excited), false
when DER is injecting reactive power (over-excited).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of 'displacement'.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FixedVar">
<xs:annotation>
<xs:documentation>Specifies a signed setpoint for reactive power.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="refType" minOccurs="1" maxOccurs="1" type="DERUnitRefType">
<xs:annotation>
<xs:documentation>Indicates whether to interpret 'value' as %setMaxVar or %statVarAvail.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="SignedPerCent">
<xs:annotation>
<xs:documentation>Specify a signed setpoint for reactive power in % (see 'refType' for context).</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="WattHour">
<xs:annotation>
<xs:documentation>Active (real) energy</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Value in watt-hours (uom 72)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="VoltageRMS">
<xs:annotation>
<xs:documentation>Average electric potential difference between two points.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Specifies exponent of uom.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Value in volts RMS (uom 29)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ConnectStatusType">
<xs:annotation>
<xs:documentation>DER ConnectStatus value (bitmap):
0 - Connected
1 - Available
2 - Operating
3 - Test
4 - Fault / Error
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time at which the state applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="HexBinary8">
<xs:annotation>
<xs:documentation>The value indicating the state.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="InverterStatusType">
<xs:annotation>
<xs:documentation>DER InverterStatus value:
0 - N/A
1 - off
2 - sleeping (auto-shutdown) or DER is at low output power/voltage
3 - starting up or ON but not producing power
4 - tracking MPPT power point
5 - forced power reduction/derating
6 - shutting down
7 - one or more faults exist
8 - standby (service on unit) - DER may be at high output voltage/power
9 - test mode
10 - as defined in manufacturer status
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time at which the state applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The value indicating the state.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocalControlModeStatusType">
<xs:annotation>
<xs:documentation>DER LocalControlModeStatus/value:
0 – local control
1 – remote control
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time at which the state applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The value indicating the state.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ManufacturerStatusType">
<xs:annotation>
<xs:documentation>DER ManufacturerStatus/value: String data type</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time at which the state applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="String6">
<xs:annotation>
<xs:documentation>The value indicating the state.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OperationalModeStatusType">
<xs:annotation>
<xs:documentation>DER OperationalModeStatus value:
0 - Not applicable / Unknown
1 - Off
2 - Operational mode
3 - Test mode
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time at which the state applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The value indicating the state.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="StateOfChargeStatusType">
<xs:annotation>
<xs:documentation>DER StateOfChargeStatus value: Percent data type</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time at which the state applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="PerCent">
<xs:annotation>
<xs:documentation>The value indicating the state.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="StorageModeStatusType">
<xs:annotation>
<xs:documentation>DER StorageModeStatus value:
0 – storage charging
1 – storage discharging
2 – storage holding
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time at which the state applied.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>The value indicating the state.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AccountBalanceLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of AccountBalance.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveBillingPeriodListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active BillingPeriod instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveCreditRegisterListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active CreditRegister instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveDERControlListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active DERControl instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveEndDeviceControlListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active EndDeviceControl instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveFlowReservationListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active FlowReservation instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveProjectionReadingListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active ProjectionReading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveSupplyInterruptionOverrideListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active SupplyInterruptionOverride instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveTargetReadingListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active TargetReading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveTextMessageListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active TextMessage instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ActiveTimeTariffIntervalListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of active TimeTariffInterval instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AssociatedDERProgramListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of DERPrograms having the DERControl(s) for this DER.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AssociatedUsagePointLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of UsagePoint. If present, this is the submeter that monitors the DER output.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingPeriodListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of BillingPeriod instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingReadingListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of BillingReading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BillingReadingSetListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of BillingReadingSet instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ConfigurationLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of Configuration.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ConsumptionTariffIntervalListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of ConsumptionTariffInterval instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CreditRegisterListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of CreditRegister instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CustomerAccountLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of CustomerAccount.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CustomerAccountListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of CustomerAccount instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CustomerAgreementListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of CustomerAgreement instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DemandResponseProgramLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DemandResponseProgram.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DemandResponseProgramListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of DemandResponseProgram instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERAvailabilityLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DERAvailability.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DefaultDERControlLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DefaultDERControl. This is the default mode of the DER which MAY be overridden by DERControl events.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERCapabilityLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DERCapability.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERControlListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of DERControl instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERCurveLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DERCurve.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERCurveListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of DERCurve instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DER.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of DER instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERProgramLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DERProgram.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERProgramListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of DERProgram instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERSettingsLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DERSettings.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DERStatusLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DERStatus.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DeviceCapabilityLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DeviceCapability.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DeviceInformationLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DeviceInformation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DeviceStatusLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of DeviceStatus.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EndDeviceControlListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of EndDeviceControl instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EndDeviceLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of EndDevice.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EndDeviceListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of EndDevice instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FileLink">
<xs:annotation>
<xs:documentation>This element MUST be set to the URI of the most recent File being loaded/activated by the LD. In the case of file status 0, this element MUST be omitted.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FileListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of File instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FileStatusLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of FileStatus.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FlowReservationRequestListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of FlowReservationRequest instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FlowReservationResponseListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of FlowReservationResponse instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FunctionSetAssignmentsListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of FunctionSetAssignments instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HistoricalReadingListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of HistoricalReading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IPAddrListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of IPAddr instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IPInterfaceListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of IPInterface instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LLInterfaceListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of LLInterface instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LoadShedAvailabilityListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of LoadShedAvailability instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LogEventListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of LogEvent instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MessagingProgramListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of MessagingProgram instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MeterReadingLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of MeterReading.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MeterReadingListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of MeterReading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MirrorUsagePointListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of MirrorUsagePoint instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NeighborListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of Neighbor instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NotificationListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of Notification instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PowerStatusLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of PowerStatus.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PrepaymentLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of Prepayment.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PrepaymentListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of Prepayment instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PrepayOperationStatusLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of PrepayOperationStatus.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PriceResponseCfgListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of PriceResponseCfg instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ProjectionReadingListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of ProjectionReading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RateComponentLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of RateComponent.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RateComponentListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of RateComponent instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingLink">
<xs:annotation>
<xs:documentation>A Link to a Reading.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of Reading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingSetListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of ReadingSet instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingTypeLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of ReadingType.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RegistrationLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of Registration.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ResponseListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of Response instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ResponseSetListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of ResponseSet instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RPLInstanceListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of RPLInterface instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RPLSourceRoutesListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of RPLSourceRoutes instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SelfDeviceLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of SelfDevice.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ServiceSupplierLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of ServiceSupplier.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SubscriptionListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of Subscription instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SupplyInterruptionOverrideListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of SupplyInterruptionOverride instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SupportedLocaleListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of SupportedLocale instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TargetReadingListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of TargetReading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TariffProfileLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of TariffProfile.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TariffProfileListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of TariffProfile instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TextMessageListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of TextMessage instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TimeLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of Time.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TimeTariffIntervalListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of TimeTariffInterval instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="UsagePointLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to an instance of UsagePoint.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="UsagePointListLink">
<xs:annotation>
<xs:documentation>SHALL contain a Link to a List of UsagePoint instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ListLink" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IdentifiedObject">
<xs:annotation>
<xs:documentation>This is a root class to provide common naming attributes for all classes needing naming attributes</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="mRID" minOccurs="1" maxOccurs="1" type="mRIDType">
<xs:annotation>
<xs:documentation>The global identifier of the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>The description is a human readable text describing or naming the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="version" minOccurs="0" maxOccurs="1" type="VersionType">
<xs:annotation>
<xs:documentation>Contains the version number of the object. See the type definition for details.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Link">
<xs:annotation>
<xs:documentation>Links provide a reference, via URI, to another resource.</xs:documentation>
</xs:annotation>
<xs:attribute name="href" use="required" type="xs:anyURI">
<xs:annotation>
<xs:documentation>A URI reference.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="List">
<xs:annotation>
<xs:documentation>Container to hold a collection of object instances or references. See Design Pattern section for additional details.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:attribute name="all" use="required" type="UInt32">
<xs:annotation>
<xs:documentation>The number specifying "all" of the items in the list. Required on a response to a GET, ignored otherwise.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="results" use="required" type="UInt32">
<xs:annotation>
<xs:documentation>Indicates the number of items in this page of results.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ListLink">
<xs:annotation>
<xs:documentation>ListLinks provide a reference, via URI, to a List.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Link">
<xs:attribute name="all" use="optional" type="UInt32">
<xs:annotation>
<xs:documentation>Indicates the total number of items in the referenced list. This attribute SHALL be present if the href is a local or relative URI. This attribute SHOULD NOT be present if the href is a remote or absolute URI, as the server may be unaware of changes to the value.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Resource">
<xs:annotation>
<xs:documentation>A resource is an addressable unit of information, either a collection (List) or instance of an object (identifiedObject, or simply, Resource)</xs:documentation>
</xs:annotation>
<xs:attribute name="href" use="optional" type="xs:anyURI">
<xs:annotation>
<xs:documentation>A reference to the resource address (URI). Required in a response to a GET, ignored otherwise.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="RespondableIdentifiedObject">
<xs:annotation>
<xs:documentation>An IdentifiedObject to which a Response can be requested.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="RespondableResource">
<xs:sequence>
<xs:element name="mRID" minOccurs="1" maxOccurs="1" type="mRIDType">
<xs:annotation>
<xs:documentation>The global identifier of the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>The description is a human readable text describing or naming the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="version" minOccurs="0" maxOccurs="1" type="VersionType">
<xs:annotation>
<xs:documentation>Contains the version number of the object. See the type definition for details.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RespondableResource">
<xs:annotation>
<xs:documentation>A Resource to which a Response can be requested.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:attribute name="replyTo" use="optional" type="xs:anyURI">
<xs:annotation>
<xs:documentation>A reference to the response resource address (URI). Required on a response to a GET if responseRequired is "true".</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="responseRequired" use="optional" default="00" type="HexBinary8">
<xs:annotation>
<xs:documentation>Indicates whether or not a response is required upon receipt, creation or update of this resource. Responses shall be posted to the collection specified in "replyTo".
If the resource has a deviceCategory field, devices that match one or more of the device types indicated in deviceCategory SHALL respond according to the rules listed below. If the category does not match, the device SHALL NOT respond. If the resource does not have a deviceCategory field, a device receiving the resource SHALL respond according to the rules listed below.
Value encoded as hex according to the following bit assignments, any combination is possible.
See Table 27 for the list of appropriate Response status codes to be sent for these purposes.
0 - End device shall indicate that message was received
1 - End device shall indicate specific response.
2 - End user / customer response is required.
All other values reserved.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RespondableSubscribableIdentifiedObject">
<xs:annotation>
<xs:documentation>An IdentifiedObject to which a Response can be requested.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="RespondableResource">
<xs:sequence>
<xs:element name="mRID" minOccurs="1" maxOccurs="1" type="mRIDType">
<xs:annotation>
<xs:documentation>The global identifier of the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>The description is a human readable text describing or naming the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="version" minOccurs="0" maxOccurs="1" type="VersionType">
<xs:annotation>
<xs:documentation>Contains the version number of the object. See the type definition for details.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="subscribable" use="optional" default="0" type="SubscribableType">
<xs:annotation>
<xs:documentation>Indicates whether or not subscriptions are supported for this resource, and whether or not conditional (thresholds) are supported. If not specified, is "not subscribable" (0).</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SubscribableIdentifiedObject">
<xs:annotation>
<xs:documentation>An IdentifiedObject to which a Subscription can be requested.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableResource">
<xs:sequence>
<xs:element name="mRID" minOccurs="1" maxOccurs="1" type="mRIDType">
<xs:annotation>
<xs:documentation>The global identifier of the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>The description is a human readable text describing or naming the object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="version" minOccurs="0" maxOccurs="1" type="VersionType">
<xs:annotation>
<xs:documentation>Contains the version number of the object. See the type definition for details.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SubscribableList">
<xs:annotation>
<xs:documentation>A List to which a Subscription can be requested.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="SubscribableResource">
<xs:attribute name="all" use="required" type="UInt32">
<xs:annotation>
<xs:documentation>The number specifying "all" of the items in the list. Required on GET, ignored otherwise.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="results" use="required" type="UInt32">
<xs:annotation>
<xs:documentation>Indicates the number of items in this page of results.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SubscribableResource">
<xs:annotation>
<xs:documentation>A Resource to which a Subscription can be requested.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:attribute name="subscribable" use="optional" default="0" type="SubscribableType">
<xs:annotation>
<xs:documentation>Indicates whether or not subscriptions are supported for this resource, and whether or not conditional (thresholds) are supported. If not specified, is "not subscribable" (0).</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Error">
<xs:annotation>
<xs:documentation>Contains information about the nature of an error if a request could not be completed successfully.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="maxRetryDuration" minOccurs="0" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Contains the number of seconds the client SHOULD wait before retrying the request.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="reasonCode" minOccurs="1" maxOccurs="1" type="UInt16">
<xs:annotation>
<xs:documentation>Code indicating the reason for failure.
0 - Invalid request format
1 - Invalid request values (e.g. invalid threshold values)
2 - Resource limit reached
3 - Conditional subscription field not supported
4 - Maximum request frequency exceeded
All other values reserved</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Event">
<xs:annotation>
<xs:documentation>An Event indicates information that applies to a particular period of time. Events SHALL be executed relative to the time of the server, as described in the Time function set section 11.1.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="RespondableSubscribableIdentifiedObject">
<xs:sequence>
<xs:element name="creationTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The time at which the Event was created.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="EventStatus" type="EventStatus" minOccurs="1" maxOccurs="1" />
<xs:element name="interval" minOccurs="1" maxOccurs="1" type="DateTimeInterval">
<xs:annotation>
<xs:documentation>The period during which the Event applies.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EventStatus">
<xs:annotation>
<xs:documentation>Current status information relevant to a specific object. The Status object is used to indicate the current status of an Event. Devices can read the containing resource (e.g. TextMessage) to get the most up to date status of the event. Devices can also subscribe to a specific resource instance to get updates when any of its attributes change, including the Status object.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="currentStatus" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Field representing the current status type.
0 = Scheduled
This status indicates that the event has been scheduled and the event has not yet started. The server SHALL set the event to this status when the event is first scheduled and persist until the event has become active or has been cancelled. For events with a start time less than or equal to the current time, this status SHALL never be indicated, the event SHALL start with a status of “Active”.
1 = Active
This status indicates that the event is currently active. The server SHALL set the event to this status when the event reaches its earliest Effective Start Time.
2 = Cancelled
When events are cancelled, the Status.dateTime attribute SHALL be set to the time the cancellation occurred, which cannot be in the future. The server is responsible for maintaining the cancelled event in its collection for the duration of the original event, or until the server has run out of space and needs to store a new event. Client devices SHALL be aware of Cancelled events, determine if the Cancelled event applies to them, and cancel the event immediately if applicable.
3 = Cancelled with Randomization
The server is responsible for maintaining the cancelled event in its collection for the duration of the Effective Scheduled Period. Client devices SHALL be aware of Cancelled with Randomization events, determine if the Cancelled event applies to them, and cancel the event immediately, using the larger of (absolute value of randomizeStart) and (absolute value of randomizeDuration) as the end randomization, in seconds. This Status.type SHALL NOT be used with "regular" Events, only with specializations of RandomizableEvent.
4 = Superseded
Events marked as Superseded by servers are events that may have been replaced by new events from the same program that target the exact same set of deviceCategory's (if applicable) AND DERControl controls (e.g., opModTargetW) (if applicable) and overlap for a given period of time. Servers SHALL mark an event as Superseded at the earliest Effective Start Time of the overlapping event. Servers are responsible for maintaining the Superseded event in their collection for the duration of the Effective Scheduled Period.
Client devices encountering a Superseded event SHALL terminate execution of the event immediately and commence execution of the new event immediately, unless the current time is within the start randomization window of the superseded event, in which case the client SHALL obey the start randomization of the new event. This Status.type SHALL NOT be used with TextMessage, since multiple text messages can be active.
All other values reserved.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The dateTime attribute will provide a timestamp of when the current status was defined. dateTime MUST be set to the time at which the status change occurred, not a time in the future or past.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="potentiallySuperseded" minOccurs="1" maxOccurs="1" type="xs:boolean">
<xs:annotation>
<xs:documentation>Set to true by a server of this event if there are events that overlap this event in time and also overlap in some, but not all, deviceCategory's (if applicable) AND DERControl controls (e.g., opModTargetW) (if applicable) in the same function set instance.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="potentiallySupersededTime" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Indicates the time that the potentiallySuperseded flag was set.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="reason" minOccurs="0" maxOccurs="1" type="String192">
<xs:annotation>
<xs:documentation>The Reason attribute allows a Service provider to provide a textual explanation of the status.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RandomizableEvent">
<xs:annotation>
<xs:documentation>An Event that can indicate time ranges over which the start time and duration SHALL be randomized.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Event">
<xs:sequence>
<xs:element name="randomizeDuration" minOccurs="0" maxOccurs="1" type="OneHourRangeType">
<xs:annotation>
<xs:documentation>Number of seconds boundary inside which a random value must be selected to be applied to the associated interval duration, to avoid sudden synchronized demand changes. If related to price level changes, sign may be ignored. Valid range is -3600 to 3600. If not specified, 0 is the default.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="randomizeStart" minOccurs="0" maxOccurs="1" type="OneHourRangeType">
<xs:annotation>
<xs:documentation>Number of seconds boundary inside which a random value must be selected to be applied to the associated interval start time, to avoid sudden synchronized demand changes. If related to price level changes, sign may be ignored. Valid range is -3600 to 3600. If not specified, 0 is the default.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AccumulationBehaviourType">
<xs:annotation>
<xs:documentation>0 = Not Applicable (default, if not specified)
3 = Cumulative
The sum of the previous billing period values. Note: “Cumulative” is commonly used in conjunction with “demand.” Each demand reset causes the maximum demand value for the present billing period (since the last demand reset) to accumulate as an accumulative total of all maximum demands. So instead of “zeroing” the demand register, a demand reset has the affect of adding the present maximum demand to this accumulating total.
4 = DeltaData
The difference between the value at the end of the prescribed interval and the beginning of the interval. This is used for incremental interval data.
Note: One common application would be for load profile data, another use might be to report the number of events within an interval (such as the number of equipment energizations within the specified period of time.)
6 = Indicating
As if a needle is swung out on the meter face to a value to indicate the current value. (Note: An “indicating” value is typically measured over hundreds of milliseconds or greater, or may imply a “pusher” mechanism to capture a value. Compare this to “instantaneous” which is measured over a shorter period of time.)
9 = Summation
A form of accumulation which is selective with respect to time.
Note : “Summation” could be considered a specialization of “Bulk Quantity” according to the rules of inheritance where “Summation” selectively accumulates pulses over a timing pattern, and “BulkQuantity” accumulates pulses all of the time.
12 = Instantaneous
Typically measured over the fastest period of time allowed by the definition of the metric (usually milliseconds or tens of milliseconds.) (Note: “Instantaneous” was moved to attribute #3 in 61968-9Ed2 from attribute #1 in 61968-9Ed1.)
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ApplianceLoadReductionType">
<xs:annotation>
<xs:documentation>0 - Delay Appliance Load
Parameter requesting the appliance to respond by providing a moderate load reduction for the duration of a delay period. Typically referring to a “non-emergency” event in which appliances can continue operating if already in a load consuming period.
1 - Temporary Appliance Load Reduction
Parameter requesting the appliance to respond by providing an aggressive load reduction for a short time period. Typically referring to an “emergency/spinning reserve” event in which an appliance should start shedding load if currently in a load consuming period.
* Full definition of how appliances react when receiving each parameter is document in the EPA document - ENERGY STAR® Program Requirements, Product Specification for Residential Refrigerators and Freezers, Eligibility Criteria 5, Draft 2 Version 5.0.
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CommodityType">
<xs:annotation>
<xs:documentation>0 = Not Applicable (default, if not specified)
1 = Electricity secondary metered value (a premises meter is typically on the low voltage, or secondary, side of a service transformer)
2 = Electricity primary metered value (measured on the high voltage, or primary, side of the service transformer)
4 = Air
7 = NaturalGas
8 = Propane
9 = PotableWater
10 = Steam
11 = WasteWater
12 = HeatingFluid
13 = CoolingFluid
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ConsumptionBlockType">
<xs:annotation>
<xs:documentation>0 = Not Applicable (default, if not specified)
1 = Block 1
2 = Block 2
3 = Block 3
4 = Block 4
5 = Block 5
6 = Block 6
7 = Block 7
8 = Block 8
9 = Block 9
10 = Block 10
11 = Block 11
12 = Block 12
13 = Block 13
14 = Block 14
15 = Block 15
16 = Block 16
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CurrencyCode">
<xs:annotation>
<xs:documentation>Follows codes defined in [ISO 4217].
0 - Not Applicable (default, if not specified)
36 - Australian Dollar
124 - Canadian Dollar
840 - US Dollar
978 - Euro
This is not a complete list.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt16" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DataQualifierType">
<xs:annotation>
<xs:documentation>0 = Not Applicable (default, if not specified)
2 = Average
8 = Maximum
9 = Minimum
12 = Normal
29 = Standard Deviation of a Population (typically indicated by a lower case sigma)
30 = Standard Deviation of a Sample Drawn from a Population (typically indicated by a lower case 's')
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DateTimeInterval">
<xs:annotation>
<xs:documentation>Interval of date and time.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="duration" minOccurs="1" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>Duration of the interval, in seconds.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="start" minOccurs="1" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>Date and time of the start of the interval.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DeviceCategoryType">
<xs:annotation>
<xs:documentation>The Device category types defined.
Bit positions SHALL be defined as follows:
0 - Programmable Communicating Thermostat
1 - Strip Heaters
2 - Baseboard Heaters
3 - Water Heater
4 - Pool Pump
5 - Sauna
6 - Hot Tub
7 - Smart Appliance
8 - Irrigation Pump
9 - Managed Commercial and Industrial (C&amp;amp;I) Loads
10 - Simple Misc. (Residential On/Off) Loads
11 - Exterior Lighting
12 - Interior Lighting
13 - Load Control Switch
14 - Energy Management System
15 - Smart Energy Module
16 - Electric Vehicle
17 - EVSE
18 - Virtual or Mixed DER
19 - Reciprocating Engine
20 - Fuel Cell
21 - Photovoltaic System
22 - Combined Heat and Power
23 - Combined PV and Storage
24 - Other Generation System
25 - Other Storage System
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="HexBinary32" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DstRuleType">
<xs:annotation>
<xs:documentation>Bit map encoded rule from which is calculated the start or end time, within the current year, to which daylight savings time offset must be applied.
The rule encoding:
Bits 0 - 11: seconds 0 - 3599
Bits 12 - 16: hours 0 - 23
Bits 17 - 19: day of the week 0 = not applicable, 1 - 7 (Monday = 1)
Bits 20 - 24: day of the month 0 = not applicable, 1 - 31
Bits 25 - 27: operator (detailed below)
Bits 28 - 31: month 1 - 12
Rule value of 0xFFFFFFFF means rule processing/DST correction is disabled.
The operators:
0: DST starts/ends on the Day of the Month
1: DST starts/ends on the Day of the Week that is on or after the Day of the Month
2: DST starts/ends on the first occurrence of the Day of the Week in a month
3: DST starts/ends on the second occurrence of the Day of the Week in a month
4: DST starts/ends on the third occurrence of the Day of the Week in a month
5: DST starts/ends on the forth occurrence of the Day of the Week in a month
6: DST starts/ends on the fifth occurrence of the Day of the Week in a month
7: DST starts/ends on the last occurrence of the Day of the Week in a month
An example: DST starts on third Friday in March at 1:45 AM. The rule...
Seconds: 2700
Hours: 1
Day of Week: 5
Day of Month: 0
Operator: 4
Month: 3</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="HexBinary32" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FlowDirectionType">
<xs:annotation>
<xs:documentation>0 = Not Applicable (default, if not specified)
1 = Forward (delivered to customer)
19 = Reverse (received from customer)
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="GPSLocationType">
<xs:annotation>
<xs:documentation>Specifies a GPS location, expressed in WGS 84 coordinates.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="lat" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Specifies the latitude from equator. -90 (south) to +90 (north) in decimal degrees.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lon" minOccurs="1" maxOccurs="1" type="String32">
<xs:annotation>
<xs:documentation>Specifies the longitude from Greenwich Meridian. -180 (west) to +180 (east) in decimal degrees.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="KindType">
<xs:annotation>
<xs:documentation>0 = Not Applicable (default, if not specified)
3 = Currency
8 = Demand
12 = Energy
37 = Power
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="LocaleType">
<xs:annotation>
<xs:documentation>[RFC 4646] identifier of a language-region</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="String42" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="mRIDType">
<xs:annotation>
<xs:documentation>A master resource identifier. The IANA PEN [PEN] provider ID SHALL be specified in bits 0-31, the least-significant bits, and objects created by that provider SHALL be assigned unique IDs with the remaining 96 bits.
0xFFFFFFFFFFFFFFFFFFFFFFFF[XXXXXXXX], where [XXXXXXXX] is the PEN, is reserved for a object that is being created (e.g., a ReadingSet for the current time that is still accumulating).
Except for this special reserved identifier, each modification of an object (resource) representation MUST have a different "version".</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="HexBinary128" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="OneHourRangeType">
<xs:annotation>
<xs:documentation>A signed time offset, typically applied to a Time value, expressed in seconds, with range -3600 to 3600.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="Int16" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PENType">
<xs:annotation>
<xs:documentation>IANA Private Enterprise Number [PEN].</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt32" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PerCent">
<xs:annotation>
<xs:documentation>Used for percentages, specified in hundredths of a percent, 0 - 10000. (10000 = 100%)</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt16" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PhaseCode">
<xs:annotation>
<xs:documentation>0 = Not Applicable (default, if not specified)
32 = Phase C (and S2)
33 = Phase CN (and S2N)
40 = Phase CA
64 = Phase B
65 = Phase BN
66 = Phase BC
128 = Phase A (and S1)
129 = Phase AN (and S1N)
132 = Phase AB
224 = Phase ABC
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PINType">
<xs:annotation>
<xs:documentation>6 digit unsigned decimal integer (0 - 999999).
(Note that this only requires 20 bits, if it can be allocated.)</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt32" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>-9 = nano=x10^-9
-6 = micro=x10^-6
-3 = milli=x10^-3
0 = none=x1 (default, if not specified)
1 = deca=x10
2 = hecto=x100
3 = kilo=x1000
6 = Mega=x10^6
9 = Giga=x10^9
This is not a complete list. Any integer between -9 and 9 SHALL be supported, indicating the power of ten multiplier for the units.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="Int8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PrimacyType">
<xs:annotation>
<xs:documentation>Values possible for indication of "Primary" provider:
0: In home energy management system
1: Contracted premises service provider
2: Non-contractual service provider
3 - 64: Reserved
65 - 191: User-defined
192 - 255: Reserved
Lower numbers indicate higher priority.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="RealEnergy">
<xs:annotation>
<xs:documentation>Real electrical energy</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Multiplier for 'unit'.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="UInt48">
<xs:annotation>
<xs:documentation>Value of the energy in Watt-hours. (uom 72)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="RoleFlagsType">
<xs:annotation>
<xs:documentation>Specifies the roles that apply to a usage point.
Bit 0 - isMirror - SHALL be set if the server is not the measurement device
Bit 1 - isPremisesAggregationPoint - SHALL be set if the UsagePoint is the point of delivery for a premises
Bit 2 - isPEV - SHALL be set if the usage applies to an electric vehicle
Bit 3 - isDER - SHALL be set if the usage applies to a distributed energy resource, capable of delivering power to the grid.
Bit 4 - isRevenueQuality - SHALL be set if usage was measured by a device certified as revenue quality
Bit 5 - isDC - SHALL be set if the usage point measures direct current
Bit 6 - isSubmeter - SHALL be set if the usage point is not a premises aggregation point
Bit 7-15 - Reserved</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="HexBinary16" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ServiceKind">
<xs:annotation>
<xs:documentation>Service kind
0 - electricity
1 - gas
2 - water
3 - time
4 - pressure
5 - heat
6 - cooling
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="SFDIType">
<xs:annotation>
<xs:documentation>Unsigned integer, max inclusive 687194767359, which is 2^36-1 (68719476735), with added check digit. See Section 8.3.2 for check digit calculation.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt40" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="SignedPerCent">
<xs:annotation>
<xs:documentation>Used for signed percentages, specified in hundredths of a percent, -10000 - 10000. (10000 = 100%)</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="Int16" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="SignedRealEnergy">
<xs:annotation>
<xs:documentation>Real electrical energy, signed.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Multiplier for 'unit'.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="Int48">
<xs:annotation>
<xs:documentation>Value of the energy in Watt-hours. (uom 72)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="SubscribableType">
<xs:annotation>
<xs:documentation>The subscribable values.
0 - Resource does not support subscriptions
1 - Resource supports non-conditional subscriptions
2 - Resource supports conditional subscriptions
3 - Resource supports both conditional and non-conditional subscriptions
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:restriction base="UInt8" />
</xs:simpleType>
<xs:complexType name="TimeOffsetType">
<xs:annotation>
<xs:documentation>A signed time offset, typically applied to a Time value, expressed in seconds.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="Int32" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="TimeType">
<xs:annotation>
<xs:documentation>Time is a signed 64 bit value representing the number of seconds since 0 hours, 0 minutes, 0 seconds, on the 1st of January, 1970, in UTC, not counting leap seconds.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="Int64" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="TOUType">
<xs:annotation>
<xs:documentation>0 = Not Applicable (default, if not specified)
1 = TOU A
2 = TOU B
3 = TOU C
4 = TOU D
5 = TOU E
6 = TOU F
7 = TOU G
8 = TOU H
9 = TOU I
10 = TOU J
11 = TOU K
12 = TOU L
13 = TOU M
14 = TOU N
15 = TOU O
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="UnitType">
<xs:annotation>
<xs:documentation>The unit types defined for end device control target reductions.
0 - kWh
1 - kW
2 - Watts
3 - Cubic Meters
4 - Cubic Feet
5 - US Gallons
6 - Imperial Gallons
7 - BTUs
8 - Liters
9 - kPA (gauge)
10 - kPA (absolute)
11 - Mega Joule
12 - Unitless
All other values reserved.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="UnitValueType">
<xs:annotation>
<xs:documentation>Type for specification of a specific value, with units and power of ten multiplier.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="multiplier" minOccurs="1" maxOccurs="1" type="PowerOfTenMultiplierType">
<xs:annotation>
<xs:documentation>Multiplier for 'unit'.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="unit" minOccurs="1" maxOccurs="1" type="UomType">
<xs:annotation>
<xs:documentation>Unit in symbol</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="1" maxOccurs="1" type="Int32">
<xs:annotation>
<xs:documentation>Value in units specified</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="UomType">
<xs:annotation>
<xs:documentation>The following values are recommended values sourced from the unit of measure enumeration in IEC 61968-9 [61968]. Other values from the unit of measure enumeration in IEC 61968-9 [61968] MAY be used.
0 = Not Applicable (default, if not specified)
5 = A (Current in Amperes (RMS))
6 = Kelvin (Temperature)
23 = Degrees Celsius (Relative temperature)
29 = Voltage
31 = J (Energy joule)
33 = Hz (Frequency)
38 =W (Real power in Watts)
42 = m3 (Cubic Meter)
61 = VA (Apparent power)
63 = var (Reactive power)
65 = CosTheta (Displacement Power Factor)
67 = V² (Volts squared)
69 = A² (Amp squared)
71 = VAh (Apparent energy)
72 = Wh (Real energy in Watt-hours)
73 = varh (Reactive energy)
106 = Ah (Ampere-hours / Available Charge)
119 = ft3 (Cubic Feet)
122 = ft3/h (Cubic Feet per Hour)
125 = m3/h (Cubic Meter per Hour)
128 = US gl (US Gallons)
129 = US gl/h (US Gallons per Hour)
130 = IMP gl (Imperial Gallons)
131 = IMP gl/h (Imperial Gallons per Hour)
132 = BTU
133 = BTU/h
134 = Liter
137 = L/h (Liters per Hour)
140 = PA(gauge)
155 = PA(absolute)
169 = Therm</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt8" />
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="VersionType">
<xs:annotation>
<xs:documentation>Version SHALL indicate a distinct identifier for each revision of an IdentifiedObject. If not specified, a default version of "0" (initial version) SHALL be assumed. Upon modification of any IdentifiedObject, the mRID SHALL remain the same, but the version SHALL be incremented. Servers MAY NOT modify objects that they did not create, unless they were notified of the change from the entity controlling the object's PEN.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="UInt16" />
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="HexBinary8">
<xs:annotation>
<xs:documentation>An 8-bit field encoded as a hex string (2 hex characters). Where applicable, bit 0, or the least significant bit, goes on the right. Note that hexBinary requires pairs of hex characters, so an odd number of characters requires a leading "0".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:hexBinary">
<xs:maxLength value="1" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexBinary16">
<xs:annotation>
<xs:documentation>A 16-bit field encoded as a hex string (4 hex characters max). Where applicable, bit 0, or the least significant bit, goes on the right. Note that hexBinary requires pairs of hex characters, so an odd number of characters requires a leading "0".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:hexBinary">
<xs:maxLength value="2" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexBinary32">
<xs:annotation>
<xs:documentation>A 32-bit field encoded as a hex string (8 hex characters max). Where applicable, bit 0, or the least significant bit, goes on the right. Note that hexBinary requires pairs of hex characters, so an odd number of characters requires a leading "0".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:hexBinary">
<xs:maxLength value="4" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexBinary48">
<xs:annotation>
<xs:documentation>A 48-bit field encoded as a hex string (12 hex characters max). Where applicable, bit 0, or the least significant bit, goes on the right. Note that hexBinary requires pairs of hex characters, so an odd number of characters requires a leading "0".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:hexBinary">
<xs:maxLength value="6" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexBinary64">
<xs:annotation>
<xs:documentation>A 64-bit field encoded as a hex string (16 hex characters max). Where applicable, bit 0, or the least significant bit, goes on the right. Note that hexBinary requires pairs of hex characters, so an odd number of characters requires a leading "0".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:hexBinary">
<xs:maxLength value="8" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexBinary128">
<xs:annotation>
<xs:documentation>A 128-bit field encoded as a hex string (32 hex characters max). Where applicable, bit 0, or the least significant bit, goes on the right. Note that hexBinary requires pairs of hex characters, so an odd number of characters requires a leading "0".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:hexBinary">
<xs:maxLength value="16" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HexBinary160">
<xs:annotation>
<xs:documentation>A 160-bit field encoded as a hex string (40 hex characters max). Where applicable, bit 0, or the least significant bit, goes on the right. Note that hexBinary requires pairs of hex characters, so an odd number of characters requires a leading "0".</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:hexBinary">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="String6">
<xs:annotation>
<xs:documentation>Character string of max length 6. In order to limit internal storage, implementations SHALL reduce the length of strings using multi-byte characters so that the string may be stored using "maxLength" octets in the given encoding.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="6" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="String16">
<xs:annotation>
<xs:documentation>Character string of max length 16. In order to limit internal storage, implementations SHALL reduce the length of strings using multi-byte characters so that the string may be stored using "maxLength" octets in the given encoding.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="16" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="String20">
<xs:annotation>
<xs:documentation>Character string of max length 20. In order to limit internal storage, implementations SHALL reduce the length of strings using multi-byte characters so that the string may be stored using "maxLength" octets in the given encoding.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="String32">
<xs:annotation>
<xs:documentation>Character string of max length 32. In order to limit internal storage, implementations SHALL reduce the length of strings using multi-byte characters so that the string may be stored using "maxLength" octets in the given encoding.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="32" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="String42">
<xs:annotation>
<xs:documentation>Character string of max length 42. In order to limit internal storage, implementations SHALL reduce the length of strings using multi-byte characters so that the string may be stored using "maxLength" octets in the given encoding.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="42" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="String192">
<xs:annotation>
<xs:documentation>Character string of max length 192. For all string types, in order to limit internal storage, implementations SHALL reduce the length of strings using multi-byte characters so that the string may be stored using "maxLength" octets in the given encoding.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:maxLength value="192" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UInt8">
<xs:annotation>
<xs:documentation>Unsigned integer, max inclusive 255 (2^8-1)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedByte" />
</xs:simpleType>
<xs:simpleType name="UInt16">
<xs:annotation>
<xs:documentation>Unsigned integer, max inclusive 65535 (2^16-1)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedShort" />
</xs:simpleType>
<xs:simpleType name="UInt32">
<xs:annotation>
<xs:documentation>Unsigned integer, max inclusive 4294967295 (2^32-1)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedInt" />
</xs:simpleType>
<xs:simpleType name="UInt40">
<xs:annotation>
<xs:documentation>Unsigned integer, max inclusive 1099511627775 (2^40-1)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedLong">
<xs:maxInclusive value="281474976710655" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UInt48">
<xs:annotation>
<xs:documentation>Unsigned integer, max inclusive 281474976710655 (2^48-1)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedLong">
<xs:maxInclusive value="281474976710655" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UInt64">
<xs:annotation>
<xs:documentation>Unsigned integer, max inclusive 18446744073709551615 (2^64-1)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedLong" />
</xs:simpleType>
<xs:simpleType name="Int8">
<xs:annotation>
<xs:documentation>Signed integer, min -128 max +127</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:byte" />
</xs:simpleType>
<xs:simpleType name="Int16">
<xs:annotation>
<xs:documentation>Signed integer, min -32768 max +32767</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:short" />
</xs:simpleType>
<xs:simpleType name="Int32">
<xs:annotation>
<xs:documentation>Signed integer, max inclusive 2147483647 (2^31), min inclusive -2147483647 (same as xs:int)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:int" />
</xs:simpleType>
<xs:simpleType name="Int48">
<xs:annotation>
<xs:documentation>Signed integer, max inclusive 140737488355328 (2^47), min inclusive -140737488355328</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:long">
<xs:maxInclusive value="140737488355328" />
<xs:minInclusive value="-140737488355328" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Int64">
<xs:annotation>
<xs:documentation>Signed integer, max inclusive 9223372036854775807 (2^63), min inclusive -9223372036854775808 (same as xs:long)</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:long" />
</xs:simpleType>
<xs:complexType name="MirrorMeterReading">
<xs:annotation>
<xs:documentation>Mimic of MeterReading used for managing mirrors.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MeterReadingBase">
<xs:sequence>
<xs:element name="lastUpdateTime" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time of the last update.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MirrorReadingSet" type="MirrorReadingSet" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="nextUpdateTime" minOccurs="0" maxOccurs="1" type="TimeType">
<xs:annotation>
<xs:documentation>The date and time of the next planned update.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Reading" type="Reading" minOccurs="0" maxOccurs="1" />
<xs:element name="ReadingType" type="ReadingType" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MirrorMeterReadingList">
<xs:annotation>
<xs:documentation>A List of MirrorMeterReading instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="MirrorMeterReading" type="MirrorMeterReading" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MeterReadingBase">
<xs:annotation>
<xs:documentation>A container for associating ReadingType, Readings and ReadingSets.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MirrorReadingSet">
<xs:annotation>
<xs:documentation>A set of Readings of the ReadingType indicated by the parent MeterReading.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ReadingSetBase">
<xs:sequence>
<xs:element name="Reading" type="Reading" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MirrorUsagePoint">
<xs:annotation>
<xs:documentation>A parallel to UsagePoint to support mirroring</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="UsagePointBase">
<xs:sequence>
<xs:element name="deviceLFDI" minOccurs="1" maxOccurs="1" type="HexBinary160">
<xs:annotation>
<xs:documentation>The LFDI of the device being mirrored.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MirrorMeterReading" type="MirrorMeterReading" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="postRate" minOccurs="0" maxOccurs="1" type="UInt32">
<xs:annotation>
<xs:documentation>POST rate, or how often mirrored data should be POSTed, in seconds. A client MAY indicate a preferred postRate when POSTing MirrorUsagePoint. A server MAY add or modify postRate to indicate its preferred posting rate.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MirrorUsagePointList">
<xs:annotation>
<xs:documentation>A List of MirrorUsagePoint instances.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="List">
<xs:sequence>
<xs:element name="MirrorUsagePoint" type="MirrorUsagePoint" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="pollRate" use="optional" default="900" type="UInt32">
<xs:annotation>
<xs:documentation>The default polling rate for this function set (this resource and all resources below), in seconds. If not specified, a default of 900 seconds (15 minutes) is used. It is RECOMMENDED a client poll the resources of this function set every pollRate seconds.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingBase">
<xs:annotation>
<xs:documentation>Specific value measured by a meter or other asset. ReadingBase is abstract, used to define the elements common to Reading and IntervalReading.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Resource">
<xs:sequence>
<xs:element name="consumptionBlock" minOccurs="0" maxOccurs="1" type="ConsumptionBlockType">
<xs:annotation>
<xs:documentation>Indicates the consumption block related to the reading. REQUIRED if ReadingType numberOfConsumptionBlocks is non-zero. If not specified, is assumed to be "0 - N/A".</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="qualityFlags" minOccurs="0" maxOccurs="1" type="HexBinary16">
<xs:annotation>
<xs:documentation>List of codes indicating the quality of the reading, using specification:
Bit 0 - valid: data that has gone through all required validation checks and either passed them all or has been verified
Bit 1 - manually edited: Replaced or approved by a human
Bit 2 - estimated using reference day: data value was replaced by a machine computed value based on analysis of historical data using the same type of measurement.
Bit 3 - estimated using linear interpolation: data value was computed using linear interpolation based on the readings before and after it
Bit 4 - questionable: data that has failed one or more checks
Bit 5 - derived: data that has been calculated (using logic or mathematical operations), not necessarily measured directly
Bit 6 - projected (forecast): data that has been calculated as a projection or forecast of future readings</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="timePeriod" minOccurs="0" maxOccurs="1" type="DateTimeInterval">
<xs:annotation>
<xs:documentation>The time interval associated with the reading. If not specified, then defaults to the intervalLength specified in the associated ReadingType.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="touTier" minOccurs="0" maxOccurs="1" type="TOUType">
<xs:annotation>
<xs:documentation>Indicates the time of use tier related to the reading. REQUIRED if ReadingType numberOfTouTiers is non-zero. If not specified, is assumed to be "0 - N/A".</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" minOccurs="0" maxOccurs="1" type="Int48">
<xs:annotation>
<xs:documentation>Value in units specified by ReadingType</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ReadingSetBase">
<xs:annotation>
<xs:documentation>A set of Readings of the ReadingType indicated by the parent MeterReading. ReadingBase is abstract, used to define the elements common to ReadingSet and IntervalBlock.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="timePeriod" minOccurs="1" maxOccurs="1" type="DateTimeInterval">
<xs:annotation>
<xs:documentation>Specifies the time range during which the contained readings were taken.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="UsagePointBase">
<xs:annotation>
<xs:documentation>Logical point on a network at which consumption or production is either physically measured (e.g. metered) or estimated (e.g. unmetered street lights). A container for associating ReadingType, Readings and ReadingSets.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="IdentifiedObject">
<xs:sequence>
<xs:element name="roleFlags" minOccurs="1" maxOccurs="1" type="RoleFlagsType">
<xs:annotation>
<xs:documentation>Specifies the roles that apply to the usage point.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="serviceCategoryKind" minOccurs="1" maxOccurs="1" type="ServiceKind">
<xs:annotation>
<xs:documentation>The kind of service provided by this usage point.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="status" minOccurs="1" maxOccurs="1" type="UInt8">
<xs:annotation>
<xs:documentation>Specifies the current status of the service at this usage point.
0 = off
1 = on</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="DeviceCapability" type="DeviceCapability" />
<xs:element name="AbstractDevice" type="AbstractDevice" />
<xs:element name="DeviceStatus" type="DeviceStatus" />
<xs:element name="EndDevice" type="EndDevice" />
<xs:element name="EndDeviceList" type="EndDeviceList" />
<xs:element name="Registration" type="Registration" />
<xs:element name="SelfDevice" type="SelfDevice" />
<xs:element name="Temperature" type="Temperature" />
<xs:element name="FunctionSetAssignmentsBase" type="FunctionSetAssignmentsBase" />
<xs:element name="FunctionSetAssignments" type="FunctionSetAssignments" />
<xs:element name="FunctionSetAssignmentsList" type="FunctionSetAssignmentsList" />
<xs:element name="Condition" type="Condition" />
<xs:element name="SubscriptionBase" type="SubscriptionBase" />
<xs:element name="Subscription" type="Subscription" />
<xs:element name="SubscriptionList" type="SubscriptionList" />
<xs:element name="Notification" type="Notification" />
<xs:element name="NotificationList" type="NotificationList" />
<xs:element name="DERControlResponse" type="DERControlResponse" />
<xs:element name="FlowReservationResponseResponse" type="FlowReservationResponseResponse" />
<xs:element name="AppliedTargetReduction" type="AppliedTargetReduction" />
<xs:element name="DrResponse" type="DrResponse" />
<xs:element name="PriceResponse" type="PriceResponse" />
<xs:element name="Response" type="Response" />
<xs:element name="ResponseList" type="ResponseList" />
<xs:element name="ResponseSet" type="ResponseSet" />
<xs:element name="ResponseSetList" type="ResponseSetList" />
<xs:element name="TextResponse" type="TextResponse" />
<xs:element name="Time" type="Time" />
<xs:element name="DeviceInformation" type="DeviceInformation" />
<xs:element name="DRLCCapabilities" type="DRLCCapabilities" />
<xs:element name="SupportedLocale" type="SupportedLocale" />
<xs:element name="SupportedLocaleList" type="SupportedLocaleList" />
<xs:element name="PowerStatus" type="PowerStatus" />
<xs:element name="PowerSourceType" type="PowerSourceType" />
<xs:element name="PEVInfo" type="PEVInfo" />
<xs:element name="IEEE_802_15_4" type="IEEE_802_15_4" />
<xs:element name="IPAddr" type="IPAddr" />
<xs:element name="IPAddrList" type="IPAddrList" />
<xs:element name="IPInterface" type="IPInterface" />
<xs:element name="IPInterfaceList" type="IPInterfaceList" />
<xs:element name="LLInterface" type="LLInterface" />
<xs:element name="LLInterfaceList" type="LLInterfaceList" />
<xs:element name="loWPAN" type="loWPAN" />
<xs:element name="Neighbor" type="Neighbor" />
<xs:element name="NeighborList" type="NeighborList" />
<xs:element name="RPLInstance" type="RPLInstance" />
<xs:element name="RPLInstanceList" type="RPLInstanceList" />
<xs:element name="RPLSourceRoutes" type="RPLSourceRoutes" />
<xs:element name="RPLSourceRoutesList" type="RPLSourceRoutesList" />
<xs:element name="LogEvent" type="LogEvent" />
<xs:element name="LogEventList" type="LogEventList" />
<xs:element name="Configuration" type="Configuration" />
<xs:element name="PowerConfiguration" type="PowerConfiguration" />
<xs:element name="PriceResponseCfg" type="PriceResponseCfg" />
<xs:element name="PriceResponseCfgList" type="PriceResponseCfgList" />
<xs:element name="TimeConfiguration" type="TimeConfiguration" />
<xs:element name="File" type="File" />
<xs:element name="FileList" type="FileList" />
<xs:element name="FileStatus" type="FileStatus" />
<xs:element name="LoadShedAvailabilityList" type="LoadShedAvailabilityList" />
<xs:element name="ApplianceLoadReduction" type="ApplianceLoadReduction" />
<xs:element name="DemandResponseProgram" type="DemandResponseProgram" />
<xs:element name="DemandResponseProgramList" type="DemandResponseProgramList" />
<xs:element name="DutyCycle" type="DutyCycle" />
<xs:element name="EndDeviceControl" type="EndDeviceControl" />
<xs:element name="EndDeviceControlList" type="EndDeviceControlList" />
<xs:element name="LoadShedAvailability" type="LoadShedAvailability" />
<xs:element name="Offset" type="Offset" />
<xs:element name="SetPoint" type="SetPoint" />
<xs:element name="TargetReduction" type="TargetReduction" />
<xs:element name="MeterReading" type="MeterReading" />
<xs:element name="MeterReadingList" type="MeterReadingList" />
<xs:element name="Reading" type="Reading" />
<xs:element name="ReadingList" type="ReadingList" />
<xs:element name="ReadingSet" type="ReadingSet" />
<xs:element name="ReadingSetList" type="ReadingSetList" />
<xs:element name="ReadingType" type="ReadingType" />
<xs:element name="UsagePoint" type="UsagePoint" />
<xs:element name="UsagePointList" type="UsagePointList" />
<xs:element name="ConsumptionTariffInterval" type="ConsumptionTariffInterval" />
<xs:element name="ConsumptionTariffIntervalList" type="ConsumptionTariffIntervalList" />
<xs:element name="CostKindType" type="CostKindType" />
<xs:element name="EnvironmentalCost" type="EnvironmentalCost" />
<xs:element name="RateComponent" type="RateComponent" />
<xs:element name="RateComponentList" type="RateComponentList" />
<xs:element name="TariffProfile" type="TariffProfile" />
<xs:element name="TariffProfileList" type="TariffProfileList" />
<xs:element name="TimeTariffInterval" type="TimeTariffInterval" />
<xs:element name="TimeTariffIntervalList" type="TimeTariffIntervalList" />
<xs:element name="MessagingProgram" type="MessagingProgram" />
<xs:element name="MessagingProgramList" type="MessagingProgramList" />
<xs:element name="PriorityType" type="PriorityType" />
<xs:element name="TextMessage" type="TextMessage" />
<xs:element name="TextMessageList" type="TextMessageList" />
<xs:element name="BillingPeriod" type="BillingPeriod" />
<xs:element name="BillingPeriodList" type="BillingPeriodList" />
<xs:element name="BillingMeterReadingBase" type="BillingMeterReadingBase" />
<xs:element name="BillingReading" type="BillingReading" />
<xs:element name="BillingReadingList" type="BillingReadingList" />
<xs:element name="BillingReadingSet" type="BillingReadingSet" />
<xs:element name="BillingReadingSetList" type="BillingReadingSetList" />
<xs:element name="Charge" type="Charge" />
<xs:element name="ChargeKind" type="ChargeKind" />
<xs:element name="CustomerAccount" type="CustomerAccount" />
<xs:element name="CustomerAccountList" type="CustomerAccountList" />
<xs:element name="CustomerAgreement" type="CustomerAgreement" />
<xs:element name="CustomerAgreementList" type="CustomerAgreementList" />
<xs:element name="HistoricalReading" type="HistoricalReading" />
<xs:element name="HistoricalReadingList" type="HistoricalReadingList" />
<xs:element name="ProjectionReading" type="ProjectionReading" />
<xs:element name="ProjectionReadingList" type="ProjectionReadingList" />
<xs:element name="TargetReading" type="TargetReading" />
<xs:element name="TargetReadingList" type="TargetReadingList" />
<xs:element name="ServiceSupplier" type="ServiceSupplier" />
<xs:element name="ServiceSupplierList" type="ServiceSupplierList" />
<xs:element name="AccountBalance" type="AccountBalance" />
<xs:element name="AccountingUnit" type="AccountingUnit" />
<xs:element name="CreditRegister" type="CreditRegister" />
<xs:element name="CreditRegisterList" type="CreditRegisterList" />
<xs:element name="Prepayment" type="Prepayment" />
<xs:element name="PrepaymentList" type="PrepaymentList" />
<xs:element name="PrepayModeType" type="PrepayModeType" />
<xs:element name="PrepayOperationStatus" type="PrepayOperationStatus" />
<xs:element name="ServiceChange" type="ServiceChange" />
<xs:element name="SupplyInterruptionOverride" type="SupplyInterruptionOverride" />
<xs:element name="SupplyInterruptionOverrideList" type="SupplyInterruptionOverrideList" />
<xs:element name="CreditStatusType" type="CreditStatusType" />
<xs:element name="CreditTypeType" type="CreditTypeType" />
<xs:element name="CreditTypeChange" type="CreditTypeChange" />
<xs:element name="ServiceStatusType" type="ServiceStatusType" />
<xs:element name="RequestStatus" type="RequestStatus" />
<xs:element name="FlowReservationRequest" type="FlowReservationRequest" />
<xs:element name="FlowReservationRequestList" type="FlowReservationRequestList" />
<xs:element name="FlowReservationResponse" type="FlowReservationResponse" />
<xs:element name="FlowReservationResponseList" type="FlowReservationResponseList" />
<xs:element name="DefaultDERControl" type="DefaultDERControl" />
<xs:element name="FreqDroopType" type="FreqDroopType" />
<xs:element name="DER" type="DER" />
<xs:element name="DERList" type="DERList" />
<xs:element name="DERSettings" type="DERSettings" />
<xs:element name="DERType" type="DERType" />
<xs:element name="DERAvailability" type="DERAvailability" />
<xs:element name="DERCapability" type="DERCapability" />
<xs:element name="DERControlBase" type="DERControlBase" />
<xs:element name="DERControl" type="DERControl" />
<xs:element name="DERControlList" type="DERControlList" />
<xs:element name="DERControlType" type="DERControlType" />
<xs:element name="DERCurve" type="DERCurve" />
<xs:element name="CurrentDERProgramLink" type="CurrentDERProgramLink" />
<xs:element name="DERCurveList" type="DERCurveList" />
<xs:element name="CurveData" type="CurveData" />
<xs:element name="DERCurveType" type="DERCurveType" />
<xs:element name="DERProgram" type="DERProgram" />
<xs:element name="DERProgramList" type="DERProgramList" />
<xs:element name="DERStatus" type="DERStatus" />
<xs:element name="DERUnitRefType" type="DERUnitRefType" />
<xs:element name="CurrentRMS" type="CurrentRMS" />
<xs:element name="FixedPointType" type="FixedPointType" />
<xs:element name="UnsignedFixedPointType" type="UnsignedFixedPointType" />
<xs:element name="ActivePower" type="ActivePower" />
<xs:element name="AmpereHour" type="AmpereHour" />
<xs:element name="ApparentPower" type="ApparentPower" />
<xs:element name="ReactivePower" type="ReactivePower" />
<xs:element name="ReactiveSusceptance" type="ReactiveSusceptance" />
<xs:element name="PowerFactor" type="PowerFactor" />
<xs:element name="PowerFactorWithExcitation" type="PowerFactorWithExcitation" />
<xs:element name="FixedVar" type="FixedVar" />
<xs:element name="WattHour" type="WattHour" />
<xs:element name="VoltageRMS" type="VoltageRMS" />
<xs:element name="ConnectStatusType" type="ConnectStatusType" />
<xs:element name="InverterStatusType" type="InverterStatusType" />
<xs:element name="LocalControlModeStatusType" type="LocalControlModeStatusType" />
<xs:element name="ManufacturerStatusType" type="ManufacturerStatusType" />
<xs:element name="OperationalModeStatusType" type="OperationalModeStatusType" />
<xs:element name="StateOfChargeStatusType" type="StateOfChargeStatusType" />
<xs:element name="StorageModeStatusType" type="StorageModeStatusType" />
<xs:element name="AccountBalanceLink" type="AccountBalanceLink" />
<xs:element name="ActiveBillingPeriodListLink" type="ActiveBillingPeriodListLink" />
<xs:element name="ActiveCreditRegisterListLink" type="ActiveCreditRegisterListLink" />
<xs:element name="ActiveDERControlListLink" type="ActiveDERControlListLink" />
<xs:element name="ActiveEndDeviceControlListLink" type="ActiveEndDeviceControlListLink" />
<xs:element name="ActiveFlowReservationListLink" type="ActiveFlowReservationListLink" />
<xs:element name="ActiveProjectionReadingListLink" type="ActiveProjectionReadingListLink" />
<xs:element name="ActiveSupplyInterruptionOverrideListLink" type="ActiveSupplyInterruptionOverrideListLink" />
<xs:element name="ActiveTargetReadingListLink" type="ActiveTargetReadingListLink" />
<xs:element name="ActiveTextMessageListLink" type="ActiveTextMessageListLink" />
<xs:element name="ActiveTimeTariffIntervalListLink" type="ActiveTimeTariffIntervalListLink" />
<xs:element name="AssociatedDERProgramListLink" type="AssociatedDERProgramListLink" />
<xs:element name="AssociatedUsagePointLink" type="AssociatedUsagePointLink" />
<xs:element name="BillingPeriodListLink" type="BillingPeriodListLink" />
<xs:element name="BillingReadingListLink" type="BillingReadingListLink" />
<xs:element name="BillingReadingSetListLink" type="BillingReadingSetListLink" />
<xs:element name="ConfigurationLink" type="ConfigurationLink" />
<xs:element name="ConsumptionTariffIntervalListLink" type="ConsumptionTariffIntervalListLink" />
<xs:element name="CreditRegisterListLink" type="CreditRegisterListLink" />
<xs:element name="CustomerAccountLink" type="CustomerAccountLink" />
<xs:element name="CustomerAccountListLink" type="CustomerAccountListLink" />
<xs:element name="CustomerAgreementListLink" type="CustomerAgreementListLink" />
<xs:element name="DemandResponseProgramLink" type="DemandResponseProgramLink" />
<xs:element name="DemandResponseProgramListLink" type="DemandResponseProgramListLink" />
<xs:element name="DERAvailabilityLink" type="DERAvailabilityLink" />
<xs:element name="DefaultDERControlLink" type="DefaultDERControlLink" />
<xs:element name="DERCapabilityLink" type="DERCapabilityLink" />
<xs:element name="DERControlListLink" type="DERControlListLink" />
<xs:element name="DERCurveLink" type="DERCurveLink" />
<xs:element name="DERCurveListLink" type="DERCurveListLink" />
<xs:element name="DERLink" type="DERLink" />
<xs:element name="DERListLink" type="DERListLink" />
<xs:element name="DERProgramLink" type="DERProgramLink" />
<xs:element name="DERProgramListLink" type="DERProgramListLink" />
<xs:element name="DERSettingsLink" type="DERSettingsLink" />
<xs:element name="DERStatusLink" type="DERStatusLink" />
<xs:element name="DeviceCapabilityLink" type="DeviceCapabilityLink" />
<xs:element name="DeviceInformationLink" type="DeviceInformationLink" />
<xs:element name="DeviceStatusLink" type="DeviceStatusLink" />
<xs:element name="EndDeviceControlListLink" type="EndDeviceControlListLink" />
<xs:element name="EndDeviceLink" type="EndDeviceLink" />
<xs:element name="EndDeviceListLink" type="EndDeviceListLink" />
<xs:element name="FileLink" type="FileLink" />
<xs:element name="FileListLink" type="FileListLink" />
<xs:element name="FileStatusLink" type="FileStatusLink" />
<xs:element name="FlowReservationRequestListLink" type="FlowReservationRequestListLink" />
<xs:element name="FlowReservationResponseListLink" type="FlowReservationResponseListLink" />
<xs:element name="FunctionSetAssignmentsListLink" type="FunctionSetAssignmentsListLink" />
<xs:element name="HistoricalReadingListLink" type="HistoricalReadingListLink" />
<xs:element name="IPAddrListLink" type="IPAddrListLink" />
<xs:element name="IPInterfaceListLink" type="IPInterfaceListLink" />
<xs:element name="LLInterfaceListLink" type="LLInterfaceListLink" />
<xs:element name="LoadShedAvailabilityListLink" type="LoadShedAvailabilityListLink" />
<xs:element name="LogEventListLink" type="LogEventListLink" />
<xs:element name="MessagingProgramListLink" type="MessagingProgramListLink" />
<xs:element name="MeterReadingLink" type="MeterReadingLink" />
<xs:element name="MeterReadingListLink" type="MeterReadingListLink" />
<xs:element name="MirrorUsagePointListLink" type="MirrorUsagePointListLink" />
<xs:element name="NeighborListLink" type="NeighborListLink" />
<xs:element name="NotificationListLink" type="NotificationListLink" />
<xs:element name="PowerStatusLink" type="PowerStatusLink" />
<xs:element name="PrepaymentLink" type="PrepaymentLink" />
<xs:element name="PrepaymentListLink" type="PrepaymentListLink" />
<xs:element name="PrepayOperationStatusLink" type="PrepayOperationStatusLink" />
<xs:element name="PriceResponseCfgListLink" type="PriceResponseCfgListLink" />
<xs:element name="ProjectionReadingListLink" type="ProjectionReadingListLink" />
<xs:element name="RateComponentLink" type="RateComponentLink" />
<xs:element name="RateComponentListLink" type="RateComponentListLink" />
<xs:element name="ReadingLink" type="ReadingLink" />
<xs:element name="ReadingListLink" type="ReadingListLink" />
<xs:element name="ReadingSetListLink" type="ReadingSetListLink" />
<xs:element name="ReadingTypeLink" type="ReadingTypeLink" />
<xs:element name="RegistrationLink" type="RegistrationLink" />
<xs:element name="ResponseListLink" type="ResponseListLink" />
<xs:element name="ResponseSetListLink" type="ResponseSetListLink" />
<xs:element name="RPLInstanceListLink" type="RPLInstanceListLink" />
<xs:element name="RPLSourceRoutesListLink" type="RPLSourceRoutesListLink" />
<xs:element name="SelfDeviceLink" type="SelfDeviceLink" />
<xs:element name="ServiceSupplierLink" type="ServiceSupplierLink" />
<xs:element name="SubscriptionListLink" type="SubscriptionListLink" />
<xs:element name="SupplyInterruptionOverrideListLink" type="SupplyInterruptionOverrideListLink" />
<xs:element name="SupportedLocaleListLink" type="SupportedLocaleListLink" />
<xs:element name="TargetReadingListLink" type="TargetReadingListLink" />
<xs:element name="TariffProfileLink" type="TariffProfileLink" />
<xs:element name="TariffProfileListLink" type="TariffProfileListLink" />
<xs:element name="TextMessageListLink" type="TextMessageListLink" />
<xs:element name="TimeLink" type="TimeLink" />
<xs:element name="TimeTariffIntervalListLink" type="TimeTariffIntervalListLink" />
<xs:element name="UsagePointLink" type="UsagePointLink" />
<xs:element name="UsagePointListLink" type="UsagePointListLink" />
<xs:element name="IdentifiedObject" type="IdentifiedObject" />
<xs:element name="Link" type="Link" />
<xs:element name="List" type="List" />
<xs:element name="ListLink" type="ListLink" />
<xs:element name="Resource" type="Resource" />
<xs:element name="RespondableIdentifiedObject" type="RespondableIdentifiedObject" />
<xs:element name="RespondableResource" type="RespondableResource" />
<xs:element name="RespondableSubscribableIdentifiedObject" type="RespondableSubscribableIdentifiedObject" />
<xs:element name="SubscribableIdentifiedObject" type="SubscribableIdentifiedObject" />
<xs:element name="SubscribableList" type="SubscribableList" />
<xs:element name="SubscribableResource" type="SubscribableResource" />
<xs:element name="Error" type="Error" />
<xs:element name="Event" type="Event" />
<xs:element name="EventStatus" type="EventStatus" />
<xs:element name="RandomizableEvent" type="RandomizableEvent" />
<xs:element name="AccumulationBehaviourType" type="AccumulationBehaviourType" />
<xs:element name="ApplianceLoadReductionType" type="ApplianceLoadReductionType" />
<xs:element name="CommodityType" type="CommodityType" />
<xs:element name="ConsumptionBlockType" type="ConsumptionBlockType" />
<xs:element name="CurrencyCode" type="CurrencyCode" />
<xs:element name="DataQualifierType" type="DataQualifierType" />
<xs:element name="DateTimeInterval" type="DateTimeInterval" />
<xs:element name="DeviceCategoryType" type="DeviceCategoryType" />
<xs:element name="DstRuleType" type="DstRuleType" />
<xs:element name="FlowDirectionType" type="FlowDirectionType" />
<xs:element name="GPSLocationType" type="GPSLocationType" />
<xs:element name="KindType" type="KindType" />
<xs:element name="LocaleType" type="LocaleType" />
<xs:element name="mRIDType" type="mRIDType" />
<xs:element name="OneHourRangeType" type="OneHourRangeType" />
<xs:element name="PENType" type="PENType" />
<xs:element name="PerCent" type="PerCent" />
<xs:element name="PhaseCode" type="PhaseCode" />
<xs:element name="PINType" type="PINType" />
<xs:element name="PowerOfTenMultiplierType" type="PowerOfTenMultiplierType" />
<xs:element name="PrimacyType" type="PrimacyType" />
<xs:element name="RealEnergy" type="RealEnergy" />
<xs:element name="RoleFlagsType" type="RoleFlagsType" />
<xs:element name="ServiceKind" type="ServiceKind" />
<xs:element name="SFDIType" type="SFDIType" />
<xs:element name="SignedPerCent" type="SignedPerCent" />
<xs:element name="SignedRealEnergy" type="SignedRealEnergy" />
<xs:element name="TimeOffsetType" type="TimeOffsetType" />
<xs:element name="TimeType" type="TimeType" />
<xs:element name="TOUType" type="TOUType" />
<xs:element name="UnitType" type="UnitType" />
<xs:element name="UnitValueType" type="UnitValueType" />
<xs:element name="UomType" type="UomType" />
<xs:element name="VersionType" type="VersionType" />
<xs:element name="MirrorMeterReading" type="MirrorMeterReading" />
<xs:element name="MirrorMeterReadingList" type="MirrorMeterReadingList" />
<xs:element name="MeterReadingBase" type="MeterReadingBase" />
<xs:element name="MirrorReadingSet" type="MirrorReadingSet" />
<xs:element name="MirrorUsagePoint" type="MirrorUsagePoint" />
<xs:element name="MirrorUsagePointList" type="MirrorUsagePointList" />
<xs:element name="ReadingBase" type="ReadingBase" />
<xs:element name="ReadingSetBase" type="ReadingSetBase" />
<xs:element name="UsagePointBase" type="UsagePointBase" />
</xs:schema>