Skip to content

Validation rule sets file

This page is the generated field list for ValidationRuleSets.xml — automated plausibility checks applied to time series as they come in, independent of thresholds (which are about warning a forecaster, not flagging bad data).

Purpose : Flags (or logs) values that fail an automated check: hard/soft min-max limits, rate-of-change (rise/fall) limits, “same reading repeated too long,” temporary shifts, and oscillation. Each check can log at a configurable level (default warning).

Folder : Config/RegionConfigFiles/

Root element : <validationRuleSets> (version="1.1", required)

Applies to : The timeSeriesSet (or timeSeries filter) configured inside each validationRuleSet — checked when a General Adapter or Import module runs its validation activity.

Config/RegionConfigFiles/ValidationRuleSets.xml
<?xml version="1.0" encoding="UTF-8"?>
<validationRuleSets xmlns="http://www.wldelft.nl/fews" version="1.1">
<validationRuleSet validationRuleSetId="DischargeLimits">
<extremeValues>
<hardMax constantLimit="500"/>
<hardMin constantLimit="0"/>
<softMax constantLimit="350"/>
</extremeValues>
<timeSeriesSet>
<moduleInstanceId>ImportObservations</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>Q.obs</parameterId>
<locationSetId>AllDischargeGauges</locationSetId>
<timeSeriesType>external historical</timeSeriesType>
<timeStep unit="hour" multiplier="1"/>
<readWriteMode>read only</readWriteMode>
</timeSeriesSet>
</validationRuleSet>
</validationRuleSets>

Auto-generated from validationRuleSets.xsd. Descriptions are the schema's own annotations.

Element <validationRuleSets>

Contains all Validation Rules Sets for all given time series

Attributes

AttributeUseNotes
version required fixed: 1.1.

Elements

ElementTypeCardinalityDescription
validationRuleSet ValidationRuleSetComplexType required · repeats

ValidationRuleSetComplexType

Contains a Validation Rules Set for for a given time series

Attributes

AttributeUseNotes
validationRuleSetId optional
timeZone required

Elements

ElementTypeCardinalityDescription
logLevel lowerLogLevelEnumStringType optional Optional log level for the log message that is logged if a time series violates a rule in this validationRuleSet. Default is warning.
One of: DEBUG, INFO, WARN
unit string optional Specify when the unit given for the values is not the same as the (internally stored) unit of the parameter it applies to. When specified it is required to also specify configUnitConversionsId in Parameters.xml. In this unit conversions the conversion from the specified unit to the (internal) unit should be available
considerQualifiers boolean optional Since 2014.02. Default = false. Is set to true, qualifiers are also considered when matching validation rule sets to timeseries sets.
extremeValues ExtremeValuesComplexType required · repeats
extremeValuesFunctions ExtremeValuesFunctionsComplexType required Allows to define a different extreme value for every location in the specified location sets at once using a function referencing location attributes
rateOfChange RateOfChangeComplexType required · repeats Contains Rate of Change (Rise / Fall) Limits
rateOfChangeFunctions RateOfChangeFunctionsComplexType required · repeats Allows to define a different rate of change value for every location in the specified location sets at once using a function referencing location attributes
rateOfChangeTimeSpan RateOfChangeTimeSpanComplexType required · repeats
rateOfChangeFunctionsTimeSpan RateOfChangeTimeSpanFunctionsComplexType required · repeats
sameReading SameReadingComplexType required · repeats Limits for SameReading Validation Check
sameReadingFunctions SameReadingFunctionsComplexType required · repeats Allows to define a different same reading check for every location in the specified location sets at once using a function referencing location attributes
temporaryShift TemporaryShiftComplexType required · repeats Limits for Temporary Shift Check
temporaryShiftFunctions TemporaryShiftFunctionsComplexType required · repeats Allows to define a different temporary shift check for every location in the specified location sets at once using a function referencing location attributes
oscillation OscillationComplexType required · repeats Limits for Oscillation Check
oscillationFunctions OscillationFunctionsComplexType required · repeats Allows to define a different oscillation check for every location in the specified location sets at once using a function referencing location attributes.
timeSeries TimeSeriesFilterComplexType required · repeats
timeSeriesSet TimeSeriesSetComplexType required · repeats

ExtremeValuesComplexType

Contains Hard and Soft Max Min Limits

Attributes

AttributeUseNotes
locationId optional Specify a locationId to make the extremeValues applicable to a single location only. When no locationId is specified, the extremeValues will be applicable to all locations contained in the timeSeriesSets for this validationRuleSet.

Elements

ElementTypeCardinalityDescription
hardMax ExtremeValuesValidationLimitComplexType optional
hardMin ExtremeValuesValidationLimitComplexType optional
softMax ExtremeValuesValidationLimitComplexType optional
softMin ExtremeValuesValidationLimitComplexType optional

ExtremeValuesFunctionsComplexType

Contains Hard and Soft Max Min Limits

ElementTypeCardinalityDescription
hardMax ExtremeValuesValidationLimitFunctionComplexType optional
hardMin ExtremeValuesValidationLimitFunctionComplexType optional
softMax ExtremeValuesValidationLimitFunctionComplexType optional
softMin ExtremeValuesValidationLimitFunctionComplexType optional

RateOfChangeComplexType

Contains Rate of Change (Rise / Fall) Limits

Attributes

AttributeUseNotes
locationId optional Specify a locationId to make the rateOfChange applicable to a single location only. When no locationId is specified, the rateOfChange will be applicable to all locations contained in the timeSeriesSets for this validationRuleSet.

Elements

ElementTypeCardinalityDescription
rateofRiseFallDifferent RateofRiseFallDifferentComplexType required
rateOfRiseFallSame RateOfChangeValidationLimitComplexType required defines Same Rate of Rise/Fall for Rate of Change check

RateOfChangeFunctionsComplexType

Contains Rate of Change (Rise / Fall) Limits

ElementTypeCardinalityDescription
rateofRiseFallDifferent RateofRiseFallDifferentFunctionComplexType required
rateOfRiseFallSame RateOfChangeValidationLimitFunctionComplexType required defines Same Rate of Rise/Fall for Rate of Change check

RateOfChangeTimeSpanComplexType

Contains Rate of Change (Rise / Fall) Limits

Attributes

AttributeUseNotes
locationId optional Specify a locationId to make the rateOfChange applicable to a single location only. When no locationId is specified, the rateOfChange will be applicable to all locations contained in the timeSeriesSets for this validationRuleSet.

Elements

ElementTypeCardinalityDescription
timeSpan TimeSpanComplexType required after first violation rule remains valid within given time span
rateofRiseFallDifferent RateofRiseFallDifferentComplexType required
rateOfRiseFallSame RateOfChangeValidationLimitComplexType required defines Same Rate of Rise/Fall for Rate of Change check

RateOfChangeTimeSpanFunctionsComplexType

Contains Rate of Change (Rise / Fall) Limits

ElementTypeCardinalityDescription
timeSpan TimeSpanComplexType required after first violation rule remains valid within given timespan
rateofRiseFallDifferent RateofRiseFallDifferentFunctionComplexType required
rateOfRiseFallSame RateOfChangeValidationLimitFunctionComplexType required defines Same Rate of Rise/Fall for Rate of Change check

SameReadingComplexType

Limits for SameReading Validation Check

Attributes

AttributeUseNotes
locationId optional Specify a locationId to make the sameReading applicable to a single location only. When no locationId is specified, the sameReading will be applicable to all locations contained in the timeSeriesSets for this validationRuleSet.
validationFlag optional default: unreliable. Since 2014.02. FEWS-10296 .Flag that will be set for all data values for which the configured limit is exceeded. Default is unreliable.

Elements

ElementTypeCardinalityDescription
label validationLabelEnumStringType optional Since 2013.01. FEWS-8621. Label that will be set for all data values for which the configured deviation and the reading period is exceeded. No label will be set by default
One of: dried, inundated, ice, above detection range, below detection range, varying
comment nonEmptyStringType optional Since 2013.01. FEWS-8621. Comment that will be set for all data values for which the configured deviation and the reading period is exceeded. No label will be set by default
excludeMissingsFromSameReadingPeriod boolean optional Since 2020.01. If true a same reading period ends when a missing value is found. Default is false
sameReadingDeviaton ValidationLimitComplexType required Contains Same Reading Deviation
sameReadingPeriod ValidationLimitComplexType required 'constantLimit' and 'value' specify a period in seconds

SameReadingFunctionsComplexType

Limits for SameReading Validation Check

Attributes

AttributeUseNotes
validationFlag optional default: unreliable. Since 2014.02 FEWS-10296. Flag that will be set for all data values for which the configured limit is exceeded. Default is unreliable.

Elements

ElementTypeCardinalityDescription
label validationLabelEnumStringType optional Since 2013.01. FEWS-8621. Label that will be set for all data values for which the configured deviation and the reading period is exceeded. No label will be set by default
One of: dried, inundated, ice, above detection range, below detection range, varying
comment nonEmptyStringType optional Since 2013.01. FEWS-8621. Comment that will be set for all data values for which the configured deviation and the reading period is exceeded. No label will be set by default
excludeMissingsFromSameReadingPeriod boolean optional Since 2020.01. If true a same reading period ends when a missing value is found. Default is false
sameReadingDeviaton ValidationLimitFunctionComplexType required Contains Same Reading Deviation
sameReadingPeriod ValidationLimitFunctionComplexType required

TemporaryShiftComplexType

Limits for Temporary Shift Check

Attributes

AttributeUseNotes
locationId optional Specify a locationId to make the sameReading applicable to a single location only. When no locationId is specified, the temporaryShiftPeriod will be applicable to all locations contained in the timeSeriesSets for this validationRuleSet.
validationFlag optional default: unreliable. Since 2014.02 FEWS-10296. Flag that will be set for all data values for which the configured limit is exceeded. Default is unreliable.

Elements

ElementTypeCardinalityDescription
label validationLabelEnumStringType optional Since 2013.01. FEWS-8621. Label that will be set for all data values for which the configured deviation and the reading period is exceeded. No label will be set by default
One of: dried, inundated, ice, above detection range, below detection range, varying
comment nonEmptyStringType optional Since 2013.01. FEWS-8621. Comment that will be set for all data values for which the configured deviation and the reading period is exceeded. No label will be set by default
rateOfTemporaryShift ValidationLimitComplexType required Contains rate of temporary shift (similar to rate of change)
temporaryShiftPeriod ValidationLimitComplexType required 'constantLimit' and 'value' specify a period in seconds

TemporaryShiftFunctionsComplexType

Limits for Temporary Shift Check

Attributes

AttributeUseNotes
validationFlag optional default: unreliable. Since 2014.02 FEWS-10296. Flag that will be set for all data values for which the configured limit is exceeded. Default is unreliable.

Elements

ElementTypeCardinalityDescription
label validationLabelEnumStringType optional Since 2013.01. FEWS-8621. Label that will be set for all data values for which the configured deviation and the reading period is exceeded. No label will be set by default
One of: dried, inundated, ice, above detection range, below detection range, varying
comment nonEmptyStringType optional Since 2013.01. FEWS-8621. Comment that will be set for all data values for which the configured deviation and the reading period is exceeded. No label will be set by default
rateOfTemporaryShift ValidationLimitFunctionComplexType required Contains rate of temporary shift (similar to rate of change)
temporaryShiftPeriod ValidationLimitFunctionComplexType required

OscillationComplexType

Attributes

AttributeUseNotes
validationFlag optional Flag that will be set for all data values for which oscillation is detected. By default no flag is set, only the flag source "OSC" is used to mark the values.

Elements

ElementTypeCardinalityDescription
minDifference ValidationLimitComplexType required The minimum difference between a low and high value required for it to be detected as a potential oscillation.
maxPeriod ValidationLimitComplexType required The maximum amount of time (in seconds) between two subsequent "low values" or two subsequent "high values" of a single oscillation.
minOscillations ValidationLimitComplexType required The minimum amount of subsequent oscillations required for the values to be flagged as oscillating.

OscillationFunctionsComplexType

Attributes

AttributeUseNotes
validationFlag optional Flag that will be set for all data values for which oscillation is detected. By default no flag is set, only the flag source "OSC" is used to mark the values.

Elements

ElementTypeCardinalityDescription
minDifference ValidationLimitFunctionComplexType required The minimum difference between a low and high value required for it to be detected as a potential oscillation.
maxPeriod ValidationLimitFunctionComplexType required The maximum amount of time (in seconds) between two subsequent "low values" or two subsequent "high values" of a single oscillation.
minOscillations ValidationLimitFunctionComplexType required The minimum amount of subsequent oscillations required for the values to be flagged as oscillating.

TimeSeriesSetComplexType

Attributes

AttributeUseNotes
id optional
name optional

Elements

ElementTypeCardinalityDescription
description string optional
valueType timeSeriesValueTypeStringType required
parameterId idStringType required
domainParameterId idStringType optional · repeats For a spectrum specify the frequency / wave length parameter. For a directional spectrum specify first the frequency parameter and secondly the directional parameter
qualifierId idStringType optional · repeats Id that references an qualifier listed in the regionConfigFiles/Qualifiers.xsd
timeSeriesType timeSeriesTypeStringType required
timeStep TimeStepComplexType required
aggregationPeriod RelativePeriodComplexType optional 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)
cycle CalendarTimeSpanComplexType optional If cycle specified, then the data is repeated periodically with this cycle as the period length. There is original data for only one cycle. After that cycle the data will be repeated periodically. In other words, when cycle is defined, then a missing value is filled up with a value from the last available cycle before the missing value.
externalForecastSearchTimeStep TimeStepComplexType optional Since 2024.01. Only time series with an external forecast time that match this time step are visible while searching
externalForecastTimeCardinalTimeStep TimeStepComplexType optional When no external forecast exists in the data store younger that the specified age a new external forecast is returned with a minimum age that applies to the specified cardinal time step
qualifierAggregation qualifierAggregationStringType optional When specified all the time series that have ALL the specified qualifiers are aggregated to a single time series on read. Can not be specified when this time series set is meant for writing
readWriteMode timeSeriesReadWriteModeStringType required Note: this readWriteMode is only used in the TimeSeriesDisplay. Other modules ignore this readWriteMode.
synchLevel intStringType optional
expiryTime CalendarTimeSpanComplexType optional
delay TimeShiftComplexType optional
multiplier floatStringType optional
divider floatStringType optional
incrementer floatStringType optional
ensembleId idStringType optional Optional field for running ensembles. Ensemble id's in a time series set will override ensemble id's defined in the workflow.
visibilityControllingFlagSourceColumnId idStringType optional All values that not passed this validation step are removed on read. Set to missing for equidistant and removed for non-equidistant
onlyReliableFlagSourceColumnId idStringType optional Since 2022.02. All values that passed this validation step and are reliable will be included other will be set to missing for equidistant and removed for non-equidistant. This will work as an "or" operation together with "visibilityControllingFlagSourceColumnId", so data should either have passed "visibilityControllingFlagSourceColumnId" or "onlyReliableFlagSourceColumnId".
locationRelationId idStringType required Relation id to map the time series set locations to related locations. Instead of the time series set locations the related locations are used to read/write the time series.
skipLocationsWithoutRelation boolean optional Since 2020.01 When true locations that do not have a related location will be skipped, when false all location must have a related location. Default is false
moduleInstanceId idStringType required · repeats
moduleInstanceSetId idStringType required Query a single module instance in the data store that is available for this time series set
filterModuleInstanceSetId idStringType required Query all module instances in the data store that are available for this time series set
locationId idStringType required · repeats
locationSetId idStringType required
chainageLocationSetId idStringType required Id of location set which represents a chainage of locations. This can only be used in combination with readWriteMode readOnly
relativeViewPeriod TimeSeriesSetRelativePeriodComplexType optional Period relative the time 0 of the workflow or the system time of the fews explorer
relativeForecastPeriod TimeSeriesSetRelativePeriodComplexType optional Period relative to first time of a simulated or external forecast time series
ensembleMemberId nonEmptyStringType required · repeats Optional field used for reading or writing one or more particular ensemble member
ensembleMemberIndex nonNegativeIntegerStringType required Optional field used for reading or writing one particular ensemble member
ensembleMemberIndexRange EnsembleMemberIndexRangeComplexType required Optional field used for reading or writing one particular sub set of the ensemble
relativeForecastSearchPeriod TimeSeriesSetRelativePeriodComplexType required Since 2015.02. The latest available external forecast in this period will be read. By default the latest before time0 is returned
externalForecastTimeId idStringType required Since 2018.01. Forecast time reference id configured in the forecast length estimator config. Can only be used in workflows and only after the forecast length estimator.
externalForecastMinAge TimeSpanComplexType optional Since 2014.02. By default is there is no minimum age. All external forecasts after the time0 are ignored. The age of an external forecast is defined as the time span between the external forecast time and the time 0
externalForecastMaxAge TimeSpanComplexType optional By default is there is no maximum age so the returned external forecast can be very old when there is no recent forecast available. All external forecasts after the time0 are ignored. The age of an external forecast is defined as the time span between the external forecast time and the time 0

ExtremeValuesValidationLimitComplexType

Template for extreme limit values

Attributes

AttributeUseNotes
constantLimit required
label optional Label that will be set for all data values for which the configured limit is exceeded. No label will be set by default
comment optional Comment that will be added to all data values for which the configured limit is exceeded. No commentl will be added by default

Elements

ElementTypeCardinalityDescription
monthLimit MonthLimitComplexType required · repeats

ExtremeValuesValidationLimitFunctionComplexType

Template for limit values

Attributes

AttributeUseNotes
constantLimit optional
label optional Label that will be set for all data values for which the configured limit is exceeded. No label will be set by default
comment optional Comment that will be added to all data values for which the configured limit is exceeded. No commentl will be added by default

Elements

ElementTypeCardinalityDescription
monthLimit MonthLimitFunctionComplexType required · repeats

RateofRiseFallDifferentComplexType

Contains rate of rise and/or rate of fall (in case they are different)

ElementTypeCardinalityDescription
rateOfRise RateOfChangeValidationLimitComplexType required
rateOfFall RateOfChangeValidationLimitComplexType required

RateOfChangeValidationLimitComplexType

Template for rate of change limit values

Attributes

AttributeUseNotes
constantLimit required Rate of change in units/second. This should be positive or zero.
validationFlag optional default: unreliable. Flag that will be set for all data values for which the configured limit is exceeded. Default is unreliable.
label optional Since 2013.01. FEWS-8621. Label that will be set for all data values for which the configured limit is exceeded. No label will be set by default
comment optional Since 2013.01. FEWS-8621. Comment that will be added to all data values for which the configured limit is exceeded. No commentl will be added by default

Elements

ElementTypeCardinalityDescription
monthLimit MonthLimitComplexType required · repeats

RateofRiseFallDifferentFunctionComplexType

Contains rate of rise and/or rate of fall (in case they are different)

ElementTypeCardinalityDescription
rateOfRise RateOfChangeValidationLimitFunctionComplexType required
rateOfFall RateOfChangeValidationLimitFunctionComplexType required

RateOfChangeValidationLimitFunctionComplexType

Template for limit values

Attributes

AttributeUseNotes
constantLimit optional Rate of change in units/second. This should be positive or zero.
validationFlag optional default: unreliable. Flag that will be set for all data values for which the configured limit is exceeded. Default is unreliable.
label optional Since 2013.01. FEWS-8621. Label that will be set for all data values for which the configured limit is exceeded. No label will be set by default
comment optional Since 2013.01. FEWS-8621. Comment that will be added to all data values for which the configured limit is exceeded. No commentl will be added by default

Elements

ElementTypeCardinalityDescription
monthLimit MonthLimitFunctionComplexType required · repeats

TimeSpanComplexType

Attributes

AttributeUseNotes
unit required
divider optional
multiplier optional

ValidationLimitComplexType

Template for limit values

Attributes

AttributeUseNotes
constantLimit required

Elements

ElementTypeCardinalityDescription
monthLimit MonthLimitComplexType required · repeats

ValidationLimitFunctionComplexType

Template for limit values

Attributes

AttributeUseNotes
constantLimit optional

Elements

ElementTypeCardinalityDescription
monthLimit MonthLimitFunctionComplexType required · repeats

TimeStepComplexType

Time step, There are 5 valid combinations of attributes. id, unit+[multiplier]+[divider]+[timeZone], times+[timeZone] + monthDays+[timeZone] ([]=optional)

Attributes

AttributeUseNotes
id optional Id of the time step. You can reference time steps defined in the regionConfig/timeSteps.xml. Only specify the id attribute when referring to a predefined time step. In the regionConfig/timeSteps.xml the time steps list both the id and the attributes that define the time step
label optional Short name for the time step which is shown to the user when he can choose one from a list.
unit optional
divider optional
multiplier optional
times optional Defines the time step by a list of times without dates, e.g. "10:00 23:00"
minutes optional Since 2017.02. Defines the time step by a list of minutes (with prefix 0 for single digits), e.g. "05 25" which results in times 0:05, 0:25, 1:05, etc.
daysOfMonth optional Defines the time step by a list of days of month, use "01 11 21" for a decade time step
monthDays optional Defines the time step by a list of dates, e.g. ""--03-01 --06-01 --09-01 --12-01" for the meteorological seasons
timeZone optional

Elements

ElementTypeCardinalityDescription
description string optional Optional description of this timeStep. This is not used and is only present for convenience.

RelativePeriodComplexType

Defines a moving period in time. The start and end time are relative time to a certain time.

Attributes

AttributeUseNotes
start required
end required
startOverrulable optional default: false. When the running module (e.g. general adaptor) has exported a state the state time is used instead of the specified start time. This option is only available during a (forecast) run.
endOverrulable optional default: false. When a forecast length is specified (e.g. in the manual forecast dialog) the time 0 + forecast length is used instead of the specified end time This option is only available during a (forecast) run.
unit required

Elements

ElementTypeCardinalityDescription
description string optional

CalendarTimeSpanComplexType

Attributes

AttributeUseNotes
unit required
divider optional
multiplier optional

TimeShiftComplexType

Attributes

AttributeUseNotes
unit required
divider optional
multiplier optional

TimeSeriesSetRelativePeriodComplexType

Defines a moving period in time. The start and end time are relative time to a certain time. When the start time is not specified it is determined by the start time of the state of the current run. When the start is overrulable the time is overruled by the start of search period or the start of cold state run when one of two is specified When the end is overrulable this time is overruled by the end of the forecast when specified

Attributes

AttributeUseNotes
unit required
start optional e.g. -1 hour means one before time 0
end required e.g. 1 hour means one hour after time 0
startOverrulable optional default: false. When the running module (e.g. general adaptor) has exported a state the state time is used instead of the specified start time. This option is only available during a (forecast) run.
endOverrulable optional default: false. When a forecast length is specified (e.g. in the manual forecast dialog) the time 0 + forecast length is used instead of the specified end time This option is only available during a (forecast) run.

Elements

ElementTypeCardinalityDescription
description string optional

EnsembleMemberIndexRangeComplexType

Attributes

AttributeUseNotes
start required
end optional

MonthLimitComplexType

Attributes

AttributeUseNotes
month optional
value required

MonthLimitFunctionComplexType

Attributes

AttributeUseNotes
month optional
function required
  • Hard vs. soft distinguishes severity, not behavior — both just log at logLevel; validation never blocks import or modifies the value. Downstream handling (e.g. flag conversion) is a separate config step.
  • considerQualifiers (since 2014.02) defaults to false — if two series share location + parameter but differ only by qualifier, a rule set won’t distinguish them unless you turn this on.