<<< Here's the entire RELAX document to describe the weather report:
<module moduleVersion="1.2" relaxCoreVersion="1.0" targetNamespace="" xmlns="http://www.xml.gr.jp/xmlns/relaxCore"> <interface> <export label="report"/> </interface> <elementRule role="report"> <tag name="report"/> <sequence> <ref label="datestamp"/> <ref label="station"/> <ref label="temperature"/> <ref label="wind"/> </sequence> </elementRule> <tag name="report"/> <!-- The datestamp should have type="date", but the current Java validator does not recognize that datatype yet. --> <elementRule role="datestamp" type="string"/> <tag name="datestamp"/> <elementRule role="station"> <sequence> <ref label="latitude"/> <ref label="longitude"/> </sequence> </elementRule> <tag name="station"> <attribute name="fullname" type="string" required="true"> <maxlength value="75"/> </attribute> <attribute name="abbrev" type="string"> <length value="4"/> </attribute> </tag> <elementRule role="latitude" type="decimal"> <minInclusive value="-90"/> <maxInclusive value="90"/> </elementRule> <tag name="latitude"/> <elementRule role="longitude" type="decimal"> <minInclusive value="-180.0"/> <maxInclusive value="180.0"/> </elementRule> <tag name="longitude"/> <elementRule role="temperature"> <sequence> <ref label="min"/> <ref label="max"/> <ref label="forecast-low"/> <ref label="forecast-high"/> </sequence> </elementRule> <tag name="temperature"/> <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> <elementRule role="wind"> <sequence> <ref label="direction" occurs="?" /> <ref label="speed"/> </sequence> </elementRule> <tag name="wind"/> <elementRule role="direction" type="string"> <enumeration value="N"/> <enumeration value="NNE"/> <enumeration value="NE"/> <enumeration value="ENE"/> <enumeration value="E"/> <enumeration value="ESE"/> <enumeration value="SE"/> <enumeration value="SSE"/> <enumeration value="S"/> <enumeration value="SSW"/> <enumeration value="SW"/> <enumeration value="WSW"/> <enumeration value="W"/> <enumeration value="WNW"/> <enumeration value="NW"/> <enumeration value="NNW"/> </elementRule> <tag name="direction"/> <elementRule role="speed" type="nonNegativeInteger"/> <tag name="speed"/> </module>
Some final thoughts >>>