<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by ICT (Stichting Deltares) -->
<!--  Delft FEWS Published Interface (Copyright 2003 WL | Delft Hydraulics) -->
<schema xmlns:fews="http://www.wldelft.nl/fews/PI" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.wldelft.nl/fews/PI" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
	<include schemaLocation="pi_sharedtypes.xsd"/>
	<element name="Modifiers" type="fews:ModifiersComplexType">
		<annotation>
			<documentation>module parameters</documentation>
		</annotation>
	</element>
	<complexType name="ModifiersComplexType">
		<sequence>
			<element name="modifier" type="fews:ModifierComplexType" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="ModifierComplexType">
		<sequence>
			<element name="name" type="fews:nameString"/>
			<element name="modifierId" type="integer" minOccurs="0"/>
			<element name="systemActivityDescriptorId" type="fews:idStringType" minOccurs="0"/>
			<element name="description" type="fews:nameString" minOccurs="0"/>
			<element name="enabled" type="boolean" minOccurs="0"/>
			<element name="userDefinedDescriptions" type="fews:PropertiesComplexType" minOccurs="0">
				<annotation>
					<documentation>Since 2015.01. Additional user defined properties for Modifier Type. An example of a standard (non user defined) propperty would be the name</documentation>
				</annotation>
			</element>
			<element name="modifierType" type="fews:idString"/>
			<element name="whatIfId" type="fews:idString" minOccurs="0"/>
			<element name="priority" type="positiveInteger" minOccurs="0"/>
			<element name="userId" type="fews:idString"/>
			<element name="startTime" type="fews:DateTimeComplexType" minOccurs="0"/>
			<element name="endTime" type="fews:DateTimeComplexType" minOccurs="0"/>
			<element name="validTime" type="fews:DateTimeComplexType" minOccurs="0"/>
			<element name="creationTime" type="fews:DateTimeComplexType"/>
			<choice>
				<choice maxOccurs="unbounded">
					<element name="locationAttributeModifier" type="fews:LocationAttributeModifierComplexType"/>
					<element name="locationAttributeMultiValueModifier" type="fews:LocationAttributeMultiValueModifierComplexType"/>
				</choice>
				<element name="tableRatingCurveModifier" type="fews:TableRatingCurveModifierComplexType"/>
				<element name="transformationRatingCurveModifier" type="fews:TransformationRatingCurveModifierComplexType"/>
				<element name="timeValueTimeSeriesModifier" type="fews:TimeSeriesModifierComplexType" maxOccurs="unbounded"/>
				<element name="qualityTimeSeriesModifier" type="fews:QualityTimeSeriesModifierComplexType" maxOccurs="unbounded"/>
				<element name="constantValueTimeSeriesModifier" type="fews:ConstantValueTimeSeriesModifierComplexType" maxOccurs="unbounded"/>
				<element name="transformationTimeSeriesModifier" type="fews:TransformationTimeSeriesModifierComplexType" maxOccurs="unbounded"/>
				<element name="moduleParameterModifier" type="fews:ModuleParameterModifierComplexType"/>
				<element name="multipleModelModuleParameterModifier" type="fews:MultipleModelModuleParameterModifierComplexType"/>
				<element name="typicalProfileTimeSeriesModifier" type="fews:TypicalProfileTimeSeriesModifierComplexType" maxOccurs="unbounded"/>
			</choice>
		</sequence>
	</complexType>
	<complexType name="TransformationRatingCurveModifierComplexType">
		<sequence>
			<element name="timeSeriesSet" type="fews:ArchiveTimeSeriesSetComplexType"/>
			<element name="multiplier" type="float"/>
			<element name="incrementer" type="float"/>
			<element name="stage" type="float"/>
			<element name="discharge" type="float"/>
		</sequence>
	</complexType>
	<complexType name="QualityTimeSeriesModifierComplexType">
		<sequence>
			<element name="timeSeriesSet" type="fews:ArchiveTimeSeriesSetComplexType"/>
			<element name="quality" type="fews:qualityEnumStringType"/>
		</sequence>
	</complexType>
	<simpleType name="qualityEnumStringType">
		<restriction base="string">
			<enumeration value="reliable"/>
			<enumeration value="doubtful"/>
			<enumeration value="unreliable"/>
		</restriction>
	</simpleType>
	<complexType name="TransformationTimeSeriesModifierComplexType">
		<sequence>
			<element name="timeSeriesSet" type="fews:ArchiveTimeSeriesSetComplexType"/>
			<element name="multiplier" type="float"/>
			<element name="divider" type="float"/>
			<element name="incrementer" type="float"/>
			<element name="delay" type="long"/>
		</sequence>
	</complexType>
	<complexType name="ConstantValueTimeSeriesModifierComplexType">
		<sequence>
			<element name="timeSeriesSet" type="fews:ArchiveTimeSeriesSetComplexType"/>
			<element name="startTime" type="fews:DateTimeComplexType"/>
			<element name="endTime" type="fews:DateTimeComplexType"/>
			<element name="value" type="float"/>
		</sequence>
	</complexType>
	<complexType name="TimeSeriesModifierComplexType">
		<sequence>
			<element name="timeSeriesSet" type="fews:ArchiveTimeSeriesSetComplexType"/>
			<element name="timeValue" type="fews:TimeValueComplexType" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="TypicalProfileTimeSeriesModifierComplexType">
		<sequence>
			<element name="orginalSystemTime" type="fews:DateTimeComplexType" minOccurs="1" maxOccurs="1"/>
			<element name="timeSeriesSet" type="fews:ArchiveTimeSeriesSetComplexType"/>
			<element name="timeValue" type="fews:TimeValueComplexType" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="TimeValueComplexType">
		<attribute name="date" type="fews:dateType" use="required">
			<annotation>
				<documentation>ISO 8601 (yyyy-mm-dd)</documentation>
			</annotation>
		</attribute>
		<attribute name="time" type="fews:timeType" use="required">
			<annotation>
				<documentation>ISO 8601 (hh:mm:ss.dsec e.g. 16:30:0.001)</documentation>
			</annotation>
		</attribute>
		<attribute name="value" type="float" use="required"/>
	</complexType>
	<complexType name="TableRatingCurveModifierComplexType">
		<sequence>
			<element name="locationId" type="string"/>
			<element name="qualifierId" type="string" minOccurs="0" maxOccurs="unbounded"/>
			<element name="ratingCurveComment" type="string" minOccurs="0"/>
			<element name="stageDischarge" type="fews:StageDischargeRelationComplexType" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="StageDischargeRelationComplexType">
		<attribute name="stage" type="float" use="required"/>
		<attribute name="discharge" type="float" use="required"/>
		<attribute name="flag" type="int" use="optional"/>
	</complexType>
	<complexType name="LocationAttributeModifierComplexType">
		<attribute name="locationId" type="string" use="required"/>
		<attribute name="attributeId" type="string" use="required"/>
		<attribute name="number" type="double" use="optional"/>
		<attribute name="text" type="string" use="optional"/>
		<attribute name="boolean" type="fews:booleanStringType" use="optional"/>
		<attribute name="date" type="fews:dateType" use="optional">
			<annotation>
				<documentation>ISO 8601 (yyyy-mm-dd)</documentation>
			</annotation>
		</attribute>
		<attribute name="time" type="fews:timeType" use="optional">
			<annotation>
				<documentation>ISO 8601 (hh:mm:ss.dsec e.g. 16:30:0.001)</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="LocationAttributeMultiValueModifierComplexType">
		<group ref="fews:LocationAttributeValueChoice"/>
		<attribute name="locationId" type="string" use="required"/>
		<attribute name="attributeId" type="string" use="required"/>
	</complexType>
	<complexType name="ModifierModelParameterGroupComplexType">
		<sequence>
			<element name="parameter" type="fews:ModelParameterComplexType" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="id" type="fews:idString" use="required">
			<annotation>
				<documentation>Since 2015.01. Unique id for for this group. Id is required and must be used to retrieve the group of parameters.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="MultipleModelModuleParameterModifierComplexType">
		<sequence>
			<element name="moduleParameterModifier" type="fews:ConfigFileParametersGroupComplexType" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="ConfigFileParametersGroupComplexType">
		<sequence>
			<element name="moduleParameterFile" type="string">
				<annotation>
					<documentation>Since 2015.01</documentation>
				</annotation>
			</element>
			<element name="modifierParametersGroup" type="fews:ModelParametersComplexType">
				<annotation>
					<documentation>Since 2015.01.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="ModuleParameterModifierComplexType">
		<sequence>
			<element name="locationId" type="fews:idStringType" minOccurs="0">
				<annotation>
					<documentation>Since 2015.01.</documentation>
				</annotation>
			</element>
			<element name="moduleParameterFile" type="string" maxOccurs="unbounded">
				<annotation>
					<documentation>Since 2015.01</documentation>
				</annotation>
			</element>
			<element name="modifierParametersGroup" type="fews:ModifierModelParameterGroupComplexType" maxOccurs="unbounded">
				<annotation>
					<documentation>Since 2015.01.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<group name="LocationAttributeValueChoice">
		<choice>
			<element name="number" type="double" maxOccurs="unbounded"/>
			<element name="text" type="string" maxOccurs="unbounded"/>
			<element name="boolean" type="fews:booleanStringType" maxOccurs="unbounded"/>
			<element name="dateTime" type="fews:DateTimeComplexType" maxOccurs="unbounded">
				<annotation>
					<documentation>date should comply with ISO 8601 (yyyy-mm-dd) ,  time should comply with  ISO 8601 (hh:mm:ss.dsec e.g. 16:30:0.001)</documentation>
				</annotation>
			</element>
		</choice>
	</group>
</schema>