<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by ICT (Stichting Deltares) -->
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by rooij_e (WL | Delft Hydraulics) -->
<!--  Delft FEWS Published Interface (Copyright 2003 WL | Delft Hydraulics) -->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:fews="http://www.wldelft.nl/fews/PI" targetNamespace="http://www.wldelft.nl/fews/PI" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
	<!--    -->
	<simpleType name="propertyReferenceString">
		<restriction base="string">
			<pattern value=".*[@].*"/>
		</restriction>
	</simpleType>
	<simpleType name="idString">
		<restriction base="string"/>
	</simpleType>
	<simpleType name="intStringType">
		<annotation>
			<documentation>
				Integer that allows (global) properties
			</documentation>
		</annotation>
		<union memberTypes="int fews:propertyReferenceString"/>
	</simpleType>
	<simpleType name="booleanStringType">
		<annotation>
			<documentation> 
				Boolean that allows (global) properties
			</documentation>
		</annotation>
		<union memberTypes="boolean fews:propertyReferenceString"/>
	</simpleType>
	<simpleType name="doubleStringType">
		<annotation>
			<documentation>
				Double that allows use of location attributes
			</documentation>
		</annotation>
		<union memberTypes="double fews:propertyReferenceString"/>
	</simpleType>
	<!--    -->
	<simpleType name="versionString">
		<restriction base="string">
			<enumeration value="1.2">
				<annotation>
					<documentation>
						initial version.
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.3">
				<annotation>
					<documentation>
						comment added to pi_timeseries.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.4">
				<annotation>
					<documentation>
						qualifierId, ensembleId, ensembleMemberIndex added to pi_timeseries.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.5">
				<annotation>
					<documentation>
						forecastTime added to pi_timeseries.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.6">
				<annotation>
					<documentation>
						forecastTime added to pi_profiles.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.7">
				<annotation>
					<documentation>
						location coordinates added to pi_timeseries.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.8">
				<annotation>
					<documentation>
						log level to pi_run.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.9">
				<annotation>
					<documentation>
						added pi_timeseriesparameters.xsd, pi_filters.xsd included pi_locations.xsd in build. altered pi_locations.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.10">
				<annotation>
					<documentation>
						added user and ensembleMemberId to pi_timeseries.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.11">
				<annotation>
					<documentation>
						added flag source to pi_timeseries.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.12">
				<annotation>
					<documentation>
						added comments and flags to pi_ratingcurves.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.13">
				<annotation>
					<documentation>
						Since 2014.01 added header properties to pi_timeseries.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.14">
				<annotation>
					<documentation>
						Since 2014.02 added header threshold group info to pi_timeseries.xsd
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.15">
				<annotation>
					<documentation>Since 2015.01 added parent location id to pi_locations.xsd</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.16">
				<annotation>
					<documentation>Since 2015.01 added statistics to pi_timeseries.xsd</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.17">
				<annotation>
					<documentation>Since 2015.02 added moduleInstanceId to pi_timeseries.xsd</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.18">
				<annotation>
					<documentation>Since 2015.02 added times attribute to time step</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.19">
				<annotation>
					<documentation>Since version 1.19. Used for flag source column names and their custom flag source values. For example a flag source column named 'A' that has a custom flag source
						value 'OK' will result
						in an attribute:
						fs:A="OK"
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.20">
				<annotation>
					<documentation>Since 2015.02 added approved time to header</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.21">
				<annotation>
					<documentation>Since 2016.01 added samples support</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.22">
				<annotation>
					<documentation>Since 2016.02 added threshold labels to pi_timeseries.xsd</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.23">
				<annotation>
					<documentation>Since 2016.02 a time / value range to event to pi_timeseries.xsd</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.24">
				<annotation>
					<documentation>Since 2017.02 added minutes attribute to time step</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.25">
				<annotation>
					<documentation>Since 2018.01 added parameter group to pi_timeseriesparameter.xsd</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.26">
				<annotation>
					<documentation>Since 2019.02 added product to pi_timeseries.xsd</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.27">
				<annotation>
					<documentation>Since 2020.02 added threshold description and threshold comment</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.28">
				<annotation>
					<documentation>Since 2020.02 added timeZone and date,time to pi_diag.xsd</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.29">
				<annotation>
					<documentation>Since 2021.01 added detection</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.30">
				<annotation>
					<documentation>Since 2021.02 added parameter attributes</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.31">
				<annotation>
					<documentation>Since 2021.02 added pi time series value source, state, use milliseconds time format when needed.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.32">
				<annotation>
					<documentation>Since 2022.02 added parameterGroupName to timeSeries parameters.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.33">
				<annotation>
					<documentation>Since 2023.01 added properties to pi_ratingcurves.xsd.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="1.34">
				<annotation>
					<documentation>Since 2023.02 split sample and value properties for pi_samples.xsd</documentation>
				</annotation>
			</enumeration>

		</restriction>
	</simpleType>
	<!--    -->
	<simpleType name="nameString">
		<restriction base="string"/>
	</simpleType>
	<!-- -->
	<simpleType name="commentString">
		<restriction base="string"/>
	</simpleType>
	<!--    -->
	<simpleType name="eventCodeString">
		<restriction base="string">
			<pattern value="[^:]+"/>
		</restriction>
	</simpleType>
	<!--    -->
	<complexType name="TimeStepComplexType">
		<annotation>
			<documentation>The time unit element has three attributes, unit and divider and multiplier. the unit is second, minute, hour, week, month year. The divider attribute is optional (default = 1).</documentation>
		</annotation>
		<attribute name="unit" type="fews:timeStepUnitEnumStringType"/>
		<attribute name="divider" type="positiveInteger" use="optional" default="1"/>
		<attribute name="multiplier" type="positiveInteger" use="optional" default="1"/>
		<attribute name="times" type="fews:shortTimeListType" use="optional">
			<annotation>
				<documentation>Defines the time step by a list of times without dates, e.g. "10:00 23:00". In this case it is not allowed to specify a unit, divider and multiplier</documentation>
			</annotation>
		</attribute>
		<attribute name="minutes" type="fews:shortMinutesListType" use="optional">
			<annotation>
				<documentation>Since 2017.02. Defines the time step by a list of minutes (with prefix 0 for single digits), e.g. "05 25". In this case it is not allowed to specify a unit, divider and multiplier</documentation>
			</annotation>
		</attribute>
	</complexType>

	<simpleType name="shortTimeListType">
		<restriction base="string">
			<pattern value="(([0-1][0-9]|[2][0-4]):([0-5][0-9])(:([0-5][0-9]))? )*([0-1][0-9]|[2][0-4]):([0-5][0-9](:([0-5][0-9]))?)"/>
		</restriction>
	</simpleType>
	<simpleType name="shortMinutesListType">
		<restriction base="string">
			<pattern value="(([0-5][0-9]) )*([0-5][0-9])"/>
		</restriction>
	</simpleType>
	<!--    -->
	<simpleType name="timeStepUnitEnumStringType">
		<restriction base="string">
			<enumeration value="second"/>
			<enumeration value="minute"/>
			<enumeration value="hour"/>
			<enumeration value="day"/>
			<enumeration value="week"/>
			<enumeration value="month"/>
			<enumeration value="year"/>
			<enumeration value="nonequidistant"/>
		</restriction>
	</simpleType>
	<!--    -->
	<complexType name="TimeStepUnitComplexType">
		<annotation>
			<documentation>The time unit element has two attributes, unit and divider. the unit is required and can be 1, 2, 3, or 4 meaning: year, month, day and hour. The divider attribute is optional (default = 1).</documentation>
		</annotation>
		<attribute name="unit" use="required">
			<simpleType>
				<restriction base="int">
					<enumeration value="1"/>
					<enumeration value="2"/>
					<enumeration value="3"/>
					<enumeration value="4"/>
				</restriction>
			</simpleType>
		</attribute>
		<attribute name="divider" type="int" use="optional" default="1">
			<annotation>
				<documentation>Example: to construct timeSteps op 5 seconds use unit 4 (hours) and a divider of 720. For daily timeSteps use unit 2 (day) and divider 1.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<!--    -->
	<simpleType name="GeoDatumEnumStringType">
		<annotation>
			<documentation>The geographical datum for the location data. Presently only WGS-1984, OS 1936 and LOCAL are recognised. LOCAL indicates a local grid.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="LOCAL"/>
			<enumeration value="WGS 1984"/>
			<enumeration value="Ordnance Survey Great Britain 1936"/>
			<enumeration value="TWD 1967"/>
			<enumeration value="Gauss Krueger Meridian2"/>
			<enumeration value="Gauss Krueger Meridian3"/>
			<enumeration value="Gauss Krueger Austria M34"/>
			<enumeration value="Gauss Krueger Austria M31"/>
			<enumeration value="Rijks Driehoekstelsel"/>
			<enumeration value="JRC"/>
			<enumeration value="DWD"/>
			<enumeration value="KNMI Radar"/>
			<enumeration value="CH1903"/>
			<enumeration value="PAK1"/>
			<enumeration value="PAK2"/>
			<enumeration value="SVY21"/>
		</restriction>
	</simpleType>
	<simpleType name="UtmGeoDatumStringType">
		<restriction base="string">
			<pattern value="UTM((0[1-9])|([1-5][0-9])|(UTM60))[NS]"/>
		</restriction>
	</simpleType>
	<simpleType name="GeoDatumStringType">
		<union memberTypes="fews:GeoDatumEnumStringType fews:UtmGeoDatumStringType"/>
	</simpleType>
	<!--    -->
	<simpleType name="LocationIdSimpleType">
		<annotation>
			<documentation>Location ID, defined by the model</documentation>
		</annotation>
		<restriction base="string"/>
	</simpleType>
	<!--    -->
	<simpleType name="ParameterSimpleType">
		<annotation>
			<documentation>Content of the data (Discharge, Precipitation, VPD); defined by the model</documentation>
		</annotation>
		<restriction base="string"/>
	</simpleType>
	<!--    -->
	<group name="TimeZoneChoice">
		<choice>
			<element name="timeZone" type="fews:TimeZoneSimpleType" default="0.0">
				<annotation>
					<documentation>The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS</documentation>
				</annotation>
			</element>
			<element name="daylightSavingObservingTimeZone" type="fews:DaylightSavingObservedTimeZoneEnumStringType">
				<annotation>
					<documentation>Id of atime zone that is observing daylight saving time</documentation>
				</annotation>
			</element>
		</choice>
	</group>
	<!--    -->
	<simpleType name="TimeZoneSimpleType">
		<annotation>
			<documentation>The timeZone (in decimal hours shift from GMT) e.g. -1.0 or 3.5. If not present the default timezone configured in the general adapter or import module is used. Always written when exported from FEWS</documentation>
		</annotation>
		<restriction base="double"/>
	</simpleType>

	<simpleType name="DaylightSavingObservedTimeZoneEnumStringType">
		<annotation>
			<documentation>time zones that use day light saving in summer</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="AST">
				<annotation>
					<documentation>Alaska Standard Time, winter:GMT-9 summer:GMT-8</documentation>
				</annotation>
			</enumeration>
			<enumeration value="PST">
				<annotation>
					<documentation>Pacific Standard Time, winter:GMT-8 summer:GMT-7</documentation>
				</annotation>
			</enumeration>
			<enumeration value="MST">
				<annotation>
					<documentation>Mountain Standard Time, winter and summer:GMT-7</documentation>
				</annotation>
			</enumeration>
			<enumeration value="CST">
				<annotation>
					<documentation>Central Standard Time, winter:GMT-6 summer:GMT-5</documentation>
				</annotation>
			</enumeration>
			<enumeration value="IET">
				<annotation>
					<documentation>Eastern Standard Time, winter:GMT-5 summer:GMT-4</documentation>
				</annotation>
			</enumeration>
			<enumeration value="CNT">
				<annotation>
					<documentation>Newfoundland Standard Time, winter:GMT-3:30 summer:GMT-2:30</documentation>
				</annotation>
			</enumeration>
			<enumeration value="AGT">
				<annotation>
					<documentation>Argentine Time, winter:GMT-3 summer:GMT-2</documentation>
				</annotation>
			</enumeration>
			<enumeration value="BET">
				<annotation>
					<documentation>Brasilia Time, winter:GMT-3 summer:GMT-2</documentation>
				</annotation>
			</enumeration>
			<enumeration value="WET">
				<annotation>
					<documentation>Western European Time, winter:GMT+0 summer:GMT+1</documentation>
				</annotation>
			</enumeration>
			<enumeration value="CET">
				<annotation>
					<documentation>Central European Time, winter:GMT+1 summer:GMT+2</documentation>
				</annotation>
			</enumeration>
			<enumeration value="MET">
				<annotation>
					<documentation>Middle Europe Time, winter:GMT+1 summer:GMT+2</documentation>
				</annotation>
			</enumeration>
			<enumeration value="EET">
				<annotation>
					<documentation>Eastern European Time, winter:GMT+2 summer:GMT+3</documentation>
				</annotation>
			</enumeration>
			<enumeration value="AZT">
				<annotation>
					<documentation>Azerbaijan Time, winter:GMT+4 summer:GMT+5</documentation>
				</annotation>
			</enumeration>
			<enumeration value="NET">
				<annotation>
					<documentation>Armenia Time, winter:GMT+4 summer:GMT+5</documentation>
				</annotation>
			</enumeration>
			<enumeration value="AET">
				<annotation>
					<documentation>Australia Eastern Time (New South Wales), winter:GMT+10 summer:GMT+11</documentation>
				</annotation>
			</enumeration>
			<enumeration value="AWT">
				<annotation>
					<documentation>Since 2013.01. Australia Western Time, winter:GMT+8 summer:GMT+9</documentation>
				</annotation>
			</enumeration>
			<enumeration value="NST">
				<annotation>
					<documentation>New Zealand Standard Time, winter:GMT+12 summer:GMT+13</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>

	<!--    -->
	<simpleType name="dateType">
		<restriction base="date">
			<pattern value="\d\d\d\d-\d\d-\d\d"/>
		</restriction>
	</simpleType>
	<simpleType name="timeType">
		<restriction base="time">
			<pattern value="(\d\d:\d\d:\d\d)|(\d\d:\d\d:\d\d.\d\d\d)"/>
		</restriction>
	</simpleType>
	<complexType name="DateTimeComplexType">
		<attribute name="date" type="fews:dateType" use="required"/>
		<attribute name="time" type="fews:timeType" use="required"/>
	</complexType>
	<simpleType name="timeSeriesType">
		<annotation>
			<documentation>Type of data, either accumulative or instantaneous. For accumulative data the time/date of the event is the moment at which the data was gathered.
			</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="accumulative"/>
			<enumeration value="instantaneous"/>
			<enumeration value="mean"/>
		</restriction>
	</simpleType>
	<group name="StatisticsGroup">
		<sequence>
			<element name="firstValueTime" type="fews:DateTimeComplexType" minOccurs="0"/>
			<element name="lastValueTime" type="fews:DateTimeComplexType"  minOccurs="0"/>
			<element name="maxValue" type="float"  minOccurs="0"/>
			<element name="minValue" type="float" minOccurs="0"/>
			<element name="valueCount" type="int" />
			<element name="maxWarningLevelName" type="string" minOccurs="0" />
		</sequence>
	</group>
	<complexType name="PropertiesComplexType">
		<sequence>
			<element name="description" type="string" minOccurs="0"/>
			<choice minOccurs="0" maxOccurs="unbounded">
				<element name="string" type="fews:StringPropertyComplexType"/>
				<element name="int" type="fews:IntPropertyComplexType"/>
				<element name="float" type="fews:FloatPropertyComplexType"/>
				<element name="double" type="fews:DoublePropertyComplexType">
					<annotation>
						<documentation>Since 2014.01</documentation>
					</annotation>
				</element>
				<element name="bool" type="fews:BoolPropertyComplexType"/>
				<element name="dateTime" type="fews:DateTimePropertyComplexType">
					<annotation>
						<documentation>Since 2014.01</documentation>
					</annotation>
				</element>
			</choice>
		</sequence>
	</complexType>
	<group name="AttributesSequence">
		<sequence>
			<element name="attribute" type="fews:AttributeComplexType" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Custom attributes, used in locations.
					</documentation>
				</annotation>
			</element>
		</sequence>
	</group>
	<complexType name="AttributeComplexType">
		<sequence>
			<element name="description" type="fews:nonEmptyStringType" minOccurs="0">
				<annotation>
					<documentation>Describes where and why this attribute is used</documentation>
				</annotation>
			</element>
			<element name="startDateTime" type="fews:nonEmptyStringType" minOccurs="0">
				<annotation>
					<documentation>Available since 2019.02.</documentation>
				</annotation>
			</element>
			<element name="endDateTime" type="fews:nonEmptyStringType" minOccurs="0">
				<annotation>
					<documentation>Available since 2019.02.</documentation>
				</annotation>
			</element>
			<choice>
				<element name="text" type="fews:nonEmptyStringType">
					<annotation>
						<documentation>Location attribute of the type text.
						</documentation>
					</annotation>
				</element>
				<element name="number" type="fews:nonEmptyStringType">
					<annotation>
						<documentation>Location attribute of the type number.
						</documentation>
					</annotation>
				</element>
				<element name="boolean" type="fews:nonEmptyStringType">
					<annotation>
						<documentation>Location attribute of the type boolean.
						</documentation>
					</annotation>
				</element>
				<element name="dateTime" type="fews:nonEmptyStringType">
					<annotation>
						<documentation>Location attribute of type datetime.</documentation>
					</annotation>
				</element>
			</choice>
		</sequence>
		<attribute name="id" type="fews:idStringType" use="optional">
			<annotation>
				<documentation>Id of the attribute
				</documentation>
			</annotation>
		</attribute>
		<attribute name="name" type="string" use="optional">
			<annotation>
				<documentation>name of the attribute</documentation>
			</annotation>
		</attribute>
	</complexType>
	<!--    -->
	<complexType name="StringPropertyComplexType">
		<sequence>
			<element name="description" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="key" type="string" use="required"/>
		<attribute name="value" type="string" use="required"/>
	</complexType>
	<!-- -->
	<complexType name="IntPropertyComplexType">
		<sequence>
			<element name="description" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="key" type="string" use="required"/>
		<attribute name="value" type="int" use="required"/>
	</complexType>
	<!-- -->
	<complexType name="FloatPropertyComplexType">
		<sequence>
			<element name="description" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="key" type="string" use="required"/>
		<attribute name="value" type="float" use="required"/>
	</complexType>
	<complexType name="DoublePropertyComplexType">
		<sequence>
			<element name="description" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="key" type="string" use="required"/>
		<attribute name="value" type="double" use="required"/>
	</complexType>
	<complexType name="DateTimePropertyComplexType">
		<sequence>
			<element name="description" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="key" type="string" use="required"/>
		<attribute name="date" type="fews:dateType" use="required"/>
		<attribute name="time" type="fews:timeType" use="required"/>
	</complexType>
	<complexType name="BoolPropertyComplexType">
		<sequence>
			<element name="description" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="key" type="string" use="required"/>
		<attribute name="value" type="boolean" use="required"/>
	</complexType>
	<simpleType name="ValueTypeEnumStringType">
		<restriction base="string">
			<enumeration value="boolean"/>
			<enumeration value="int"/>
			<enumeration value="float"/>
			<enumeration value="double"/>
			<enumeration value="string"/>
		</restriction>
	</simpleType>
	<!---->
	<complexType name="PeriodConditionComplexType">
		<annotation>
			<documentation>A period condition. If a date is specified without a timezone, e.g. 2002-10-10T12:00:00, then it is assumed to be in UTC.</documentation>
		</annotation>
		<sequence>
			<element name="timeZone" type="fews:TimeZoneSimpleType" minOccurs="0">
				<annotation>
					<documentation>Timezone</documentation>
				</annotation>
			</element>
			<choice>
				<sequence>
					<annotation>
						<documentation>Start and end date time</documentation>
					</annotation>
					<element name="startDate" type="fews:DateTimeComplexType">
						<annotation>
							<documentation>Start date and time for this period.</documentation>
						</annotation>
					</element>
					<element name="endDate" type="fews:DateTimeComplexType">
						<annotation>
							<documentation>End date and time for this period.</documentation>
						</annotation>
					</element>
				</sequence>
				<element name="validBeforeDate" type="fews:DateTimeComplexType">
					<annotation>
						<documentation>Valid for entire period prior to this date and time.</documentation>
					</annotation>
				</element>
				<element name="validAfterDate" type="fews:DateTimeComplexType">
					<annotation>
						<documentation>Valid for entire period after this date and time.</documentation>
					</annotation>
				</element>
				<sequence>
					<annotation>
						<documentation>A seasonal period that is repeated every year.</documentation>
					</annotation>
					<element name="startMonthDay" type="gMonthDay">
						<annotation>
							<documentation>Start month and day of this season.</documentation>
						</annotation>
					</element>
					<element name="endMonthDay" type="gMonthDay">
						<annotation>
							<documentation>End month and day of this season.</documentation>
						</annotation>
					</element>
				</sequence>
				<element name="monthDay" type="gMonthDay" maxOccurs="unbounded">
					<annotation>
						<documentation>Day of the year (e.g. third of May) that is repeated every year</documentation>
					</annotation>
				</element>
				<element name="month" type="gMonth" maxOccurs="unbounded">
					<annotation>
						<documentation>Month that is repeated every year</documentation>
					</annotation>
				</element>
				<element name="day" type="gDay" maxOccurs="unbounded">
					<annotation>
						<documentation>Day of the month such as the 5th of the month that is repeated every year
						</documentation>
					</annotation>
				</element>
			</choice>
		</sequence>
	</complexType>
	<!---->
	<complexType name="EnsembleMemberComplexType">
		<attribute name="index" type="nonNegativeInteger" use="required"/>
		<attribute name="weight" type="double"/>
	</complexType>
	<complexType name="EnsembleMemberRangeComplexType">
		<attribute name="start" type="nonNegativeInteger" use="required"/>
		<attribute name="end" type="nonNegativeInteger" use="optional"/>
		<attribute name="weight" type="double"/>
	</complexType>
	<!---->
	<complexType name="GlobalTableComplexType">
		<annotation>
			<documentation>Intended for the configuration of any table</documentation>
		</annotation>
		<sequence>
			<element name="columnIds" type="fews:ColumnIdsComplexType" minOccurs="0"/>
			<element name="columnTypes" type="fews:ColumnTypesComplexType" minOccurs="0"/>
			<element name="columnUnits" type="fews:ColumnIdsComplexType" minOccurs="0"/>
			<element name="columnMetaData" type="fews:ColumnMetaDataComplexType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="row" type="fews:RowComplexType" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="ColumnIdsComplexType">
		<annotation>
			<documentation>Column names for columns A through Z.</documentation>
		</annotation>
		<attribute name="A" type="string" use="required"/>
		<attribute name="B" type="string"/>
		<attribute name="C" type="string"/>
		<attribute name="D" type="string"/>
		<attribute name="E" type="string"/>
		<attribute name="F" type="string"/>
		<attribute name="G" type="string"/>
		<attribute name="H" type="string"/>
		<attribute name="I" type="string"/>
		<attribute name="J" type="string"/>
		<attribute name="K" type="string"/>
		<attribute name="L" type="string"/>
		<attribute name="M" type="string"/>
		<attribute name="N" type="string"/>
		<attribute name="O" type="string"/>
		<attribute name="P" type="string"/>
		<attribute name="Q" type="string"/>
		<attribute name="R" type="string"/>
		<attribute name="S" type="string"/>
		<attribute name="T" type="string"/>
		<attribute name="U" type="string"/>
		<attribute name="V" type="string"/>
		<attribute name="W" type="string"/>
		<attribute name="X" type="string"/>
		<attribute name="Y" type="string"/>
		<attribute name="Z" type="string"/>
	</complexType>
	<complexType name="ColumnMetaDataComplexType">
		<complexContent>
			<extension base="fews:ColumnIdsComplexType">
				<attribute name="id" type="string"/>
				<attribute name="type" type="fews:ValueTypeEnumStringType"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ColumnTypesComplexType">
		<annotation>
			<documentation>Value-types in the columns A through Z. If no type specified, type 'String' is assumed.</documentation>
		</annotation>
		<attribute name="A" type="fews:ValueTypeEnumStringType" use="required"/>
		<attribute name="B" type="fews:ValueTypeEnumStringType"/>
		<attribute name="C" type="fews:ValueTypeEnumStringType"/>
		<attribute name="D" type="fews:ValueTypeEnumStringType"/>
		<attribute name="E" type="fews:ValueTypeEnumStringType"/>
		<attribute name="F" type="fews:ValueTypeEnumStringType"/>
		<attribute name="G" type="fews:ValueTypeEnumStringType"/>
		<attribute name="H" type="fews:ValueTypeEnumStringType"/>
		<attribute name="I" type="fews:ValueTypeEnumStringType"/>
		<attribute name="J" type="fews:ValueTypeEnumStringType"/>
		<attribute name="K" type="fews:ValueTypeEnumStringType"/>
		<attribute name="L" type="fews:ValueTypeEnumStringType"/>
		<attribute name="M" type="fews:ValueTypeEnumStringType"/>
		<attribute name="N" type="fews:ValueTypeEnumStringType"/>
		<attribute name="O" type="fews:ValueTypeEnumStringType"/>
		<attribute name="P" type="fews:ValueTypeEnumStringType"/>
		<attribute name="Q" type="fews:ValueTypeEnumStringType"/>
		<attribute name="R" type="fews:ValueTypeEnumStringType"/>
		<attribute name="S" type="fews:ValueTypeEnumStringType"/>
		<attribute name="T" type="fews:ValueTypeEnumStringType"/>
		<attribute name="U" type="fews:ValueTypeEnumStringType"/>
		<attribute name="V" type="fews:ValueTypeEnumStringType"/>
		<attribute name="W" type="fews:ValueTypeEnumStringType"/>
		<attribute name="X" type="fews:ValueTypeEnumStringType"/>
		<attribute name="Y" type="fews:ValueTypeEnumStringType"/>
		<attribute name="Z" type="fews:ValueTypeEnumStringType"/>
	</complexType>
	<complexType name="RowComplexType">
		<annotation>
			<documentation>Values in the columns A through Z. The values are entered as strings, however the value-type in each column should match the type as specified with columnTypes for this column. This wil be checked while reading the xml-file. If no column-type specified, 'String' type is assumed.</documentation>
		</annotation>
		<attribute name="A" type="string" use="required"/>
		<attribute name="B" type="string"/>
		<attribute name="C" type="string"/>
		<attribute name="D" type="string"/>
		<attribute name="E" type="string"/>
		<attribute name="F" type="string"/>
		<attribute name="G" type="string"/>
		<attribute name="H" type="string"/>
		<attribute name="I" type="string"/>
		<attribute name="J" type="string"/>
		<attribute name="K" type="string"/>
		<attribute name="L" type="string"/>
		<attribute name="M" type="string"/>
		<attribute name="N" type="string"/>
		<attribute name="O" type="string"/>
		<attribute name="P" type="string"/>
		<attribute name="Q" type="string"/>
		<attribute name="R" type="string"/>
		<attribute name="S" type="string"/>
		<attribute name="T" type="string"/>
		<attribute name="U" type="string"/>
		<attribute name="V" type="string"/>
		<attribute name="W" type="string"/>
		<attribute name="X" type="string"/>
		<attribute name="Y" type="string"/>
		<attribute name="Z" type="string"/>
	</complexType>
	<simpleType name="timeSeriesTypeEnumStringType">
		<restriction base="string">
			<enumeration value="external historical"/>
			<enumeration value="external forecasting"/>
			<enumeration value="simulated historical"/>
			<enumeration value="simulated forecasting"/>
			<enumeration value="temporary"/>
		</restriction>
		<!--        -->
	</simpleType>
	<simpleType name="idStringType">
		<restriction base="string">
			<minLength value="1"/>
			<maxLength value="64"/>
		</restriction>
	</simpleType>
	<simpleType name="nonEmptyStringType">
		<restriction base="string">
			<minLength value="1"/>
		</restriction>
	</simpleType>
	<complexType name="ArchiveTimeSeriesSetComplexType">
		<sequence>
			<element name="moduleInstanceId" type="fews:idStringType"/>
			<element name="parameterId" type="fews:idStringType"/>
			<element name="qualifierId" type="fews:idStringType" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Id that references an qualifier listed in the regionConfigFiles/Qualifiers.xsd
					</documentation>
				</annotation>
			</element>
			<element name="locationId" type="fews:idStringType" maxOccurs="unbounded"/>
			<element name="timeSeriesType" type="fews:timeSeriesTypeEnumStringType"/>
			<choice>
				<element name="timeStep" type="fews:TimeStepComplexType"/>
				<element name="timeStepId" type="fews:idStringType"/>
			</choice>
			<element name="aggregationPeriod" type="fews:RelativePeriodComplexType" minOccurs="0">
				<annotation>
					<documentation>The value at a time represents the aggregated value over the aggregation period
						e.g when the aggregation period is -6 to 0 hour the value at 13:00 represents
						an aggregation (e.g. moving average) from 7:00 till 13:00 (including)
					</documentation>
				</annotation>
			</element>
			<element name="ensembleId" type="fews:idStringType" minOccurs="0">
				<annotation>
					<documentation>Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow.</documentation>
				</annotation>
			</element>
			<choice minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="RelativePeriodComplexType">
		<annotation>
			<documentation>Defines a moving period in time. The start and end time are relative time to a certain
				time.
			</documentation>
		</annotation>
		<sequence>
			<element name="description" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="start" type="fews:intStringType" use="required"/>
		<attribute name="end" type="fews:intStringType" use="required"/>
		<attribute name="unit" type="fews:timeUnitStringType" use="required"/>
	</complexType>
	<simpleType name="timeUnitStringType">
		<union memberTypes="fews:timeUnitEnumStringType fews:propertyReferenceString"/>
	</simpleType>
	<simpleType name="timeUnitEnumStringType">
		<restriction base="string">
			<enumeration value="second"/>
			<enumeration value="minute"/>
			<enumeration value="hour"/>
			<enumeration value="day"/>
			<enumeration value="week"/>
		</restriction>
	</simpleType>
	<complexType name="ModelParameterComplexType">
		<annotation>
			<documentation>Any number of parameters > 0</documentation>
		</annotation>
		<sequence>
			<element name="description" type="fews:commentString" minOccurs="0">
				<annotation>
					<documentation>Optional field to describe the parameter. May be used as notebook for comments annotations etc</documentation>
				</annotation>
			</element>
			<choice>
				<annotation>
					<documentation>Actual value/content of the parameter.</documentation>
				</annotation>
				<element name="dblValue" type="fews:doubleStringType">
					<annotation>
						<documentation>Holds one floating point value</documentation>
					</annotation>
				</element>
				<element name="intValue" type="fews:intStringType">
					<annotation>
						<documentation>Holds one integer value</documentation>
					</annotation>
				</element>
				<element name="boolValue" type="fews:booleanStringType">
					<annotation>
						<documentation>Holds one boolean value</documentation>
					</annotation>
				</element>
				<element name="stringValue" type="string">
					<annotation>
						<documentation>Holds one string</documentation>
					</annotation>
				</element>
				<element name="dateTimeValue" type="fews:DateTimeComplexType">
					<annotation>
						<documentation>Holds one dateTime value.</documentation>
					</annotation>
				</element>
				<element name="table" type="fews:GlobalTableComplexType">
					<annotation>
						<documentation>Holds one table. The values are entered as strings, however the value-type in each column should match the type as specified with columnTypes for this column.
							This will be checked while reading the xml-file. If no column-type specified, 'String' type is assumed. Use columnId for entering column name.
						</documentation>
					</annotation>
				</element>
			</choice>
		</sequence>
		<attribute name="id" type="fews:idString" use="required">
			<annotation>
				<documentation>Id of the parameter</documentation>
			</annotation>
		</attribute>
		<attribute name="name" type="fews:idString">
			<annotation>
				<documentation>Optional name of the parameter.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="ModelParametersComplexType">
		<annotation>
			<documentation>Model parameters , grouped</documentation>
		</annotation>
		<sequence>
			<element name="modifierType" type="fews:idString" minOccurs="0" maxOccurs="unbounded"/>
			<element name="group" type="fews:ModelParameterGroupComplexType" maxOccurs="unbounded">
				<annotation>
					<documentation>A group of parameters. e.g. default, catchmentOne, catchmentTwo, summer, winter etc.</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="version" type="fews:versionString" default="1.5"/>
	</complexType>
	<complexType name="ModelParameterGroupComplexType">
		<annotation>
			<documentation>Group of parameters</documentation>
		</annotation>
		<sequence>
			<element name="description" type="fews:commentString" minOccurs="0">
				<annotation>
					<documentation>Used to describe this group of parameters</documentation>
				</annotation>
			</element>
			<element name="locationId" type="fews:idString" minOccurs="0">
				<annotation>
					<documentation>Optional location id for this group of parameters. If used externally this is the external locationId</documentation>
				</annotation>
			</element>
			<element name="model" type="fews:idString" minOccurs="0">
				<annotation>
					<documentation>Optional element to identify the model (algorithm) the parameters are configured for</documentation>
				</annotation>
			</element>
			<element name="validPeriod" type="fews:PeriodConditionComplexType" minOccurs="0">
				<annotation>
					<documentation>Period the parameters are valid in.</documentation>
				</annotation>
			</element>
			<choice>
				<element name="parameter" type="fews:ModelParameterComplexType" maxOccurs="unbounded">
					<annotation>
						<documentation>Any number of parameters > 0</documentation>
					</annotation>
				</element>
				<element name="ensemble" type="fews:EnsembleComplexType" maxOccurs="unbounded">
					<annotation>
						<documentation>Any number of ensembles > 0</documentation>
					</annotation>
				</element>
			</choice>
		</sequence>
		<attribute name="id" type="fews:idString" use="required">
			<annotation>
				<documentation>Unique id for for this group. Id is required and must be used to retrieve the group of parameters.</documentation>
			</annotation>
		</attribute>
		<attribute name="name" type="fews:idString">
			<annotation>
				<documentation>Optional name for this group of parameters</documentation>
			</annotation>
		</attribute>
		<attribute name="readonly" type="boolean" default="false">
			<annotation>
				<documentation>Optional Attribute to indicate that this group may not be changed (e.g. by a GUI) Default = false.</documentation>
			</annotation>
		</attribute>
		<attribute name="modified" type="boolean" default="false">
			<annotation>
				<documentation>When set to True it means at least one parameter from the the group has been modified from the original version. Default = false</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="EnsembleComplexType">
		<annotation>
			<documentation>Defines ensemble of model parameters</documentation>
		</annotation>
		<sequence>
			<choice minOccurs="0">
				<element name="ensembleMember" type="fews:EnsembleMemberComplexType">
					<annotation>
						<documentation>Optional field to specify one particular ensemble member the parameters are configured for</documentation>
					</annotation>
				</element>
				<element name="ensembleMemberRange" type="fews:EnsembleMemberRangeComplexType">
					<annotation>
						<documentation>Optional field to specify a particular range of ensemble members the parameters are configured for.</documentation>
					</annotation>
				</element>
			</choice>
			<element name="parameter" type="fews:ModelParameterComplexType" maxOccurs="unbounded">
				<annotation>
					<documentation>Parameters for this ensemble</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="id" type="fews:idString" use="required">
			<annotation>
				<documentation>Id of ensemble the parameters are specified for</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="ArchiveAttributeComplexType">
		<sequence>
			<element name="name" type="string"/>
			<element name="value" type="string" minOccurs="0"/>
		</sequence>
	</complexType>
	<simpleType name="detectionString">
		<annotation>
			<documentation>Since 2020.02: value to mark if a value was out of bound of the detection range.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="&lt;">
				<annotation>
					<documentation>
						Below detection limit
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="&gt;">
				<annotation>
					<documentation>
						Above detection limit
					</documentation>
				</annotation>
			</enumeration>
			<enumeration value="~">
				<annotation>
					<documentation>
						Approximate
					</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
	<simpleType name="mcIdType">
		<restriction base="string">
			<minLength value="1"/>
			<maxLength value="30"/>
			<pattern value="[a-zA-Z]{1}[a-zA-Z0-9_\-]*"/>
		</restriction>
	</simpleType>
	<simpleType name="mcIdStringType">
		<union memberTypes="fews:mcIdType fews:propertyReferenceString"/>
	</simpleType>

</schema>
