<!ELEMENT UV-index ( #PCDATA ) >
<!ATTLIST UV-index end NMTOKEN #REQUIRED >
<!ATTLIST UV-index start NMTOKEN #REQUIRED >

<!ELEMENT UV-index-list ( UV-index* ) >

<!ELEMENT amended-regions ( location+ ) >

<!ELEMENT accum-amount ( lower-limit, upper-limit ) >
<!ATTLIST accum-amount end NMTOKEN #REQUIRED >
<!ATTLIST accum-amount start NMTOKEN #REQUIRED >
<!ATTLIST accum-amount type NMTOKEN #REQUIRED >

<!ELEMENT accum-list ( accum-amount* ) >
<!ATTLIST accum-list units NMTOKEN #REQUIRED >

<!ELEMENT category ( #PCDATA ) >

<!ELEMENT cloud-cover ( #PCDATA ) >
<!ATTLIST cloud-cover end NMTOKEN #REQUIRED >
<!ATTLIST cloud-cover start NMTOKEN #REQUIRED >
<!ATTLIST cloud-cover cover-start NMTOKEN #IMPLIED >
<!ATTLIST cloud-cover cover-end NMTOKEN #IMPLIED >

<!ELEMENT cloud-list ( cloud-cover | exception )* >
<!ATTLIST cloud-list units NMTOKEN #REQUIRED >

<!ELEMENT scribe-xml ( head, data ) >

<!ELEMENT current-issue ( #PCDATA ) >

<!ELEMENT credit EMPTY >

<!ELEMENT credit-logo EMPTY >

<!ELEMENT data ( forecast* ) >

<!ELEMENT disclaimer ( #PCDATA ) >

<!ELEMENT excep-category ( excep-description+ ) >
<!ATTLIST excep-category excep-code ( secteur | topo ) #REQUIRED >
<!ATTLIST excep-category excep-type ( sauf | seulement | surtout ) #REQUIRED >

<!ELEMENT excep-description ( #PCDATA ) >
<!ATTLIST excep-description lang ( en | fr ) #REQUIRED >

<!ELEMENT exception ( cloud-cover | excep-category |  precipitation-event | temperature-value | value | visibility | wind | freezing-spray )* >
<!ATTLIST exception direction NMTOKEN #IMPLIED >
<!ATTLIST exception end NMTOKEN #REQUIRED >
<!ATTLIST exception frequency ( bref | peu | continuel | continu | frequent | occasionnel ) #IMPLIED >
<!ATTLIST exception ground-frost NMTOKEN #IMPLIED >
<!ATTLIST exception intensity ( fort | faible | tres_faible | nil ) #IMPLIED >
<!ATTLIST exception occurrence ( possible | risk | certain ) #IMPLIED >
<!ATTLIST exception start NMTOKEN #REQUIRED >
<!ATTLIST exception trend NMTOKEN #IMPLIED >
<!ATTLIST exception type NMTOKEN #IMPLIED >

<!ELEMENT feedback ( #PCDATA ) >

<!ELEMENT field ( #PCDATA ) >

<!ELEMENT forecast ( location*, parameters ) >

<!ELEMENT freezing-spray-list ( freezing-spray* ) >

<!ELEMENT freezing-spray  ( exception )*  >
<!ATTLIST freezing-spray start NMTOKEN #REQUIRED >
<!ATTLIST freezing-spray end NMTOKEN #REQUIRED >
<!ATTLIST freezing-spray frequency ( continu | occasionnel ) #REQUIRED >
<!ATTLIST freezing-spray intensity ( faible | modere | fort ) #REQUIRED >
<!ATTLIST freezing-spray occurrence ( certain | risque ) #REQUIRED >
<!ATTLIST freezing-spray ice-cover-modifier ( open_water | outside_ice_edge | ice_covered ) #IMPLIED >

<!ELEMENT ice-cover ( #PCDATA ) >
<!ATTLIST ice-cover end NMTOKEN #REQUIRED >
<!ATTLIST ice-cover start NMTOKEN #REQUIRED >

<!ELEMENT ice-cover-list ( ice-cover*, exception? ) >
<!ATTLIST ice-cover-list units CDATA  #FIXED "%" >

<!ELEMENT head ( product, source ) >

<!ELEMENT initials ( #PCDATA ) >

<!ELEMENT limit ( #PCDATA ) >

<!ELEMENT location ( msc-zone-code, msc-zone-name+ ) >

<!ELEMENT lower-limit ( #PCDATA ) >
<!ATTLIST lower-limit cumul-inf NMTOKEN #IMPLIED >
<!ATTLIST lower-limit type NMTOKEN #IMPLIED >

<!ELEMENT more-information ( #PCDATA ) >

<!ELEMENT msc-zone-code ( #PCDATA ) >

<!ELEMENT msc-zone-name ( #PCDATA ) >
<!ATTLIST msc-zone-name lang ( en | fr ) #REQUIRED >

<!ELEMENT next-issue ( #PCDATA ) >

<!ELEMENT parameters ( UV-index-list | accum-list | cloud-list | precipitation-list | probability-of-precipitation-list | snow-level-list | temperature-list | visibility-list | warning-list | wind-list | wave-height-list | freezing-spray-list | ice-cover-list )* >

<!ELEMENT precipitation-event ( exception | precipitation-event )* >
<!ATTLIST precipitation-event end NMTOKEN #REQUIRED >
<!ATTLIST precipitation-event frequency ( bref | peu | continuel | frequent | occasionnel ) #REQUIRED >
<!ATTLIST precipitation-event intensity ( fort | faible | tres_faible | nil ) #REQUIRED >
<!ATTLIST precipitation-event occurrence ( certain | possible | risk ) #REQUIRED >
<!ATTLIST precipitation-event start NMTOKEN #REQUIRED >
<!ATTLIST precipitation-event type NMTOKEN #REQUIRED >

<!ELEMENT precipitation-list ( precipitation-event* ) >

<!ELEMENT probability-of-precipitation ( #PCDATA ) >
<!ATTLIST probability-of-precipitation end NMTOKEN #REQUIRED >
<!ATTLIST probability-of-precipitation start NMTOKEN #REQUIRED >

<!ELEMENT probability-of-precipitation-list ( probability-of-precipitation* ) >
<!ATTLIST probability-of-precipitation-list units CDATA #FIXED "%" >

<!ELEMENT product ( title, field, category, current-issue, valid-begin-time, valid-end-time, next-issue, timezone, type, initials?, amended-regions? ) >
<!ATTLIST product operational-mode ( developmental | test | experimental | official ) #REQUIRED >

<!ELEMENT production-center ( #PCDATA | sub-center )* >

<!ELEMENT snow-level ( #PCDATA ) >
<!ATTLIST snow-level end NMTOKEN #REQUIRED >
<!ATTLIST snow-level start NMTOKEN #REQUIRED >

<!ELEMENT snow-level-list ( snow-level* ) >
<!ATTLIST snow-level-list units NMTOKEN #REQUIRED  >

<!ELEMENT source ( more-information, production-center, feedback, credit, credit-logo, disclaimer ) >

<!ELEMENT sub-center ( #PCDATA ) >

<!ELEMENT temperature-value ( limit | lower-limit | upper-limit )* >
<!ATTLIST temperature-value end NMTOKEN #REQUIRED >
<!ATTLIST temperature-value start NMTOKEN #REQUIRED >
<!ATTLIST temperature-value ground-frost NMTOKEN #IMPLIED >
<!ATTLIST temperature-value trend ( baisse | hausse | max | min | point_intermediaire | stationnaire | interpolated ) #IMPLIED >

<!ELEMENT temperature-list ( (temperature-value | exception)* ) >
<!ATTLIST temperature-list type ( air-temperature | climatology | dew-point | sea-surface ) #REQUIRED >
<!ATTLIST temperature-list units ( celsius | farenheit ) #REQUIRED >


<!ELEMENT timezone ( #PCDATA ) >

<!ELEMENT title ( #PCDATA ) >

<!ELEMENT type ( #PCDATA ) >

<!ELEMENT upper-limit ( #PCDATA ) >
<!ATTLIST upper-limit cumul-sup NMTOKEN #IMPLIED >
<!ATTLIST upper-limit type NMTOKEN #IMPLIED >

<!ELEMENT valid-begin-time ( #PCDATA ) >
<!ELEMENT valid-end-time ( #PCDATA ) >

<!ELEMENT visibility ( value?, exception? ) >
<!ATTLIST visibility end NMTOKEN #REQUIRED >
<!ATTLIST visibility start NMTOKEN #REQUIRED >
<!ATTLIST visibility type NMTOKEN #REQUIRED >
<!ATTLIST visibility frequency ( continu | occasionnel ) #REQUIRED >

<!ELEMENT visibility-list ( visibility* ) >

<!ELEMENT value ( #PCDATA ) >
<!ATTLIST value units NMTOKEN #REQUIRED  >

<!ELEMENT warning-event ( warning-event* ) >
<!ATTLIST warning-event code NMTOKEN #REQUIRED >
<!ATTLIST warning-event end NMTOKEN #REQUIRED >
<!ATTLIST warning-event start NMTOKEN #REQUIRED >
<!ATTLIST warning-event status NMTOKEN #REQUIRED  >
<!ATTLIST warning-event type ( avertissement | avis ) #REQUIRED >

<!ELEMENT warning-list ( warning-event* ) >

<!ELEMENT wave-height-list ( wave-height* ) >
<!ATTLIST wave-height-list units ( m ) #REQUIRED >

<!ELEMENT wave-height ( lower-limit, upper-limit ) >
<!ATTLIST wave-height start NMTOKEN #REQUIRED >
<!ATTLIST wave-height end NMTOKEN #REQUIRED >
<!ATTLIST wave-height ice-cover-modifier ( open_water | outside_ice_edge | ice_covered ) #IMPLIED >

<!ELEMENT wind ( ( exception | wind-speed | gust-speed )* ) >
<!ATTLIST wind end NMTOKEN #REQUIRED >
<!ATTLIST wind start NMTOKEN #REQUIRED >
<!ATTLIST wind direction NMTOKEN #IMPLIED >
<!ATTLIST wind modificator NMTOKEN #IMPLIED >

<!ELEMENT wind-speed ( lower-limit, upper-limit ) >
<!ELEMENT gust-speed ( lower-limit, upper-limit ) >

<!ELEMENT wind-list ( wind* ) >
<!ATTLIST wind-list units NMTOKEN #REQUIRED >

