<form xmlns="http://echo.nasa.gov/v9/echoforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <model>
        <instance>
            <ecs:options xmlns:ecs="http://ecs.nasa.gov/options" xmlns:hsa="http://subset.itsc.uah.edu/HSASubsettingCriteria">
                <!-- ECS distribution options example -->
                <ecs:distribution>
                    <ecs:mediatype>
                        <ecs:value>FtpPull</ecs:value>
                    </ecs:mediatype>
                    <ecs:mediaformat>
                        <ecs:ftppull-format>
                            <ecs:value>FILEFORMAT</ecs:value>
                        </ecs:ftppull-format>
                        <ecs:ftppush-format>
                            <ecs:value>FILEFORMAT</ecs:value>
                        </ecs:ftppush-format>
                        <ecs:dvd-format>
                            <ecs:value>RockRidge</ecs:value>
                        </ecs:dvd-format>
                        <ecs:cdrom-format>
                            <ecs:value>RockRidge</ecs:value>
                        </ecs:cdrom-format>
                        <ecs:dlt-format>
                            <ecs:value>TARFORMAT</ecs:value>
                        </ecs:dlt-format>
                    </ecs:mediaformat>
                    <ecs:ftppush>
                        <ecs:user/>
                        <ecs:password/>
                        <ecs:host/>
                        <ecs:directory/>
                        <ecs:user-string/>
                    </ecs:ftppush>          
                </ecs:distribution>
                <ecs:do-processing>false</ecs:do-processing>
                <ecs:processing>
                    <!-- This must be populated with the subsetter's endpoint -->
                    <ecs:endpoint>http://n0ess01u.ecs.nasa.gov:8000/sam-cgi-bin/poochie</ecs:endpoint>
                    <!-- This tag is a constant and is required for the HSA subsetter -->
                    <ecs:consider-processing-options-in-request-bundling>false</ecs:consider-processing-options-in-request-bundling>
                    <!-- One or more of BoundingBox, DateRange, and/or FieldList MUST be specified -->
                    <hsa:SubsettingCriteria>                                                                         
                        <!-- GranuleSize is required -->
                        <hsa:GranuleSize granule-specific="true">1.0</hsa:GranuleSize>
                        <hsa:spatial-subsetting granule-specific="true">false</hsa:spatial-subsetting>
                        <hsa:LatLonBox>
                            <hsa:NorthBound>90.0</hsa:NorthBound>
                            <hsa:SouthBound>-90.0</hsa:SouthBound>
                            <hsa:WestBound>-180.0</hsa:WestBound>
                            <hsa:EastBound>180.0</hsa:EastBound>
                        </hsa:LatLonBox>                     
                        <!-- FieldList is optional, required only for parameter subsetting -->
                        <hsa:parameter-subsetting granule-specific="true">false</hsa:parameter-subsetting>
                          <hsa:Fields>  
							<hsa:FieldList>
                                <hsa:FieldName>Antenna_Temp_Coefficients_6_to_52</hsa:FieldName>
                                <!-- Add other field names here -->
                            </hsa:FieldList>
						  </hsa:Fields>	    
                    </hsa:SubsettingCriteria>
                </ecs:processing>
            </ecs:options>
        </instance>
        <!-- Required to populate the subsetter's GranuleSize tag -->
        <extension xmlns:auto="http://echo.nasa.gov/v9/echoforms/autopopulate" name="auto:autopopulate">
            <auto:expressions>
                <auto:expression metadata="/results/provider/result/GranuleURMetaData/DataGranule/SizeMBDataGranule/text()" ref="/ecs:options/ecs:processing/hsa:SubsettingCriteria/hsa:GranuleSize"/>
            </auto:expressions>
        </extension>
    </model>
    <ui>
        <group id="mediaOptionsGroup" label="Media Options" ref="ecs:distribution">
            <select id="mediaTypeSelect" label="Media Type" multiple="false" open="false" ref="ecs:mediatype" required="true()" type="xsd:string" valueElementName="value">
                <item label="FTP Pull" value="FtpPull"/>
                <item label="FTP Push" value="FtpPush"/>
                <item label="CD-ROM" value="CDROM"/>
                <item label="DLT" value="DLT"/>
                <item label="DVD" value="DVD"/>
            </select>
            
            <group id="ftpPushGroup" label="FTP Push Properties" ref="ecs:ftppush" relevant="ecs:mediatype/ecs:value = 'FtpPush'">
                <input label="Username" ref="ecs:user" required="//ecs:mediatype/ecs:value = 'FtpPush'" type="xsd:string"/>
                <secret label="Password" ref="ecs:password" required="//ecs:mediatype/ecs:value = 'FtpPush'" type="xsd:string"/>
                <input label="Hostname" ref="ecs:host" required="//ecs:mediatype/ecs:value = 'FtpPush'" type="xsd:string"/>
                <input label="Destination directory" ref="ecs:directory" required="//ecs:mediatype/ecs:value = 'FtpPush'" type="xsd:string"/>
                <input label="User string" ref="ecs:user-string" type="xsd:string"/>
            </group>
            <select id="mediaFormatSelectDLT" label="Media Format" multiple="false" open="false" ref="ecs:mediaformat/ecs:dlt-format" relevant="ecs:mediatype/ecs:value = 'DLT'" required="ecs:mediatype/ecs:value = 'DLT'" type="xsd:string" valueElementName="value">
                <item label="Tar File" value="TARFORMAT"/>
            </select>
            <select id="mediaFormatSelectDVD" label="Media Format" multiple="false" open="false" ref="ecs:mediaformat/ecs:dvd-format" relevant="ecs:mediatype/ecs:value = 'DVD'" required="ecs:mediatype/ecs:value = 'DVD'" type="xsd:string" valueElementName="value">
                 <item label="Rockridge" value="RockRidge"/>
            </select>
            <select id="mediaFormatSelectCDROM" label="Media Format" multiple="false" open="false" ref="ecs:mediaformat/ecs:cdrom-format" relevant="ecs:mediatype/ecs:value = 'CDROM'" required="ecs:mediatype/ecs:value = 'CDROM'" type="xsd:string" valueElementName="value">
                <item label="Rockridge" value="RockRidge"/>
            </select>
            <select id="mediaFormatSelectFTPPULL" label="Media Format" multiple="false" open="false" ref="ecs:mediaformat/ecs:ftppull-format" relevant="ecs:mediatype/ecs:value = 'FtpPull'" required="ecs:mediatype/ecs:value = 'FtpPull'" type="xsd:string" valueElementName="value">
                <item label="File" value="FILEFORMAT"/>
            </select>
            <select id="mediaFormatSelectFTPPUSH" label="Media Format" multiple="false" open="false" ref="ecs:mediaformat/ecs:ftppush-format" relevant="ecs:mediatype/ecs:value = 'FtpPush'" required="ecs:mediatype/ecs:value = 'FtpPush'" type="xsd:string" valueElementName="value">
                <item label="File" value="FILEFORMAT"/>
            </select>
        </group>
        <input id="processingSwitch" label="Check here for Subsetting Options" ref="ecs:do-processing" relevant="//ecs:mediatype/ecs:value = 'FtpPull' or //ecs:mediatype/ecs:value = 'FtpPush'" type="xsd:boolean">
                 <constraints>
                   <constraint>
                     <xpath>//ecs:do-processing = 'false' or (//hsa:spatial-subsetting = 'true' or //hsa:parameter-subsetting = 'true')</xpath>
                     <alert>If you require processing, please select either spatial or parameter subsetting or both</alert>
                   </constraint>
                 </constraints>
        </input>
		
        <group xmlns:hsa="http://subset.itsc.uah.edu/HSASubsettingCriteria" id="subsettingOptionsGroup" label="Subsetting Options" ref="ecs:processing" relevant="//ecs:do-processing = 'true' and (//ecs:mediatype/ecs:value = 'FtpPull' or //ecs:mediatype/ecs:value = 'FtpPush')">
               <input id="spatialSwitch" label="Spatial Subsetting?" ref="hsa:SubsettingCriteria/hsa:spatial-subsetting" relevant="//ecs:do-processing = 'true'" type="xsd:boolean">
               </input>
 			    <group id="LatLonBox" label="Geographic Bounds" ref="hsa:SubsettingCriteria/hsa:LatLonBox" relevant="hsa:SubsettingCriteria/hsa:spatial-subsetting = 'true'">
                <input id="NorthBound" label="North bound" ref="hsa:NorthBound" type="xsd:double">
                    <constraints>
                        <constraint>
                            <xpath>(//hsa:NorthBound &gt;= -90) and (//hsa:NorthBound &lt;= 90)</xpath>
                            <alert>Latitude must be between -90 and 90.</alert>
                        </constraint>
                        <constraint>
                            <xpath>//hsa:NorthBound &gt; //hsa:SouthBound</xpath>
                            <alert>The northern latitude must be greater than the southern latitude.</alert>
                        </constraint>
                    </constraints>
                </input>
                <input id="SouthBound" label="South bound" ref="hsa:SouthBound" type="xsd:double">
                    <constraints>
                        <constraint>
                            <xpath>(//hsa:SouthBound &gt;= -90) and (//hsa:SouthBound &lt;= 90)</xpath>
                            <alert>Latitude must be between -90 and 90.</alert>
                        </constraint>                
                    </constraints>
                </input>
                <input id="WestBound" label="West bound" ref="hsa:WestBound" type="xsd:double">
                    <constraints>
                        <constraint>
                            <xpath>(//hsa:WestBound &gt;= -180) and (//hsa:WestBound &lt;= 180)</xpath>
                            <alert>Longitude must be between -180 and 180.</alert>
                        </constraint>
                    </constraints>
                </input>
                <input id="EastBound" label="East bound" ref="hsa:EastBound" type="xsd:double">
                    <constraints>
                        <constraint>
                            <xpath>(//hsa:EastBound &gt;= -180) and (//hsa:EastBound &lt;= 180)</xpath>
                            <alert>Longitude must be between -180 and 180.</alert>
                        </constraint>
                    </constraints>
                </input>
            </group>
            <input id="parameterSwitch" label="Parameter Subsetting?" ref="hsa:SubsettingCriteria/hsa:parameter-subsetting" type="xsd:boolean">
            </input>                       
            <group label="Parameter Selection" ref="hsa:SubsettingCriteria/hsa:Fields" relevant="hsa:SubsettingCriteria/hsa:parameter-subsetting = 'true'">
                <select label="Parameters" multiple="true" open="false" ref="hsa:FieldList" type="xsd:string" valueElementName="FieldName">
                    <constraints>
                       <constraint>
                         <xpath>//hsa:FieldName != ''</xpath>
                         <alert>If you require parameter subsetting you must select a parameter</alert>
                       </constraint>
                    </constraints>
                    <item label="Antenna_Temp_Coefficients_6_to_52" value="Antenna_Temp_Coefficients_6_to_52"/>
                    <item label="Data_Quality" value="Data_Quality"/>
                    <item label="SPS_Temperature_Count" value="SPS_Temperature_Count"/>
                    <item label="Interpolation_Flag_6_to_52" value="Interpolation_Flag_6_to_52"/>
                    <item label="Observation_Supplement" value="Observation_Supplement"/>
                    <item label="Position_in_Orbit" value="Position_in_Orbit"/>
                    <item label="Navigation_Data" value="Navigation_Data"/>
                    <item label="Attitude_Data" value="Attitude_Data"/>
                    <item label="SPC_Temperature_Count" value="SPC_Temperature_Count"/>
                    <item label="Earth_Incidence" value="Earth_Incidence"/>
                    <item label="Earth_Azimuth" value="Earth_Azimuth"/>
                    <item label="Sun_Elevation" value="Sun_Elevation"/>
                    <item label="Sun_Azimuth" value="Sun_Azimuth"/>
                    <item label="Rx_Offset/Gain_Count" value="Rx_Offset/Gain_Count"/>
                    <item label="Land/Ocean_Flag_for_6_10_18_23_36_50_89A" value="Land/Ocean_Flag_for_6_10_18_23_36_50_89A"/>
                    <item label="Cold_Sky_Mirror_Count_6_to_52" value="Cold_Sky_Mirror_Count_6_to_52"/>
                    <item label="Hot_Load_Count_6_to_52" value="Hot_Load_Count_6_to_52"/>
                    <item label="6.9V_Res.1_TB_(not-resampled)" value="6.9V_Res.1_TB_(not-resampled)"/>
                    <item label="6.9H_Res.1_TB_(not-resampled)" value="6.9H_Res.1_TB_(not-resampled)"/>
                    <item label="10.7V_Res.2_TB_(not-resampled)" value="10.7V_Res.2_TB_(not-resampled)"/>
                    <item label="10.7H_Res.2_TB_(not-resampled)" value="10.7H_Res.2_TB_(not-resampled)"/>
                    <item label="18.7V_Res.3_TB_(not-resampled)" value="18.7V_Res.3_TB_(not-resampled)"/>
                    <item label="18.7H_Res.3_TB_(not-resampled)" value="18.7H_Res.3_TB_(not-resampled)"/>
                    <item label="23.8V_Approx._Res.3_TB_(not-resampled)" value="23.8V_Approx._Res.3_TB_(not-resampled)"/>
                    <item label="23.8H_Approx._Res.3_TB_(not-resampled)" value="23.8H_Approx._Res.3_TB_(not-resampled)"/>
                    <item label="36.5V_Res.4_TB_(not-resampled)" value="36.5V_Res.4_TB_(not-resampled)"/>
                    <item label="36.5H_Res.4_TB_(not-resampled)" value="36.5H_Res.4_TB_(not-resampled)"/>
                    <item label="6.9V_Res.1_TB" value="6.9V_Res.1_TB"/>
                    <item label="6.9H_Res.1_TB" value="6.9H_Res.1_TB"/>
                    <item label="10.7V_Res.1_TB" value="10.7V_Res.1_TB"/>
                    <item label="10.7H_Res.1_TB" value="10.7H_Res.1_TB"/>
                    <item label="10.7V_Res.2_TB" value="10.7V_Res.2_TB"/>
                    <item label="10.7H_Res.2_TB" value="10.7H_Res.2_TB"/>
                    <item label="18.7V_Res.1_TB" value="18.7V_Res.1_TB"/>
                    <item label="18.7H_Res.1_TB" value="18.7H_Res.1_TB"/>
                    <item label="18.7V_Res.2_TB" value="18.7V_Res.2_TB"/>
                    <item label="18.7H_Res.2_TB" value="18.7H_Res.2_TB"/>
                    <item label="23.8V_Res.1_TB" value="23.8V_Res.1_TB"/>
                    <item label="23.8H_Res.1_TB" value="23.8H_Res.1_TB"/>
                    <item label="23.8V_Res.2_TB" value="23.8V_Res.2_TB"/>
                    <item label="23.8H_Res.2_TB" value="23.8H_Res.2_TB"/>
                    <item label="23.8V_Res.3_TB" value="23.8V_Res.3_TB"/>
                    <item label="23.8H_Res.3_TB" value="23.8H_Res.3_TB"/>
                    <item label="36.5V_Res.1_TB" value="36.5V_Res.1_TB"/>
                    <item label="36.5H_Res.1_TB" value="36.5H_Res.1_TB"/>
                    <item label="36.5V_Res.2_TB" value="36.5V_Res.2_TB"/>
                    <item label="36.5H_Res.2_TB" value="36.5H_Res.2_TB"/>
                    <item label="36.5V_Res.3_TB" value="36.5V_Res.3_TB"/>
                    <item label="36.5H_Res.3_TB" value="36.5H_Res.3_TB"/>
                    <item label="89.0V_Res.1_TB" value="89.0V_Res.1_TB"/>
                    <item label="89.0H_Res.1_TB" value="89.0H_Res.1_TB"/>
                    <item label="89.0V_Res.2_TB" value="89.0V_Res.2_TB"/>
                    <item label="89.0H_Res.2_TB" value="89.0H_Res.2_TB"/>
                    <item label="89.0V_Res.3_TB" value="89.0V_Res.3_TB"/>
                    <item label="89.0H_Res.3_TB" value="89.0H_Res.3_TB"/>
                    <item label="89.0V_Res.4_TB" value="89.0V_Res.4_TB"/>
                    <item label="89.0H_Res.4_TB" value="89.0H_Res.4_TB"/>
                    <item label="Scan_Quality_Flag" value="Scan_Quality_Flag"/>
                    <item label="Channel_Quality_Flag_6_to_52" value="Channel_Quality_Flag_6_to_52"/>
                    <item label="Resampled_Channel_Quality_Flag" value="Resampled_Channel_Quality_Flag"/>
                    <item label="Effective_Cold_Space_Temperature_6_to_52" value="Effective_Cold_Space_Temperature_6_to_52"/>
                    <item label="Effective_Hot_Load_Temperature_6_to_52" value="Effective_Hot_Load_Temperature_6_to_52"/>
                    <item label="Res1_Surf" value="Res1_Surf"/>
                    <item label="Res2_Surf" value="Res2_Surf"/>
                    <item label="Res3_Surf" value="Res3_Surf"/>
                    <item label="Res4_Surf" value="Res4_Surf"/>
                    <item label="Sun_Glint_Angle" value="Sun_Glint_Angle"/>
                    <item label="Geostationary_Satellite_Glint_Angle" value="Geostationary_Satellite_Glint_Angle"/>
                    <item label="Antenna_Temp_Coefficients_89A" value="Antenna_Temp_Coefficients_89A"/>
                    <item label="Interpolation_Flag_89A" value="Interpolation_Flag_89A"/>
                    <item label="Cold_Sky_Mirror_Count_89A" value="Cold_Sky_Mirror_Count_89A"/>
                    <item label="Hot_Load_Count_89A" value="Hot_Load_Count_89A"/>
                    <item label="89.0V_Res.5A_TB_(not-resampled)" value="89.0V_Res.5A_TB_(not-resampled)"/>
                    <item label="89.0H_Res.5A_TB_(not-resampled)" value="89.0H_Res.5A_TB_(not-resampled)"/>
                    <item label="Scan_Quality_Flag_89A" value="Scan_Quality_Flag_89A"/>
                    <item label="Channel_Quality_Flag_89A" value="Channel_Quality_Flag_89A"/>
                    <item label="Effective_Cold_Space_Temperature_89A" value="Effective_Cold_Space_Temperature_89A"/>
                    <item label="Effective_Hot_Load_Temperature_89A" value="Effective_Hot_Load_Temperature_89A"/>
                    <item label="Res5A_Surf" value="Res5A_Surf"/>
                    <item label="Antenna_Temp_Coefficients_89B" value="Antenna_Temp_Coefficients_89B"/>
                    <item label="Interpolation_Flag_89B" value="Interpolation_Flag_89B"/>
                    <item label="Cold_Sky_Mirror_Count_89B" value="Cold_Sky_Mirror_Count_89B"/>
                    <item label="Hot_Load_Count_89B" value="Hot_Load_Count_89B"/>
                    <item label="89.0V_Res.5B_TB_(not-resampled)" value="89.0V_Res.5B_TB_(not-resampled)"/>
                    <item label="89.0H_Res.5B_TB_(not-resampled)" value="89.0H_Res.5B_TB_(not-resampled)"/>
                    <item label="Scan_Quality_Flag_89B" value="Scan_Quality_Flag_89B"/>
                    <item label="Channel_Quality_Flag_89B" value="Channel_Quality_Flag_89B"/>
                    <item label="Effective_Cold_Space_Temperature_89B" value="Effective_Cold_Space_Temperature_89B"/>
                    <item label="Effective_Hot_Load_Temperature_89B" value="Effective_Hot_Load_Temperature_89B"/>
                    <item label="Res5B_Surf" value="Res5B_Surf"/>
                </select>
			</group>	
        </group>
    </ui>
</form>