<<< Here's the <temperature> part of the weather report:
<temperature> <min>20</min> <max>29</max> <forecast-low>21</forecast-low> <forecast-high>30</forecast-high> </temperature>
A <temperature> has four sub-elements. We want them all to be within a reasonable range of Celsius temperatures. The current version of RELAX doesn't let you make a single definition and reuse it four times. Thus, you have to type all the specifications for the sub-elements individually. Note that it is also possible to put the <tag> element inside the <elementRule>
<elementRule role="min" type="integer"> <tag name="min"/> <minInclusive value="-70"/> <maxInclusive value="70"/> </elementRule> <elementRule role="max" type="integer"> <tag name="max"/> <minInclusive value="-70"/> <maxInclusive value="70"/> </elementRule> <elementRule role="forecast-low" type="integer"> <tag name="forecast-low"/> <minInclusive value="-70"/> <maxInclusive value="70"/> </elementRule> <elementRule role="forecast-high" type="integer"> <tag name="forecast-high"/> <minInclusive value="-70"/> <maxInclusive value="70"/> </elementRule>
Once these are defined, the specification of the <temperature> element is straightforward:
<elementRule role="temperature"> <sequence> <ref label="min"/> <ref label="max"/> <ref label="forecast-low"/> <ref label="forecast-high"/> </sequence> </elementRule> <tag name="temperature"/>
Now, it remains only to define the <wind> portion of the weather report. >>>