Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:include schemaLocation="UFTP-common.xsd"/>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Update Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="AGRPortfolioUpdateType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType">
|
||||
<xs:sequence>
|
||||
<xs:element name="Connection" type="AGRPortfolioUpdateConnection" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="TimeZone" type="TimeZoneNameType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Time zone ID (as per the IANA time zone database, http://www.iana.org/time-zones, for example: Europe/Amsterdam) indicating the UTC offset that applies to the Period referenced in this message. Although the time zone is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant UTC offset.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Update Connection -->
|
||||
<!-- -->
|
||||
<xs:complexType name="AGRPortfolioUpdateConnection">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A connection that the AGR want the CRO to update</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="EntityAddress" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EntityAddress of the Connection entity being updated. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="StartPeriod" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The first Period hat the AGR represents the prosumer at this Connection.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="EndPeriod" type="PeriodType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The last Period that the AGR represents the prosumer at this Connection, if applicable.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Update Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="AGRPortfolioUpdateResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:attribute name="AGRPortfolioUpdateMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the AGRPortfolioUpdate that has just been accepted or rejected</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Query Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="AGRPortfolioQueryType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType">
|
||||
<xs:attribute name="TimeZone" type="TimeZoneNameType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Time zone ID (as per the IANA time zone database, http://www.iana.org/time-zones, for example: Europe/Amsterdam) indicating the UTC offset that applies to the Period referenced in this message. Although the time zone is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant UTC offset.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Period" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The Period for which the AGR requests the portfolio information.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Query Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="AGRPortfolioQueryResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:sequence>
|
||||
<xs:element name="DSO-View" type="AGRPortfolioQueryResponseDSOViewType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="TimeZone" type="TimeZoneNameType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Time zone ID (as per the IANA time zone database, http://www.iana.org/time-zones, for example: Europe/Amsterdam) indicating the UTC offset that applies to the Period referenced in this message. Although the time zone is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant UTC offset.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="AGRPortfolioQueryMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the AGRPortfolioQuery that has just been accepted or rejected</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Period" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The Period that the portfolio is valid.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Query Response DSO View Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="AGRPortfolioQueryResponseDSOViewType">
|
||||
<xs:sequence>
|
||||
<xs:element name="DSO-Portfolio" type="AGRPortfolioQueryResponseDSOPortfolioType" maxOccurs="unbounded"/>
|
||||
<xs:element name="Connection" type="AGRPortfolioQueryResponseConnectionType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Query Response DSO Portfolio Type -->
|
||||
<!-- -->
|
||||
</xs:complexType>
|
||||
<xs:complexType name="AGRPortfolioQueryResponseDSOPortfolioType">
|
||||
<xs:sequence>
|
||||
<xs:element name="CongestionPoint" type="AGRPortfolioQueryResponseCongestionPointType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="DSO-Domain" type="InternetDomainType" use="required"/>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Query Response Congestion Point Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="AGRPortfolioQueryResponseCongestionPointType">
|
||||
<xs:sequence>
|
||||
<xs:element name="Connection" type="AGRPortfolioQueryResponseConnectionType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="EntityAddress" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EntityAddress of the CongestionPoint.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="MutexOffersSupported" type="xs:boolean" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indicates whether the DSO accepts mutual exclusive FlexOffers on this CongestionPoint.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DayAheadRedispatchBy" type="RedispatchByType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indicates which party is responsible for day-ahead redispatch.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IntradayRedispatchBy" type="RedispatchByType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indicates which party is responsible for intraday ahead redispatch, AGR or DSO. If not specified, there will be no intraday trading on this CongestionPoint.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- AGR Portfolio Query Response Connection Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="AGRPortfolioQueryResponseConnectionType">
|
||||
<xs:attribute name="EntityAddress" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EntityAddress of the Connection.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- ELEMENT DEFINITIONS -->
|
||||
<!-- -->
|
||||
<xs:element name="AGRPortfolioUpdate" type="AGRPortfolioUpdateType"/>
|
||||
<xs:element name="AGRPortfolioUpdateResponse" type="AGRPortfolioUpdateResponseType"/>
|
||||
<xs:element name="AGRPortfolioQuery" type="AGRPortfolioQueryType"/>
|
||||
<xs:element name="AGRPortfolioQueryResponse" type="AGRPortfolioQueryResponseType"/>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,705 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- edited with XMLSpy v2020 sp1 (x64) (http://www.altova.com) by Erik Brouwer (ICT netherlands B.V.) -->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:include schemaLocation="UFTP-common.xsd"/>
|
||||
<xs:include schemaLocation="UFTP-metering.xsd"/>
|
||||
<!-- -->
|
||||
<!-- Flex Message Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexMessageType" abstract="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType">
|
||||
<xs:attribute name="ISP-Duration" type="xs:duration" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>ISO 8601 time interval (minutes only, for example PT15M) indicating the duration of the ISPs referenced in this message. Although the ISP length is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant ISP duration.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="TimeZone" type="TimeZoneNameType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Time zone ID (as per the IANA time zone database, http://www.iana.org/time-zones, for example: Europe/Amsterdam) indicating the UTC offset that applies to the Period referenced in this message. Although the time zone is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant UTC offset.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Period" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Day (in yyyy-mm-dd format) the ISPs referenced in this Flex* message belong to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="CongestionPoint" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Entity Address of the Congestion Point this D-Prognosis applies to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- D-Prognosis Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="D-PrognosisType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="FlexMessageType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation>The ISP represents one or more Imbalance Settlement Periods and is used by Prognosis and Flex-related messages.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="ISP" type="D-PrognosisISPType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Revision" type="xs:long" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Revision of this message. A sequence number that must be incremented each time a new revision of a
|
||||
prognosis is sent. The combination of SenderDomain and PrognosisSequence should be unique</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- D-Prognisis ISP Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="D-PrognosisISPType">
|
||||
<xs:attribute name="Power" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Power specified for this ISP in Watts. Also see the important notes about the sign of this attribute in the main documentation entry for the ISP element.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Start" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of the first ISPs this element refers to. The first ISP of a day has number 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Duration" type="xs:integer" use="optional" default="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The number of the ISPs this element represents. Optional, default value is 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Order Status Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexOrderStatusType">
|
||||
<xs:attribute name="FlexOrderMessageID" type="UUIDType" use="required"/>
|
||||
<xs:attribute name="IsValidated" type="xs:boolean" use="required"/>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- D-Prognosis Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="D-PrognosisResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:sequence>
|
||||
<xs:element name="FlexOrderStatus" type="FlexOrderStatusType" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="D-PrognosisMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the D-Prognosis message this request is based on.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Reservation Update Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexReservationUpdateType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="FlexMessageType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation>The ISP represents one or more Imbalance Settlement Periods and is used by Prognosis and Flex-related messages.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="ISP" type="FlexReservationUpdateISPType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="ContractID" type="xs:string" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Reference to the bilateral contract in question.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Reference" type="xs:string" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Message reference, assigned by the DSO originating the FlexReservationUpdate.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Reservation Update ISP Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexReservationUpdateISPType">
|
||||
<xs:attribute name="Power" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Remaining reserved power specified for this ISP in Watts.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Start" type="xs:positiveInteger" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of the first ISPs this element refers to. The first ISP of a day has number 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Duration" type="xs:positiveInteger" use="optional" default="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The number of the ISPs this element represents. Optional, default value is 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Reservation Update Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexReservationUpdateResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:attribute name="FlexReservationUpdateMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexReservationUpdate message this request is based on.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Request Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexRequestType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="FlexMessageType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation>The ISP represents one or more Imbalance Settlement Periods and is used by Prognosis and Flex-related messages.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="ISP" type="FlexRequestISPType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Revision" type="xs:long" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Revision of this message, a sequence number that must be incremented each time a new revision of a
|
||||
FlexRequest message is sent.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ExpirationDateTime" type="xs:dateTime" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date and time, including the time zone (ISO 8601 formatted as per http://www.w3.org/TR/NOTE-datetime) until which the FlexRequest message is valid.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ContractID" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Reference to the concerning contract, if applicable. The contract may be either bilateral or commoditized market contract. Each contract may specify multiple service-types.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ServiceType" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Service type for this request, the service type determines response characteristics such as latency or asset participation type.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Requests ISP Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexRequestISPType">
|
||||
<xs:attribute name="Disposition" type="AvailableRequestedType"/>
|
||||
<xs:attribute name="MinPower" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Power specified for this ISP in Watts. Also see the important notes about the sign of this attribute in the main documentation entry for the ISP element.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="MaxPower" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Power specified for this ISP in Watts. Also see the important notes about the sign of this attribute in the main documentation entry for the ISP element.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Start" type="xs:positiveInteger" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of the first ISPs this element refers to. The first ISP of a day has number 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Duration" type="xs:positiveInteger" use="optional" default="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The number of the ISPs this element represents. Optional, default value is 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Request Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexRequestResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:attribute name="FlexRequestMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexRequest message this request is based on.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Offer Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexOfferType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="FlexMessageType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation>If the DSO does not support mutually exclusive offers it will reject FlexOffers that contain more than one OfferOption.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="OfferOption" type="FlexOfferOptionType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="ExpirationDateTime" type="xs:dateTime" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date and time, including the time zone (ISO 8601 formatted as per http://www.w3.org/TR/NOTE-datetime) until which the FlexOffer is valid.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Unsolicited" type="xs:boolean" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indicates whether this FlexOffer is intended to be unsolicited (i.e. without a preceding FlexRequest).</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="FlexRequestMessageID" type="UUIDType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexRequest message this request is based on. Mandatory if Unsolicited=false.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ContractID" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Reference to the concerning contract, if applicable. The contract may be either bilateral or commoditized market contract.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="D-PrognosisMessageID" type="UUIDType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the D-Prognosis this request is based on, if it has been agreed that the baseline is based on D-prognoses. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="BaselineReference" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Identification of the baseline prognosis, if another baseline methodology is used than based on D-prognoses</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Currency" type="ISO4217CurrencyType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>ISO 4217 code indicating the currency that applies to the price of the FlexOffer.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Offer Option Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexOfferOptionType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation>The ISP represents one or more Imbalance Settlement Periods and is used by Prognosis and Flex-related messages.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="ISP" type="FlexOfferOptionISPType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="OptionReference" type="xs:string" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The identification of this option.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Price" type="CurrencyAmountType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The asking price for the flexibility offered in this option.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="MinActivationFactor" type="ActivationFactorType" default="1.00">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The minimal activation factor for this OfferOption. An AGR may choose to include MinActivationFactor in FlexOffers even if the DSO is not interested in partial activation. In that case the DSO will simply use an ActivationFactor of 1.00 in every FlexOrder. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Flex Offer Option ISP Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="FlexOfferOptionISPType">
|
||||
<xs:attribute name="Power" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Power specified for this ISP in Watts. Also see the important notes about the sign of this attribute in the main documentation entry for the ISP element.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Start" type="xs:positiveInteger" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of the first ISPs this element refers to. The first ISP of a day has number 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Duration" type="xs:positiveInteger" use="optional" default="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The number of the ISPs this element represents. Optional, default value is 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!--
|
||||
Flex Offer Response Type
|
||||
-->
|
||||
<xs:complexType name="FlexOfferResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:attribute name="FlexOfferMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexOffer message this request is based on.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!--
|
||||
Flex Offer Revocation Type
|
||||
-->
|
||||
<xs:complexType name="FlexOfferRevocationType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType">
|
||||
<xs:attribute name="FlexOfferMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexOffer message that is being revoked: this FlexOffer must have been accepted previously.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!--
|
||||
Flex Offer Revocation Response Type
|
||||
-->
|
||||
<xs:complexType name="FlexOfferRevocationResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:attribute name="FlexOfferRevocationMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexOfferRevocation message this request is based on.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!--
|
||||
Flex Order Type
|
||||
-->
|
||||
<xs:complexType name="FlexOrderType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="FlexMessageType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation>The ISP represents one or more Imbalance Settlement Periods and is used by Prognosis and Flex-related messages.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="ISP" type="FlexOrderISPType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Unsolicited" type="xs:boolean" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indicates whether this FlexOrder is intended to be unsolicited (i.e. without a preceding FlexOffer).</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="FlexOfferMessageID" type="UUIDType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexOffer message this order is based on. Mandatory if Unsolicited=false.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ServiceType" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Service type for this order, the service type determines response characteristics such as latency or asset participation type.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ContractID" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Reference to the concerning bilateral contract, if applicable.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="D-PrognosisMessageID" type="UUIDType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the D-Prognosis this request is based on, if it has been agreed that the baseline is based on D-prognoses. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="BaselineReference" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Identification of the baseline prognosis, if another baseline methodology is used than based on D-prognoses</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Price" type="CurrencyAmountType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The price for the flexibility ordered. Usually, the price should match the price of the related FlexOffer.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Currency" type="ISO4217CurrencyType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>ISO 4217 code indicating the currency that applies to the price of the FlexOffer.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="OrderReference" type="xs:string" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Order number assigned by the DSO originating the FlexOrder. To be stored by the AGR and used in the settlement phase.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="OptionReference" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The OptionReference from the OfferOption chosen from the FlexOffer, if applicable.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ActivationFactor" type="ActivationFactorType" default="1.00">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The activation factor for this OfferOption. The ActivationFactor must be greater than or equal to the MinActivationFactor in the OfferOption chosen from the FlexOffer.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ISP for Flex Orders -->
|
||||
<xs:complexType name="FlexOrderISPType">
|
||||
<xs:attribute name="Power" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Power specified for this ISP in Watts. Also see the important notes about the sign of this attribute in the main documentation entry for the ISP element.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Start" type="xs:positiveInteger" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of the first ISPs this element refers to. The first ISP of a day has number 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Duration" type="xs:positiveInteger" use="optional" default="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The number of the ISPs this element represents. Optional, default value is 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- Flex Order Response Type -->
|
||||
<xs:complexType name="FlexOrderResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:attribute name="FlexOrderMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexOrder that has just been accepted or rejected.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- Flex Settlement Type -->
|
||||
<xs:complexType name="FlexSettlementType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:sequence>
|
||||
<xs:element name="FlexOrderSettlement" type="FlexOrderSettlementType" maxOccurs="unbounded"/>
|
||||
<xs:element name="ContractSettlement" type="ContractSettlementType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="PeriodStart" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>First Period of the settlement period this message applies to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="PeriodEnd" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Last Period of the settlement period this message applies to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Currency" type="ISO4217CurrencyType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>ISO 4217 code indicating the currency that applies to all amounts (flex price, penalty and net settlement) in this message.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- Flex Order Settlement Type -->
|
||||
<xs:complexType name="FlexOrderSettlementType">
|
||||
<xs:sequence>
|
||||
<xs:element name="ISP" type="FlexOrderSettlementISPType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="OrderReference" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Order reference assigned by the DSO when originating the FlexOrder.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Period" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ContractID" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Reference to the concerning bilateral contract, if it is linked to it</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="D-PrognosisMessageID" type="UUIDType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the Prognosis message (more specifically: the D-Prognosis) the FlexOrder is based on, if it has been agreed that the baseline is based on D-prognoses.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="BaselineReference" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Identification of the baseline prognosis, if another baseline methodology is used than based on D-prognoses.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="CongestionPoint" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Entity Address of the Congestion Point the FlexOrder applies to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Price" type="CurrencyAmountType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The price accepted for supplying the ordered amount of flexibility as per the referenced FlexOrder messages.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Penalty" type="CurrencyAmountType" use="optional" default="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Penalty due a non-zero PowerDeficiency</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="NetSettlement" type="CurrencyAmountType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Net settlement amount for this Period: Price minus Penalty.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- Flex Order Settlement ISP Type -->
|
||||
<xs:complexType name="FlexOrderSettlementISPType">
|
||||
<xs:attribute name="Start" type="xs:positiveInteger" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of the first ISPs this element refers to. The first ISP of a day has number 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Duration" type="xs:positiveInteger" use="optional" default="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The number of the ISPs this element represents. Optional, default value is 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="BaselinePower" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Power originally forecast (as per the referenced baseline) for this ISP in Watts.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="OrderedFlexPower" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Amount of flex power ordered (as per the referenced FlexOrder message) for this ISP in Watts.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ActualPower" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Actual amount of power for this ISP in Watts, as measured/determined by the DSO and allocated to the AGR.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DeliveredFlexPower" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Actual amount of flex power delivered for this ISP in Watts, as determined by the DSO.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="PowerDeficiency" type="xs:integer" use="optional" default="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Amount of flex power sold but not delivered for this ISP in Watts, as determined by the DSO.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- Flex Settlement Response Type -->
|
||||
<xs:complexType name="FlexSettlementResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation>The ISP represents one or more Imbalance Settlement Periods and is used by Prognosis and Flex-related messages.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="FlexOrderSettlementStatus" type="FlexOrderSettlementStatusType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="FlexSettlementMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the FlexSettlement message that has just been accepted or rejected</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- Flex Order Settlement Status Type -->
|
||||
<xs:complexType name="FlexOrderSettlementStatusType">
|
||||
<xs:attribute name="OrderReference" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Order reference assigned by the DSO when originating the FlexOrder.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Disposition" type="AcceptedDisputedType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indication whether the AGR accepts the order settlement details provided by the DSO (and will invoice accordingly), or disputes these details.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DisputeReason" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>In case the order settlement was disputed, this attribute must contain a human-readable description of the reason.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- Contract Settlement Type -->
|
||||
<xs:complexType name="ContractSettlementType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation/>
|
||||
</xs:annotation>
|
||||
<xs:element name="Period" type="ContractSettlementPeriodType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="ContractID" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Reference to the concerning bilateral contract.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- Contract Settlement Period Type -->
|
||||
<xs:complexType name="ContractSettlementPeriodType">
|
||||
<xs:sequence>
|
||||
<xs:element name="ISP" type="ContractSettlementISPType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Period" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Period the being settled.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- Contract Settlement ISP Type -->
|
||||
<xs:complexType name="ContractSettlementISPType">
|
||||
<xs:attribute name="Start" type="xs:positiveInteger" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of the first ISPs this element refers to. The first ISP of a day has number 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Duration" type="xs:positiveInteger" use="optional" default="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The number of the ISPs this element represents. Optional, default value is 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ReservedPower" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Amount of flex power that has been reserved (and not released using a FlexReservationUpdate message).</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="RequestedPower" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Amount of flex power that has been both reserved in advance and has been requested using a
|
||||
FlexRequest (i.e. the lowest amount of flex power for this ISP). If there was no FlexRequest,
|
||||
this field is omitted.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="AvailablePower" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Amount of flex power that is considered available based on the FlexRequest in question. In case RequestedPower=0, AvailablePower is defined so that the offered power is allowed to be between 0 and AvailablePower in terms of compliancy (see Appendix 3 for details). In case RequestedPower ≠0, AvailablePower is defined so that the offered power is allowed to exceed the amount of requested power up to AvailablePower. If this is relevant for settlement, the DSO can include this field.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="OfferedPower" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Amount of flex power that has been reserved in advance, requested using a FlexRequest and covered in an offer from the AGR. If there was no offer, this field is omitted. If there were multiple offers, only the one is considered that is most compliant .</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="OrderedPower" type="xs:integer" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Amount of flex power that has been ordered using a FlexOrder message that was based on a FlexOffer, both linked to this contract. If there was no order, this field is omitted. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- ELEMENT DEFINITIONS -->
|
||||
<xs:element name="D-Prognosis" type="D-PrognosisType"/>
|
||||
<xs:element name="D-PrognosisResponse" type="D-PrognosisResponseType"/>
|
||||
<xs:element name="FlexReservationUpdate" type="FlexReservationUpdateType"/>
|
||||
<xs:element name="FlexReservationUpdateResponse" type="FlexReservationUpdateResponseType"/>
|
||||
<xs:element name="FlexRequest" type="FlexRequestType"/>
|
||||
<xs:element name="FlexRequestResponse" type="FlexRequestResponseType"/>
|
||||
<xs:element name="FlexOffer" type="FlexOfferType"/>
|
||||
<xs:element name="FlexOfferResponse" type="FlexOfferResponseType"/>
|
||||
<xs:element name="FlexOfferRevocation" type="FlexOfferRevocationType"/>
|
||||
<xs:element name="FlexOfferRevocationResponse" type="FlexOfferRevocationResponseType"/>
|
||||
<xs:element name="FlexOrder" type="FlexOrderType"/>
|
||||
<xs:element name="FlexOrderResponse" type="FlexOrderResponseType"/>
|
||||
<xs:element name="FlexSettlement" type="FlexSettlementType"/>
|
||||
<xs:element name="FlexSettlementResponse" type="FlexSettlementResponseType"/>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:include schemaLocation="UFTP-common.xsd"/>
|
||||
<xs:include schemaLocation="UFTP-agr-cro.xsd"/>
|
||||
<xs:include schemaLocation="UFTP-agr-dso.xsd"/>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,229 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<!-- -->
|
||||
<!-- ShapeShifter Specification Version -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="SpecVersion">
|
||||
<xs:restriction base="xs:string">
|
||||
<!-- Basic SemVer pattern match, i.e. 3.1.15 -->
|
||||
<xs:pattern value="(\d+\.\d+\.\d+)"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- UUID Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="UUIDType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Entity Address Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="EntityAddressType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="(ea1\.[0-9]{4}-[0-9]{2}\..{1,244}:.{1,244}|ean\.[0-9]{12,34})"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Internet Domain Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="InternetDomainType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- ISO-4217 Currency Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="ISO4217CurrencyType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[A-Z]{3}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Currency Amount Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="CurrencyAmountType">
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:fractionDigits value="4"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Time Zone Name Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="TimeZoneNameType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="(Africa|America|Australia|Europe|Pacific)/[a-zA-Z0-9_/]{3,}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Period Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="PeriodType">
|
||||
<xs:restriction base="xs:date"/>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Time Zone Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="TimeZoneType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="(Africa|America|Australia|Europe|Pacific)/[a-zA-Z0-9_/]{3,}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Activation Factor Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="ActivationFactorType">
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:fractionDigits value="2"/>
|
||||
<xs:minInclusive value="0.01"/>
|
||||
<xs:maxInclusive value="1.00"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- USER Role Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="USEF-RoleType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="AGR"/>
|
||||
<xs:enumeration value="CRO"/>
|
||||
<xs:enumeration value="DSO"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Redispatch by Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="RedispatchByType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="AGR"/>
|
||||
<xs:enumeration value="DSO"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Accepted or Rejected Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="AcceptedRejectedType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Accepted"/>
|
||||
<xs:enumeration value="Rejected"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Available or Requested Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="AvailableRequestedType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Available"/>
|
||||
<xs:enumeration value="Requested"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Accepted or Disputed Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="AcceptedDisputedType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Accepted"/>
|
||||
<xs:enumeration value="Disputed"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Signed Message Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="SignedMessageType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The SignedMessage element represents the secure wrapper used to submit USEF XML messages from the local message queue to the message queue of a remote participant. It contains minimal metadata (which is distinct from the common metadata used for all other messages), allowing the recipient to look up the sender's cryptographic scheme and public keys, and the actual XML message, as transformed (signed/sealed) using that cryptographic scheme.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="SenderDomain" type="InternetDomainType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The Internet domain of the USEF participant sending this message. Upon receiving a message, the recipient should validate that its value matches the corresponding attribute value specified in the inner XML message, once un-sealed: if not, the message must be rejected as invalid.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="SenderRole" type="USEF-RoleType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The USEF role of the participant sending this message: AGR, BRP, CRO, DSO or MDC. Receive-time validation should take place as described for the SenderDomain attribute above.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Body" type="xs:base64Binary" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The Base-64 encoded inner XML message contained in this wrapper, as transformed (signed/sealed) using the sender's cryptographic scheme. The recipient can determine which scheme applies using a DNS or configuration file lookup, based on the combination of SenderDomain and SenderRole.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Payload Message Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="PayloadMessageType" abstract="true">
|
||||
<xs:attribute name="Version" type="SpecVersion" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Version of the Shapeshifter specification used by the USEF participant sending this message.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="SenderDomain" type="InternetDomainType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The Internet domain of the USEF participant sending this message. When receiving a message, its value should match the value specified in the SignedMessage wrapper: otherwise, the message must be rejected as invalid. When replying to this message, this attribute is used to look up the USEF endpoint the reply message should be delivered to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="RecipientDomain" type="InternetDomainType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Internet domain of the participant this message is intended for. When sending a message, this attribute, combined with the RecipientRole, is used to look up the USEF endpoint the message should be delivered to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="TimeStamp" type="xs:dateTime" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Date and time this message was created, including the time zone (ISO 8601 formatted as per http://www.w3.org/TR/NOTE-datetime).</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="MessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Unique identifier (UUID/GUID as per IETF RFC 4122) for this message, to be generated when composing each message.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ConversationID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Unique identifier (UUID/GUID as per IETF RFC 4122) used to correlate responses with requests, to be generated when composing the first message in a conversation and subsequently copied from the original message to each reply message.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Payload Message Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="PayloadMessageResponseType" abstract="true">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType">
|
||||
<xs:attribute name="Result" type="AcceptedRejectedType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indication whether the query was executed successfully or failed.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="RejectionReason" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>In case the query failed, this attribute must contain a human-readable description of the failure reason.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Test Message Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="TestMessageType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType"/>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Test Message Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="TestMessageResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType"/>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- ELEMENT DEFINITIONS -->
|
||||
<!-- -->
|
||||
<xs:element name="SignedMessage" type="SignedMessageType"/>
|
||||
<xs:element name="TestMessage" type="TestMessageType"/>
|
||||
<xs:element name="TestMessageResponse" type="TestMessageResponseType"/>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,188 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:include schemaLocation="UFTP-common.xsd"/>
|
||||
<!-- -->
|
||||
<!-- DSO Portfolio Update Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="DSOPortfolioUpdateType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType">
|
||||
<xs:sequence>
|
||||
<xs:element name="CongestionPoint" type="DSOPortfolioUpdateCongestionPoint" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="TimeZone" type="TimeZoneNameType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Time zone ID (as per the IANA time zone database, http://www.iana.org/time-zones, for example: Europe/Amsterdam) indicating the UTC offset that applies to the Period referenced in this message. Although the time zone is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant UTC offset.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- DSO Portfolio Update Congestion Point Type-->
|
||||
<!-- -->
|
||||
<xs:complexType name="DSOPortfolioUpdateCongestionPoint">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A congestion point that the DSO wants the CRO to update</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="Connection" type="DSOPortfolioUpdateConnectionType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="EntityAddress" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EntityAddress of the Connection.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="StartPeriod" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The first Period that the Connection is part of this CongestionPoint.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="EndPeriod" type="PeriodType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The last Period that the Connection is part of this CongestionPoint. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="MutexOffersSupported" type="xs:boolean" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indicates whether the DSO accepts mutual exclusive FlexOffers on this CongestionPoint.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DayAheadRedispatchBy" type="RedispatchByType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indicates which party is responsible for day-ahead redispatch.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IntradayRedispatchBy" type="RedispatchByType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Indicates which party is responsible for intraday ahead redispatch, AGR or DSO. If not specified, there will be no intraday trading on this CongestionPoint.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- DSO Portfolio Update Connection Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="DSOPortfolioUpdateConnectionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A connection that the DSO wants the CRO to update</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="EntityAddress" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EntityAddress of the Connection.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="StartPeriod" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The first Period that the Connection is part of this CongestionPoint.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="EndPeriod" type="PeriodType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The last Period that the Connection is part of this CongestionPoint. </xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- DSO Portfolio Update Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="DSOPortfolioUpdateResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:attribute name="DSOPortfolioUpdateResponseMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the DSOPortfolioUpdateResponse that has just been accepted or rejected</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- DSO Portfolio Query Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="DSOPortfolioQueryType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType">
|
||||
<xs:attribute name="TimeZone" type="TimeZoneNameType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Time zone ID (as per the IANA time zone database, http://www.iana.org/time-zones, for example: Europe/Amsterdam) indicating the UTC offset that applies to the Period referenced in this message. Although the time zone is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant UTC offset.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Period" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The Period for which the AGR requests the portfolio information.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="EntityAddress" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EntityAddress of the CongestionPoint</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- DSO Portfolio Query Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="DSOPortfolioQueryResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:sequence>
|
||||
<xs:element name="CongestionPoint" type="DSOPortfolioQueryCongestionPointType" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="DSOPortfolioQueryMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the AGRPortfolioQuery that has just been accepted or rejected</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="TimeZone" type="TimeZoneNameType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Time zone ID (as per the IANA time zone database, http://www.iana.org/time-zones, for example: Europe/Amsterdam) indicating the UTC offset that applies to the Period referenced in this message. Although the time zone is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant UTC offset.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Period" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The Period for which the AGR requests the portfolio information.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- DSO Portfolio Update Congestion Point Type-->
|
||||
<!-- -->
|
||||
<xs:complexType name="DSOPortfolioQueryCongestionPointType">
|
||||
<xs:sequence>
|
||||
<xs:element name="Connection" type="DSOPortfolioQueryConnectionType" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="EntityAddress" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EntityAddress of the Connection.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- DSO Portfolio Update Connection Type-->
|
||||
<!-- -->
|
||||
<xs:complexType name="DSOPortfolioQueryConnectionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A Connection that is part of the congestion point.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="EntityAddress" type="EntityAddressType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EntityAddress of the Connection.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="AGR-Domain" type="InternetDomainType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The internet domain of the AGR that represents the prosumer connected on this Connection, if applicable.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- ELEMENT DEFINITIONS -->
|
||||
<!-- -->
|
||||
<xs:element name="DSOPortfolioUpdate" type="DSOPortfolioUpdateType"/>
|
||||
<xs:element name="DSOPortfolioUpdateResponse" type="DSOPortfolioUpdateResponseType"/>
|
||||
<xs:element name="DSOPortfolioQuery" type="DSOPortfolioQueryType"/>
|
||||
<xs:element name="DSOPortfolioQueryResponse" type="DSOPortfolioQueryResponseType"/>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:include schemaLocation="UFTP-common.xsd"/>
|
||||
<xs:include schemaLocation="UFTP-agr-cro.xsd"/>
|
||||
<xs:include schemaLocation="UFTP-cro-dso.xsd"/>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:include schemaLocation="UFTP-common.xsd"/>
|
||||
<xs:include schemaLocation="UFTP-agr-dso.xsd"/>
|
||||
<xs:include schemaLocation="UFTP-cro-dso.xsd"/>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
|
||||
<xs:include schemaLocation="UFTP-common.xsd"/>
|
||||
|
||||
<!-- -->
|
||||
<!-- EAN Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="EANType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[Ee][0-9]{16}"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
<!-- Metering Unit Type -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="MeteringUnitType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="kW">
|
||||
<xs:annotation>
|
||||
<xs:documentation>kW must be used with Power profile values.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="kWh">
|
||||
<xs:annotation>
|
||||
<xs:documentation>kWh must be used with energy profile values (ImportEnergy,ExportEnergy,ImportMeterReading,ExportMeterReading).</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Metering Profile Enum -->
|
||||
<!-- -->
|
||||
<xs:simpleType name="MeteringProfileEnum">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Power">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The average active power during ISP, considering both import and export energy. Power=(ImportEnergy-ExportEnergy)*(60/ISP-Length-Minutes).
|
||||
For example with a 15 minute ISP length we have a multiplier of 4, with a 30 minute ISP length we have a multiplier of 2.
|
||||
Including the power profile is recommended. It is expected that in the following major version the power will become a mandatory value.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="ImportEnergy">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Imported active energy, consumed during the ISP</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="ExportEnergy">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Exported active energy, generated during the ISP</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="ImportMeterReading">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Cumulative metered imported active energy reading, at the end of the ISP</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="ExportMeterReading">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Cumulative metered exported active energy reading, at the end of the ISP</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<!-- -->
|
||||
<!-- Metering Message Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="MeteringMessageType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageType">
|
||||
<xs:sequence>
|
||||
<xs:annotation>
|
||||
<xs:documentation>The message must contain one or more profiles with metering, energy or price values.</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:element name="Profile" type="MeteringProfileType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Revision" type="xs:long" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Revision of this message. A sequence number that must be incremented each time a new revision of a metering message is sent.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ISP-Duration" type="xs:duration" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>ISO 8601 time interval (minutes only, for example PT15M) indicating the duration of the ISPs referenced in this message. Although the ISP length is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant ISP duration.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="TimeZone" type="TimeZoneNameType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Time zone ID (as per the IANA time zone database, http://www.iana.org/time-zones, for example: Europe/Amsterdam) indicating the UTC offset that applies to the Period referenced in this message. Although the time zone is a market-wide fixed value, making this assumption explicit in each message is important for validation purposes, allowing implementations to reject messages with an errant UTC offset.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Currency" type="ISO4217CurrencyType" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>ISO 4217 code indicating the currency that applies to the price of the Tariff Rates. Only required if ImportTariff or ExportTariff profiles are included.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Period" type="PeriodType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Day (in yyyy-mm-dd format) the ISPs referenced in this Metering message belong to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="EAN" type="EANType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>EAN of the meter the message applies to.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Metering Profile Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="MeteringProfileType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A profile carries a sequence of ISPs with a defined type of metering data</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="ISP" type="MeteringISPType" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="ProfileType" type="MeteringProfileEnum" use="required" />
|
||||
<xs:attribute name="Unit" type="MeteringUnitType" use="required" />
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Metering ISP Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="MeteringISPType">
|
||||
<xs:attribute name="Start" type="xs:integer" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Number of the ISP this element refers to. The first ISP of a day has number 1.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Value" type="xs:decimal" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Metering, energy or price value at the end of this ISP, in the designated profile units.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
<!-- -->
|
||||
<!-- Metering Response Type -->
|
||||
<!-- -->
|
||||
<xs:complexType name="MeteringResponseType">
|
||||
<xs:complexContent>
|
||||
<xs:extension base="PayloadMessageResponseType">
|
||||
<xs:attribute name="MeteringMessageID" type="UUIDType" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>MessageID of the Metering message this response is based on.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<!-- ELEMENT DEFINITIONS -->
|
||||
<xs:element name="Metering" type="MeteringMessageType"/>
|
||||
<xs:element name="MeteringResponse" type="MeteringResponseType"/>
|
||||
</xs:schema>
|
||||
Reference in New Issue
Block a user