...
Water Coach script configuration
What | script_config.xml (stand alone WaterCoach), or waterCoachScript.xml (embedded WaterCoach, from 2016.01 and up) |
---|
Description | Configuration of a script in the |
---|
FEWS Game In a script configuration, the start and end time, and events for the script are specified. A script must be is a directory in the scenario/script database in which files relevant for that script are collected, including the script configuration file. For more information, see scenario/script database.
Section |
---|
Column |
---|
| Schema definition overviewThe global structure of the XML-schema for the script configuration is |
|
...
shown on the right. The title key is an optional identifier for the script.The |
|
...
time zone for the Water Coach is specified within the section timeZone . All times in the script |
|
...
configuration must be specified |
|
...
relative to this time zone. The time zone can be specified as a name using the keyword name (e.g. GMT, MET, ...) or as an offset to the default time zone GMT using the keyword offset (e.g. +02:00, -06:00, ...). The start and end date/time for the script have to be specified using attributes date and time in the format YYYY-MM-DD and hh:mm:ss , respectively. The date/time of the data in the FEWS local data store does not have to match the date/time that is displayed in the game. The actual start and end date/time (or current system time) of the local data store can be specified with the keys dataStart and dataStop . The time that is displayed in the game is controlled by the key displayStart . With this functionality, it is possible to play a scenario of several years ago as if it happened today. Please note that the displayStart should be later than the date of your data, i.e. you can't predate the watercoach scenario.
If no displayStart is specified, then this defaults to dataStart . All dates and times that are specified in the remainder of the script configuration are in data store time, i.e. between dataStart and dataStop . The keys scriptStart and scriptStop are deprecated as of FEWS release 2013.02; if these keys are used in the script configuration then an error is displayed. Info |
---|
title | displayStart in the embedded WaterCoach |
---|
| Note: with the embedded WaterCoach (Delft-FEWS 2016.01 and up), it is recommended to use displayStart only together with the option loadAtStartup in Explorer.xml set to true. This is because to be able to change the time in the GUI to displayStart, Delft-FEWS needs to restart. After the restart, only those tasks in Explorer.xml with loadAtStartup=true are started. If this option is set to false for the WaterCoachDisplay, the user will have to manually restart the display, just after she started the WaterCoach mode the first time, which can be confusing. |
Info |
---|
title | displayStart and external applications |
---|
| Note: displayStart won’t work in combination with external applications that both receive data from as well as return data to WaterCoach (i.e. you can't close the loop). An example of what happens when you use displayStart together with a spreadsheet that is used outside of the WaterCoach: - WaterCoach exports data relative to displayStart time
- The data is used in a spreadsheet relative to displayStart time
(i.e. the same time that is shown in the WaterCoach, which is good) - The spreadsheet exports the results in displayStart time
(since the spreadsheets doesn’t know about any delay) - The WaterCoach imports expects data to be in dataStart time, so the import activity fails.
|
The configuration of stories (events), the forecastTable , forecastNote , and Files for a script are explained below. |
Column |
---|
Image Added
|
|
Section |
---|
Column |
---|
| StoriesTwo types of stories can be specified: inbox is optional and may be specified only once. In the inbox storyline you define the messages that appear in the inbox, which can be selected by the user.story is optional and can be specified an arbitrary number of times. Each story corresponds to a "Communication" button in the user interface that can be activated by the user. The content of story buttons can be dynamic, i.e. different events may be triggered by pushing the story button at different times.
Each story must have a title by specifying the title key (but the title for the inbox is optional). This title will be used as the title of the story button. The title can be different for various languages, using the attribute lang . If the language attribute for title is specified and it corresponds to the preferred language in the application configuration, then this title is used in the script. If no language attribute is found that corresponds to the preferred language, then the default title for which no language attribute was specified will be used. For example: Code Block |
---|
| <story>
<title lang="NL">Telefoongesprek</title>
<title lang="GE">Anruf</title>
<title>Telephone call</title>
</story>
|
In the stories section of the script configuration, an arbitrary number of stories can be specified. |
Column |
---|
Image Added
|
|
Section |
---|
Column |
---|
| FramesA story (including the inbox) may consist of an arbitrary number of frames by specifying the frame key according to the following schema: The title of a frame in the inbox will be used in the list of actions that the user can invoke from the inbox drop-down menu. The title of a frame in a regular story will be used as the name of the button that the user can activate. As explained above, the title can be different for various languages.The start and stop keys indicate the time window in which the frame of a story is active. For a frame in the inbox this means that the associated event is available in the inbox within the time window defined by the start and stop time. For a frame in a regular story, the associated event will be executed if the user pushes the story button between the start and stop time. The start and stop keys have attributes date and time following the format YYYY-MM-DD and hh:mm:ss , respectively. Both the start and stop keys are optional. If these are not specified, then these default to the start and end time of the game, respectively.The popup key is a flag indicating whether or not draw attention to the availability of a new message. With popup = false, no message visibly appears (unless you either open the inbox dropbox or click on a story button). With popup = true: the message itself appears Forecaster Notes for the Inbox story. With other stories, a notification that new information is available behind a story button appears in the Forecaster Notes, which can trigger the user to activate the relevant story button. Note: when the vjdbc is started (i.e. in Participant mode) an actual pop-up window appears when popup=true, see for more details Application configuration#Delft-FEWSconfiguration. Anchor |
---|
| requiredExperienceLevel |
---|
| requiredExperienceLevel |
---|
| The requiredExperienceLevel key specifies that an event is only executed for the indicated experience level. Experience levels are defined in the application configuration as a list, e.g. "Beginner;Intermediate;Expert". This key can be specified multiple times if the event should be executed for multiple levels (e.g. both Beginner and Intermediate). In a frame, one refers to these levels by a number (starting with 0), e.g. if an event is only to be executed for experts, then this is configured as Code Block |
---|
| <requiredExperienceLevel>2</requiredExperienceLevel>
|
If this key is not specified, then the event will be executed for all experience levels. The once key is a flag indicating that an event must be executed only once during a time frame.Any number of condition s can be added to a story (or inbox) frame; the associated event will only be executed if all of these conditions are fulfilled (see below). An event can be associated with a story frame by specifying the file key. Depending on the file type, a suitable application is started for displaying the file (e.g. a pdf-file is displayed in Adobe Reader and the contents of a txt-file is displayed in a message dialog window). The file key has an optional language attribute lang that behaves the same as for the title keys.Apart from a file , an event for the story frame may also be a message . For such a message, no file has to be added to the scenario/script database. Instead, the contents of the message (a text string) can be specified directly in the script configuration. The message key takes an optional lang attribute as explained before. If the message contains an URL (starting with 'http://', 'https://', 'file://', 'ftp://' or 'mailto:// ) then this URL is made clickable automatically. For links to files, absolute path names should be used, but two shortcuts may be used: the strings '%fewsRegionDir% ' and '%scenarioScriptDatabasePath% ' will be replaced by the paths as specified in the application configuration. If FEWS is running, messages appear within FEWS, otherwise a new window containing the message appears. |
Column |
---|
Image Added
|
|
Section |
---|
Column |
---|
| A condition can be based on components of the forecast table. It must be specified according to: columnId is a reference to a column in the forecast table (see below), usually a parameter,rowId is a reference to a row in the forecast table (see below), usually a location, Anchor |
---|
| ifForecastValue |
---|
| ifForecastValue |
---|
|
ifForecastValue indicates a condition based on the value of the published forecast, Anchor |
---|
| ifForecastPublicationTime |
---|
| ifForecastPublicationTime |
---|
|
ifForecastPublicationTime indicates a condition based on the publication time of the forecast, Anchor |
---|
| ifForecastPublished |
---|
| ifForecastPublished |
---|
|
ifForecastPublished indicates a condition based on whether a forecast has been published or not,operator is one of "lt" (less than), "gt" (greater than), "le" (less than or equal to), "ge" (greater than or equal to), "eq" (equal to), "ne" (not equal to), "before", or "after", depending on the type of condition,value is the reference value to compare to; depending on the condition type, this can be an integer/real value, a boolean value, or a date/time value.
Anchor |
---|
| script_configExample |
---|
| script_configExample |
---|
|
An example in which conditions are used: Code Block |
---|
| <frame>
<title>condition example</title>
<start date="2008-03-13" time="00:01:00"/>
<stop date="2008-03-13" time="00:02:00"/>
<popup>true</popup>
<condition>
<columnId>water_level</columnId>
<rowId>Lowestoft</rowId>
<ifForecastPublished>
<operator>eq</operator>
<value>false</value>
</ifForecastPublished>
</condition>
<message>Hurry, the forecast for Lowestoft has not been published yet!</message>
</frame>
<frame>
<title>condition example</title>
<start date="2008-03-13" time="00:10:00"/>
<stop date="2008-03-13" time="00:11:00"/>
<popup>true</popup>
<condition>
<columnId>water_level</columnId>
<rowId>Lowestoft</rowId>
<ifForecastPublicationTime>
<operator>after</operator> |
|
|
Stories
In the section Stories
of the script configuration, an arbitrary number of stories can be specified.
Image Removed
Two types of stories can be specified:
Inbox
is optional and may be specified only once. In the inbox storyline you define the messages that appear in the inbox, which can be selected by the user.Story
is optional and can be specified an arbitrary number of times. Each story corresponds to a "Communication" button in the user interface that can be activated by the user. The content of story buttons can be dynamic, i.e. different events may be triggered by pushing the story button at different times.
Each story must have a title by specifying the Title
key (but the title for the inbox is optional). This title will be used as the title of the story button. The title can be different for various languages, using the attribute lang
. If the language attribute for Title
is specified and it corresponds to the preferred language in the application configuration, then this title is used in the script. If no language attribute is found that corresponds to the preferred language, then the default Title
for which no language attribute was specified will be used.
...
<Story>
<Title lang="NL">Telefoongesprek</Title>
<Title lang="GE">Anruf</Title>
<Title>Telephone call</Title>
</Story>
Frames
A story may consist of an arbitrary number of using attributes frames
according to the following schema:
Image Removed
The title
of a frame in the inbox will be used in the list of actions that the user can invoke from the inbox drop-down menu. The title of a frame in a regular story will be used as the name of the button that the user can activate. As explained above, the title can be different for various languages.
The Start
and Stop
keys indicate the time window in which the frame of a story is active. For a frame in the inbox this means that the associated event is available in the inbox within the time window defined by the start and stop time. For a frame in a regular story, the associated event will be executed if the user pushes the story button between the start and stop time. The Start
and Stop
keys have attributes date
and time
following the format YYYY-MM-DD
and hh:mm:ss
, respectively. Both the Start
and Stop
keys are optional. If these are not specified, then these default to the start and end time of the script, respectively.
The Popup
key is a flag indicating whether or not to show a pop-up window at the start of the frame. For a frame belonging to the inbox this means that the associated event is executed. For a frame of a regular story, a message dialog appears informing the user that new content is available for a story, which can trigger the user to activate the relevant story button.
A Condition
can be added to a story (or inbox) frame; the associated event will only be executed if this condition is fulfilled. For now, the only supported condition is one based on a forecast published by the user. A condition must be specified according to:
Image Removed
Type
must be equal to "Forecast",ColumnId
is a reference to a column in the forecast table (see below), usually a parameter,RowId
is a reference to a row in the forecast table (see below), usually a location,Operator
is one of "lt" (less than), "gt" (greater than), "le" (less than or equal to), or "ge" (greater than or equal to), andValue
is the reference value to compare to.
An example in which a condition is used:
...
<Frame>
<Title>condition example</Title>
<Start date="2008-03-13" time="00:01:00"/>
<Stop date="2008-03-13" time="00:02:00"/>
<Popup>true</Popup>
<Condition>
<Type>Forecast</Type>
<ColumnId>water_level</ColumnId>
<RowId>Lowestoft</RowId>
<Operator>ge</Operator>
<Value>300</Value>
</Condition>
<File>emergency_telephone_call.txt</File>
</Frame>
An event can be associated with a story frame by specifying the File
key. Depending on the file type, a suitable application is started for displaying the file (e.g. a pdf-file is displayed in Adobe Reader and the contents of a txt-file is displayed in a message dialog window).
- The
File
-key has an optional language attribute lang
that behaves the same as for the Title
keys.
Forecast Table
The contents of the forecast table can be configured using the ForecastTable
key. The schema for this section is as follows:
Image Removed
The time zone can be specified with the TimeZone
key; for now, only "GMT" is supported.
Using the Header
key, the headers of columns in the forecast table can be specified. A column can be added with the the Column
key. The value of this key is used as the name in the header of that column. For each column an id
attribute must be specified. Furthermore, the following optional attributes may be specified for a column:
isEditable
: a flag with value true
or false
indicating whether the column is editable for the user,unit
: a string containing the unit for the column (e.g. "cm" for a water level),isExport
: a flag with value true
or false
indicating whether the column must be exported to file if the forecast is published (editable columns are exported by default),exportName
: a string containing the name that must be used for exporting the column to file.
For example, the header section in the forecast table may look like:
...
<Header>
<Column id="station">station</Column>
<Column id="date">date</Column>
<Column id="time">time</Column>
<Column id="astro_level" isExport="true" exportName="H.tidal.astronomic" unit="cm">astronomical water level</Column>
<Column id="water_level" isEditable="true" exportName="H.tidal.peak" unit="cm">water level</Column>
<Column id="discharge" isEditable="true" exportName="Q" unit="m^3/s">discharge</Column>
</Header>
Rows can be added to the forecast table by specifying the Row
key. The number of rows is arbitrary. For each row, an identifier must be specified using the id
attribute. Contents for a row is added using the Cell
key, where each cell must correspond to a column in the header. This can be achieved with the columnId
attribute of the Row
key. For example:
...
<Row id="Vlissingen">
<Cell columnId="station">Vlissingen</Cell>
<Cell columnId="date">12 Mar</Cell>
<Cell columnId="time">17h16</Cell>
<Cell columnId="astro_level">237</Cell>
</Row>
Example
A complete example of a script configuration is given here:
Code Block |
---|
xml | xml |
title | Example of script configuration |
---|
<?xml version="1.0" encoding="UTF-8"?>
<Script xmlns="http://localhost" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://localhost ../../xml-schemas/script_config.xsd">
<Title>storm surge March 12</Title>
<Start date="2008-03-12" time="04:00:00"/>
<Stop date="2008-03-12" time="18:00:00"/>
<NextEventButton>true</NextEventButton>
<Stories>
<Inbox>
<Title>inbox</Title>
<Frame>
<Title lang="NL">Start zitting</Title>
<Title lang="EN">Session start</Title>
<Start date="2008-03-12" time="04:00:05"/>
<Popup>true</Popup>
<File lang="NL">start_zitting_NL.txt</File>
<File lang="EN">start_zitting_EN.txt</File>
</Frame>
<Frame>
<Title lang="NL">KNMI weeranalyse 12 maart, 0:00 uur</Title>
<Title lang="EN">KNMI analysis March 12, 12:00 midnight</Title>
<Start date="2008-03-12" time="04:00:05"/>
<Popup>false</Popup>
<File lang="NL">weerkaart_12maart_00uur.pdf</File>
<File lang="EN">weerkaart_12maart_00uur.pdf</File>
</Frame>
<Frame>
<Title lang="NL">KNMI run 11 maart, 12:00 uur</Title>
<Title lang="EN">KNMI run March 11, 12:00 noon</Title>
<Start date="2008-03-12" time="04:00:05"/>
<Popup>false</Popup>
<File lang="NL">windveld_11maart_12uur.pdf</File> <File lang="EN">windveld_11maart_12uur.pdf</File>date="2008-03-13" time="00:10:00"/>
</ifForecastPublicationTime>
</ |
| Frame>condition>
<message>You were quite late with the |
| <Frame>
forecast for Lowestoft</message>
</frame>
<frame>
<title>condition example</title>
<start |
| <Title langNL>Opdracht 1</Title>
<Title lang="EN">Exercise 1</Title> <Start 12041116:00"/>
<popup>true</popup>
<condition>
|
| <Popup>true<Popup>columnId>
<rowId>Lowestoft</rowId>
|
| <File lang="NL">opdracht1_NL.txt</File> <File lang="EN">opdracht1_EN.txt</File><Frame>Inbox>ifForecastValue>
</condition>
<file>emergency_telephone_call.mp3</file>
</frame>
|
|
Column |
---|
Image Added
|
|
Section |
---|
Column |
---|
| Anchor |
---|
| forecasttable |
---|
| forecasttable |
---|
|
Forecast TableThe contents of the forecast table can be configured using the forecastTable key. The schema for this section is shown on the right. Using the header key, the column headers in the forecast table can be specified. A column can be added with the the column key. The value of this key is used as the name in the header of that column. For each column an id attribute must be specified. Furthermore, the following optional attributes may be specified for a column:unit : a string containing the unit for the column (e.g. "cm" for a water level), which will also appear in the header of the column,type : one of "string", "integer", "float", "boolean", or "dateTime", which indicates the type of data that is displayed in the column,isEditable : a flag with value true or false indicating whether the column is editable for the user (e.g. the user can enter the forecast in this column),isExport : a flag with value true or false indicating whether the column must be exported to file if the forecast is published (editable columns are exported by default),exportName : a string containing the name that must be used for exporting the column to file,lang : a string that specifies the language of the header; this attribute behaves the same as for the title keys.
For example, the header section in the forecast table may look like: Code Block |
---|
| <header>
<column id="station">station</column>
<column id="date">date</column>
<column id="time">time</column>
<column id="astro_level" unit="cm">astronomical water level</column>
<column id="water_level" isEditable="true" unit="cm">water level</column>
<column id="evacuate" isEditable="true" type="boolean">evacuate?</column>
</header>
|
Rows can be added to the forecast table by specifying the row key. The number of rows is arbitrary. For each row, an identifier must be specified using the id attribute. Content for a row is added using the cell key, where each cell must correspond to a column in the header. This can be achieved with the columnId attribute of the row key. For example: Code Block |
---|
| <row id="Vlissingen">
<cell columnId="station">Vlissingen</cell>
<cell columnId="date">12 Mar</cell>
<cell columnId="time">17h16</cell>
<cell columnId="astro_level">237</cell>
</row>
|
The cell key also supports a lang attribute that behaves the same as for the title keys.
With the publication of a forecast, a note can be attached. An optional initial text in this note field can be specified with the forecastNote key. |
Column |
---|
Image Added
|
|
Section |
---|
Column |
---|
| Scheduled workflowsInstead of ‘stories’ it is possible to configure a list with scheduled workflows. Then the script will schedule the workflows, much like you would schedule tasks in an operational system. This is also useful when multiple Delft-FEWS applications are linked for a combined training with WaterCoach. In such a set-up there will be a need to share data between the systems, like forecasts that are created or changed during the training. This data exchange can be set-up with the help of (dedicated) workflows that are run all through the script. For each scheduled workflow (workflowId ) you can define the first time it is run (schedulingStart , which is relative to displayStart ) as well as the repeat interval (schedulingInterval ). This can be done for any workflow available in the configuration. If we speed up WaterCoach time, the scheduling interval will be speeded up too. The workflows waiting for the execution are listed in the SystemMonitor, tab Batch Forecasts. In this tab it is also possible to cancel the workflows, using the button Stop Below is an example of a script where an import and export are run with an interval of ten minutes to import forecasts created by another Delft-FEWS system and export forecasts for import by this other system. The data is shared through a shared folder. In this way, the trainees do not have to manually import and export data after forecasts are made or modified. |
Column |
---|
Image Added
|
|
Code Block |
---|
title | Example script with scheduling of workflows |
---|
|
<script xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/watercoachschemas/version1.0/script_config.xsd">
<title>Water Wolf</title>
<timeZone>
<offset>+00:00</offset>
</timeZone>
<dataStart date="2019-10-07" time="09:00:00"/>
<dataStop date="2019-10-11" time="09:00:00"/>
<displayStart date="2020-01-01" time="12:00:00"/>
<workflow>
<workflowId>Export_Meren_WC</workflowId>
<schedulingInterval unit="minute" multiplier="10"/>
<schedulingStart date="2020-01-01" time="12:01:00"/>
</workflow>
<workflow>
<workflowId>Import_Rivieren_Forecast_WC</workflowId>
<schedulingInterval unit="minute" multiplier="10"/>
<schedulingStart date="2020-01-01" time="12:02:00"/>
</workflow>
</script> |
Example script
An example of a script configuration is given here:
Code Block |
---|
| xml |
---|
| xml |
---|
title | Example of script configuration |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2009 sp1 (http://www.altova.com) by ICT (Stichting Deltares) -->
<script xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/waterCoachScript.xsd">
<title>Demonstration</title>
<dataStart date="2007-10-04" time="10:00:00"/>
<dataStop date="2007-10-04" time="13:05:00"/>
<displayStart date="2012-11-23" time="09:55:00"/>
<stories>
<inbox>
<title>inbox</title>
<frame>
<title lang="EN">Session start</title>
<start date="2007-10-04" time="10:05:05"/>
<popup>true</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<file lang="EN">start_session.txt</file>
</frame>
<frame>
<title lang="EN">Help</title>
<start date="2007-10-04" time="10:05:15"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<message lang="EN">If you need help, take a look at file://%fewsRegionDir%\Help.pdf</message>
</frame>
<frame>
<title lang="EN">KNMI analysis_1</title>
<start date="2007-10-04" time="10:06:05"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<file lang="EN">windfield_03111200.pdf</file>
</frame>
<frame>
<title lang="EN">Assignment 1</title>
<start date="2007-10-04" time="10:16:00"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<once>true</once>
<file lang="EN">assignment_1.txt</file>
</frame>
</inbox>
<story color="aquamarine">
<title>KNMI</title>
<frame>
<title lang="EN">Telephone call</title>
<start date="2007-10-04" time="10:06:00"/>
<stop date="2007-10-04" time="10:16:00"/>
<popup>true</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<file lang="EN">phonecall_knmi_1.txt</file>
</frame>
<frame>
<title lang="EN">KNMI phoneline is busy</title>
<start date="2007-10-04" time="10:16:00"/>
<stop date="2007-10-04" time="11:05:00"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<requiredExperienceLevel>1</requiredExperienceLevel>
<message lang="EN">KNMI phoneline is busy. PLease try again later.</message>
<message lang="NL">KNMI telefoonlijn is ingesprek. Probeer het later nogmaals.</message>
</frame>
</story>
<story color="goldenrod">
<title>HMCZ</title>
<frame>
<title lang="EN">Telephone call</title>
<start date="2007-10-04" time="11:07:00"/>
<stop date="2007-10-04" time="12:07:00"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<file lang="EN">phonecall_hmcz_1.txt</file>
</frame>
</story>
<story color="forest green">
<title>HMCN</title>
<frame>
<title lang="EN">Telephone call</title>
<start date="2007-10-04" time="10:08:00"/>
<stop date="2007-10-04" time="12:08:00"/>
<popup>false</popup>
<requiredExperienceLevel>0</requiredExperienceLevel>
<file lang="EN">phonecall_hmcn_1.txt</file>
</frame>
</story>
</stories>
<forecastTable>
<header>
<column id="sector">sector</column>
<column id="station">station</column>
<column id="astro_date" lang="EN">date</column>
<column id="astro_time" lang="EN">time astro high tide</column>
<column id="astro_level" unit="cm" isExport="true" exportName="H.tidal.astronomic">astro water level</column>
<column id="svsd_forecast" unit="cm" isEditable="true" exportName="H.tidal.peak">forecast</column>
</header>
<row id="Vlissingen">
<cell columnId="sector">Schelde</cell>
<cell columnId="station">Vlissingen</cell>
<cell columnId="astro_date" lang="EN">January 1</cell>
<cell columnId="astro_time">19:16</cell>
<cell columnId="astro_level">237</cell>
</row>
<row id="HoekVanHolland">
<cell columnId="sector">West Holland</cell>
<cell columnId="station">Hoek van Holland</cell>
<cell columnId="astro_date" lang="EN">January 1</cell>
<cell columnId="astro_time">20:01</cell>
<cell columnId="astro_level">122</cell>
</row>
</forecastTable>
<forecastNote>
<initialText lang="EN">Here you can add notes to support your forecast.</initialText>
</forecastNote>
<dictionaryFiles>
<dictionaryFile lang="EN">Dictionary_1.xml</dictionaryFile>
</dictionaryFiles>
</script>
|
Dictionary file configuration
Section |
---|
Column |
---|
| DictionaryA dictionary can be added to a script for helping the user to look up words and definitions. These words have to be configured in a dictionary file. The key dictionaryFile contains the path to such a dictionary file. In the section dictionaryFiles , a dictionary file can be specified for an arbitrary number of languages, but only one dictionary file per language is supported. The schema for a dictionary file is as shown on the right. The definition field can also contain a file. In that case the specified file will be opened when the dictionary entry is clicked. |
Column |
---|
Image Added
|
|
Anchor |
---|
| example dictionary |
---|
| example dictionary |
---|
|
Example dictionary
An example of a dictionary file configuration is given here:
Code Block |
---|
title | Example of dictionary file configuration |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<dictionary xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wldelft.nl/fews http://fews.wldelft.nl/schemas/version1.0/waterCoachDictionary.xsd">
<entry>
<word>ACCESS C</word>
<definition>
ACCESS C (1 hour high resolution 36 hour models covering limited domains). Same
disaggregation and sub-area estimation as for OCF.
</definition>
</entry>
<entry>
<word>ACCESS R</word>
<definition>
ACCESS R (1 hour medium resolution 72 hour model). Same disaggregation and
sub-area estimation as for OCF.
</definition>
</entry>
<entry>
<word>ACCESS G</word>
<definition>
ACCESS G (3 hour low resolution model). Same disaggregation and sub-area
estimation as for OCF.
</definition>
</entry>
<entry>
<word>ECMWF</word>
<definition>
ECMWF (3 hour low resolution model). Same disaggregation and sub-area
sestimation as for OCF.
</definition>
</entry>
</dictionary> <Story>
<Title>KNMI</Title>
<Frame>
<Title lang="NL">Telefoon</Title>
<Title lang="EN">Telephone call</Title>
<Start date="2008-03-12" time="04:10:00"/>
<Popup>true</Popup>
<File lang="NL">telefoon_knmi_bericht1_NL.txt</File>
<File lang="EN">telefoon_knmi_bericht1_EN.txt</File>
</Frame>
</Story>
<Story>
<Title>HMCZ</Title>
<Frame>
<Title lang="NL">Telefoon</Title>
<Title lang="EN">Telephone call</Title>
<Start date="2008-03-12" time="04:11:00"/>
<Popup>false</Popup>
<File lang="NL">telefoon_hmcz_bericht1_NL.txt</File>
<File lang="EN">telefoon_hmcz_bericht1_EN.txt</File>
</Frame>
</Story>
<Story>
<Title>HMCN</Title>
<Frame>
<Title lang="NL">Telefoon</Title>
<Title lang="EN">Telephone call</Title>
<Start date="2008-03-12" time="05:36:00"/>
<Popup>false</Popup>
<File lang="NL">telefoon_hmcn_bericht1_NL.txt</File>
<File lang="EN">telefoon_hmcn_bericht1_EN.txt</File>
</Frame>
</Story>
</Stories>
<ForecastTable>
<TimeZone>GMT</TimeZone>
<Header>
<Column id="sector">sector</Column>
<Column id="station">station</Column>
<Column id="astro_date">datum</Column>
<Column id="astro_time">tijd astro HW</Column>
<Column id="astro_level" unit="cm" isExport="true" exportName="H.tidal.astronomic">astro waterstand</Column>
<Column id="svsd_forecast" unit="cm" isEditable="true" exportName="H.tidal.peak">SVSD verwachting</Column>
</Header>
<Row id="Vlissingen">
<Cell columnId="sector">Schelde</Cell>
<Cell columnId="station">Vlissingen</Cell>
<Cell columnId="astro_date">12 maart</Cell>
<Cell columnId="astro_time">17:16</Cell>
<Cell columnId="astro_level">237</Cell>
</Row>
<Row id="HoekVanHolland">
<Cell columnId="sector">West Holland</Cell>
<Cell columnId="station">Hoek van Holland</Cell>
<Cell columnId="astro_date">12 maart</Cell>
<Cell columnId="astro_time">18:01</Cell>
<Cell columnId="astro_level">122</Cell>
</Row>
</ForecastTable>
</Script>
|