﻿<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.1">
	<xs:element name="PowerStatusReport">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="BasicData" minOccurs="1" maxOccurs="1">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="SendTime" type="xs:dateTime">
								<xs:annotation>
                  <xs:documentation>
                    UTC-tid
                  </xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="MessageID" type="xs:ID">
								<xs:annotation>
                  <xs:documentation>
                    Används ej
                  </xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="OrganizationName" type="xs:string">
								<xs:annotation>
                  <xs:documentation>
                    Ignoreras vid update (POST)
                  </xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="ReportingAreas" minOccurs="1" maxOccurs="1">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="ReportingArea" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
                    <xs:element name="AreaType" type="AreaTypeEnum">
                      <xs:annotation>
                        <xs:documentation>
                          Ange K för Kommun eller F för Församling. Endast K stödjs för nuvarande. 
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AreaCode" type="xs:string">
                      <xs:annotation>
                        <xs:documentation>
                          Kommunareans fyrställiga kommunkod som en sträng. Inledande nollor skall inkluderas
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
										<xs:element name="TotalCustomers" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Antal kunder hos företaget totalt inom arean
                        </xs:documentation>
                      </xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:int">
													<xs:minInclusive value="0" />
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="AreaName" type="xs:string" minOccurs="0">
											<xs:annotation>
                        <xs:documentation>
                          Areans namn
                          Ignoreras vid update (POST)
                        </xs:documentation>
											</xs:annotation>
										</xs:element>
                    <xs:element name="ReportingTypeMode" type="ReportingTypeEnum" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>
                          Anger vilket uppdateringsläge som är aktivt för arean. Statusrapporter kan skickas via WebAPI endast om arean är satt i automatiskt läge.
                          Ignoreras vid update (POST)
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="LatestReportingType" type="ReportingTypeEnum" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>
                          Anger rapporteringsmetod för den senaste statusuppdateringen (avbrott eller inte)
                          Ignoreras vid update (POST)
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="LatestReportTime" type="xs:dateTime" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>
                          UTC-tid
                          Tidpunkt för senaste statusuppdateringen (avbrott eller inte)
                          Ignoreras vid update (POST)
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>				
                    <xs:element name="LatestDescription" type="xs:string" minOccurs="1"/>
                    <xs:element name="LatestReport" minOccurs="0" maxOccurs="1">
                      <xs:annotation>
                        <xs:documentation>
                          Vid update (POST) skall denna exkluderas för att rapportera att det inte finns något avbrott
                        </xs:documentation>
                      </xs:annotation>	
                        <xs:complexType>
												<xs:sequence>
                          <xs:element name="AffectedCustomers">
                            <xs:annotation>
                              <xs:documentation>
                                Antal berörda kunder
                              </xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
															<xs:restriction base="xs:int">
																<xs:minInclusive value="0" />
															</xs:restriction>
														</xs:simpleType>
													</xs:element> 
													<xs:element name="StartTime" type="xs:dateTime" minOccurs="1">
														<xs:annotation>
															<xs:documentation>
                              UTC
                              Tidpunkt då avbrottet startade. Tider i framtiden accepteras inte.
                             </xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="ExpectedToWork" type="xs:dateTime" minOccurs="0" nillable="true">
														<xs:annotation>
															<xs:documentation>
                              UTC-tidpunkt då avbrottet förväntas vara över. Om den saknas eller är null sätts den till [tidpunkten vid API-anropet] + 11 timmar.
                      </xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="FaultLocation" type="FaultLocationTypeEnum" minOccurs="1">
														<xs:annotation>
															<xs:documentation>
                               Anger om avbrottet är i det egna nätet, i det överliggande nätet eller i båda
                              </xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Type" type="PowerOutageTypeEnum" minOccurs="1" />
													<xs:element name="GeographicalInfo" minOccurs="0" nillable="true">
														<xs:annotation>
															<xs:documentation>
                                Används ej
                              </xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="EPSG" type="xs:string" />
																<xs:element name="Coordinates" minOccurs="0">
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="Coordinate" minOccurs="0" maxOccurs="unbounded">
																				<xs:complexType>
																					<xs:sequence>
																						<xs:element name="X-Coordinate" type="xs:string" minOccurs="1" maxOccurs="1" />
																						<xs:element name="Y-Coordinate" type="xs:string" minOccurs="1" maxOccurs="1" />
																					</xs:sequence>
																				</xs:complexType>
																			</xs:element>
																		</xs:sequence>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Zipcodes" minOccurs="0" nillable="true">
														<xs:annotation>
															<xs:documentation>
                                Används ej
                              </xs:documentation>
														</xs:annotation><xs:complexType>
															<xs:sequence>
																<xs:element name="Zipcode" type="xs:string" minOccurs="0" maxOccurs="unbounded" nillable="true" />
															</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="PowerOutageTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Planned" />
			<xs:enumeration value="Unplanned" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AreaTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="K" />
			<xs:enumeration value="F" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="FaultLocationTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="OwnNet" />
      <xs:enumeration value="FeedingNet" />
      <xs:enumeration value="OwnNetAndFeedingNet" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ReportingTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Manual" />
			<xs:enumeration value="Automatic" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ReportingModeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Manual" />
			<xs:enumeration value="Automatic" />
		</xs:restriction>
	</xs:simpleType>
</xs:schema>