<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:imo="http://www.theIMO.com/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.theIMO.com/schema" elementFormDefault="qualified">
	<!-- IMO Automated Document definition schema -->
	<xs:include schemaLocation="IMODocument_r1.xsd"/>
	<!-- Document Body -->
	<xs:element name="IMODocBody">
		<xs:annotation>
			<xs:documentation>Document Body</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Date" type="xs:date" nillable="false">
					<xs:annotation>
						<xs:documentation>Date for which the data applies</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="Generators">
					<xs:annotation>
						<xs:documentation>Wrapper tag to encapsulate Generator</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence maxOccurs="unbounded">
							<xs:element name="Generator">
								<xs:annotation>
									<xs:documentation>Wrapper tag to encapsulate GeneratorName, FuelType, Outputs, and Capabilities</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="GeneratorName" nillable="false">
											<xs:annotation>
												<xs:documentation>For generators, this either the name of the generator, or the station (for aggregrated generators)</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:minLength value="1"/>
													<xs:maxLength value="255"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="FuelType" nillable="false">
											<xs:annotation>
												<xs:documentation>Fuel type</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:minLength value="1"/>
													<xs:maxLength value="15"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Outputs">
											<xs:annotation>
												<xs:documentation>Wrapper tag to encapsulate Output</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence maxOccurs="24">
													<xs:element name="Output">
														<xs:annotation>
															<xs:documentation>Wrapper tag to encapsulate Hour and EnergyMW</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Hour" type="imo:Hour1To24">
																	<xs:annotation>
																		<xs:documentation>Hour ending</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="EnergyMW" type="imo:MW_float" minOccurs="0">
																	<xs:annotation>
																		<xs:documentation>MW output</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="Capabilities">
											<xs:annotation>
												<xs:documentation>Wrapper tag to encapsulate Capability</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence maxOccurs="24">
													<xs:element name="Capability">
														<xs:annotation>
															<xs:documentation>Wrapper tag to encapsulate Hour and EnergyMW</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Hour" type="imo:Hour1To24">
																	<xs:annotation>
																		<xs:documentation>Hour ending</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="EnergyMW" type="imo:MW_float">
																	<xs:annotation>
																		<xs:documentation>For non-VGs, capability MW For VGs, forecast MW</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="Capacities" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Wrapper tag to encapsulate Capacity</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence maxOccurs="24">
													<xs:element name="AvailCapacity">
														<xs:annotation>
															<xs:documentation>Wrapper tag to encapsulate Hour and EnergyMW</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Hour" type="imo:Hour1To24">
																	<xs:annotation>
																		<xs:documentation>Hour ending</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="EnergyMW" type="imo:MW_float">
																	<xs:annotation>
																		<xs:documentation>Available capacity MW</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="Hour1To24">
		<xs:annotation>
			<xs:documentation>Delivery hour indicates hour ending (1 to 24)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="24"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MW_float">
		<xs:annotation>
			<xs:documentation>MW value (active power)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:float"/>
	</xs:simpleType>
	<xs:element name="Hour" type="imo:Hour1To24" nillable="false"/>
</xs:schema>
