Climate norms and extremes.
MeteoXml language has expanded DOM model
and API for Java language, set of useful utilities for data processing.
This language is using as core data format by CliWare system.
(See example on http://www.meteo.ru/cliware). This system allows exporting
data in XML format. MeteoXml document has default namespace http://cliware.meteo.ru.
All tags named in English character set.
MeteoXml document has two main parts:
element definition (<Elements>
) and data block (<DataBlock>
).
Each element has temporary name, its definition.
The temporary name is using to access data in data block.
The application modules usually process some temporary names,
but not predefined element codes. In MeteoXml predefined some key
temporary manes as StI for station index, T for date, Lat for latitude,
Lon for longitude, Lev for level of observation, K as additional key.
The data block contains tables. Table contains element with data quality
flag and additional descriptor D. The MeteoXml Document can be produced by
system using user request that can define own temporary names.
5.Physical structure of MeteoXml document
Hydrometeorological parameters definitions
and data included in the same document. Each hydrometeorological parameter has
temporary name and its full definition.
First line defines data as XML document and used encoding. It is possible
to use any allowed encoding.
<?xml version="1.0" encoding="windows-1251"?>
The main tag of MeteoXml is <DataTransmit>
.
Tag <DataTransmit>
Tag presents all document and has namespace xmlns=http://cliware.meteo.ru,
which define it as MeteoXml document.
Contain tags <TransmitDescr>, <Error>, <Message>, <TransData>
.
Example:
<?xml version="1.0" encoding="windows-1251"?>
<DataTransmit xmlns="http://cliware.meteo.ru">
<TransmitDescr>Meteorological Data</TransmitDescr>
<Error/>
<Message/>
<TransData TdN="Persona">
. . . . .
</TransData>
</DataTransmit>
Tag <TransmitDescr>
Free description of document.
Tag <Error>
Error message if document was produced with errors.
Tag <Message>
Note message if document produced with some limitation.
Tag <TransData>
Subset of document and has unique name defined in attribute TdN. Contain tags DateDescr, TranDescr, Elements, DataBlock.
Example:
<TransData TdN="Persona">
<DateDescr BYObs="1998" EYObs="1999" BDObs="12-31 00:00" EDObs="01-31 18:00" />
<TranDescr>Meteorological Data produced by Persona</TranDescr>
<Elements>
. . . . . . .
</Elements>
<DataBlock dbI="MeteoData">
. . . . . . .
</DataBlock>
</TransData>
Tag <DateDescr>
Defines list of periods and has four attributes: BYObs, EYObs, BDObs, EDObs. Attributes BYObs, EYObs define begin and end years of data presentation (YYYY). Attributes BDObs, EDObs define date and time of periods in each year.Format: MM-DD HH:mm.
Example:
<DateDescr BYObs="1998" EYObs="1999" BDObs="12-31 00:00" EDObs="01-31 18:00" />
Tag <TranDescr>
Free description of document subset.
Tag <Elements>
Tag describes hydrometeorological parameters. Contain tags <ElTb>.
Example:
<Elements>
<ElTb Table="TMCC">
. . . . . . . . .
</ElTb>
</Elements>
Tag <ElTb>
Tag defines virtual tables to present data as tabulated. Contain tags <El>. Attribute Table define name of table. Table name must be unique in tag <Elements>.
Example:
<ElTb Table="Marine.Coastal" >
<El TmN="StI">
. . . . . . . . .
</El">
</ElTb>
Tag <El>
Tag defines one hydrometeorological parameter and attribute TmN defines temporary name of it. Temporary name must be unique in one table. List of predefined temporary names:
· StI - platform observation index;
· T - date and time of observation;
· Lat - Latitude of observation point;
· Lon - Longitude of observation point;
· Lev - level of observation;
· K - additional key.
Contains tags: ElO, ElT, ElC, ElD, ElF, ElDis.
Example:
<El TmN="StI"><ElT TbN="Buoy_Lv" ClN="Station_ID"/></El">
Tag <ElO>
Tag defines database table name and column name to use to write data into database.
Attributes ClN and TbN define column name and table name. If TbN attribute
will be omit Table attribute value of ElTb tag will be use.
Example: <ElO TbN="Buoy_Lv" ClN="Tw"/>
Three forms element definition can be used:
Definition as function result - tag ElF.
Tag <ElT>
Tag defines parameter as database table name and column name where data was stored.
Attributes ClN and TbN define column name and table name. If TbN attribute will be
omit Table attribute value of ElTb tag will be use.
Example: <ElT TbN="Buoy_Lv" ClN="Tw"/>
Tag <ElC>
Tag defines parameter as element code using attribute Cd.
Example: <ElT Cd="cw:456"/>
Tag <ElF>
Tag defines parameter as function result. Attribute FnN defines function name.
Example: <ElF FnN="TdlyMin()"/>
Tag <ElD>
Tag defines value precision and format in this document. Attribute VlF can be:
- F(m,n) - digital value;
- A(k) - string value;
- D(YYYY-MM-DD HH24:MI:SS) - date value.
Default format F(,2).
Example: <ElD VlF="D(YYYY-MM-DD)"/>
Tag <ElDis>
Tag defines parameter names to display it. Attribute ElN - full name of parameter, ElA - abbreviation name of parameter, Q and D display or no quality control flag and additional determinate.
Example:
<ElDis ElN="Water temperature" ElA="Tw" D="n"/>
Tag <DataBlock>
Tag present transmitted data. Attribute dbI defines DataBlock name.
Example:
<DataBlock dbI="dbOcean">
<Table TbN="Buoy_Lv">
. . . .
</Table>
</DataBlock>
Tag <Table>
Tag defines virtual table of data. Attribute TbN defines table name, that must be equals one of table name in ElTb tag.
Example:
<Table TbN="Buoy_Lv">
<Data StI="21533" Lat="36.2" Lon="130.47">
. . . . .
</Data>
</Table>
Tag <Data>
Tag presents point of observation. Attributes StI - index of observation platform,
Lat - Latitude of observation, Lot - Longitude of observation.
Example:
<Data StI="21533" Lat="36.2" Lon="130.47">
<D T="1999-12-06 22:22:00.0" Lev="0.0">
. . . . . .
</D>
</Data>
Tag <D>
Tag presents date and level of observation. Attributes T - time of observation in format YYYY-MM-DD HH24:MI:SS.N, Lev - level of observation.
Example:
<D T="1999-12-06 22:22:00.0" Lev="0.0">
<P N="TYPE_OBS" V="74" />
. . . . . .
<P N="TEMPWAT" V="16.36" Q="0" />
</D>
Tag <P>
Tag presents value of observation. Attributes N - Temporary name of parameter,
V - value of observation, Q - quality control flag, D - additional determinate.
Example:
<P N="TYPE_OBS" V="74" />
<P N="MARS10" V="131" />
<P N="CENTR" V="WKARS" />
<P N="LEVTYPE" V="100" />
<P N="TEMPWAT" V="16.36" Q="0" />
6.MeteoXML examples.
SYNOP data.
<?xml version="1.0" encoding="windows-1251"?>
<DataTransmit xmlns="http://cliware.meteo.ru">
<TransmitDescr>Data selected from Database
Period: 2003-2003 01-11 15:00 - 01-11 16:59
Tables: SynopI
Parameters:
Station_ID Date_obs StationName WndSp TempDb PresSl
</TransmitDescr>
<TransData TdN="TransData_1">
<TranDescr>Generated query from SQL</TranDescr>
<DateDescr BYObs="2003" EYObs="2003" BDObs="01-11 15:00" EDObs="01-11 16:59" />
<Elements>
<ElTb Table="SynopI">
<El TmN="StI">
<ElO ClN="Station_ID" TbN="SynopI" />
<ElT ClN="Station_ID" />
<ElDis ElN="Station" ElA="Station" />
</El>
<El TmN="T">
<ElO ClN="Date_obs" TbN="SynopI" />
<ElT ClN="Date_obs" />
<ElDis ElN="Date" ElA="Date" />
</El>
<El TmN="StN">
<ElO ClN="StationName" TbN="SynopI" />
<ElT ClN="StationName" TbN="SynopI" />
<ElDis ElN="Station name" ElA="Name" Q="n" D="n" />
</El>
<El TmN="T11">
<ElO ClN="WndSp" TbN="SynopI" />
<ElT ClN="WndSp" TbN="SynopI" />
<ElDis ElN="Wind speed" ElA="ff" D="n" />
</El>
<El TmN="T12">
<ElO ClN="TempDb" TbN="SynopI" />
<ElT ClN="TempDb" TbN="SynopI" />
<ElDis ElN="Air temperature" ElA="TTT" D="n" />
</El>
<El TmN="T16">
<ElO ClN="PresSl" TbN="SynopI" />
<ElT ClN="PresSl" TbN="SynopI" />
<ElDis ElN="Pressure on sea level" ElA="PPPP" D="n" />
</El>
</ElTb>
</Elements>
<DataBlock dbI="TransData_1">
<Table TbN="SynopI">
<Data StI="94300">
<D T="2003-01-11 16:00:00.0">
<P N="StN" V="CARNARVON AIRPORT" />
<P N="T11" V="6" Q="1" />
<P N="T12" V="22.6" Q="1" />
<P N="T16" V="1011.8" Q="1" />
</D>
</Data>
<Data StI="94402">
<D T="2003-01-11 16:00:00.0">
<P N="StN" V="SHARK BAY (DENHAM)" />
<P N="T11" V="6" Q="1" />
<P N="T12" V="23" Q="1" />
<P N="T16" V="1011.6" Q="1" />
</D>
</Data>
<Data StI="95402">
<D T="2003-01-11 16:00:00.0">
<P N="StN" V="SHARK BAY AIRPORT" />
<P N="T11" V="3" Q="1" />
<P N="T12" V="20.9" Q="1" />
<P N="T16" V="1011.9" Q="1" />
</D>
</Data>
</Table>
</DataBlock>
</TransData>
</DataTransmit>
Upper Air data
<?xml version="1.0" encoding="windows-1251"?>
<DataTransmit xmlns="http://cliware.meteo.ru">
<TransmitDescr>Data selected from DataBase
Period: 2002-2002 01-30 00:00 - 01-31 23:59
Tables: GTS.V_AIR_LEVEL
Parameters:
Station_ID Date_obs K Lev TypeLev PressLev HighLev TempDb DefTempDp WndDir WndSp SubstWndB SubstWndA
</TransmitDescr>
<TransData TdN="TransData_1">
<TranDescr>Generated query from SQL</TranDescr>
<DateDescr BYObs="2002" EYObs="2002" BDObs="01-30 00:00" EDObs="01-31 23:59" />
<Elements>
<ElTb Table="Table">
<El TmN="StI">
<ElT ClN="Station_ID" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Station" ElA="Station" />
</El>
<El TmN="T">
<ElT ClN="Date_obs" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Date" ElA="Date" />
</El>
<El TmN="K">
<ElT ClN="K" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Type observation" ElA="Type_Obs" Q="n" D="n" />
</El>
<El TmN="Lev">
<ElT ClN="Lev" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Type part" ElA="TypePart" Q="n" D="n" />
</El>
<El TmN="T3">
<ElT ClN="TypeLev" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Type level" ElA="TypeLev " Q="n" D="n" />
</El>
<El TmN="T4">
<ElT ClN="PressLev" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Pressure on level, gPA" ElA="PPP" D="n" />
</El>
<El TmN="T5">
<ElT ClN="HighLev" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Height of a surface, m" ElA="hhh" D="n" />
</El>
<El TmN="T6">
<ElT ClN="TempDb" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Temperature of air,C" ElA="TTT " D="n" />
</El>
<El TmN="T7">
<ElT ClN="DefTempDp" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Deficiency of dew point ,C" ElA="DD " D="n" />
</El>
<El TmN="T8">
<ElT ClN="WndDir" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Wind dir., degrees" ElA="dd " D="n" />
</El>
<El TmN="T9">
<ElT ClN="WndSp" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Wind speed" ElA="fff" D="n" />
</El>
<El TmN="T10">
<ElT ClN="SubstWndB" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Shift of a wind" ElA="VbVb" D="n" />
</El>
<El TmN="T11">
<ElT ClN="SubstWndA" TbN="GTS.V_AIR_LEVEL" />
<ElDis ElN="Shift of a wind " ElA="VaVa" D="n" />
</El>
</ElTb>
</Elements>
<DataBlock dbI="TransData_1">
<Table TbN="Table">
<Data StI="27459">
<D T="2002-01-30 00:00:00.0" Lev="1.0" K="11">
<P N="T3" V="1" />
<P N="T4" V="969" Q="1" />
<P N="T5" V="161" Q="0" />
<P N="T6" V="-2.5" Q="1" />
<P N="T7" V="2.2" Q="1" />
<P N="T8" V="180" Q="1" />
<P N="T9" V="1" Q="1" />
</D>
<D T="2002-01-30 00:00:00.0" Lev="2.0" K="11">
<P N="T3" V="10" />
<P N="T4" V="1000" Q="1" />
<P N="T5" V="-95" Q="0" />
</D>
<D T="2002-01-30 00:00:00.0" Lev="3.0" K="11">
<P N="T3" V="10" />
<P N="T4" V="925" Q="1" />
<P N="T5" V="520" Q="0" />
<P N="T6" V="-2.9" Q="1" />
<P N="T7" V="0.7" Q="1" />
<P N="T8" V="235" Q="1" />
<P N="T9" V="8" Q="1" />
</D>
<D T="2002-01-30 00:00:00.0" Lev="4.0" K="11">
<P N="T3" V="10" />
<P N="T4" V="850" Q="1" />
<P N="T5" V="1190" Q="0" />
<P N="T6" V="-5.5" Q="1" />
<P N="T7" V="1.2" Q="1" />
<P N="T8" V="235" Q="1" />
<P N="T9" V="9" Q="1" />
</D>
<D T="2002-01-30 00:00:00.0" Lev="5.0" K="11">
<P N="T3" V="10" />
<P N="T4" V="700" Q="1" />
<P N="T5" V="2690" Q="0" />
<P N="T6" V="-13.3" Q="1" />
<P N="T7" V="4.7" Q="1" />
<P N="T8" V="240" Q="1" />
<P N="T9" V="11" Q="1" />
</D>
<D T="2002-01-30 00:00:00.0" Lev="6.0" K="11">
<P N="T3" V="10" />
<P N="T4" V="500" Q="1" />
<P N="T5" V="5160" Q="0" />
<P N="T6" V="-31.7" Q="1" />
<P N="T7" V="3.8" Q="1" />
<P N="T8" V="245" Q="1" />
<P N="T9" V="15" Q="1" />
</D>
</Data>
</Table>
</DataBlock>
</TransData>
</DataTransmit>
Tesak
<?xml version="1.0" encoding="windows-1251"?>
<DataTransmit xmlns="http://cliware.meteo.ru">
<TransmitDescr>Data selected from DataBase
Period: 2000-2000 10-01 00:00 - 10-31 23:59
Tables: Marine.Tes_Level
Parameters:
Station_ID Date_obs Lat Lon Lev Type_Obs TEMPWAT SaltWat
</TransmitDescr>
<TransData TdN="TransData_1">
<TranDescr>Generated query from SQL</TranDescr>
<DateDescr BYObs="2000" EYObs="2000" BDObs="10-01 00:00" EDObs="10-31 23:59" />
<Elements>
<ElTb Table="Table">
<El TmN="StI">
<ElT ClN="Station_ID" TbN="Marine.Tes_Level" />
<ElDis ElN="Station" ElA="Station" />
</El>
<El TmN="T">
<ElT ClN="DATE_OBS" TbN="Marine.Tes_Level" />
<ElDis ElN="Date" ElA="Date" />
</El>
<El TmN="Lat">
<ElT ClN="LAT" TbN="Marine.Tes_Level" />
<ElDis ElN="Lat" ElA="Lat" />
</El>
<El TmN="Lon">
<ElT ClN="LON" TbN="Marine.Tes_Level" />
<ElDis ElN="Lon" ElA="Lon" />
</El>
<El TmN="Lev">
<ElT ClN="LEV" TbN="Marine.Tes_Level" />
<ElDis ElN="Lev" ElA="Lev" />
</El>
<El TmN="Type">
<ElT ClN="Type_Obs" TbN="Marine.Tes_Level" />
<ElDis ElN="TypeObs" ElA="Type" Q="n" D="n" />
</El>
<El TmN="Tw">
<ElT ClN="TEMPWAT" TbN="Marine.Tes_Level" />
<ElDis ElN="Tw" ElA="Tw" D="n" />
</El>
<El TmN="S">
<ElT ClN="SaltWat" TbN="Marine.Tes_Level" />
<ElDis ElN="S" ElA="S" D="n" />
</El>
</ElTb>
</Elements>
<DataBlock dbI="TransData_1">
<Table TbN="Table">
<Data StI="69016" Lat="44.200" Lon="-23.860">
<D T="2000-10-12 23:57:00.0" Lev="6.0">
<P N="Type" V="72" />
<P N="Tw" V="16.81" Q="1" />
<P N="S" V="36.27" Q="1" />
</D>
<D T="2000-10-12 23:57:00.0" Lev="9.0">
<P N="Type" V="72" />
<P N="Tw" V="16.82" Q="1" />
<P N="S" V="36.26" Q="1" />
</D>
<D T="2000-10-12 23:57:00.0" Lev="19.0">
<P N="Type" V="72" />
<P N="Tw" V="16.83" Q="1" />
<P N="S" V="36.26" Q="1" />
</D>
<D T="2000-10-12 23:57:00.0" Lev="29.0">
<P N="Type" V="72" />
<P N="Tw" V="16.84" Q="1" />
<P N="S" V="36.26" Q="1" />
</D>
<D T="2000-10-12 23:57:00.0" Lev="39.0">
<P N="Type" V="72" />
<P N="Tw" V="16.84" Q="1" />
<P N="S" V="36.26" Q="1" />
</D>
</Data>
</Table>
</DataBlock>
</TransData>
</DataTransmit>
7.MeteoXML schema.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://cliware.meteo.ru"
xmlns="http://cliware.meteo.ru"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="DataTransmit" type="DataTransmitEl">
<xs:annotation>
<xs:documentation>Root element of MeteoXML</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="DataTransmitEl">
<xs:annotation>
<xs:documentation>Root element of MeteoXML</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="TransmitDescr" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
Free text to describe data transmition
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
Free text to describe error in data processing
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Message" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Free text for note in data processing</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TransData" type="TransDataEl" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Hydrometeorological data with definitions
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TransDataEl">
<xs:annotation>
<xs:documentation>
Hydrometeorological data with definitions
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="TranDescr" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
Free text to describethis part of data transmition
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DateDescr" type="DateDescrEl">
<xs:annotation>
<xs:documentation>
Defines list of periods for wich data present
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Elements" type="ElementsEl">
<xs:annotation>
<xs:documentation>
Defines list of Parameters, that can be included in this document
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataBlock" type="DataBlockEl" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Contain transmitted data</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="TdN" type="xs:ID" use="required">
<xs:annotation>
<xs:documentation>
Unique ID of transmition data block. Any legal string
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="DateDescrEl">
<xs:annotation>
<xs:documentation>
Defines list of periods for wich data present
</xs:documentation>
</xs:annotation>
<xs:attribute name="BYObs" type="xs:gYear" use="required">
<xs:annotation>
<xs:documentation>
Begin year of data presented in transmition data block
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="EYObs" type="xs:gYear" use="required">
<xs:annotation>
<xs:documentation>
End year of data presented in transmition data block
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="BDObs" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Begin date of period of data presented in transmition data block as mm-dd hh:mm
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="EDObs" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
End date of period of data presented in transmition data block as mm-dd hh:mm
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElementsEl">
<xs:annotation>
<xs:documentation>
Defines list of Parameters, that can be included in this document
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="ElTb" type="ElTbEl" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Logical table definition</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DataBlockEl">
<xs:annotation>
<xs:documentation>Contain transmitted data</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Table" type="TableEl" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Defines logical table with data</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="dbI" type="xs:ID" use="required">
<xs:annotation>
<xs:documentation>
Unique ID of data block. Any legal string
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElTbEl">
<xs:annotation>
<xs:documentation>
Logical table definition to present data as tables
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="El" type="ElEl" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Parameter definition that can be included in this document
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Table" type="xs:ID" use="required">
<xs:annotation>
<xs:documentation>
Unique ID of virtual table. Any legal string
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElEl">
<xs:annotation>
<xs:documentation>Parameter definition</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="ElO" type="ElOEl" minOccurs="0">
<xs:annotation>
<xs:documentation>
Column definition for database output table
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ElT" type="ElTEl" minOccurs="0">
<xs:annotation>
<xs:documentation>
Parameter definition as database table and column
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ElC" type="ElCEl" minOccurs="0">
<xs:annotation>
<xs:documentation>Parameter definition as code</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ElF" type="ElFEl" minOccurs="0">
<xs:annotation>
<xs:documentation>Parameter definition as function output</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ElD" type="ElDEl" minOccurs="0">
<xs:annotation>
<xs:documentation>Parameter format definition</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ElDis" type="ElDisEl">
<xs:annotation>
<xs:documentation>Parameter description</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="TmN" type="xs:ID" use="required">
<xs:annotation>
<xs:documentation>
Unique (within virtual table) temporary name of hydrometeorological parameter.
Any legal string
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElOEl">
<xs:annotation>
<xs:documentation>Column definition for database output table</xs:documentation>
</xs:annotation>
<xs:attribute name="TbN" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>DataBase table name.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ClN" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Column name</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElTEl">
<xs:annotation>
<xs:documentation>
Parameter definition as database table and column
</xs:documentation>
</xs:annotation>
<xs:attribute name="ClN" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Table name. If omit Table attribute form ElTb will be used
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TbN" type="xs:string">
<xs:annotation>
<xs:documentation>Column name</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElCEl">
<xs:annotation>
<xs:documentation>Parameter definition as code</xs:documentation>
</xs:annotation>
<xs:attribute name="Cd" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Parameter code</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElFEl">
<xs:annotation>
<xs:documentation>Parameter definition as function output</xs:documentation>
</xs:annotation>
<xs:attribute name="FnN" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Function name</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElDEl">
<xs:annotation>
<xs:documentation>Parameter format definition</xs:documentation>
</xs:annotation>
<xs:attribute name="VlF" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Value format: F(m,n) - digital value;
A(k) - string value;
D(YYYY-MM-DD HH24:MI:SS) - date value
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ElDisEl">
<xs:annotation>
<xs:documentation>Parameter description</xs:documentation>
</xs:annotation>
<xs:attribute name="ElN" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Full name of Parameter</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ElA" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Abbreviated name of Parameter</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Q" type="YN" default="y">
<xs:annotation>
<xs:documentation>
Request to include or not quality control flag in data block
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="D" type="YN" default="y">
<xs:annotation>
<xs:documentation>
Request to include or not additional determination flag in data block
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:simpleType name="YN">
<xs:annotation>
<xs:documentation>Provide or no control flag</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="y"/>
<xs:enumeration value="n"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="TableEl">
<xs:annotation>
<xs:documentation>Defines virtual table with data</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Data" type="DataEl" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Station level of tree.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="TbN" type="xs:ID" use="required">
<xs:annotation>
<xs:documentation>
Name of the virtual table. Must be equals to one of defined tables in Elements tag
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="DataEl">
<xs:annotation>
<xs:documentation>Station level of tree</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="D" type="DEl" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Date level of tree</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="StI" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Index of observation platform</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Lat" type="xs:double" use="optional">
<xs:annotation>
<xs:documentation>Latitude of point of observation</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Lon" type="xs:double" use="optional">
<xs:annotation>
<xs:documentation>Longitude of point of observation</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="DEl">
<xs:annotation>
<xs:documentation>
Date level of tree. Can be detailed by level of observation and some key value
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="P" type="PEl" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Data for one parameter defined as N atribute
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="T" type="xs:dateTime" use="required">
<xs:annotation>
<xs:documentation>
Date and time of observation in format yyyy-mm-dd hh24:mm:ss.n
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Lev" type="xs:double" use="optional">
<xs:annotation>
<xs:documentation>
Level of observation if data presented on differen levels
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="K" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Additional key to provide unique value of combination of T, Lev, and K
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="PEl">
<xs:annotation>
<xs:documentation>Data for one parameter defined as N atribute</xs:documentation>
</xs:annotation>
<xs:attribute name="N" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Temporary name of parameter. Must be equals to one of defined in El tag
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="V" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Value of hydrometeorological parameter</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Q" type="xs:string">
<xs:annotation>
<xs:documentation>Quality control flag</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="D" type="xs:string">
<xs:annotation>
<xs:documentation>
Additional determinator of the value of the hydrometeorological parameter
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:schema>