Schema Name: parameters.xsd
Collapse XSD Schema Code:

<!--Created with Liquid XML Studio - Developer Pro Edition 7.1.0.1135 (http://www.liquid-technologies.com)-->
<!--   **********************************************************************   
                                                                           
       parameters.xsd   

       John L. Schattel          MDL                4 August 2004  
       Red Hat Linux                                Apache Server

       History 
       12/2007 Paul Hershberg MDL: Added changes to accommodate RTMA elements.
        2/2008 Paul Hershberg MDL: Added changes to accommodate concatenated 
                                   RTMA+NDFD elements.
        6/2008 Paul Hershberg MDL: Added changes to accommodate Hazard element.

       ************************************************************************   -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:complexType name="parametersType">
    <xsd:sequence>
      <!--   TEMPERATURE DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="temperature">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:choice>
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true" type="tempValType" />
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="valueWithUncertainty" nillable="true">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element minOccurs="0" maxOccurs="1" name="value" nillable="true" type="tempValType" />
                    <xsd:element minOccurs="0" maxOccurs="1" name="uncertainty" nillable="true">
                      <xsd:complexType>
                        <xsd:sequence>
                          <xsd:element minOccurs="0" maxOccurs="1" name="error">
                            <xsd:complexType>
                              <xsd:simpleContent>
                                <xsd:extension base="xsd:decimal">
                                  <xsd:attribute default="+/-" name="qualifier" use="optional">
                                    <xsd:simpleType>
                                      <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="+/-" />
                                        <xsd:enumeration value="+" />
                                        <xsd:enumeration value="-" />
                                        <xsd:enumeration value="%" />
                                      </xsd:restriction>
                                    </xsd:simpleType>
                                  </xsd:attribute>
                                </xsd:extension>
                              </xsd:simpleContent>
                            </xsd:complexType>
                          </xsd:element>
                        </xsd:sequence>
                        <xsd:attribute name="type" use="required">
                          <xsd:simpleType>
                            <xsd:restriction base="xsd:string">
                              <xsd:enumeration value="analysis error" />
                              <xsd:enumeration value="forecast" />
                            </xsd:restriction>
                          </xsd:simpleType>
                        </xsd:attribute>
                      </xsd:complexType>
                    </xsd:element>
                  </xsd:sequence>
                  <xsd:attribute name="type" use="optional">
                    <xsd:simpleType>
                      <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="NDFD" />
                        <xsd:enumeration value="RTMA" />
                      </xsd:restriction>
                    </xsd:simpleType>
                  </xsd:attribute>
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="maximum" />
                <xsd:enumeration value="minimum" />
                <xsd:enumeration value="hourly" />
                <xsd:enumeration value="rtma-hourly" />
                <xsd:enumeration value="dew point" />
                <xsd:enumeration value="rtma-dew point" />
                <xsd:enumeration value="heat index" />
                <xsd:enumeration value="wind chill" />
                <xsd:enumeration value="apparent" />
                <xsd:enumeration value="8-14 day anomolies" />
                <xsd:enumeration value="monthly anomolies" />
                <xsd:enumeration value="seasonal anomolies" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute fixed="Fahrenheit" name="units" type="xsd:string" />
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
          <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
        </xsd:complexType>
      </xsd:element>
      <!--   PRECIPITATION AMOUNT DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="precipitation">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="xsd:decimal">
                    <xsd:attribute name="upper-range" type="xsd:decimal" use="optional" />
                    <xsd:attribute name="lower-range" type="xsd:decimal" use="optional" />
                    <xsd:attribute name="type" use="optional">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:enumeration value="NDFD" />
                          <xsd:enumeration value="RTMA" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:attribute>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="liquid" />
                <xsd:enumeration value="rtma-liquid" />
                <xsd:enumeration value="snow" />
                <xsd:enumeration value="8-14 day anomolies" />
                <xsd:enumeration value="monthly anomolies" />
                <xsd:enumeration value="seasonal anomolies" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute fixed="inches" name="units" type="xsd:string" />
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
          <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
        </xsd:complexType>
      </xsd:element>
      <!--   PROBABILITY OF PRECIPITATION DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="probability-of-precipitation">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="xsd:nonNegativeInteger">
                    <xsd:attribute name="upper-range" use="optional">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:nonNegativeInteger">
                          <xsd:maxInclusive value="100" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:attribute>
                    <xsd:attribute name="lower-range" use="optional">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:nonNegativeInteger">
                          <xsd:maxInclusive value="100" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:attribute>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="12 hour" />
                <xsd:enumeration value="floating" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute fixed="percent" name="units" type="xsd:string" />
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
          <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
        </xsd:complexType>
      </xsd:element>
      <!--   CONVECTIVE HAZARDS PROBABILITIES DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="convective-hazard">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="outlook">
              <xsd:complexType>
                <xsd:sequence>
                  <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
                  <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true">
                    <xsd:simpleType>
                      <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="No Thunderstorms" />
                        <xsd:enumeration value="General Thunderstorms" />
                        <xsd:enumeration value="Slight Risk of Severe Thunderstorms" />
                        <xsd:enumeration value="Moderate Risk of Severe Thunderstorms" />
                        <xsd:enumeration value="High Risk of Severe Thunderstorms" />
                      </xsd:restriction>
                    </xsd:simpleType>
                  </xsd:element>
                </xsd:sequence>
                <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
                <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
                <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
              </xsd:complexType>
            </xsd:element>
            <xsd:element minOccurs="0" maxOccurs="8" name="severe-component">
              <xsd:complexType>
                <xsd:sequence>
                  <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
                  <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true">
                    <xsd:complexType>
                      <xsd:simpleContent>
                        <xsd:extension base="xsd:nonNegativeInteger">
                          <xsd:attribute name="upper-range" use="optional">
                            <xsd:simpleType>
                              <xsd:restriction base="xsd:nonNegativeInteger">
                                <xsd:maxInclusive value="100" />
                              </xsd:restriction>
                            </xsd:simpleType>
                          </xsd:attribute>
                          <xsd:attribute name="lower-range" use="optional">
                            <xsd:simpleType>
                              <xsd:restriction base="xsd:nonNegativeInteger">
                                <xsd:maxInclusive value="100" />
                              </xsd:restriction>
                            </xsd:simpleType>
                          </xsd:attribute>
                        </xsd:extension>
                      </xsd:simpleContent>
                    </xsd:complexType>
                  </xsd:element>
                </xsd:sequence>
                <xsd:attribute name="type" use="required">
                  <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                      <xsd:enumeration value="tornadoes" />
                      <xsd:enumeration value="hail" />
                      <xsd:enumeration value="damaging thunderstorm winds" />
                      <xsd:enumeration value="extreme tornadoes" />
                      <xsd:enumeration value="extreme hail" />
                      <xsd:enumeration value="extreme thunderstorm winds" />
                      <xsd:enumeration value="severe thunderstorms" />
                      <xsd:enumeration value="extreme severe thunderstorms" />
                    </xsd:restriction>
                  </xsd:simpleType>
                </xsd:attribute>
                <xsd:attribute fixed="percent" name="units" type="xsd:string" />
                <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
                <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
                <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!--   CLIMATE OUTLOOK ANOMALY PROBABILITIES DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="climate-anomaly">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="4" name="weekly" type="anomalyType" />
            <xsd:element minOccurs="0" maxOccurs="4" name="monthly" type="anomalyType" />
            <xsd:element minOccurs="0" maxOccurs="4" name="seasonal" type="anomalyType" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <!--   WIND SPEED DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="wind-speed">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:choice>
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true" type="wspdValType" />
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="valueWithUncertainty" nillable="true">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element minOccurs="0" maxOccurs="1" name="value" nillable="true" type="wspdValType" />
                    <xsd:element minOccurs="0" maxOccurs="1" name="uncertainty" nillable="true">
                      <xsd:complexType>
                        <xsd:sequence>
                          <xsd:element minOccurs="0" maxOccurs="1" name="error">
                            <xsd:complexType>
                              <xsd:simpleContent>
                                <xsd:extension base="xsd:nonNegativeInteger">
                                  <xsd:attribute default="+/-" name="qualifier" use="optional">
                                    <xsd:simpleType>
                                      <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="+/-" />
                                        <xsd:enumeration value="+" />
                                        <xsd:enumeration value="-" />
                                        <xsd:enumeration value="%" />
                                      </xsd:restriction>
                                    </xsd:simpleType>
                                  </xsd:attribute>
                                </xsd:extension>
                              </xsd:simpleContent>
                            </xsd:complexType>
                          </xsd:element>
                        </xsd:sequence>
                        <xsd:attribute name="type" use="required">
                          <xsd:simpleType>
                            <xsd:restriction base="xsd:string">
                              <xsd:enumeration value="analysis error" />
                              <xsd:enumeration value="forecast" />
                            </xsd:restriction>
                          </xsd:simpleType>
                        </xsd:attribute>
                      </xsd:complexType>
                    </xsd:element>
                  </xsd:sequence>
                  <xsd:attribute name="type" use="optional">
                    <xsd:simpleType>
                      <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="NDFD" />
                        <xsd:enumeration value="RTMA" />
                      </xsd:restriction>
                    </xsd:simpleType>
                  </xsd:attribute>
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="sustained" />
                <xsd:enumeration value="rtma-sustained" />
                <xsd:enumeration value="gust" />
                <xsd:enumeration value="transport" />
                <xsd:enumeration value="cumulative34" />
                <xsd:enumeration value="cumulative50" />
                <xsd:enumeration value="cumulative64" />
                <xsd:enumeration value="incremental34" />
                <xsd:enumeration value="incremental50" />
                <xsd:enumeration value="incremental64" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute default="knots" name="units">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="knots" />
                <xsd:enumeration value="percent" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
          <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
        </xsd:complexType>
      </xsd:element>
      <!--   WIND DIRECTION DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="direction">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:choice>
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true" type="wdirValType" />
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="valueWithUncertainty" nillable="true">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element minOccurs="0" maxOccurs="1" name="value" nillable="true" type="wdirValType" />
                    <xsd:element minOccurs="0" maxOccurs="1" name="uncertainty" nillable="true">
                      <xsd:complexType>
                        <xsd:sequence>
                          <xsd:element minOccurs="0" maxOccurs="1" name="error">
                            <xsd:complexType>
                              <xsd:simpleContent>
                                <xsd:extension base="xsd:nonNegativeInteger">
                                  <xsd:attribute default="+/-" name="qualifier" use="optional">
                                    <xsd:simpleType>
                                      <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="+/-" />
                                        <xsd:enumeration value="+" />
                                        <xsd:enumeration value="-" />
                                        <xsd:enumeration value="%" />
                                      </xsd:restriction>
                                    </xsd:simpleType>
                                  </xsd:attribute>
                                </xsd:extension>
                              </xsd:simpleContent>
                            </xsd:complexType>
                          </xsd:element>
                        </xsd:sequence>
                        <xsd:attribute name="type" use="required">
                          <xsd:simpleType>
                            <xsd:restriction base="xsd:string">
                              <xsd:enumeration value="analysis error" />
                              <xsd:enumeration value="forecast" />
                            </xsd:restriction>
                          </xsd:simpleType>
                        </xsd:attribute>
                      </xsd:complexType>
                    </xsd:element>
                  </xsd:sequence>
                  <xsd:attribute name="type" use="optional">
                    <xsd:simpleType>
                      <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="NDFD" />
                        <xsd:enumeration value="RTMA" />
                      </xsd:restriction>
                    </xsd:simpleType>
                  </xsd:attribute>
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="wind" />
                <xsd:enumeration value="rtma-wind" />
                <xsd:enumeration value="swell" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute fixed="degrees true" name="units" type="xsd:string" />
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
          <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
        </xsd:complexType>
      </xsd:element>
      <!--   CLOUD AMOUNT DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="cloud-amount">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:choice>
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true" type="cloudValType" />
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="valueWithUncertainty" nillable="true">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element minOccurs="0" maxOccurs="1" name="value" nillable="true" type="cloudValType" />
                    <xsd:element minOccurs="0" maxOccurs="1" name="uncertainty" nillable="true">
                      <xsd:complexType>
                        <xsd:sequence>
                          <xsd:element minOccurs="0" maxOccurs="1" name="error">
                            <xsd:complexType>
                              <xsd:simpleContent>
                                <xsd:extension base="xsd:nonNegativeInteger">
                                  <xsd:attribute default="+/-" name="qualifier" use="optional">
                                    <xsd:simpleType>
                                      <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="+/-" />
                                        <xsd:enumeration value="+" />
                                        <xsd:enumeration value="-" />
                                        <xsd:enumeration value="%" />
                                      </xsd:restriction>
                                    </xsd:simpleType>
                                  </xsd:attribute>
                                </xsd:extension>
                              </xsd:simpleContent>
                            </xsd:complexType>
                          </xsd:element>
                        </xsd:sequence>
                        <xsd:attribute name="type" use="required">
                          <xsd:simpleType>
                            <xsd:restriction base="xsd:string">
                              <xsd:enumeration value="analysis error" />
                              <xsd:enumeration value="forecast" />
                            </xsd:restriction>
                          </xsd:simpleType>
                        </xsd:attribute>
                      </xsd:complexType>
                    </xsd:element>
                  </xsd:sequence>
                  <xsd:attribute name="type" use="optional">
                    <xsd:simpleType>
                      <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="NDFD" />
                        <xsd:enumeration value="RTMA" />
                      </xsd:restriction>
                    </xsd:simpleType>
                  </xsd:attribute>
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:sequence>
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="total" />
                <xsd:enumeration value="rtma-total" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute fixed="percent" name="units" type="xsd:string" />
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
          <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
        </xsd:complexType>
      </xsd:element>
      <!--   HUMIDITY DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="humidity">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true">
              <xsd:complexType>
                <xsd:simpleContent>
                  <xsd:extension base="xsd:nonNegativeInteger">
                    <xsd:attribute name="upper-range" use="optional">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:nonNegativeInteger">
                          <xsd:maxInclusive value="100" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:attribute>
                    <xsd:attribute name="lower-range" use="optional">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:nonNegativeInteger">
                          <xsd:maxInclusive value="100" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:attribute>
                  </xsd:extension>
                </xsd:simpleContent>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="relative" />
                <xsd:enumeration value="maximum relative" />
                <xsd:enumeration value="minimum relative" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute fixed="percent" name="units" type="xsd:string" />
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
          <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
        </xsd:complexType>
      </xsd:element>
      <!--   WEATHER DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="weather">
        <xsd:complexType>
          <xsd:sequence minOccurs="1" maxOccurs="unbounded">
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:element minOccurs="1" maxOccurs="unbounded" name="weather-conditions" nillable="true">
              <xsd:complexType>
                <xsd:sequence minOccurs="1" maxOccurs="unbounded">
                  <xsd:element minOccurs="0" maxOccurs="1" name="value" nillable="true">
                    <xsd:complexType>
                      <xsd:sequence>
                        <xsd:element minOccurs="0" maxOccurs="1" name="visibility" nillable="true">
                          <xsd:complexType>
                            <xsd:simpleContent>
                              <xsd:extension base="xsd:string">
                                <xsd:attribute default="statute miles" name="units" use="optional">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                      <xsd:enumeration value="statute miles" />
                                      <xsd:enumeration value="meters" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:attribute>
                              </xsd:extension>
                            </xsd:simpleContent>
                          </xsd:complexType>
                        </xsd:element>
                      </xsd:sequence>
                      <xsd:attribute name="coverage" use="optional">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:enumeration value="slight chance" />
                            <xsd:enumeration value="chance" />
                            <xsd:enumeration value="likely" />
                            <xsd:enumeration value="occasional" />
                            <xsd:enumeration value="definitely" />
                            <xsd:enumeration value="isolated" />
                            <xsd:enumeration value="scattered" />
                            <xsd:enumeration value="numerous" />
                            <xsd:enumeration value="patchy" />
                            <xsd:enumeration value="areas" />
                            <xsd:enumeration value="widespread" />
                            <xsd:enumeration value="periods of" />
                            <xsd:enumeration value="frequent" />
                            <xsd:enumeration value="intermittent" />
                            <xsd:enumeration value="none" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:attribute>
                      <xsd:attribute name="weather-type" use="optional">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:enumeration value="freezing drizzle" />
                            <xsd:enumeration value="freezing rain" />
                            <xsd:enumeration value="snow showers" />
                            <xsd:enumeration value="blowing snow" />
                            <xsd:enumeration value="blowing dust" />
                            <xsd:enumeration value="rain showers" />
                            <xsd:enumeration value="ice pellets" />
                            <xsd:enumeration value="frosts" />
                            <xsd:enumeration value="rain" />
                            <xsd:enumeration value="hail" />
                            <xsd:enumeration value="snow" />
                            <xsd:enumeration value="thunderstorms" />
                            <xsd:enumeration value="drizzle" />
                            <xsd:enumeration value="fog" />
                            <xsd:enumeration value="haze" />
                            <xsd:enumeration value="smoke" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:attribute>
                      <xsd:attribute name="intensity" use="optional">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:enumeration value="very light" />
                            <xsd:enumeration value="light" />
                            <xsd:enumeration value="moderate" />
                            <xsd:enumeration value="heavy" />
                            <xsd:enumeration value="none" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:attribute>
                      <xsd:attribute name="additive" use="optional">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:enumeration value="and" />
                            <xsd:enumeration value="or" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:attribute>
                      <xsd:attribute name="qualifier" use="optional">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:annotation>
                              <xsd:documentation xml:lang="en">
                                                                  This expression enforces a comma-delimited list
                                                               </xsd:documentation>
                            </xsd:annotation>
                            <xsd:pattern value="(\p{L}* ?\p{L}*)?(,\p{L}+ ?\p{L}*)*" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:attribute>
                    </xsd:complexType>
                  </xsd:element>
                </xsd:sequence>
                <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
                <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
                <xsd:attribute name="weather-summary" type="xsd:string" use="optional" />
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
        </xsd:complexType>
      </xsd:element>
      <!--   CONDITIONS ICON DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="conditions-icon">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:element minOccurs="1" maxOccurs="unbounded" name="icon-link" nillable="true" type="xsd:anyURI" />
          </xsd:sequence>
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="type" use="required">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="forecast-NWS" />
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
        </xsd:complexType>
      </xsd:element>
      <!--   HAZARD DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="hazards">
        <xsd:complexType>
          <xsd:sequence minOccurs="1" maxOccurs="unbounded">
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:element minOccurs="1" maxOccurs="unbounded" name="hazard-conditions" nillable="true">
              <xsd:complexType>
                <xsd:sequence minOccurs="1" maxOccurs="unbounded">
                  <xsd:element minOccurs="0" maxOccurs="unbounded" name="hazard" nillable="true">
                    <xsd:complexType>
                      <xsd:sequence>
                        <xsd:element minOccurs="0" maxOccurs="1" name="hazardTextURL" nillable="true" type="xsd:anyURI" />
                        <xsd:element minOccurs="0" maxOccurs="1" name="hazardIcon" nillable="true" type="xsd:anyURI" />
                      </xsd:sequence>
                      <xsd:attribute name="hazardCode" type="xsd:string" use="required" />
                      <xsd:attribute name="phenomena" use="required">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:enumeration value="Ashfall" />
                            <xsd:enumeration value="Air Quality" />
                            <xsd:enumeration value="Air Stagnation" />
                            <xsd:enumeration value="Blowing Snow" />
                            <xsd:enumeration value="Brisk Wind" />
                            <xsd:enumeration value="Blizzard" />
                            <xsd:enumeration value="Coastal Flood" />
                            <xsd:enumeration value="Dust Storm" />
                            <xsd:enumeration value="Blowing Dust" />
                            <xsd:enumeration value="Excessive Cold" />
                            <xsd:enumeration value="Excessive Heat" />
                            <xsd:enumeration value="Excessive Wind" />
                            <xsd:enumeration value="Areal Flood" />
                            <xsd:enumeration value="Flash Flood" />
                            <xsd:enumeration value="Dense Fog" />
                            <xsd:enumeration value="Flood" />
                            <xsd:enumeration value="Frost" />
                            <xsd:enumeration value="Red Flag" />
                            <xsd:enumeration value="Fire Weather" />
                            <xsd:enumeration value="Freeze" />
                            <xsd:enumeration value="Gale" />
                            <xsd:enumeration value="Hurricane Force Wind" />
                            <xsd:enumeration value="Hurricane Wind" />
                            <xsd:enumeration value="Heavy Snow" />
                            <xsd:enumeration value="Heat" />
                            <xsd:enumeration value="Hurricane" />
                            <xsd:enumeration value="High Wind" />
                            <xsd:enumeration value="Hard Freeze" />
                            <xsd:enumeration value="Sleet" />
                            <xsd:enumeration value="Ice Storm" />
                            <xsd:enumeration value="Lake Effect Snow and Blowing Snow" />
                            <xsd:enumeration value="Lake Effect Snow" />
                            <xsd:enumeration value="Low Water" />
                            <xsd:enumeration value="Lakeshore Flood" />
                            <xsd:enumeration value="Lake Wind" />
                            <xsd:enumeration value="Marine" />
                            <xsd:enumeration value="Special Marine" />
                            <xsd:enumeration value="Small Craft, for Rough Bar" />
                            <xsd:enumeration value="Snow and Blowing Snow" />
                            <xsd:enumeration value="Small Craft" />
                            <xsd:enumeration value="Hazardous Seas" />
                            <xsd:enumeration value="Small Craft, for Winds" />
                            <xsd:enumeration value="Dense Smoke" />
                            <xsd:enumeration value="Snow" />
                            <xsd:enumeration value="Storm" />
                            <xsd:enumeration value="High Surf" />
                            <xsd:enumeration value="Severe Thunderstorm" />
                            <xsd:enumeration value="Small Craft, for Hazardous Seas" />
                            <xsd:enumeration value="Tropical Storm Wind" />
                            <xsd:enumeration value="Tornado" />
                            <xsd:enumeration value="Tropical Storm" />
                            <xsd:enumeration value="Tsunami" />
                            <xsd:enumeration value="Typhoon" />
                            <xsd:enumeration value="Freezing Spray" />
                            <xsd:enumeration value="Wind Chill" />
                            <xsd:enumeration value="Wind" />
                            <xsd:enumeration value="Winter Storm" />
                            <xsd:enumeration value="Winter Weather" />
                            <xsd:enumeration value="Freezing Fog" />
                            <xsd:enumeration value="Freezing Rain" />
                            <xsd:enumeration value="Record High Temperature Possible" />
                            <xsd:enumeration value="Record Low Temperature Possible" />
                            <xsd:enumeration value="none" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:attribute>
                      <xsd:attribute name="significance" use="required">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:enumeration value="Watch" />
                            <xsd:enumeration value="Statement" />
                            <xsd:enumeration value="Warning" />
                            <xsd:enumeration value="Advisory" />
                            <xsd:enumeration value="none" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:attribute>
                      <xsd:attribute name="hazardType" use="required">
                        <xsd:simpleType>
                          <xsd:restriction base="xsd:string">
                            <xsd:enumeration value="long duration" />
                            <xsd:enumeration value="short duration" />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:attribute>
                      <xsd:attribute name="eventTrackingNumber" type="xsd:integer" use="optional" />
                    </xsd:complexType>
                  </xsd:element>
                </xsd:sequence>
              </xsd:complexType>
            </xsd:element>
          </xsd:sequence>
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
        </xsd:complexType>
      </xsd:element>
      <!--   Worded Forecast DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="1" name="wordedForecast">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
            <xsd:element minOccurs="0" maxOccurs="unbounded" name="text" nillable="true" type="xsd:string" />
          </xsd:sequence>
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
          <xsd:attribute name="dataSource" type="xsd:string" use="optional" />
          <xsd:attribute name="wordGenerator" type="xsd:string" use="optional" />
        </xsd:complexType>
      </xsd:element>
      <!--   SEA STATE DECLARATIONS     -->
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="water-state">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:choice>
              <xsd:sequence>
                <xsd:element minOccurs="0" maxOccurs="unbounded" name="waves" nillable="true">
                  <xsd:complexType>
                    <xsd:sequence>
                      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
                      <xsd:element minOccurs="1" maxOccurs="unbounded" name="value" nillable="true" type="xsd:nonNegativeInteger" />
                    </xsd:sequence>
                    <xsd:attribute name="type" use="required">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:enumeration value="wind" />
                          <xsd:enumeration value="significant" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:attribute>
                    <xsd:attribute fixed="feet" name="units" use="required" />
                    <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
                    <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
                    <xsd:attribute name="period" type="xsd:nonNegativeInteger" use="optional" />
                    <xsd:attribute name="steepness" type="xsd:nonNegativeInteger" use="optional" />
                  </xsd:complexType>
                </xsd:element>
                <xsd:element minOccurs="0" maxOccurs="unbounded" name="swell" nillable="true">
                  <xsd:complexType>
                    <xsd:sequence>
                      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
                      <xsd:sequence>
                        <xsd:element minOccurs="0" maxOccurs="1" name="value" nillable="true" type="xsd:string" />
                        <xsd:element minOccurs="0" maxOccurs="1" name="direction">
                          <xsd:complexType>
                            <xsd:simpleContent>
                              <xsd:extension base="xsd:nonNegativeInteger">
                                <xsd:attribute name="upper-range" use="optional">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:nonNegativeInteger">
                                      <xsd:maxInclusive value="360" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:attribute>
                                <xsd:attribute name="lower-range" use="optional">
                                  <xsd:simpleType>
                                    <xsd:restriction base="xsd:nonNegativeInteger">
                                      <xsd:maxInclusive value="360" />
                                    </xsd:restriction>
                                  </xsd:simpleType>
                                </xsd:attribute>
                              </xsd:extension>
                            </xsd:simpleContent>
                          </xsd:complexType>
                        </xsd:element>
                      </xsd:sequence>
                    </xsd:sequence>
                    <xsd:attribute name="type" use="required">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:enumeration value="wind" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:attribute>
                    <xsd:attribute name="units" use="required">
                      <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                          <xsd:enumeration value="feet" />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:attribute>
                    <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
                    <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
                    <xsd:attribute name="period" type="xsd:nonNegativeInteger" use="optional" />
                    <xsd:attribute name="steepness" type="xsd:nonNegativeInteger" use="optional" />
                  </xsd:complexType>
                </xsd:element>
              </xsd:sequence>
              <xsd:element minOccurs="0" maxOccurs="unbounded" name="seas">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
                    <xsd:element minOccurs="1" maxOccurs="unbounded" name="value" nillable="true" type="xsd:nonNegativeInteger" />
                  </xsd:sequence>
                  <xsd:attribute name="type" use="required">
                    <xsd:simpleType>
                      <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="combined" />
                      </xsd:restriction>
                    </xsd:simpleType>
                  </xsd:attribute>
                  <xsd:attribute fixed="feet" name="units" use="required" />
                  <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
                  <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
            <xsd:element minOccurs="0" maxOccurs="unbounded" name="ice-coverage" type="xsd:nonNegativeInteger" />
          </xsd:sequence>
          <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="applicable-location" type="xsd:string" use="required" />
  </xsd:complexType>
  <!-- Separate Types; defined here and reused. -->
  <!-- Type that defines Temperature Values: -->
  <xsd:complexType name="tempValType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:integer">
        <xsd:attribute name="upper-range" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:integer">
              <xsd:minInclusive value="-459" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute name="lower-range" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:integer">
              <xsd:minInclusive value="-459" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute name="type" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:enumeration value="NDFD" />
              <xsd:enumeration value="RTMA" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <!-- Type that defines Wind Speed Values: -->
  <xsd:complexType name="wspdValType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:nonNegativeInteger">
        <xsd:attribute name="upper-range" type="xsd:nonNegativeInteger" use="optional" />
        <xsd:attribute name="lower-range" type="xsd:nonNegativeInteger" use="optional" />
        <xsd:attribute name="type" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:enumeration value="NDFD" />
              <xsd:enumeration value="RTMA" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <!-- Type that defines Wind Direction Values: -->
  <xsd:complexType name="wdirValType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:nonNegativeInteger">
        <xsd:attribute name="upper-range" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:nonNegativeInteger">
              <xsd:maxInclusive value="360" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute name="lower-range" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:nonNegativeInteger">
              <xsd:maxInclusive value="360" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute name="type" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:enumeration value="NDFD" />
              <xsd:enumeration value="RTMA" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <!-- Type that defines Cloud Amount Values: -->
  <xsd:complexType name="cloudValType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:nonNegativeInteger">
        <xsd:attribute name="upper-range" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:nonNegativeInteger">
              <xsd:maxInclusive value="100" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute name="lower-range" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:nonNegativeInteger">
              <xsd:maxInclusive value="100" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute name="type" use="optional">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:enumeration value="NDFD" />
              <xsd:enumeration value="RTMA" />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <!-- Type that defines Climate Anomaly Elements: -->
  <xsd:complexType name="anomalyType">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string" />
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="value" nillable="true">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="xsd:nonNegativeInteger">
              <xsd:attribute name="upper-range" use="optional">
                <xsd:simpleType>
                  <xsd:restriction base="xsd:nonNegativeInteger">
                    <xsd:maxInclusive value="100" />
                  </xsd:restriction>
                </xsd:simpleType>
              </xsd:attribute>
              <xsd:attribute name="lower-range" use="optional">
                <xsd:simpleType>
                  <xsd:restriction base="xsd:nonNegativeInteger">
                    <xsd:maxInclusive value="100" />
                  </xsd:restriction>
                </xsd:simpleType>
              </xsd:attribute>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="type" use="required">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="average temperature above normal" />
          <xsd:enumeration value="average temperature below normal" />
          <xsd:enumeration value="average precipitation above normal" />
          <xsd:enumeration value="average precipitation below normal" />
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute fixed="percent" name="units" type="xsd:string" />
    <xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
    <xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
    <xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
  </xsd:complexType>
  <!-- Type that defines Time Layouts: -->
  <xsd:simpleType name="time-layoutAttributeType">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="k-p\d+[h|d|m|y]-n\d+-\d+" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>
Collapse ComplexTypes:
Collapse SimpleTypes: