noaa_weather_client 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.rspec +1 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +7 -0
- data/.yardopts +2 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +107 -0
- data/Rakefile +8 -0
- data/bin/noaa_weather_client +43 -0
- data/data/xml/current_observation.xsd +79 -0
- data/data/xml/dwml.xsd +97 -0
- data/data/xml/location.xsd +142 -0
- data/data/xml/meta_data.xsd +100 -0
- data/data/xml/moreWeatherInformation.xsd +23 -0
- data/data/xml/ndfd_data.xsd +43 -0
- data/data/xml/parameters.xsd +1173 -0
- data/data/xml/summarizationType.xsd +29 -0
- data/data/xml/time_layout.xsd +51 -0
- data/lib/noaa_weather_client.rb +9 -0
- data/lib/noaa_weather_client/cli.rb +53 -0
- data/lib/noaa_weather_client/cli/templates.rb +53 -0
- data/lib/noaa_weather_client/client.rb +61 -0
- data/lib/noaa_weather_client/errors.rb +7 -0
- data/lib/noaa_weather_client/responses/current_observation.rb +93 -0
- data/lib/noaa_weather_client/responses/forecast.rb +84 -0
- data/lib/noaa_weather_client/responses/generic_response.rb +9 -0
- data/lib/noaa_weather_client/responses/lat_lon_list.rb +25 -0
- data/lib/noaa_weather_client/responses/reactive_xml_response.rb +29 -0
- data/lib/noaa_weather_client/responses/station.rb +28 -0
- data/lib/noaa_weather_client/responses/stations.rb +41 -0
- data/lib/noaa_weather_client/responses/validatable_xml_response.rb +22 -0
- data/lib/noaa_weather_client/rest_client_factory.rb +12 -0
- data/lib/noaa_weather_client/services/calculate_distance_between_lat_lon.rb +20 -0
- data/lib/noaa_weather_client/services/current_observations.rb +32 -0
- data/lib/noaa_weather_client/services/find_nearest_station.rb +16 -0
- data/lib/noaa_weather_client/services/forecast_by_day.rb +52 -0
- data/lib/noaa_weather_client/services/postal_code_to_coordinate.rb +36 -0
- data/lib/noaa_weather_client/services/rest_service.rb +28 -0
- data/lib/noaa_weather_client/services/soap_service.rb +16 -0
- data/lib/noaa_weather_client/services/weather_stations.rb +32 -0
- data/lib/noaa_weather_client/soap_client_factory.rb +17 -0
- data/lib/noaa_weather_client/station_filters.rb +8 -0
- data/lib/noaa_weather_client/version.rb +3 -0
- data/lib/noaa_weather_client/xml_parser_factory.rb +9 -0
- data/noaa_weather_client.gemspec +27 -0
- data/spec/fixtures/vcr_cassettes/current_observations.yml +25890 -0
- data/spec/fixtures/vcr_cassettes/forecast_by_day_3.yml +772 -0
- data/spec/fixtures/vcr_cassettes/forecast_by_day_7.yml +829 -0
- data/spec/fixtures/vcr_cassettes/nearest_weather_station.yml +25842 -0
- data/spec/fixtures/vcr_cassettes/postal_code_to_coordinate.yml +75 -0
- data/spec/fixtures/vcr_cassettes/weather_stations.yml +25842 -0
- data/spec/fixtures/xml/forecast.xml +144 -0
- data/spec/lib/noaa_client/client_spec.rb +93 -0
- data/spec/lib/noaa_client/responses/current_observation_spec.rb +122 -0
- data/spec/lib/noaa_client/responses/forecast_spec.rb +66 -0
- data/spec/lib/noaa_client/responses/lat_lon_list_spec.rb +30 -0
- data/spec/lib/noaa_client/responses/station_spec.rb +53 -0
- data/spec/lib/noaa_client/responses/stations_spec.rb +86 -0
- data/spec/lib/noaa_client/rest_client_factory_spec.rb +15 -0
- data/spec/lib/noaa_client/services/calculate_distance_between_lat_lon_spec.rb +16 -0
- data/spec/lib/noaa_client/services/current_observations_spec.rb +47 -0
- data/spec/lib/noaa_client/services/find_nearest_station_spec.rb +36 -0
- data/spec/lib/noaa_client/services/forecast_by_day_spec.rb +62 -0
- data/spec/lib/noaa_client/services/postal_code_to_coordinate_spec.rb +41 -0
- data/spec/lib/noaa_client/services/rest_service_spec.rb +45 -0
- data/spec/lib/noaa_client/services/soap_service_spec.rb +56 -0
- data/spec/lib/noaa_client/services/weather_stations_spec.rb +40 -0
- data/spec/lib/noaa_client/soap_client_factory_spec.rb +13 -0
- data/spec/lib/noaa_client/xml_parser_factory_spec.rb +14 -0
- data/spec/spec_helper.rb +31 -0
- metadata +228 -0
@@ -0,0 +1,100 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
|
3
|
+
<!-- **********************************************************************
|
4
|
+
|
5
|
+
meta_data.xsd
|
6
|
+
|
7
|
+
John L. Schattel MDL 4 August 2004
|
8
|
+
Red Hat Linux Apache Server
|
9
|
+
|
10
|
+
************************************************************************* -->
|
11
|
+
|
12
|
+
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
13
|
+
|
14
|
+
<xsd:complexType name="headType">
|
15
|
+
<xsd:sequence>
|
16
|
+
<xsd:element name="product" type="productType" minOccurs="1" maxOccurs="1" />
|
17
|
+
<xsd:element name="source" type="sourceType" minOccurs="1" maxOccurs="1" />
|
18
|
+
</xsd:sequence>
|
19
|
+
</xsd:complexType>
|
20
|
+
|
21
|
+
<xsd:complexType name="productType">
|
22
|
+
<xsd:all>
|
23
|
+
<xsd:element name="title" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
24
|
+
<xsd:element name="field" type="fieldType" minOccurs="0" maxOccurs="1" />
|
25
|
+
<xsd:element name="category" type="categoryType" minOccurs="0" maxOccurs="1" />
|
26
|
+
<xsd:element name="creation-date" type="creation-dateType" minOccurs="1" maxOccurs="1" />
|
27
|
+
</xsd:all>
|
28
|
+
<xsd:attribute name="concise-name" type="concise-nameType" use="required" />
|
29
|
+
<xsd:attribute name="operational-mode" type="operational-modeType" use="required" />
|
30
|
+
<xsd:attribute name="srsName" type="srsNameType" use="required" />
|
31
|
+
</xsd:complexType>
|
32
|
+
|
33
|
+
<xsd:simpleType name="fieldType">
|
34
|
+
<xsd:restriction base="xsd:string">
|
35
|
+
<xsd:enumeration value="meteorological" />
|
36
|
+
</xsd:restriction>
|
37
|
+
</xsd:simpleType>
|
38
|
+
|
39
|
+
<xsd:simpleType name="categoryType">
|
40
|
+
<xsd:restriction base="xsd:string">
|
41
|
+
<xsd:enumeration value="analysis" />
|
42
|
+
<xsd:enumeration value="forecast" />
|
43
|
+
<xsd:enumeration value="analysis and forecast" />
|
44
|
+
<xsd:enumeration value="current observations and forecast" />
|
45
|
+
<xsd:enumeration value="observations" />
|
46
|
+
<xsd:enumeration value="guidance" />
|
47
|
+
</xsd:restriction>
|
48
|
+
</xsd:simpleType>
|
49
|
+
|
50
|
+
<xsd:complexType name="creation-dateType">
|
51
|
+
<xsd:simpleContent>
|
52
|
+
<xsd:extension base="xsd:dateTime">
|
53
|
+
<xsd:attribute name="refresh-frequency" type="xsd:duration" use="required" />
|
54
|
+
</xsd:extension>
|
55
|
+
</xsd:simpleContent>
|
56
|
+
</xsd:complexType>
|
57
|
+
|
58
|
+
<xsd:complexType name="sourceType">
|
59
|
+
<xsd:all>
|
60
|
+
<xsd:element name="more-information" type="xsd:anyURI" minOccurs="1" maxOccurs="1" />
|
61
|
+
<xsd:element name="production-center" type="production-centerType" minOccurs="0" maxOccurs="1" />
|
62
|
+
<xsd:element name="disclaimer" type="xsd:anyURI" minOccurs="0" maxOccurs="1" />
|
63
|
+
<xsd:element name="credit" type="xsd:anyURI" minOccurs="0" maxOccurs="1" />
|
64
|
+
<xsd:element name="credit-logo" type="xsd:anyURI" minOccurs="0" maxOccurs="1" />
|
65
|
+
<xsd:element name="feedback" type="xsd:anyURI" minOccurs="0" maxOccurs="1" />
|
66
|
+
</xsd:all>
|
67
|
+
</xsd:complexType>
|
68
|
+
|
69
|
+
<xsd:complexType name="production-centerType" mixed="true">
|
70
|
+
<xsd:sequence>
|
71
|
+
<xsd:element name="sub-center" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
72
|
+
</xsd:sequence>
|
73
|
+
</xsd:complexType>
|
74
|
+
|
75
|
+
<xsd:simpleType name="concise-nameType">
|
76
|
+
<xsd:restriction base="xsd:string">
|
77
|
+
<xsd:enumeration value="time-series" />
|
78
|
+
<xsd:enumeration value="glance" />
|
79
|
+
<xsd:enumeration value="tabular-digital" />
|
80
|
+
<xsd:enumeration value="digital-zone" />
|
81
|
+
<xsd:enumeration value="dwmlByDay" />
|
82
|
+
</xsd:restriction>
|
83
|
+
</xsd:simpleType>
|
84
|
+
|
85
|
+
<xsd:simpleType name="operational-modeType">
|
86
|
+
<xsd:restriction base="xsd:string">
|
87
|
+
<xsd:enumeration value="official" />
|
88
|
+
<xsd:enumeration value="developmental" />
|
89
|
+
<xsd:enumeration value="experimental" />
|
90
|
+
<xsd:enumeration value="test" />
|
91
|
+
</xsd:restriction>
|
92
|
+
</xsd:simpleType>
|
93
|
+
|
94
|
+
<xsd:simpleType name="srsNameType">
|
95
|
+
<xsd:restriction base="xsd:string">
|
96
|
+
<xsd:enumeration value="WGS 1984" />
|
97
|
+
</xsd:restriction>
|
98
|
+
</xsd:simpleType>
|
99
|
+
|
100
|
+
</xsd:schema>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
|
3
|
+
<!-- **********************************************************************
|
4
|
+
|
5
|
+
moreWeatherInformation.xsd
|
6
|
+
|
7
|
+
Paul Hershberg MDL 29 June 2007
|
8
|
+
Red Hat Linux Apache Server
|
9
|
+
|
10
|
+
|
11
|
+
************************************************************************* -->
|
12
|
+
|
13
|
+
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
14
|
+
|
15
|
+
<xsd:complexType name="moreWeatherInformationType">
|
16
|
+
<xsd:simpleContent>
|
17
|
+
<xsd:extension base="xsd:anyURI">
|
18
|
+
<xsd:attribute name="applicable-location" type="xsd:string" use="required" />
|
19
|
+
</xsd:extension>
|
20
|
+
</xsd:simpleContent>
|
21
|
+
</xsd:complexType>
|
22
|
+
|
23
|
+
</xsd:schema>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
|
3
|
+
<!-- **********************************************************************
|
4
|
+
|
5
|
+
ndfd_data.xsd
|
6
|
+
|
7
|
+
John L. Schattel MDL 4 August 2004
|
8
|
+
Red Hat Linux Apache Server
|
9
|
+
|
10
|
+
<xsd:include schemaLocation="http://graphical.weather.gov/xml/DWMLgen/schema/location.xsd" />
|
11
|
+
<xsd:include schemaLocation="http://graphical.weather.gov/xml/DWMLgen/schema/moreWeatherInformation.xsd" />
|
12
|
+
<xsd:include schemaLocation="http://graphical.weather.gov/xml/DWMLgen/schema/time_layout.xsd" />
|
13
|
+
<xsd:include schemaLocation="http://graphical.weather.gov/xml/DWMLgen/schema/parameters.xsd" />
|
14
|
+
|
15
|
+
************************************************************************* -->
|
16
|
+
|
17
|
+
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
18
|
+
|
19
|
+
<xsd:include schemaLocation="location.xsd" />
|
20
|
+
<xsd:include schemaLocation="moreWeatherInformation.xsd" />
|
21
|
+
<xsd:include schemaLocation="time_layout.xsd" />
|
22
|
+
<xsd:include schemaLocation="parameters.xsd" />
|
23
|
+
|
24
|
+
<xsd:complexType name="dataType">
|
25
|
+
<xsd:sequence>
|
26
|
+
<xsd:element name="location" type="locationType" minOccurs="1" maxOccurs="unbounded" />
|
27
|
+
<xsd:element name="moreWeatherInformation" type="moreWeatherInformationType" minOccurs="1" maxOccurs="unbounded" />
|
28
|
+
<xsd:element name="time-layout" type="time-layoutElementType" minOccurs="1" maxOccurs="unbounded" />
|
29
|
+
<xsd:element name="parameters" type="parametersType" minOccurs="1" maxOccurs="unbounded" />
|
30
|
+
</xsd:sequence>
|
31
|
+
<xsd:attribute name="type" use="optional">
|
32
|
+
<xsd:simpleType>
|
33
|
+
<xsd:restriction base="xsd:string">
|
34
|
+
<xsd:enumeration value="forecast" />
|
35
|
+
<xsd:enumeration value="current observations" />
|
36
|
+
<xsd:enumeration value="analysis" />
|
37
|
+
<xsd:enumeration value="guidance" />
|
38
|
+
</xsd:restriction>
|
39
|
+
</xsd:simpleType>
|
40
|
+
</xsd:attribute>
|
41
|
+
</xsd:complexType>
|
42
|
+
|
43
|
+
</xsd:schema>
|
@@ -0,0 +1,1173 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
|
3
|
+
<!-- **********************************************************************
|
4
|
+
|
5
|
+
parameters.xsd
|
6
|
+
|
7
|
+
John L. Schattel MDL 4 August 2004
|
8
|
+
Red Hat Linux Apache Server
|
9
|
+
|
10
|
+
History
|
11
|
+
12/2007 Paul Hershberg MDL: Added changes to accommodate RTMA elements.
|
12
|
+
2/2008 Paul Hershberg MDL: Added changes to accommodate concatenated
|
13
|
+
RTMA+NDFD elements.
|
14
|
+
6/2008 Paul Hershberg MDL: Added changes to accommodate Hazard element.
|
15
|
+
3/2011 Paul Hershberg MDL: Added changes to accommodate 2 Fire Wx elements.
|
16
|
+
6/2011 Paul Hershberg MDL: Added metric unit options.
|
17
|
+
|
18
|
+
************************************************************************ -->
|
19
|
+
|
20
|
+
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
21
|
+
<xsd:complexType name="parametersType">
|
22
|
+
<xsd:sequence>
|
23
|
+
|
24
|
+
<!-- Structure for holding a list of category values -->
|
25
|
+
|
26
|
+
<xsd:element name="categories" type="categoriesType" minOccurs="0" maxOccurs="unbounded" />
|
27
|
+
|
28
|
+
<!-- TEMPERATURE DECLARATIONS -->
|
29
|
+
|
30
|
+
<xsd:element name="temperature" minOccurs="0" maxOccurs="unbounded">
|
31
|
+
<xsd:complexType>
|
32
|
+
<xsd:sequence>
|
33
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
34
|
+
<xsd:choice>
|
35
|
+
<xsd:element name="value" type="tempValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
36
|
+
<xsd:element name="valueList" type="valueListType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
37
|
+
<xsd:element name="valueWithUncertainty" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
38
|
+
<xsd:complexType>
|
39
|
+
<xsd:sequence>
|
40
|
+
<xsd:element name="value" type="tempValType" minOccurs="0" maxOccurs="1" nillable="true" />
|
41
|
+
<xsd:choice>
|
42
|
+
<xsd:element name="uncertainty" type="uncertaintyType" minOccurs="0" maxOccurs="1" nillable="true" />
|
43
|
+
<xsd:element name="numberWithEquality" type="numberWithEqualityType" minOccurs="0" maxOccurs="1" nillable="true" />
|
44
|
+
</xsd:choice>
|
45
|
+
</xsd:sequence>
|
46
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
47
|
+
</xsd:complexType>
|
48
|
+
</xsd:element>
|
49
|
+
</xsd:choice>
|
50
|
+
</xsd:sequence>
|
51
|
+
<xsd:attribute name="type" use="required">
|
52
|
+
<xsd:simpleType>
|
53
|
+
<xsd:restriction base="xsd:string">
|
54
|
+
<xsd:enumeration value="maximum" />
|
55
|
+
<xsd:enumeration value="ekdmos-maximum" />
|
56
|
+
<xsd:enumeration value="minimum" />
|
57
|
+
<xsd:enumeration value="ekdmos-minimum" />
|
58
|
+
<xsd:enumeration value="hourly" />
|
59
|
+
<xsd:enumeration value="rtma-hourly" />
|
60
|
+
<xsd:enumeration value="ekdmos-hourly" />
|
61
|
+
<xsd:enumeration value="dew point" />
|
62
|
+
<xsd:enumeration value="rtma-dew point" />
|
63
|
+
<xsd:enumeration value="ekdmos-dew point" />
|
64
|
+
<xsd:enumeration value="heat index" />
|
65
|
+
<xsd:enumeration value="wind chill" />
|
66
|
+
<xsd:enumeration value="apparent" />
|
67
|
+
<xsd:enumeration value="ekdmos-apparent" />
|
68
|
+
<xsd:enumeration value="8-14 day anomolies" />
|
69
|
+
<xsd:enumeration value="monthly anomolies" />
|
70
|
+
<xsd:enumeration value="seasonal anomolies" />
|
71
|
+
</xsd:restriction>
|
72
|
+
</xsd:simpleType>
|
73
|
+
</xsd:attribute>
|
74
|
+
<xsd:attribute name="units" default="Fahrenheit">
|
75
|
+
<xsd:simpleType>
|
76
|
+
<xsd:restriction base="xsd:string">
|
77
|
+
<xsd:enumeration value="Fahrenheit" />
|
78
|
+
<xsd:enumeration value="Celsius" />
|
79
|
+
</xsd:restriction>
|
80
|
+
</xsd:simpleType>
|
81
|
+
</xsd:attribute>
|
82
|
+
<xsd:attribute name="likelihoodUnits" type="likelihoodUnitsTypes" use="optional" />
|
83
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
84
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
85
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
86
|
+
<xsd:attribute name="applicable-categories" type="xsd:string" use="optional" />
|
87
|
+
<xsd:attribute name="probability-type" type="probability-typeType" use="optional" />
|
88
|
+
</xsd:complexType>
|
89
|
+
</xsd:element>
|
90
|
+
|
91
|
+
<!-- PRECIPITATION AMOUNT DECLARATIONS -->
|
92
|
+
|
93
|
+
<xsd:element name="precipitation" minOccurs="0" maxOccurs="unbounded">
|
94
|
+
<xsd:complexType>
|
95
|
+
<xsd:sequence>
|
96
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
97
|
+
<xsd:choice>
|
98
|
+
<xsd:element name="value" type="decimalValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
99
|
+
<xsd:element name="valueList" type="valueListType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
100
|
+
<xsd:element name="valueWithUncertainty" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
101
|
+
<xsd:complexType>
|
102
|
+
<xsd:sequence>
|
103
|
+
<xsd:element name="value" type="decimalValType" nillable="true" />
|
104
|
+
<xsd:choice>
|
105
|
+
<xsd:element name="uncertainty" type="uncertaintyType" minOccurs="0" maxOccurs="1" nillable="true" />
|
106
|
+
<xsd:element name="numberWithEquality" type="numberWithEqualityType" minOccurs="0" maxOccurs="1" nillable="true" />
|
107
|
+
</xsd:choice>
|
108
|
+
</xsd:sequence>
|
109
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
110
|
+
</xsd:complexType>
|
111
|
+
</xsd:element>
|
112
|
+
</xsd:choice>
|
113
|
+
</xsd:sequence>
|
114
|
+
<xsd:attribute name="type" use="required">
|
115
|
+
<xsd:simpleType>
|
116
|
+
<xsd:restriction base="xsd:string">
|
117
|
+
<xsd:enumeration value="liquid" />
|
118
|
+
<xsd:enumeration value="rtma-liquid" />
|
119
|
+
<xsd:enumeration value="ekdmos-liquid" />
|
120
|
+
<xsd:enumeration value="snow" />
|
121
|
+
<xsd:enumeration value="ice" />
|
122
|
+
<xsd:enumeration value="8-14 day anomolies" />
|
123
|
+
<xsd:enumeration value="monthly anomolies" />
|
124
|
+
<xsd:enumeration value="seasonal anomolies" />
|
125
|
+
</xsd:restriction>
|
126
|
+
</xsd:simpleType>
|
127
|
+
</xsd:attribute>
|
128
|
+
<xsd:attribute name="units" default="inches">
|
129
|
+
<xsd:simpleType>
|
130
|
+
<xsd:restriction base="xsd:string">
|
131
|
+
<xsd:enumeration value="inches" />
|
132
|
+
<xsd:enumeration value="centimeters" />
|
133
|
+
<xsd:enumeration value="hundredths of inches" />
|
134
|
+
<xsd:enumeration value="hundredths of centimeters" />
|
135
|
+
<xsd:enumeration value="meters" />
|
136
|
+
<xsd:enumeration value="kilograms per meter squared" />
|
137
|
+
</xsd:restriction>
|
138
|
+
</xsd:simpleType>
|
139
|
+
</xsd:attribute>
|
140
|
+
<xsd:attribute name="likelihoodUnits" type="likelihoodUnitsTypes" use="optional" />
|
141
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
142
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
143
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
144
|
+
<xsd:attribute name="probability-type" type="probability-typeType" use="optional" />
|
145
|
+
</xsd:complexType>
|
146
|
+
</xsd:element>
|
147
|
+
|
148
|
+
<!-- PROBABILITY OF PRECIPITATION DECLARATIONS -->
|
149
|
+
|
150
|
+
<xsd:element name="probability-of-precipitation" minOccurs="0" maxOccurs="unbounded">
|
151
|
+
<xsd:complexType>
|
152
|
+
<xsd:sequence>
|
153
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
154
|
+
<xsd:choice>
|
155
|
+
<xsd:element name="value" type="percentageValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
156
|
+
<xsd:element name="valueList" type="valueListType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
157
|
+
</xsd:choice>
|
158
|
+
</xsd:sequence>
|
159
|
+
<xsd:attribute name="type" use="required">
|
160
|
+
<xsd:simpleType>
|
161
|
+
<xsd:restriction base="xsd:string">
|
162
|
+
<xsd:enumeration value="12 hour" />
|
163
|
+
<xsd:enumeration value="floating" />
|
164
|
+
<xsd:enumeration value="ekdmos-6 hour" />
|
165
|
+
</xsd:restriction>
|
166
|
+
</xsd:simpleType>
|
167
|
+
</xsd:attribute>
|
168
|
+
<xsd:attribute name="units" type="xsd:string" fixed="percent" />
|
169
|
+
<xsd:attribute name="likelihoodUnits" type="likelihoodUnitsTypes" use="optional" />
|
170
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
171
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
172
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
173
|
+
<xsd:attribute name="applicable-categories" type="xsd:string" use="optional" />
|
174
|
+
<xsd:attribute name="probability-type" type="probability-typeType" use="optional" />
|
175
|
+
</xsd:complexType>
|
176
|
+
</xsd:element>
|
177
|
+
|
178
|
+
<!-- FIRE WEATHER OUTLOOK DECLARATIONS -->
|
179
|
+
|
180
|
+
<xsd:element name="fire-weather" minOccurs="0" maxOccurs="unbounded">
|
181
|
+
<xsd:complexType>
|
182
|
+
<xsd:sequence>
|
183
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
184
|
+
<xsd:element name="value" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
185
|
+
<xsd:simpleType>
|
186
|
+
<xsd:restriction base="xsd:string">
|
187
|
+
<xsd:enumeration value="No Areas" />
|
188
|
+
<xsd:enumeration value="Critical Areas" />
|
189
|
+
<xsd:enumeration value="Extremely Critical Areas" />
|
190
|
+
</xsd:restriction>
|
191
|
+
</xsd:simpleType>
|
192
|
+
</xsd:element>
|
193
|
+
</xsd:sequence>
|
194
|
+
<xsd:attribute name="type" use="required">
|
195
|
+
<xsd:simpleType>
|
196
|
+
<xsd:restriction base="xsd:string">
|
197
|
+
<xsd:enumeration value="risk from wind and relative humidity" />
|
198
|
+
<xsd:enumeration value="risk from dry thunderstorms" />
|
199
|
+
</xsd:restriction>
|
200
|
+
</xsd:simpleType>
|
201
|
+
</xsd:attribute>
|
202
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
203
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
204
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
205
|
+
</xsd:complexType>
|
206
|
+
</xsd:element>
|
207
|
+
|
208
|
+
<!-- CONVECTIVE HAZARDS PROBABILITIES DECLARATIONS -->
|
209
|
+
|
210
|
+
<xsd:element name="convective-hazard" minOccurs="0" maxOccurs="unbounded">
|
211
|
+
<xsd:complexType>
|
212
|
+
<xsd:sequence>
|
213
|
+
<xsd:element name="outlook" minOccurs="0" maxOccurs="1">
|
214
|
+
<xsd:complexType>
|
215
|
+
<xsd:sequence>
|
216
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
217
|
+
<xsd:element name="value" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
218
|
+
<xsd:simpleType>
|
219
|
+
<xsd:restriction base="xsd:string">
|
220
|
+
<xsd:enumeration value="No Thunderstorms" />
|
221
|
+
<xsd:enumeration value="General Thunderstorms" />
|
222
|
+
<xsd:enumeration value="Slight Risk of Severe Thunderstorms" />
|
223
|
+
<xsd:enumeration value="Moderate Risk of Severe Thunderstorms" />
|
224
|
+
<xsd:enumeration value="High Risk of Severe Thunderstorms" />
|
225
|
+
</xsd:restriction>
|
226
|
+
</xsd:simpleType>
|
227
|
+
</xsd:element>
|
228
|
+
</xsd:sequence>
|
229
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
230
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
231
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
232
|
+
</xsd:complexType>
|
233
|
+
</xsd:element>
|
234
|
+
<xsd:element name="severe-component" minOccurs="0" maxOccurs="8">
|
235
|
+
<xsd:complexType>
|
236
|
+
<xsd:sequence>
|
237
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
238
|
+
<xsd:element name="value" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
239
|
+
<xsd:complexType>
|
240
|
+
<xsd:simpleContent>
|
241
|
+
<xsd:extension base="xsd:nonNegativeInteger">
|
242
|
+
<xsd:attribute name="upper-range" type="percentRange" use="optional" />
|
243
|
+
<xsd:attribute name="lower-range" type="percentRange" use="optional" />
|
244
|
+
</xsd:extension>
|
245
|
+
</xsd:simpleContent>
|
246
|
+
</xsd:complexType>
|
247
|
+
</xsd:element>
|
248
|
+
</xsd:sequence>
|
249
|
+
<xsd:attribute name="type" use="required">
|
250
|
+
<xsd:simpleType>
|
251
|
+
<xsd:restriction base="xsd:string">
|
252
|
+
<xsd:enumeration value="tornadoes" />
|
253
|
+
<xsd:enumeration value="hail" />
|
254
|
+
<xsd:enumeration value="damaging thunderstorm winds" />
|
255
|
+
<xsd:enumeration value="extreme tornadoes" />
|
256
|
+
<xsd:enumeration value="extreme hail" />
|
257
|
+
<xsd:enumeration value="extreme thunderstorm winds" />
|
258
|
+
<xsd:enumeration value="severe thunderstorms" />
|
259
|
+
<xsd:enumeration value="extreme severe thunderstorms" />
|
260
|
+
</xsd:restriction>
|
261
|
+
</xsd:simpleType>
|
262
|
+
</xsd:attribute>
|
263
|
+
<xsd:attribute name="units" type="xsd:string" fixed="percent" />
|
264
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
265
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
266
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
267
|
+
</xsd:complexType>
|
268
|
+
</xsd:element>
|
269
|
+
</xsd:sequence>
|
270
|
+
</xsd:complexType>
|
271
|
+
</xsd:element>
|
272
|
+
|
273
|
+
<!-- CLIMATE OUTLOOK ANOMALY PROBABILITIES DECLARATIONS -->
|
274
|
+
|
275
|
+
<xsd:element name="climate-anomaly" minOccurs="0" maxOccurs="unbounded">
|
276
|
+
<xsd:complexType>
|
277
|
+
<xsd:sequence>
|
278
|
+
<xsd:element name="weekly" type="anomalyType" minOccurs="0" maxOccurs="4"/>
|
279
|
+
<xsd:element name="monthly" type="anomalyType" minOccurs="0" maxOccurs="4"/>
|
280
|
+
<xsd:element name="seasonal" type="anomalyType" minOccurs="0" maxOccurs="4"/>
|
281
|
+
</xsd:sequence>
|
282
|
+
</xsd:complexType>
|
283
|
+
</xsd:element>
|
284
|
+
|
285
|
+
<!-- WIND SPEED DECLARATIONS -->
|
286
|
+
|
287
|
+
<xsd:element name="wind-speed" minOccurs="0" maxOccurs="unbounded">
|
288
|
+
<xsd:complexType>
|
289
|
+
<xsd:sequence>
|
290
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
291
|
+
<xsd:choice>
|
292
|
+
<xsd:element name="value" type="wspdValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
293
|
+
<xsd:element name="valueWithUncertainty" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
294
|
+
<xsd:complexType>
|
295
|
+
<xsd:sequence>
|
296
|
+
<xsd:element name="value" type="wspdValType" minOccurs="0" maxOccurs="1" nillable="true" />
|
297
|
+
<xsd:choice>
|
298
|
+
<xsd:element name="uncertainty" type="uncertaintyType" minOccurs="0" maxOccurs="1" nillable="true" />
|
299
|
+
<xsd:element name="numberWithEquality" type="numberWithEqualityType" minOccurs="0" maxOccurs="1" nillable="true" />
|
300
|
+
</xsd:choice>
|
301
|
+
</xsd:sequence>
|
302
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
303
|
+
</xsd:complexType>
|
304
|
+
</xsd:element>
|
305
|
+
</xsd:choice>
|
306
|
+
</xsd:sequence>
|
307
|
+
<xsd:attribute name="type" use="required">
|
308
|
+
<xsd:simpleType>
|
309
|
+
<xsd:restriction base="xsd:string">
|
310
|
+
<xsd:enumeration value="sustained" />
|
311
|
+
<xsd:enumeration value="rtma-sustained" />
|
312
|
+
<xsd:enumeration value="gust" />
|
313
|
+
<xsd:enumeration value="transport" />
|
314
|
+
<xsd:enumeration value="cumulative34" />
|
315
|
+
<xsd:enumeration value="cumulative50" />
|
316
|
+
<xsd:enumeration value="cumulative64" />
|
317
|
+
<xsd:enumeration value="incremental34" />
|
318
|
+
<xsd:enumeration value="incremental50" />
|
319
|
+
<xsd:enumeration value="incremental64" />
|
320
|
+
</xsd:restriction>
|
321
|
+
</xsd:simpleType>
|
322
|
+
</xsd:attribute>
|
323
|
+
<xsd:attribute name="units" default="knots">
|
324
|
+
<xsd:simpleType>
|
325
|
+
<xsd:restriction base="xsd:string">
|
326
|
+
<xsd:enumeration value="knots" />
|
327
|
+
<xsd:enumeration value="meters/second" />
|
328
|
+
<xsd:enumeration value="percent" />
|
329
|
+
<xsd:enumeration value="miles per hour" />
|
330
|
+
</xsd:restriction>
|
331
|
+
</xsd:simpleType>
|
332
|
+
</xsd:attribute>
|
333
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
334
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
335
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
336
|
+
</xsd:complexType>
|
337
|
+
</xsd:element>
|
338
|
+
|
339
|
+
<!-- WIND DIRECTION DECLARATIONS -->
|
340
|
+
|
341
|
+
<xsd:element name="direction" minOccurs="0" maxOccurs="unbounded">
|
342
|
+
<xsd:complexType>
|
343
|
+
<xsd:sequence>
|
344
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
345
|
+
<xsd:choice>
|
346
|
+
<xsd:element name="value" type="wdirValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
347
|
+
<xsd:element name="valueWithUncertainty" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
348
|
+
<xsd:complexType>
|
349
|
+
<xsd:sequence>
|
350
|
+
<xsd:element name="value" type="wdirValType" minOccurs="0" maxOccurs="1" nillable="true" />
|
351
|
+
<xsd:choice>
|
352
|
+
<xsd:element name="uncertainty" type="uncertaintyType" minOccurs="0" maxOccurs="1" nillable="true" />
|
353
|
+
<xsd:element name="numberWithEquality" type="numberWithEqualityType" minOccurs="0" maxOccurs="1" nillable="true" />
|
354
|
+
</xsd:choice>
|
355
|
+
</xsd:sequence>
|
356
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
357
|
+
</xsd:complexType>
|
358
|
+
</xsd:element>
|
359
|
+
</xsd:choice>
|
360
|
+
</xsd:sequence>
|
361
|
+
<xsd:attribute name="type" use="required">
|
362
|
+
<xsd:simpleType>
|
363
|
+
<xsd:restriction base="xsd:string">
|
364
|
+
<xsd:enumeration value="wind" />
|
365
|
+
<xsd:enumeration value="rtma-wind" />
|
366
|
+
<xsd:enumeration value="swell" />
|
367
|
+
</xsd:restriction>
|
368
|
+
</xsd:simpleType>
|
369
|
+
</xsd:attribute>
|
370
|
+
<xsd:attribute name="units" type="xsd:string" fixed="degrees true" />
|
371
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
372
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
373
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
374
|
+
</xsd:complexType>
|
375
|
+
</xsd:element>
|
376
|
+
|
377
|
+
<!-- CLOUD AMOUNT DECLARATIONS -->
|
378
|
+
|
379
|
+
<xsd:element name="cloud-amount" minOccurs="0" maxOccurs="unbounded">
|
380
|
+
<xsd:complexType>
|
381
|
+
<xsd:sequence>
|
382
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
383
|
+
<xsd:choice>
|
384
|
+
<xsd:element name="value" type="percentageValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
385
|
+
<xsd:element name="valueWithUncertainty" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
386
|
+
<xsd:complexType>
|
387
|
+
<xsd:sequence>
|
388
|
+
<xsd:element name="value" type="percentageValType" minOccurs="0" maxOccurs="1" nillable="true" />
|
389
|
+
<xsd:choice>
|
390
|
+
<xsd:element name="uncertainty" type="uncertaintyType" minOccurs="0" maxOccurs="1" nillable="true" />
|
391
|
+
<xsd:element name="numberWithEquality" type="numberWithEqualityType" minOccurs="0" maxOccurs="1" nillable="true" />
|
392
|
+
</xsd:choice>
|
393
|
+
</xsd:sequence>
|
394
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
395
|
+
</xsd:complexType>
|
396
|
+
</xsd:element>
|
397
|
+
</xsd:choice>
|
398
|
+
</xsd:sequence>
|
399
|
+
<xsd:attribute name="type" use="required">
|
400
|
+
<xsd:simpleType>
|
401
|
+
<xsd:restriction base="xsd:string">
|
402
|
+
<xsd:enumeration value="total" />
|
403
|
+
<xsd:enumeration value="rtma-total" />
|
404
|
+
</xsd:restriction>
|
405
|
+
</xsd:simpleType>
|
406
|
+
</xsd:attribute>
|
407
|
+
<xsd:attribute name="units" type="xsd:string" fixed="percent" />
|
408
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
409
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
410
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
411
|
+
</xsd:complexType>
|
412
|
+
</xsd:element>
|
413
|
+
|
414
|
+
<!-- HUMIDITY DECLARATIONS -->
|
415
|
+
|
416
|
+
<xsd:element name="humidity" minOccurs="0" maxOccurs="unbounded">
|
417
|
+
<xsd:complexType>
|
418
|
+
<xsd:sequence>
|
419
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
420
|
+
<xsd:element name="value" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
421
|
+
<xsd:complexType>
|
422
|
+
<xsd:simpleContent>
|
423
|
+
<xsd:extension base="xsd:nonNegativeInteger">
|
424
|
+
<xsd:attribute name="upper-range" type="percentRange" use="optional" />
|
425
|
+
<xsd:attribute name="lower-range" type="percentRange" use="optional" />
|
426
|
+
</xsd:extension>
|
427
|
+
</xsd:simpleContent>
|
428
|
+
</xsd:complexType>
|
429
|
+
</xsd:element>
|
430
|
+
</xsd:sequence>
|
431
|
+
<xsd:attribute name="type" use="required">
|
432
|
+
<xsd:simpleType>
|
433
|
+
<xsd:restriction base="xsd:string">
|
434
|
+
<xsd:enumeration value="relative" />
|
435
|
+
<xsd:enumeration value="maximum relative" />
|
436
|
+
<xsd:enumeration value="minimum relative" />
|
437
|
+
</xsd:restriction>
|
438
|
+
</xsd:simpleType>
|
439
|
+
</xsd:attribute>
|
440
|
+
<xsd:attribute name="units" type="xsd:string" fixed="percent" />
|
441
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
442
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
443
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
444
|
+
</xsd:complexType>
|
445
|
+
</xsd:element>
|
446
|
+
|
447
|
+
<!-- WEATHER DECLARATIONS -->
|
448
|
+
|
449
|
+
<xsd:element name="weather" minOccurs="0" maxOccurs="unbounded">
|
450
|
+
<xsd:complexType>
|
451
|
+
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
|
452
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
453
|
+
<xsd:element name="weather-conditions" minOccurs="1" maxOccurs="unbounded" nillable="true">
|
454
|
+
<xsd:complexType>
|
455
|
+
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
|
456
|
+
<xsd:element name="value" minOccurs="0" maxOccurs="1" nillable="true">
|
457
|
+
<xsd:complexType>
|
458
|
+
<xsd:sequence>
|
459
|
+
<xsd:element name="visibility" minOccurs="0" maxOccurs="1" nillable="true">
|
460
|
+
<xsd:complexType>
|
461
|
+
<xsd:simpleContent>
|
462
|
+
<xsd:extension base="xsd:string">
|
463
|
+
<xsd:attribute name="units" use="optional" default="statute miles">
|
464
|
+
<xsd:simpleType>
|
465
|
+
<xsd:restriction base="xsd:string">
|
466
|
+
<xsd:enumeration value="statute miles" />
|
467
|
+
<xsd:enumeration value="kilometers" />
|
468
|
+
<xsd:enumeration value="meters" />
|
469
|
+
</xsd:restriction>
|
470
|
+
</xsd:simpleType>
|
471
|
+
</xsd:attribute>
|
472
|
+
</xsd:extension>
|
473
|
+
</xsd:simpleContent>
|
474
|
+
</xsd:complexType>
|
475
|
+
</xsd:element>
|
476
|
+
</xsd:sequence>
|
477
|
+
<xsd:attribute name="coverage" use="optional">
|
478
|
+
<xsd:simpleType>
|
479
|
+
<xsd:restriction base="xsd:string">
|
480
|
+
<xsd:enumeration value="slight chance" />
|
481
|
+
<xsd:enumeration value="chance" />
|
482
|
+
<xsd:enumeration value="likely" />
|
483
|
+
<xsd:enumeration value="occasional" />
|
484
|
+
<xsd:enumeration value="definitely" />
|
485
|
+
<xsd:enumeration value="isolated" />
|
486
|
+
<xsd:enumeration value="scattered" />
|
487
|
+
<xsd:enumeration value="numerous" />
|
488
|
+
<xsd:enumeration value="patchy" />
|
489
|
+
<xsd:enumeration value="areas" />
|
490
|
+
<xsd:enumeration value="widespread" />
|
491
|
+
<xsd:enumeration value="periods of" />
|
492
|
+
<xsd:enumeration value="frequent" />
|
493
|
+
<xsd:enumeration value="intermittent" />
|
494
|
+
<xsd:enumeration value="none" />
|
495
|
+
</xsd:restriction>
|
496
|
+
</xsd:simpleType>
|
497
|
+
</xsd:attribute>
|
498
|
+
<xsd:attribute name="weather-type" use="optional">
|
499
|
+
<xsd:simpleType>
|
500
|
+
<xsd:restriction base="xsd:string">
|
501
|
+
<xsd:enumeration value="freezing drizzle" />
|
502
|
+
<xsd:enumeration value="freezing rain" />
|
503
|
+
<xsd:enumeration value="snow showers" />
|
504
|
+
<xsd:enumeration value="blowing snow" />
|
505
|
+
<xsd:enumeration value="blowing dust" />
|
506
|
+
<xsd:enumeration value="rain showers" />
|
507
|
+
<xsd:enumeration value="ice pellets" />
|
508
|
+
<xsd:enumeration value="frost" />
|
509
|
+
<xsd:enumeration value="rain" />
|
510
|
+
<xsd:enumeration value="hail" />
|
511
|
+
<xsd:enumeration value="snow" />
|
512
|
+
<xsd:enumeration value="thunderstorms" />
|
513
|
+
<xsd:enumeration value="drizzle" />
|
514
|
+
<xsd:enumeration value="fog" />
|
515
|
+
<xsd:enumeration value="haze" />
|
516
|
+
<xsd:enumeration value="smoke" />
|
517
|
+
<xsd:enumeration value="freezing spray" />
|
518
|
+
<xsd:enumeration value="ice fog" />
|
519
|
+
<xsd:enumeration value="freezing fog" />
|
520
|
+
<xsd:enumeration value="water spouts" />
|
521
|
+
<xsd:enumeration value="volcanic ash" />
|
522
|
+
<xsd:enumeration value="ice crystals" />
|
523
|
+
<xsd:enumeration value="blowing sand" />
|
524
|
+
</xsd:restriction>
|
525
|
+
</xsd:simpleType>
|
526
|
+
</xsd:attribute>
|
527
|
+
<xsd:attribute name="intensity" use="optional">
|
528
|
+
<xsd:simpleType>
|
529
|
+
<xsd:restriction base="xsd:string">
|
530
|
+
<xsd:enumeration value="very light" />
|
531
|
+
<xsd:enumeration value="light" />
|
532
|
+
<xsd:enumeration value="moderate" />
|
533
|
+
<xsd:enumeration value="heavy" />
|
534
|
+
<xsd:enumeration value="none" />
|
535
|
+
</xsd:restriction>
|
536
|
+
</xsd:simpleType>
|
537
|
+
</xsd:attribute>
|
538
|
+
<xsd:attribute name="additive" use="optional">
|
539
|
+
<xsd:simpleType>
|
540
|
+
<xsd:restriction base="xsd:string">
|
541
|
+
<xsd:enumeration value="and" />
|
542
|
+
<xsd:enumeration value="or" />
|
543
|
+
</xsd:restriction>
|
544
|
+
</xsd:simpleType>
|
545
|
+
</xsd:attribute>
|
546
|
+
<xsd:attribute name="qualifier" use="optional">
|
547
|
+
<xsd:simpleType>
|
548
|
+
<xsd:restriction base="xsd:string">
|
549
|
+
<xsd:annotation>
|
550
|
+
<xsd:documentation xml:lang="en">
|
551
|
+
This expression enforces a comma-delimited list
|
552
|
+
</xsd:documentation>
|
553
|
+
</xsd:annotation>
|
554
|
+
<xsd:pattern value="(\p{L}* ?\p{L}*)?(,\p{L}+ ?\p{L}*)*" />
|
555
|
+
</xsd:restriction>
|
556
|
+
</xsd:simpleType>
|
557
|
+
</xsd:attribute>
|
558
|
+
</xsd:complexType>
|
559
|
+
</xsd:element>
|
560
|
+
</xsd:sequence>
|
561
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
562
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
563
|
+
<xsd:attribute name="weather-summary" type="xsd:string" use="optional" />
|
564
|
+
</xsd:complexType>
|
565
|
+
</xsd:element>
|
566
|
+
</xsd:sequence>
|
567
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
568
|
+
</xsd:complexType>
|
569
|
+
</xsd:element>
|
570
|
+
|
571
|
+
<!-- CONDITIONS ICON DECLARATIONS -->
|
572
|
+
|
573
|
+
<xsd:element name="conditions-icon" minOccurs="0" maxOccurs="unbounded">
|
574
|
+
<xsd:complexType>
|
575
|
+
<xsd:sequence>
|
576
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
577
|
+
<xsd:element name="icon-link" type="xsd:anyURI" minOccurs="1" maxOccurs="unbounded" nillable="true"/>
|
578
|
+
</xsd:sequence>
|
579
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
580
|
+
<xsd:attribute name="type" use="required">
|
581
|
+
<xsd:simpleType>
|
582
|
+
<xsd:restriction base="xsd:string">
|
583
|
+
<xsd:enumeration value="forecast-NWS" />
|
584
|
+
</xsd:restriction>
|
585
|
+
</xsd:simpleType>
|
586
|
+
</xsd:attribute>
|
587
|
+
</xsd:complexType>
|
588
|
+
</xsd:element>
|
589
|
+
|
590
|
+
<!-- HAZARD DECLARATIONS -->
|
591
|
+
|
592
|
+
<xsd:element name="hazards" minOccurs="0" maxOccurs="unbounded">
|
593
|
+
<xsd:complexType>
|
594
|
+
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
|
595
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
596
|
+
<xsd:element name="hazard-conditions" minOccurs="1" maxOccurs="unbounded" nillable="true">
|
597
|
+
<xsd:complexType>
|
598
|
+
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
|
599
|
+
<xsd:element name="hazard" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
600
|
+
<xsd:complexType>
|
601
|
+
<xsd:sequence>
|
602
|
+
<xsd:element name="hazardTextURL" type="xsd:anyURI" minOccurs="0" maxOccurs="1" nillable="true" />
|
603
|
+
<xsd:element name="hazardIcon" type="xsd:anyURI" minOccurs="0" maxOccurs="1" nillable="true" />
|
604
|
+
</xsd:sequence>
|
605
|
+
<xsd:attribute name="hazardCode" type="xsd:string" use="optional" />
|
606
|
+
<xsd:attribute name="phenomena" use="optional">
|
607
|
+
<xsd:simpleType>
|
608
|
+
<xsd:restriction base="xsd:string">
|
609
|
+
<xsd:enumeration value="Ashfall" />
|
610
|
+
<xsd:enumeration value="Air Quality" />
|
611
|
+
<xsd:enumeration value="Air Stagnation" />
|
612
|
+
<xsd:enumeration value="Blowing Snow" />
|
613
|
+
<xsd:enumeration value="Brisk Wind" />
|
614
|
+
<xsd:enumeration value="Blizzard" />
|
615
|
+
<xsd:enumeration value="Coastal Flood" />
|
616
|
+
<xsd:enumeration value="Dust Storm" />
|
617
|
+
<xsd:enumeration value="Blowing Dust" />
|
618
|
+
<xsd:enumeration value="Excessive Cold" />
|
619
|
+
<xsd:enumeration value="Excessive Heat" />
|
620
|
+
<xsd:enumeration value="Excessive Wind" />
|
621
|
+
<xsd:enumeration value="Areal Flood" />
|
622
|
+
<xsd:enumeration value="Flash Flood" />
|
623
|
+
<xsd:enumeration value="Dense Fog" />
|
624
|
+
<xsd:enumeration value="Flood" />
|
625
|
+
<xsd:enumeration value="Frost" />
|
626
|
+
<xsd:enumeration value="Red Flag" />
|
627
|
+
<xsd:enumeration value="Fire Weather" />
|
628
|
+
<xsd:enumeration value="Freeze" />
|
629
|
+
<xsd:enumeration value="Gale" />
|
630
|
+
<xsd:enumeration value="Hurricane Force Wind" />
|
631
|
+
<xsd:enumeration value="Hurricane Wind" />
|
632
|
+
<xsd:enumeration value="Heavy Snow" />
|
633
|
+
<xsd:enumeration value="Heat" />
|
634
|
+
<xsd:enumeration value="Hurricane" />
|
635
|
+
<xsd:enumeration value="High Wind" />
|
636
|
+
<xsd:enumeration value="Hard Freeze" />
|
637
|
+
<xsd:enumeration value="Sleet" />
|
638
|
+
<xsd:enumeration value="Ice Storm" />
|
639
|
+
<xsd:enumeration value="Lake Effect Snow and Blowing Snow" />
|
640
|
+
<xsd:enumeration value="Lake Effect Snow" />
|
641
|
+
<xsd:enumeration value="Low Water" />
|
642
|
+
<xsd:enumeration value="Lakeshore Flood" />
|
643
|
+
<xsd:enumeration value="Lake Wind" />
|
644
|
+
<xsd:enumeration value="Marine" />
|
645
|
+
<xsd:enumeration value="Special Marine" />
|
646
|
+
<xsd:enumeration value="Small Craft, for Rough Bar" />
|
647
|
+
<xsd:enumeration value="Snow and Blowing Snow" />
|
648
|
+
<xsd:enumeration value="Small Craft" />
|
649
|
+
<xsd:enumeration value="Hazardous Seas" />
|
650
|
+
<xsd:enumeration value="Small Craft, for Winds" />
|
651
|
+
<xsd:enumeration value="Dense Smoke" />
|
652
|
+
<xsd:enumeration value="Snow" />
|
653
|
+
<xsd:enumeration value="Storm" />
|
654
|
+
<xsd:enumeration value="High Surf" />
|
655
|
+
<xsd:enumeration value="Severe Thunderstorm" />
|
656
|
+
<xsd:enumeration value="Small Craft, for Hazardous Seas" />
|
657
|
+
<xsd:enumeration value="Tropical Storm Wind" />
|
658
|
+
<xsd:enumeration value="Tornado" />
|
659
|
+
<xsd:enumeration value="Tropical Storm" />
|
660
|
+
<xsd:enumeration value="Tsunami" />
|
661
|
+
<xsd:enumeration value="Typhoon" />
|
662
|
+
<xsd:enumeration value="Freezing Spray" />
|
663
|
+
<xsd:enumeration value="Wind Chill" />
|
664
|
+
<xsd:enumeration value="Wind" />
|
665
|
+
<xsd:enumeration value="Winter Storm" />
|
666
|
+
<xsd:enumeration value="Winter Weather" />
|
667
|
+
<xsd:enumeration value="Freezing Fog" />
|
668
|
+
<xsd:enumeration value="Freezing Rain" />
|
669
|
+
<xsd:enumeration value="Record High Temperature Possible" />
|
670
|
+
<xsd:enumeration value="Record Low Temperature Possible" />
|
671
|
+
<xsd:enumeration value="none" />
|
672
|
+
</xsd:restriction>
|
673
|
+
</xsd:simpleType>
|
674
|
+
</xsd:attribute>
|
675
|
+
<xsd:attribute name="significance" use="optional">
|
676
|
+
<xsd:simpleType>
|
677
|
+
<xsd:restriction base="xsd:string">
|
678
|
+
<xsd:enumeration value="Watch" />
|
679
|
+
<xsd:enumeration value="Statement" />
|
680
|
+
<xsd:enumeration value="Warning" />
|
681
|
+
<xsd:enumeration value="Advisory" />
|
682
|
+
<xsd:enumeration value="none" />
|
683
|
+
</xsd:restriction>
|
684
|
+
</xsd:simpleType>
|
685
|
+
</xsd:attribute>
|
686
|
+
<xsd:attribute name="hazardType" use="optional">
|
687
|
+
<xsd:simpleType>
|
688
|
+
<xsd:restriction base="xsd:string">
|
689
|
+
<xsd:enumeration value="long duration" />
|
690
|
+
<xsd:enumeration value="short duration" />
|
691
|
+
</xsd:restriction>
|
692
|
+
</xsd:simpleType>
|
693
|
+
</xsd:attribute>
|
694
|
+
<xsd:attribute name="eventTrackingNumber" use="optional" type="xsd:integer" />
|
695
|
+
<xsd:attribute name="headline" type="xsd:string" use="optional" />
|
696
|
+
</xsd:complexType>
|
697
|
+
</xsd:element>
|
698
|
+
</xsd:sequence>
|
699
|
+
</xsd:complexType>
|
700
|
+
</xsd:element>
|
701
|
+
</xsd:sequence>
|
702
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
703
|
+
</xsd:complexType>
|
704
|
+
</xsd:element>
|
705
|
+
|
706
|
+
<!-- Worded Forecast DECLARATIONS -->
|
707
|
+
|
708
|
+
<xsd:element name="wordedForecast" minOccurs="0" maxOccurs="1">
|
709
|
+
<xsd:complexType>
|
710
|
+
<xsd:sequence>
|
711
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
712
|
+
<xsd:element name="text" type="xsd:string" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
713
|
+
</xsd:sequence>
|
714
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
715
|
+
<xsd:attribute name="dataSource" type="xsd:string" use="optional" />
|
716
|
+
<xsd:attribute name="wordGenerator" type="xsd:string" use="optional" />
|
717
|
+
</xsd:complexType>
|
718
|
+
</xsd:element>
|
719
|
+
|
720
|
+
<!-- PRESSURE DECLARATIONS -->
|
721
|
+
|
722
|
+
<xsd:element name="pressure" minOccurs="0" maxOccurs="unbounded">
|
723
|
+
<xsd:complexType>
|
724
|
+
<xsd:sequence>
|
725
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
726
|
+
<xsd:element name="value" type="decimalValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
727
|
+
</xsd:sequence>
|
728
|
+
<xsd:attribute name="type" use="required">
|
729
|
+
<xsd:simpleType>
|
730
|
+
<xsd:restriction base="xsd:string">
|
731
|
+
<xsd:enumeration value="barometer" />
|
732
|
+
<xsd:enumeration value="absolute" />
|
733
|
+
<xsd:enumeration value="mean sea level" />
|
734
|
+
</xsd:restriction>
|
735
|
+
</xsd:simpleType>
|
736
|
+
</xsd:attribute>
|
737
|
+
<xsd:attribute name="units" default="millibars">
|
738
|
+
<xsd:simpleType>
|
739
|
+
<xsd:restriction base="xsd:string">
|
740
|
+
<xsd:enumeration value="millibars" />
|
741
|
+
<xsd:enumeration value="pascals" />
|
742
|
+
<xsd:enumeration value="kilopascals" />
|
743
|
+
<xsd:enumeration value="hectopascals" />
|
744
|
+
<xsd:enumeration value="pounds per square inch" />
|
745
|
+
<xsd:enumeration value="inches of mercury" />
|
746
|
+
<xsd:enumeration value="millimeters of mercury" />
|
747
|
+
</xsd:restriction>
|
748
|
+
</xsd:simpleType>
|
749
|
+
</xsd:attribute>
|
750
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
751
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
752
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
753
|
+
</xsd:complexType>
|
754
|
+
</xsd:element>
|
755
|
+
|
756
|
+
<!-- PROBABILITY VALUE DECLARATIONS -->
|
757
|
+
|
758
|
+
<xsd:element name="probabilisticCondition" minOccurs="0" maxOccurs="unbounded">
|
759
|
+
<xsd:complexType>
|
760
|
+
<xsd:sequence>
|
761
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
762
|
+
<xsd:choice>
|
763
|
+
<xsd:element name="value" type="percentageValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
764
|
+
<xsd:element name="valueForRange" type="valueForRangeType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
765
|
+
</xsd:choice>
|
766
|
+
</xsd:sequence>
|
767
|
+
<xsd:attribute name="type" use="required">
|
768
|
+
<xsd:simpleType>
|
769
|
+
<xsd:restriction base="xsd:string">
|
770
|
+
<xsd:enumeration value="LAMP_VIS" />
|
771
|
+
<xsd:enumeration value="LAMP_VISCAT" />
|
772
|
+
<xsd:enumeration value="LAMP_CVIS" />
|
773
|
+
<xsd:enumeration value="LAMP_CVISCAT" />
|
774
|
+
<xsd:enumeration value="LAMP_CLD" />
|
775
|
+
<xsd:enumeration value="LAMP_TP2" />
|
776
|
+
<xsd:enumeration value="LAMP_TC2" />
|
777
|
+
</xsd:restriction>
|
778
|
+
</xsd:simpleType>
|
779
|
+
</xsd:attribute>
|
780
|
+
<xsd:attribute name="units" type="xsd:string" fixed="percent" />
|
781
|
+
<xsd:attribute name="likelihoodUnits" type="likelihoodUnitsTypes" use="optional" />
|
782
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
783
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
784
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
785
|
+
<xsd:attribute name="applicable-categories" type="xsd:string" use="optional" />
|
786
|
+
<xsd:attribute name="probability-type" type="probability-typeType" use="optional" />
|
787
|
+
</xsd:complexType>
|
788
|
+
</xsd:element>
|
789
|
+
|
790
|
+
<!-- SEA STATE DECLARATIONS -->
|
791
|
+
|
792
|
+
<xsd:element name="water-state" minOccurs="0" maxOccurs="unbounded">
|
793
|
+
<xsd:complexType>
|
794
|
+
<xsd:sequence>
|
795
|
+
<xsd:choice>
|
796
|
+
<xsd:sequence>
|
797
|
+
<xsd:element name="waves" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
798
|
+
<xsd:complexType>
|
799
|
+
<xsd:sequence>
|
800
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
801
|
+
<xsd:element name="value" type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="unbounded" nillable="true" />
|
802
|
+
</xsd:sequence>
|
803
|
+
<xsd:attribute name="type" use="required">
|
804
|
+
<xsd:simpleType>
|
805
|
+
<xsd:restriction base="xsd:string">
|
806
|
+
<xsd:enumeration value="wind" />
|
807
|
+
<xsd:enumeration value="significant" />
|
808
|
+
</xsd:restriction>
|
809
|
+
</xsd:simpleType>
|
810
|
+
</xsd:attribute>
|
811
|
+
<xsd:attribute name="units" default="feet">
|
812
|
+
<xsd:simpleType>
|
813
|
+
<xsd:restriction base="xsd:string">
|
814
|
+
<xsd:enumeration value="feet" />
|
815
|
+
<xsd:enumeration value="meters" />
|
816
|
+
</xsd:restriction>
|
817
|
+
</xsd:simpleType>
|
818
|
+
</xsd:attribute>
|
819
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
820
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
821
|
+
<xsd:attribute name="period" type="xsd:nonNegativeInteger" use="optional" />
|
822
|
+
<xsd:attribute name="steepness" type="xsd:nonNegativeInteger" use="optional" />
|
823
|
+
</xsd:complexType>
|
824
|
+
</xsd:element>
|
825
|
+
<xsd:element name="swell" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
826
|
+
<xsd:complexType>
|
827
|
+
<xsd:sequence>
|
828
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
829
|
+
<xsd:sequence>
|
830
|
+
<xsd:element name="value" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true" />
|
831
|
+
<xsd:element name="direction" minOccurs="0" maxOccurs="1">
|
832
|
+
<xsd:complexType>
|
833
|
+
<xsd:simpleContent>
|
834
|
+
<xsd:extension base="xsd:nonNegativeInteger">
|
835
|
+
<xsd:attribute name="upper-range" type="percentRange" use="optional" />
|
836
|
+
<xsd:attribute name="lower-range" type="percentRange" use="optional" />
|
837
|
+
</xsd:extension>
|
838
|
+
</xsd:simpleContent>
|
839
|
+
</xsd:complexType>
|
840
|
+
</xsd:element>
|
841
|
+
</xsd:sequence>
|
842
|
+
</xsd:sequence>
|
843
|
+
<xsd:attribute name="type" use="required">
|
844
|
+
<xsd:simpleType>
|
845
|
+
<xsd:restriction base="xsd:string">
|
846
|
+
<xsd:enumeration value="wind" />
|
847
|
+
</xsd:restriction>
|
848
|
+
</xsd:simpleType>
|
849
|
+
</xsd:attribute>
|
850
|
+
<xsd:attribute name="units" default="feet">
|
851
|
+
<xsd:simpleType>
|
852
|
+
<xsd:restriction base="xsd:string">
|
853
|
+
<xsd:enumeration value="feet" />
|
854
|
+
<xsd:enumeration value="meters" />
|
855
|
+
</xsd:restriction>
|
856
|
+
</xsd:simpleType>
|
857
|
+
</xsd:attribute>
|
858
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
859
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
860
|
+
<xsd:attribute name="period" type="xsd:nonNegativeInteger" use="optional" />
|
861
|
+
<xsd:attribute name="steepness" type="xsd:nonNegativeInteger" use="optional" />
|
862
|
+
</xsd:complexType>
|
863
|
+
</xsd:element>
|
864
|
+
</xsd:sequence>
|
865
|
+
<xsd:element name="seas" minOccurs="0" maxOccurs="unbounded">
|
866
|
+
<xsd:complexType>
|
867
|
+
<xsd:sequence>
|
868
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
869
|
+
<xsd:element name="value" type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="unbounded" nillable="true" />
|
870
|
+
</xsd:sequence>
|
871
|
+
<xsd:attribute name="type" use="required">
|
872
|
+
<xsd:simpleType>
|
873
|
+
<xsd:restriction base="xsd:string">
|
874
|
+
<xsd:enumeration value="combined" />
|
875
|
+
</xsd:restriction>
|
876
|
+
</xsd:simpleType>
|
877
|
+
</xsd:attribute>
|
878
|
+
<xsd:attribute name="units" default="feet">
|
879
|
+
<xsd:simpleType>
|
880
|
+
<xsd:restriction base="xsd:string">
|
881
|
+
<xsd:enumeration value="feet" />
|
882
|
+
<xsd:enumeration value="meters" />
|
883
|
+
</xsd:restriction>
|
884
|
+
</xsd:simpleType>
|
885
|
+
</xsd:attribute>
|
886
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
887
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
888
|
+
</xsd:complexType>
|
889
|
+
</xsd:element>
|
890
|
+
</xsd:choice>
|
891
|
+
<xsd:element name="ice-coverage" type="xsd:nonNegativeInteger" minOccurs="0" maxOccurs="unbounded" />
|
892
|
+
</xsd:sequence>
|
893
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
894
|
+
</xsd:complexType>
|
895
|
+
</xsd:element>
|
896
|
+
</xsd:sequence>
|
897
|
+
<xsd:attribute name="applicable-location" type="xsd:string" use="required" />
|
898
|
+
</xsd:complexType>
|
899
|
+
|
900
|
+
<!-- Type that defines Temperature Values -->
|
901
|
+
|
902
|
+
<xsd:complexType name="tempValType">
|
903
|
+
<xsd:simpleContent>
|
904
|
+
<xsd:extension base="xsd:integer">
|
905
|
+
<xsd:attribute name="upper-range" use="optional">
|
906
|
+
<xsd:simpleType>
|
907
|
+
<xsd:restriction base="xsd:integer">
|
908
|
+
<xsd:minInclusive value="-459" />
|
909
|
+
</xsd:restriction>
|
910
|
+
</xsd:simpleType>
|
911
|
+
</xsd:attribute>
|
912
|
+
<xsd:attribute name="lower-range" use="optional">
|
913
|
+
<xsd:simpleType>
|
914
|
+
<xsd:restriction base="xsd:integer">
|
915
|
+
<xsd:minInclusive value="-459" />
|
916
|
+
</xsd:restriction>
|
917
|
+
</xsd:simpleType>
|
918
|
+
</xsd:attribute>
|
919
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
920
|
+
</xsd:extension>
|
921
|
+
</xsd:simpleContent>
|
922
|
+
</xsd:complexType>
|
923
|
+
|
924
|
+
<!-- Type that defines Wind Speed Values -->
|
925
|
+
|
926
|
+
<xsd:complexType name="wspdValType">
|
927
|
+
<xsd:simpleContent>
|
928
|
+
<xsd:extension base="xsd:nonNegativeInteger">
|
929
|
+
<xsd:attribute name="upper-range" type="xsd:nonNegativeInteger" use="optional" />
|
930
|
+
<xsd:attribute name="lower-range" type="xsd:nonNegativeInteger" use="optional" />
|
931
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
932
|
+
</xsd:extension>
|
933
|
+
</xsd:simpleContent>
|
934
|
+
</xsd:complexType>
|
935
|
+
|
936
|
+
<!-- Type that defines Wind Direction Values -->
|
937
|
+
|
938
|
+
<xsd:complexType name="wdirValType">
|
939
|
+
<xsd:simpleContent>
|
940
|
+
<xsd:extension base="xsd:nonNegativeInteger">
|
941
|
+
<xsd:attribute name="upper-range" use="optional">
|
942
|
+
<xsd:simpleType>
|
943
|
+
<xsd:restriction base="xsd:nonNegativeInteger">
|
944
|
+
<xsd:maxInclusive value="360" />
|
945
|
+
</xsd:restriction>
|
946
|
+
</xsd:simpleType>
|
947
|
+
</xsd:attribute>
|
948
|
+
<xsd:attribute name="lower-range" use="optional">
|
949
|
+
<xsd:simpleType>
|
950
|
+
<xsd:restriction base="xsd:nonNegativeInteger">
|
951
|
+
<xsd:maxInclusive value="360" />
|
952
|
+
</xsd:restriction>
|
953
|
+
</xsd:simpleType>
|
954
|
+
</xsd:attribute>
|
955
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
956
|
+
</xsd:extension>
|
957
|
+
</xsd:simpleContent>
|
958
|
+
</xsd:complexType>
|
959
|
+
|
960
|
+
<!-- Type that defines Percentage Amount Values -->
|
961
|
+
|
962
|
+
<xsd:complexType name="percentageValType">
|
963
|
+
<xsd:simpleContent>
|
964
|
+
<xsd:extension base="xsd:nonNegativeInteger">
|
965
|
+
<xsd:attribute name="upper-range" type="percentRange" use="optional" />
|
966
|
+
<xsd:attribute name="lower-range" type="percentRange" use="optional" />
|
967
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
968
|
+
</xsd:extension>
|
969
|
+
</xsd:simpleContent>
|
970
|
+
</xsd:complexType>
|
971
|
+
|
972
|
+
<!-- Type that defines Decimal Values -->
|
973
|
+
|
974
|
+
<xsd:complexType name="decimalValType">
|
975
|
+
<xsd:simpleContent>
|
976
|
+
<xsd:extension base="xsd:decimal">
|
977
|
+
<xsd:attribute name="upper-range" type="percentRange" use="optional" />
|
978
|
+
<xsd:attribute name="lower-range" type="percentRange" use="optional" />
|
979
|
+
<xsd:attribute name="type" type="dataSourceType" use="optional" />
|
980
|
+
</xsd:extension>
|
981
|
+
</xsd:simpleContent>
|
982
|
+
</xsd:complexType>
|
983
|
+
|
984
|
+
<!-- Type that defines Climate Anomaly Elements: -->
|
985
|
+
|
986
|
+
<xsd:complexType name="anomalyType">
|
987
|
+
<xsd:sequence>
|
988
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
989
|
+
<xsd:element name="value" minOccurs="0" maxOccurs="unbounded" nillable="true">
|
990
|
+
<xsd:complexType>
|
991
|
+
<xsd:simpleContent>
|
992
|
+
<xsd:extension base="xsd:nonNegativeInteger">
|
993
|
+
<xsd:attribute name="upper-range" type="percentRange" use="optional" />
|
994
|
+
<xsd:attribute name="lower-range" type="percentRange" use="optional" />
|
995
|
+
</xsd:extension>
|
996
|
+
</xsd:simpleContent>
|
997
|
+
</xsd:complexType>
|
998
|
+
</xsd:element>
|
999
|
+
</xsd:sequence>
|
1000
|
+
<xsd:attribute name="type" use="required">
|
1001
|
+
<xsd:simpleType>
|
1002
|
+
<xsd:restriction base="xsd:string">
|
1003
|
+
<xsd:enumeration value="average temperature above normal" />
|
1004
|
+
<xsd:enumeration value="average temperature below normal" />
|
1005
|
+
<xsd:enumeration value="average precipitation above normal" />
|
1006
|
+
<xsd:enumeration value="average precipitation below normal" />
|
1007
|
+
</xsd:restriction>
|
1008
|
+
</xsd:simpleType>
|
1009
|
+
</xsd:attribute>
|
1010
|
+
<xsd:attribute name="units" type="xsd:string" fixed="percent" />
|
1011
|
+
<xsd:attribute name="time-layout" type="time-layoutAttributeType" use="required" />
|
1012
|
+
<xsd:attribute name="categorical-table" type="xsd:string" use="optional" />
|
1013
|
+
<xsd:attribute name="conversion-table" type="xsd:string" use="optional" />
|
1014
|
+
</xsd:complexType>
|
1015
|
+
|
1016
|
+
<!-- Type that defines Time Layouts: -->
|
1017
|
+
|
1018
|
+
<xsd:simpleType name="time-layoutAttributeType">
|
1019
|
+
<xsd:restriction base="xsd:string">
|
1020
|
+
<xsd:pattern value="k-p\d+[h|d|m|y]-n\d+-\d+" />
|
1021
|
+
</xsd:restriction>
|
1022
|
+
</xsd:simpleType>
|
1023
|
+
|
1024
|
+
<!-- Definition of a value list type -->
|
1025
|
+
|
1026
|
+
<xsd:simpleType name="decimalValueListType">
|
1027
|
+
<xsd:list itemType="xsd:decimal" />
|
1028
|
+
</xsd:simpleType>
|
1029
|
+
|
1030
|
+
<xsd:simpleType name="integerValueListType">
|
1031
|
+
<xsd:list itemType="xsd:integer" />
|
1032
|
+
</xsd:simpleType>
|
1033
|
+
|
1034
|
+
<xsd:simpleType name="numberValueListType">
|
1035
|
+
<xsd:union memberTypes="decimalValueListType integerValueListType" />
|
1036
|
+
</xsd:simpleType>
|
1037
|
+
|
1038
|
+
<xsd:complexType name="valueListType">
|
1039
|
+
<xsd:simpleContent>
|
1040
|
+
<xsd:extension base="numberValueListType">
|
1041
|
+
<xsd:attribute name="median" type="xsd:decimal" use="optional" />
|
1042
|
+
<xsd:attribute name="confidenceInterval50" type="xsd:decimal" use="optional" />
|
1043
|
+
<xsd:attribute name="confidenceInterval80" type="xsd:decimal" use="optional" />
|
1044
|
+
<xsd:attribute name="skew80" type="xsd:decimal" use="optional" />
|
1045
|
+
</xsd:extension>
|
1046
|
+
</xsd:simpleContent>
|
1047
|
+
</xsd:complexType>
|
1048
|
+
|
1049
|
+
<!-- Definition of a probability type type -->
|
1050
|
+
|
1051
|
+
<xsd:simpleType name="probability-typeType">
|
1052
|
+
<xsd:restriction base="xsd:string">
|
1053
|
+
<xsd:enumeration value="nonexceedance" />
|
1054
|
+
<xsd:enumeration value="exceedance" />
|
1055
|
+
</xsd:restriction>
|
1056
|
+
</xsd:simpleType>
|
1057
|
+
|
1058
|
+
<!-- Definition of a category list type -->
|
1059
|
+
|
1060
|
+
<xsd:complexType name="categoriesType">
|
1061
|
+
<xsd:sequence>
|
1062
|
+
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" />
|
1063
|
+
<xsd:element name="categories-key" type="xsd:string" minOccurs="1" maxOccurs="1" />
|
1064
|
+
<xsd:element name="valueList" type="valueListType" minOccurs="0" maxOccurs="1" />
|
1065
|
+
</xsd:sequence>
|
1066
|
+
<xsd:attribute name="type" use="required">
|
1067
|
+
<xsd:simpleType>
|
1068
|
+
<xsd:restriction base="xsd:string">
|
1069
|
+
<xsd:enumeration value="ekdmos-cdf-percentiles" />
|
1070
|
+
<xsd:enumeration value="ekdmos-qpf-probabilities" />
|
1071
|
+
</xsd:restriction>
|
1072
|
+
</xsd:simpleType>
|
1073
|
+
</xsd:attribute>
|
1074
|
+
<xsd:attribute name="probability-type" type="probability-typeType" />
|
1075
|
+
</xsd:complexType>
|
1076
|
+
|
1077
|
+
<!-- Definition of a data source type type -->
|
1078
|
+
|
1079
|
+
<xsd:simpleType name="dataSourceType">
|
1080
|
+
<xsd:restriction base="xsd:string">
|
1081
|
+
<xsd:enumeration value="NDFD" />
|
1082
|
+
<xsd:enumeration value="RTMA" />
|
1083
|
+
</xsd:restriction>
|
1084
|
+
</xsd:simpleType>
|
1085
|
+
|
1086
|
+
<!-- Definition of a range/uncertainty qualifier type -->
|
1087
|
+
|
1088
|
+
<xsd:simpleType name="qualifierType">
|
1089
|
+
<xsd:restriction base="xsd:string">
|
1090
|
+
<xsd:enumeration value="+/-" />
|
1091
|
+
<xsd:enumeration value="+" />
|
1092
|
+
<xsd:enumeration value="-" />
|
1093
|
+
<xsd:enumeration value="%" />
|
1094
|
+
</xsd:restriction>
|
1095
|
+
</xsd:simpleType>
|
1096
|
+
|
1097
|
+
<!-- Definition of a 0 - 100 range -->
|
1098
|
+
|
1099
|
+
<xsd:simpleType name="percentRange">
|
1100
|
+
<xsd:restriction base="xsd:nonNegativeInteger">
|
1101
|
+
<xsd:maxInclusive value="100" />
|
1102
|
+
</xsd:restriction>
|
1103
|
+
</xsd:simpleType>
|
1104
|
+
|
1105
|
+
<!-- Definition of the units for a uncertainty value -->
|
1106
|
+
|
1107
|
+
<xsd:simpleType name="likelihoodUnitsTypes">
|
1108
|
+
<xsd:restriction base="xsd:string">
|
1109
|
+
<xsd:enumeration value="percent" />
|
1110
|
+
</xsd:restriction>
|
1111
|
+
</xsd:simpleType>
|
1112
|
+
|
1113
|
+
<!-- Definition of an uncertainty type -->
|
1114
|
+
|
1115
|
+
<xsd:complexType name="uncertaintyType">
|
1116
|
+
<xsd:sequence>
|
1117
|
+
<xsd:element name="error" minOccurs="0" maxOccurs="1">
|
1118
|
+
<xsd:complexType>
|
1119
|
+
<xsd:simpleContent>
|
1120
|
+
<xsd:extension base="xsd:decimal">
|
1121
|
+
<xsd:attribute name="qualifier" type="qualifierType" use="optional" default="+/-" />
|
1122
|
+
</xsd:extension>
|
1123
|
+
</xsd:simpleContent>
|
1124
|
+
</xsd:complexType>
|
1125
|
+
</xsd:element>
|
1126
|
+
</xsd:sequence>
|
1127
|
+
<xsd:attribute name="type" use="required">
|
1128
|
+
<xsd:simpleType>
|
1129
|
+
<xsd:restriction base="xsd:string">
|
1130
|
+
<xsd:enumeration value="analysis error" />
|
1131
|
+
<xsd:enumeration value="forecast error" />
|
1132
|
+
<xsd:enumeration value="likelihood" />
|
1133
|
+
</xsd:restriction>
|
1134
|
+
</xsd:simpleType>
|
1135
|
+
</xsd:attribute>
|
1136
|
+
</xsd:complexType>
|
1137
|
+
|
1138
|
+
<!-- definition for a number with a equality sign value="\p{Nd}" -->
|
1139
|
+
|
1140
|
+
<xsd:simpleType name="numberWithEqualityType">
|
1141
|
+
<xsd:restriction base="xsd:string">
|
1142
|
+
<xsd:pattern value="(>|≥|<|≤)?\d{1,3}" />
|
1143
|
+
</xsd:restriction>
|
1144
|
+
</xsd:simpleType>
|
1145
|
+
|
1146
|
+
<!-- definition for inequalities -->
|
1147
|
+
|
1148
|
+
<xsd:element name="lt" type="numberValueListType" />
|
1149
|
+
<xsd:element name="le" type="numberValueListType" />
|
1150
|
+
<xsd:element name="gt" type="numberValueListType" />
|
1151
|
+
<xsd:element name="ge" type="numberValueListType" />
|
1152
|
+
<xsd:element name="eq" type="numberValueListType" />
|
1153
|
+
|
1154
|
+
<!-- definition of a probabilistic value for some range -->
|
1155
|
+
|
1156
|
+
<xsd:complexType name="valueForRangeType">
|
1157
|
+
<xsd:sequence>
|
1158
|
+
<xsd:element name="value" type="percentageValType" minOccurs="0" maxOccurs="unbounded" nillable="true" />
|
1159
|
+
<xsd:choice>
|
1160
|
+
<xsd:element ref="gt" minOccurs="0" />
|
1161
|
+
<xsd:element ref="ge" minOccurs="0" />
|
1162
|
+
</xsd:choice>
|
1163
|
+
<xsd:choice>
|
1164
|
+
<xsd:element ref="lt" minOccurs="0" />
|
1165
|
+
<xsd:element ref="le" minOccurs="0" />
|
1166
|
+
</xsd:choice>
|
1167
|
+
<xsd:choice>
|
1168
|
+
<xsd:element ref="eq" minOccurs="0" />
|
1169
|
+
</xsd:choice>
|
1170
|
+
</xsd:sequence>
|
1171
|
+
</xsd:complexType>
|
1172
|
+
|
1173
|
+
</xsd:schema>
|