<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns="http://sfera.sk/xmtrade/isot/types/IDM/2016/04" 
            targetNamespace="http://sfera.sk/xmtrade/isot/types/IDM/2016/04"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">

	<xsd:element name="ISOTEDATA">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="SenderIdentification">
					<xsd:complexType>
						<xsd:attribute name="id" use="required">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:maxLength value="16"/>
									<xsd:minLength value="13"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="coding-scheme" use="required">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="14"/>
									<xsd:enumeration value="15">
									</xsd:enumeration>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="ReceiverIdentification" minOccurs="0">
					<xsd:complexType>
						<xsd:attribute name="id" use="required">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:maxLength value="16"/>
									<xsd:minLength value="13"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="coding-scheme" use="required">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="14"/>
									<xsd:enumeration value="15">
									</xsd:enumeration>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="Reference" minOccurs="0">
					<xsd:complexType>
						<xsd:attribute name="id" use="required">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:maxLength value="35"/>
									<xsd:minLength value="1"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="Trade" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="TimeData" minOccurs="0" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:attribute name="datetime" type="xsd:dateTime" use="required"/>
									<xsd:attribute name="datetime-type" use="required">
										<xsd:simpleType>
											<xsd:restriction base="xsd:string">
												<xsd:enumeration value="DTC"/>
												<xsd:enumeration value="DTR"/>
												<xsd:enumeration value="DTO"/>
											</xsd:restriction>
										</xsd:simpleType>
									</xsd:attribute>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="ProfileData" minOccurs="0" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="Data" maxOccurs="unbounded">
											<xsd:complexType>
												<xsd:attribute name="period-from" use="optional">
													<xsd:simpleType>
														<xsd:restriction base="xsd:integer">
															<xsd:minInclusive value="0"/>
															<xsd:maxInclusive value="25"/>
														</xsd:restriction>
													</xsd:simpleType>
												</xsd:attribute>
												<xsd:attribute name="period-to" use="optional">
													<xsd:simpleType>
														<xsd:restriction base="xsd:integer">
															<xsd:minInclusive value="0"/>
															<xsd:maxInclusive value="25"/>
														</xsd:restriction>
													</xsd:simpleType>
												</xsd:attribute>
												<xsd:attribute name="value" use="required">
													<xsd:simpleType>
														<xsd:restriction base="xsd:string">
															<xsd:pattern value="[0-9]{4}-((0?[1-9])|([1][0-2]))-((0?[1-9])|([12][0-9])|(3[01]))T(([01]?[0-9])|(2[0-3])):[0-5]?[0-9]:[0-5]?[0-9]"/>
															<xsd:pattern value="-?\d+(\.\d{1,3})?"/>
														</xsd:restriction>
													</xsd:simpleType>
												</xsd:attribute>
												<xsd:attribute name="unit" use="required">
													<xsd:simpleType>
														<xsd:restriction base="xsd:string">
															<xsd:enumeration value="MWH"/>
															<xsd:enumeration value="MW"/>
															<xsd:enumeration value="EUR"/>
														</xsd:restriction>
													</xsd:simpleType>
												</xsd:attribute>
												<xsd:attribute name="seq-num" use="optional">
													<xsd:simpleType>
														<xsd:restriction base="xsd:integer">
															<xsd:minInclusive value="0"/>
														</xsd:restriction>
													</xsd:simpleType>
												</xsd:attribute>
											</xsd:complexType>
										</xsd:element>
									</xsd:sequence>
									<xsd:attribute name="profile-role" use="required">
										<xsd:simpleType>
											<xsd:restriction base="xsd:string">
												<xsd:enumeration value="AC01"/>
												<xsd:enumeration value="AC02"/>
												<xsd:enumeration value="BC01"/>
												<xsd:enumeration value="BP01"/>
												<xsd:enumeration value="TC01"/>
												<xsd:enumeration value="TP01"/>
												<xsd:enumeration value="SC08"/>
												<xsd:enumeration value="SP08"/>
												<xsd:enumeration value="SC58"/>
												<xsd:enumeration value="SP58"/>
												<xsd:enumeration value="SC09"/>
												<xsd:enumeration value="SP09"/>
												<xsd:enumeration value="SC59"/>
												<xsd:enumeration value="SP59"/>
												<xsd:enumeration value="SC10"/>
												<xsd:enumeration value="SP10"/>
											</xsd:restriction>
										</xsd:simpleType>
									</xsd:attribute>
									<xsd:attribute name="trade-id" use="optional">
										<xsd:simpleType>
											<xsd:restriction base="xsd:string">
												<xsd:pattern value="[123456789]\d{0,17}"/>
											</xsd:restriction>
										</xsd:simpleType>
									</xsd:attribute>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="Comment" minOccurs="0">
								<xsd:complexType>
									<xsd:simpleContent>
										<xsd:extension base="xsd:string"/>
									</xsd:simpleContent>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="Party" minOccurs="0" maxOccurs="4">
								<xsd:complexType>
									<xsd:attribute name="id" use="required">
										<xsd:simpleType>
											<xsd:restriction base="xsd:string">
												<xsd:maxLength value="16"/>
												<xsd:minLength value="13"/>
											</xsd:restriction>
										</xsd:simpleType>
									</xsd:attribute>
									<xsd:attribute name="role" use="required">
										<xsd:simpleType>
											<xsd:restriction base="xsd:string">
												<xsd:enumeration value="TO">
												</xsd:enumeration>
											</xsd:restriction>
										</xsd:simpleType>
									</xsd:attribute>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
						<xsd:attribute name="id" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:pattern value="[123456789]\d{0,17}"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="trade-day" type="xsd:date" use="optional"/>
						<xsd:attribute name="trade-month" type="xsd:gYearMonth" use="optional"/>
						<xsd:attribute name="order-expiration" type="xsd:dateTime" use="optional"/>
						<xsd:attribute name="trade-type" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="N"/>
									<xsd:enumeration value="P"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="block-order">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="A"/>
									<xsd:enumeration value="N"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="block-type" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="BL"/>
									<xsd:enumeration value="PL"/>
									<xsd:enumeration value="OP"/>
									<xsd:enumeration value="V"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="indication">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="N"/>
									<xsd:enumeration value="FOK"/>
									<xsd:enumeration value="IOC"/>
									<xsd:enumeration value="AON"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="market" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="VDT"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="trade-stage" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="N"/>
									<xsd:enumeration value="P"/>
									<xsd:enumeration value="Z"/>
									<xsd:enumeration value="C"/>
									<xsd:enumeration value="S"/>
									<xsd:enumeration value="E"/>
									<xsd:enumeration value="R"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="trader-id" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:pattern value="[123456789]\d{0,17}"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="delivery-duration" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="15"/>
									<xsd:enumeration value="60"/>
								</xsd:restriction>
							</xsd:simpleType>
							</xsd:attribute>
							<xsd:attribute name="sett-curr">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="EUR"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="market-area">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="SK"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="area-from" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:minLength value="16"/>
									<xsd:maxLength value="16"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="area-to" use="optional">
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:minLength value="16"/>
									<xsd:maxLength value="16"/>
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
			<xsd:attribute name="id" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="35"/>
						<xsd:minLength value="1"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="message-code" use="required">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="801"/>
						<xsd:enumeration value="804"/>
						<xsd:enumeration value="806"/>
						<xsd:enumeration value="809"/>
						<xsd:enumeration value="812"/>
						<xsd:enumeration value="820"/>
						<xsd:enumeration value="830"/>
						<xsd:enumeration value="811"/>
						<xsd:enumeration value="813"/>
						<xsd:enumeration value="843"/>
						<xsd:enumeration value="953"/>
						<xsd:enumeration value="963"/>
						<xsd:enumeration value="573"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="date-time" type="xsd:dateTime" use="required"/>
			<xsd:attribute name="dtd-version" type="xsd:string" use="required" fixed="1"/>
			<xsd:attribute name="dtd-release" type="xsd:string" use="required" fixed="1"/>
			<xsd:attribute name="answer-required" type="xsd:boolean" use="required"/>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
