
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="response" >
    	<xsd:complexType >
			<xsd:sequence >
			    <xsd:element ref="request_index" />
				<xsd:element ref="data_source"  />
				<xsd:element ref="request"/>
				<xsd:element ref="errors"/>
				<xsd:element ref="warnings"/>
				<xsd:element ref="time_taken_ms"/>
				<xsd:element ref="data"/>
			</xsd:sequence>
			<xsd:attribute name="version" type="xsd:string" default="1.1"/>
			</xsd:complexType>
		</xsd:element>
		
		<xsd:element name="request_index" type="xsd:int"/>
		<xsd:element name="data_source" >
			<xsd:complexType>
				<xsd:attribute name="name" type="xsd:string"/>
			</xsd:complexType>
		</xsd:element>
		<xsd:element name="request" >
			<xsd:complexType>
					<xsd:attribute name="type" type="xsd:string" />
			</xsd:complexType>
		</xsd:element>
		<xsd:element name="errors">
			<xsd:complexType>
				<xsd:sequence minOccurs="0" >
					<xsd:element ref="error" />
				</xsd:sequence>
			</xsd:complexType>
		</xsd:element>
		<xsd:element name="warnings">
			<xsd:complexType>
				<xsd:sequence minOccurs="0">
					<xsd:element ref="warning" />
				</xsd:sequence>
			</xsd:complexType>
		</xsd:element>
		<xsd:element name="data" >
			<xsd:complexType>
				<xsd:sequence minOccurs="0" maxOccurs="unbounded">
					<xsd:element ref="GAIRMET"/>
				</xsd:sequence>
				<xsd:attribute name="num_results" type="xsd:int"/>
			</xsd:complexType>
		</xsd:element>
		<xsd:element name="warning" type="xsd:string"/>
		<xsd:element name="error" type="xsd:string"/>
		<xsd:element name="time_taken_ms" type="xsd:int"/>
		<xsd:attribute name="num_results" type="xsd:int"/>
		
		<xsd:element name="GAIRMET">
			<xsd:complexType>
				<xsd:sequence>
					<xsd:element ref="receiptTime" minOccurs="1"/>
					<xsd:element ref="issueTime" minOccurs="1"/>
					<xsd:element ref="expireTime" minOccurs="1"/>
					<xsd:element ref="product" minOccurs="1"/>
					<xsd:element ref="forecastHour" minOccurs="1"/>
					<xsd:element ref="validTime" minOccurs="1"/>
					<xsd:element ref="hazard" minOccurs="1"/>
					<xsd:element ref="geometryType" minOccurs="1"/>
					<xsd:element ref="frequency" minOccurs="0"/>
					<xsd:element ref="due_to" minOccurs="0"/>
					<xsd:element ref="status" minOccurs="0"/>
					<xsd:element ref="altitude" minOccurs="0"/>
					<xsd:element ref="fzl_altitude" minOccurs="0"/>
					<xsd:element ref="level" minOccurs="0"/>
					<xsd:element ref="area" minOccurs="1" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:complexType>
		</xsd:element>
	    
	    <xsd:element name="receiptTime" type="xsd:string"/>
	    <xsd:element name="issueTime" type="xsd:string"/>
	    <xsd:element name="expireTime"  type="xsd:string"/>
	    <xsd:element name="product"  type="xsd:string"/>
	    <xsd:element name="forecastHour" type="xsd:integer"/>
	    <xsd:element name="validTime"  type="xsd:string"/>
        <xsd:element name="hazard"  >
	        <xsd:complexType>
	            <xsd:attribute name="type" type="xsd:string" />
	            <xsd:attribute name="severity" type="xsd:string" />
	        </xsd:complexType>
	    </xsd:element>
	    <xsd:element name="geometryType"  type="xsd:string"/>
	    <xsd:element name="frequency"  type="xsd:string"/>
	    <xsd:element name="due_to"  type="xsd:string"/>
	    <xsd:element name="status"  type="xsd:string"/>
	    <xsd:element name="altitude" >
	        <xsd:complexType>
	            <xsd:attribute name="min_ft_msl" type="xsd:int" />
	            <xsd:attribute name="max_ft_msl" type="xsd:int" />
	        </xsd:complexType>
	    </xsd:element>
	    <xsd:element name="fzl_altitude" >
	        <xsd:complexType>
	            <xsd:attribute name="min_ft_msl" type="xsd:int" />
	            <xsd:attribute name="max_ft_msl" type="xsd:int" />
	        </xsd:complexType>
	    </xsd:element>
	    <xsd:element name="level" type="xsd:integer"/>
	    <xsd:element name="area" >
	        <xsd:complexType>
	            <xsd:sequence>
	                <xsd:element ref="point" minOccurs="1" maxOccurs="unbounded" />
	            </xsd:sequence>
	            <xsd:attribute name="num_points" type="xsd:integer"/>
	        </xsd:complexType>
	    </xsd:element>
	    <xsd:element name="point">
	        <xsd:complexType>
	            <xsd:sequence>
	               <xsd:element name="longitude"  type="xsd:float" minOccurs="1"/>
	                <xsd:element name="latitude" type="xsd:float" minOccurs="1"/>
	            </xsd:sequence>
	        </xsd:complexType>
	    </xsd:element>
	    
</xsd:schema>
