<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="site-config">
<xs:complexType>
<xs:sequence>
<xs:element name="map-server" type="SERVER_TYPE"/>
<xs:element name="map-servlet" type="SERVLET_TYPE" minOccurs="0"/>
<xs:element ref="map-service"/>
<xs:element name="map-dataframe" type="DATAFRAME_TYPE" minOccurs="0"/>
<xs:element name="index-map-server" type="SERVER_TYPE" minOccurs="0"/>
<xs:element name="index-map-servlet" type="SERVLET_TYPE" minOccurs="0"/>
<xs:element name="index-map-service" type="SERVICE_TYPE"/>
<xs:element name="index-map-dataframe" type="DATAFRAME_TYPE" minOccurs="0"/>
<xs:element name="index-map-layer-config-xml" type="URL_ELEMENT_TYPE" minOccurs="0"/>
<xs:element name="layer-config-xml" type="URL_ELEMENT_TYPE" minOccurs="0"/>
<xs:element name="print-config-xml" type="URL_ELEMENT_TYPE" minOccurs="0"/>
<xs:element name="theme-config-xml" type="URL_ELEMENT_TYPE" minOccurs="0"/>
<xs:element name="edit-config-xml" type="URL_ELEMENT_TYPE" minOccurs="0"/>
<xs:element ref="title-frame" minOccurs="0"/>
<xs:element ref="tab-frame" minOccurs="0"/>
<xs:element ref="tool-frame" minOccurs="0"/>
<xs:element ref="map-frame" minOccurs="0"/>
<xs:element ref="data-frame" minOccurs="0"/>
<xs:element ref="status-frame" minOccurs="0"/>
<xs:element ref="hidden-frame" minOccurs="0"/>
<xs:element ref="gui" minOccurs="0"/>
<xs:element ref="index-map-script" minOccurs="0"/>
<xs:element ref="layers-script" minOccurs="0"/>
<xs:element name="legend-script" type="URL_ELEMENT_TYPE" minOccurs="0"/>
<xs:element ref="status-script" minOccurs="0"/>
<xs:element name="initial-extent" type="EXTENT_TYPE" minOccurs="0"/>
<xs:element name="full-extent" type="EXTENT_TYPE" minOccurs="0"/>
<xs:element name="maximum-extent" type="EXTENT_TYPE" minOccurs="0"/>
<xs:element ref="scale-restriction" minOccurs="0"/>
<xs:element ref="map-projection"/>
<xs:element ref="identify-report-coordinates"/>
<xs:element ref="map-center-coordinate"/>
<xs:element ref="upload-projections" minOccurs="0"/>
<xs:element ref="coordinate-script" minOccurs="0"/>
<xs:element ref="browser" minOccurs="0"/>
<xs:element ref="webmaster" minOccurs="0"/>
<xs:element ref="map-background" minOccurs="0"/>
<xs:element ref="north-arrow" minOccurs="0"/>
<xs:element ref="scalebar" minOccurs="0"/>
<xs:element ref="copyright" minOccurs="0"/>
<xs:element ref="layer-manager" minOccurs="0"/>
<xs:element ref="printed-map" minOccurs="0"/>
<xs:element ref="tabs"/>
<xs:element ref="tools" maxOccurs="unbounded"/>
<xs:element ref="find-location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="select-menu-option" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="select-set-option" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="settings-menu-option" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="mxd-template" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="startup-script" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="map-script" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="quick-view" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="spatial-direct" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:key name="UNIQUE_FIND_LOCATION_TYPE_CHECK">
<xs:selector xpath="./find-location"/>
<xs:field xpath="@type"/>
</xs:key>
<xs:key name="UNIQUE_PROPERTY_NAME_CHECK">
<xs:selector xpath="./property"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:key name="UNIQUE_TOOLSET_NAME_CHECK">
<xs:selector xpath="./tools"/>
<xs:field xpath="@toolset"/>
</xs:key>
</xs:element>
<xs:element name="browser">
<xs:complexType>
<xs:attribute name="title" type="xs:token" use="optional" default="Internet Mapping Framework"/>
<xs:attribute name="toolbar" type="BOOLEAN_TYPE" use="optional" default="true"/>
</xs:complexType>
</xs:element>
<xs:element name="button">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="required"/>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="target" type="NO_WHITESPACE_TYPE" use="optional"/>
<xs:attribute name="hint" type="NO_APOSTROPHE_TYPE" use="required"/>
<xs:attribute name="status" type="NO_APOSTROPHE_TYPE" use="required"/>
<xs:attribute name="help" type="URL_TYPE" use="optional"/>
<xs:attribute name="graphic" type="URL_TYPE" use="required"/>
<xs:attribute name="width" type="IMAGE_SIZE_TYPE" use="optional" default="16"/>
<xs:attribute name="height" type="IMAGE_SIZE_TYPE" use="optional" default="16"/>
</xs:complexType>
</xs:element>
<xs:element name="coordinate-script">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="zone" type="xs:byte" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="copyright">
<xs:complexType>
<xs:attribute name="text" type="xs:token" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="data-frame">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="width" type="xs:nonNegativeInteger" use="optional" default="300"/>
<xs:attribute name="position" use="optional" default="right">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="right"/>
<xs:enumeration value="left"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="border" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="frameset-border" type="BOOLEAN_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="find-location">
<xs:complexType>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="target" type="NO_WHITESPACE_TYPE" use="optional" default="dataFrame"/>
<xs:attribute name="display" type="BOOLEAN_TYPE" use="optional" default="true"/>
</xs:complexType>
</xs:element>
<xs:element name="gui">
<xs:complexType>
<xs:attribute name="style-url" type="URL_TYPE" use="optional" default="$IMF/imfDefaultStyle.css"/>
<xs:attribute name="script-file" type="SCRIPT_TYPE" use="optional" default="imfGuiClassic.jsp"/>
</xs:complexType>
</xs:element>
<xs:element name="hidden-frame">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="optional" default="$IMF/imfBlankWhite.jsp"/>
<xs:attribute name="width" type="xs:nonNegativeInteger" use="optional" default="0"/>
</xs:complexType>
</xs:element>
<xs:element name="identify-report-coordinates">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="projection-albers-equal-area-conic"/>
<xs:element ref="projection-geographic"/>
<xs:element ref="projection-lambert-conformal-conic"/>
<xs:element ref="projection-transverse-mercator"/>
<xs:element ref="projection-utm-auto"/>
<xs:element ref="projection-utm"/>
<xs:element ref="projection-wkt"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="index-map-script">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="optional" default="$IMF/imfLayers.jsp"/>
<xs:attribute name="extent" type="RECTANGLE_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="layer-manager">
<xs:complexType>
<xs:attribute name="add-layers-script" type="URL_TYPE" use="optional" default="$IMF/imfAddLayers.jsp"/>
<xs:attribute name="add-visible" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="enable" type="BOOLEAN_TYPE" use="required"/>
<xs:attribute name="init-visible" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="maximum-layers" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="remove-layers-script" type="URL_TYPE" use="optional" default="$IMF/imfRemoveLayers.jsp"/>
<xs:attribute name="reorder-layers-script" type="URL_TYPE" use="optional" default="$IMFimfReorderLayers.jsp"/>
<xs:attribute name="startup-script" type="SCRIPT_TYPE" use="optional" default="/imfAddLayersStartup.jsp"/>
</xs:complexType>
</xs:element>
<xs:element name="layers-script">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="optional" default="$IMF/imfLayers.jsp"/>
<xs:attribute name="auto-refresh" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="show-auto-refresh" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="show-feedback" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="show-version" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="show-themes" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="show-select-tool" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="feedback-url" type="URL_TYPE" use="optional" default="$IMF/imfFeedbackForm.jsp"/>
</xs:complexType>
</xs:element>
<xs:element name="map-background">
<xs:complexType>
<xs:attribute name="color" type="COLOR_TYPE" use="required"/>
<xs:attribute name="transparent" type="BOOLEAN_TYPE" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="map-center-coordinate">
<xs:complexType>
<xs:choice minOccurs="0">
<xs:element ref="projection-albers-equal-area-conic"/>
<xs:element ref="projection-geographic"/>
<xs:element ref="projection-lambert-conformal-conic"/>
<xs:element ref="projection-transverse-mercator"/>
<xs:element ref="projection-utm-auto"/>
<xs:element ref="projection-utm"/>
<xs:element ref="projection-wkt"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="map-frame">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="optional"/>
<xs:attribute name="pan-border" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="pan-border-color" type="COLOR_TYPE" use="optional" default="198,198,198"/>
<xs:attribute name="pan-border-mouseover-color" type="COLOR_TYPE" use="optional" default="51,102,153"/>
<xs:attribute name="cursor-generic" type="CURSOR_TYPE" use="optional"/>
<xs:attribute name="map-center-crosshair" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="border" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="frameset-border" type="BOOLEAN_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="map-projection">
<xs:complexType>
<xs:choice>
<xs:element ref="projection-albers-equal-area-conic"/>
<xs:element ref="projection-geographic"/>
<xs:element ref="projection-lambert-conformal-conic"/>
<xs:element ref="projection-transverse-mercator"/>
<xs:element ref="projection-utm"/>
<xs:element ref="projection-wkt"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="map-script">
<xs:complexType>
<xs:attribute name="file" type="SCRIPT_TYPE" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="map-service">
<xs:complexType>
<xs:attribute name="name" type="NO_WHITESPACE_TYPE" use="required"/>
<xs:attribute name="print-name" type="NO_WHITESPACE_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="mxd-template">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="required"/>
<xs:attribute name="server" type="NO_WHITESPACE_TYPE" use="required"/>
<xs:attribute name="service" type="NO_WHITESPACE_TYPE" use="required"/>
<xs:attribute name="servlet" type="NO_WHITESPACE_TYPE" use="optional" default="/servlet/com.esri.esrimap.Esrimap"/>
<xs:attribute name="dataframe" type="NO_WHITESPACE_TYPE" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="north-arrow">
<xs:complexType>
<xs:attribute name="display" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="max-scale" type="xs:decimal" use="optional"/>
<xs:attribute name="size" type="xs:nonNegativeInteger" use="optional" default="20"/>
</xs:complexType>
</xs:element>
<xs:element name="printed-map">
<xs:complexType>
<xs:attribute name="show-legend" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="logo-url" type="URL_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="projection-albers-equal-area-conic">
<xs:complexType>
<xs:attribute name="alias" type="xs:token" use="optional"/>
<xs:attribute name="ellipsoid" type="ELLIPSOID_TYPE" use="required"/>
<xs:attribute name="central-meridian" type="LONGITUDE_TYPE" use="required"/>
<xs:attribute name="reference-latitude" type="LATITUDE_TYPE" use="required"/>
<xs:attribute name="false-easting" type="xs:decimal" use="required"/>
<xs:attribute name="false-northing" type="xs:decimal" use="required"/>
<xs:attribute name="standard-parallel-1" type="LATITUDE_TYPE" use="required"/>
<xs:attribute name="standard-parallel-2" type="LATITUDE_TYPE" use="required"/>
<xs:attribute name="units" type="PROJECTION_UNITS_TYPE" use="optional" default="meters"/>
</xs:complexType>
</xs:element>
<xs:element name="projection-geographic">
<xs:complexType>
<xs:attribute name="alias" type="xs:token" use="optional"/>
<xs:attribute name="display-format" type="GEOGRAPHIC_DISPLAY_TYPE" use="optional" default="dms"/>
<xs:attribute name="ellipsoid" type="ELLIPSOID_TYPE" use="optional" default="WGS 84"/>
</xs:complexType>
</xs:element>
<xs:element name="projection-lambert-conformal-conic">
<xs:complexType>
<xs:attribute name="alias" type="xs:token" use="optional"/>
<xs:attribute name="ellipsoid" type="ELLIPSOID_TYPE" use="optional" default="WGS 84"/>
<xs:attribute name="central-meridian" type="LONGITUDE_TYPE" use="required"/>
<xs:attribute name="reference-latitude" type="LATITUDE_TYPE" use="required"/>
<xs:attribute name="standard-parallel-1" type="LATITUDE_TYPE" use="required"/>
<xs:attribute name="standard-parallel-2" type="LATITUDE_TYPE" use="required"/>
<xs:attribute name="false-easting" type="xs:decimal" use="required"/>
<xs:attribute name="false-northing" type="xs:decimal" use="required"/>
<xs:attribute name="units" type="PROJECTION_UNITS_TYPE" use="optional" default="meters"/>
</xs:complexType>
</xs:element>
<xs:element name="projection-transverse-mercator">
<xs:complexType>
<xs:attribute name="alias" type="xs:token" use="optional"/>
<xs:attribute name="ellipsoid" type="ELLIPSOID_TYPE" use="optional" default="WGS 84"/>
<xs:attribute name="central-meridian" type="LONGITUDE_TYPE" use="required"/>
<xs:attribute name="reference-latitude" type="LATITUDE_TYPE" use="required"/>
<xs:attribute name="false-easting" type="xs:decimal" use="required"/>
<xs:attribute name="false-northing" type="xs:decimal" use="required"/>
<xs:attribute name="scale-factor" type="xs:decimal" use="required"/>
<xs:attribute name="units" type="PROJECTION_UNITS_TYPE" use="optional" default="meters"/>
</xs:complexType>
</xs:element>
<xs:element name="projection-utm">
<xs:complexType>
<xs:attribute name="alias" type="xs:token" use="optional"/>
<xs:attribute name="ellipsoid" type="ELLIPSOID_TYPE" use="optional" default="GRS 1980"/>
<xs:attribute name="zone" type="xs:integer" use="required"/>
<xs:attribute name="hemisphere" type="HEMISPHERE_TYPE" use="optional" default="north"/>
<xs:attribute name="units" type="PROJECTION_UNITS_TYPE" use="optional" default="meters"/>
</xs:complexType>
</xs:element>
<xs:element name="projection-utm-auto"/>
<xs:element name="projection-wkt">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="alias" type="xs:token" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="required"/>
<xs:attribute name="value" type="xs:token" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="quick-view">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="required"/>
<xs:attribute name="minx" type="xs:decimal" use="required"/>
<xs:attribute name="miny" type="xs:decimal" use="required"/>
<xs:attribute name="maxx" type="xs:decimal" use="required"/>
<xs:attribute name="maxy" type="xs:decimal" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="scale-restriction">
<xs:complexType>
<xs:attribute name="min-scale" type="SCALE_TYPE" use="optional"/>
<xs:attribute name="max-scale" type="SCALE_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="scalebar">
<xs:complexType>
<xs:attribute name="display" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="max-scale" type="SCALE_TYPE" use="optional" default="5000000"/>
<xs:attribute name="units" use="optional" default="kilometers">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="feet"/>
<xs:enumeration value="miles"/>
<xs:enumeration value="meters"/>
<xs:enumeration value="kilometers"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="select-menu-option">
<xs:complexType>
<xs:attribute name="description" type="xs:string" use="required"/>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="target" type="NO_WHITESPACE_TYPE" use="optional" default="dataFrame"/>
<xs:attribute name="enabled" type="BOOLEAN_TYPE" use="optional" default="true"/>
</xs:complexType>
</xs:element>
<xs:element name="select-set-option">
<xs:complexType>
<xs:attribute name="title" type="xs:string" use="required"/>
<xs:attribute name="description" type="xs:string" use="required"/>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="target" type="NO_WHITESPACE_TYPE" use="optional" default="dataFrame"/>
<xs:attribute name="enabled" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="spinner" type="SPINNER_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="settings-menu-option">
<xs:complexType>
<xs:attribute name="title" type="xs:string" use="required"/>
<xs:attribute name="description" type="xs:string" use="required"/>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="target" type="NO_WHITESPACE_TYPE" use="optional" default="dataFrame"/>
<xs:attribute name="enabled" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="spinner" type="SPINNER_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="space">
<xs:complexType>
<xs:attribute name="width" type="IMAGE_SIZE_TYPE" use="optional" default="16"/>
</xs:complexType>
</xs:element>
<xs:element name="spatial-direct">
<xs:complexType>
<xs:sequence>
<xs:element ref="spatial-direct-coordsys" maxOccurs="unbounded"/>
<xs:element ref="spatial-direct-format" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="servlet-url" type="URL_TYPE" use="required"/>
<xs:attribute name="template-prefix" type="NO_WHITESPACE_TYPE" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="spatial-direct-coordsys">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="required"/>
<xs:attribute name="value" type="xs:token" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="spatial-direct-format">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="required"/>
<xs:attribute name="value" type="xs:token" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="startup-script">
<xs:complexType>
<xs:attribute name="file" type="SCRIPT_TYPE" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="status-frame">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="height" type="IMAGE_SIZE_TYPE" use="required"/>
<xs:attribute name="border" type="BOOLEAN_TYPE" use="optional" default="false"/>
</xs:complexType>
</xs:element>
<xs:element name="status-script">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="optional" default="$IMF/imfLayers.jsp"/>
<xs:attribute name="logo-url" type="URL_TYPE" use="optional"/>
<xs:attribute name="logo-height" type="IMAGE_SIZE_TYPE" use="optional"/>
<xs:attribute name="logo-width" type="IMAGE_SIZE_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="tab">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="optional"/>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="target" type="TARGET_TYPE" use="required"/>
<xs:attribute name="hint" type="NO_APOSTROPHE_TYPE" use="optional"/>
<xs:attribute name="status" type="NO_APOSTROPHE_TYPE" use="optional"/>
<xs:attribute name="help" type="URL_TYPE" use="optional"/>
<xs:attribute name="graphic" type="URL_TYPE" use="required"/>
<xs:attribute name="rollover-graphic" type="URL_TYPE" use="optional"/>
<xs:attribute name="width" type="IMAGE_SIZE_TYPE" use="required"/>
<xs:attribute name="height" type="IMAGE_SIZE_TYPE" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="tab-frame">
<xs:complexType>
<xs:attribute name="height" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="border" type="BOOLEAN_TYPE" use="optional" default="false"/>
</xs:complexType>
</xs:element>
<xs:element name="tabs">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="left-decoration" type="DECORATION_TYPE" minOccurs="0"/>
<xs:element name="right-decoration" type="DECORATION_TYPE" minOccurs="0"/>
<xs:element name="space-decoration" type="DECORATION_TYPE" minOccurs="0"/>
<xs:element ref="tab" maxOccurs="unbounded"/>
</xs:sequence>
<xs:sequence>
<xs:element ref="text-tab" maxOccurs="unbounded"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="text-tab">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="required"/>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="target" type="TARGET_TYPE" use="required"/>
<xs:attribute name="hint" type="NO_APOSTROPHE_TYPE" use="optional"/>
<xs:attribute name="status" type="NO_APOSTROPHE_TYPE" use="optional"/>
<xs:attribute name="help" type="URL_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="title-frame">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="required"/>
<xs:attribute name="height" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="border" type="BOOLEAN_TYPE" use="optional" default="false"/>
</xs:complexType>
</xs:element>
<xs:element name="tool">
<xs:complexType>
<xs:attribute name="name" type="xs:token" use="required"/>
<xs:attribute name="handler" type="URL_TYPE" use="optional"/>
<xs:attribute name="options" type="xs:token" use="optional"/>
<xs:attribute name="visible" type="BOOLEAN_TYPE" use="optional" default="true"/>
<xs:attribute name="shape" use="optional">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="point"/>
<xs:enumeration value="box"/>
<xs:enumeration value="line"/>
<xs:enumeration value="polygon"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="show-point" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="hint" type="NO_APOSTROPHE_TYPE" use="required"/>
<xs:attribute name="status" type="NO_APOSTROPHE_TYPE" use="required"/>
<xs:attribute name="help" type="URL_TYPE" use="optional"/>
<xs:attribute name="popup" type="BOOLEAN_TYPE" use="optional" default="false"/>
<xs:attribute name="target" type="TARGET_TYPE" use="optional"/>
<xs:attribute name="graphic" type="URL_TYPE" use="required"/>
<xs:attribute name="active-graphic" type="URL_TYPE" use="required"/>
<xs:attribute name="width" type="IMAGE_SIZE_TYPE" use="optional" default="16"/>
<xs:attribute name="height" type="IMAGE_SIZE_TYPE" use="optional" default="16"/>
<xs:attribute name="cursor-url" type="URL_TYPE" use="optional"/>
<xs:attribute name="cursor-generic" type="CURSOR_TYPE" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="tool-frame">
<xs:complexType>
<xs:attribute name="url" type="URL_TYPE" use="optional" default="$IMF/imfTools.jsp"/>
<xs:attribute name="height" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="border" type="BOOLEAN_TYPE" use="optional" default="false"/>
</xs:complexType>
</xs:element>
<xs:element name="tools">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="button" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="space" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="tool" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="toolset" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="active" type="xs:token" use="required"/>
<xs:attribute name="help" type="URL_TYPE" use="optional" default="$IMF/imfHelp.jsp"/>
<xs:attribute name="description" type="xs:token" use="optional"/>
</xs:complexType>
<xs:key name="UNIQUE_TOOL_NAME_CHECK">
<xs:selector xpath="./tool"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:keyref name="VALID_ACTIVE_TOOL_CHECK" refer="UNIQUE_TOOL_NAME_CHECK">
<xs:selector xpath="."/>
<xs:field xpath="@active"/>
</xs:keyref>
</xs:element>
<xs:element name="upload-projections">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="projection-albers-equal-area-conic"/>
<xs:element ref="projection-geographic"/>
<xs:element ref="projection-lambert-conformal-conic"/>
<xs:element ref="projection-transverse-mercator"/>
<xs:element ref="projection-utm"/>
<xs:element ref="projection-wkt"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="webmaster">
<xs:complexType>
<xs:attribute name="email-address" type="NO_WHITESPACE_TYPE" use="required"/>
<xs:attribute name="email-subject" type="xs:token" use="optional" default="IMF site comment"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="BOOLEAN_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="COLOR_TYPE">
<xs:restriction base="xs:token">
<xs:pattern value="\d{1,3},\d{1,3},\d{1,3}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CURSOR_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value="auto"/>
<xs:enumeration value="crosshair"/>
<xs:enumeration value="default"/>
<xs:enumeration value="pointer"/>
<xs:enumeration value="move"/>
<xs:enumeration value="e-resize"/>
<xs:enumeration value="ne-resize"/>
<xs:enumeration value="nw-resize"/>
<xs:enumeration value="n-resize"/>
<xs:enumeration value="se-resize"/>
<xs:enumeration value="sw-resize"/>
<xs:enumeration value="s-resize"/>
<xs:enumeration value="w-resize"/>
<xs:enumeration value="text"/>
<xs:enumeration value="wait"/>
<xs:enumeration value="help"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="DATAFRAME_TYPE">
<xs:attribute name="name" type="xs:token" use="required"/>
</xs:complexType>
<xs:complexType name="DECORATION_TYPE">
<xs:attribute name="graphic" type="URL_TYPE" use="required"/>
<xs:attribute name="width" type="IMAGE_SIZE_TYPE" use="required"/>
<xs:attribute name="height" type="IMAGE_SIZE_TYPE" use="required"/>
</xs:complexType>
<xs:simpleType name="ELLIPSOID_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value="GRS 1980"/>
<xs:enumeration value="GRS80"/>
<xs:enumeration value="WGS 84"/>
<xs:enumeration value="WGS84"/>
<xs:enumeration value="Clarke 1866"/>
<xs:enumeration value="CLARKE1866"/>
<xs:enumeration value="CLARK1866"/>
<xs:enumeration value="Airy 1830"/>
<xs:enumeration value="Airy Modified 1849"/>
<xs:enumeration value="Australian National Spheroid"/>
<xs:enumeration value="Bessel 1841"/>
<xs:enumeration value="Bessel Modified"/>
<xs:enumeration value="Bessel Namibia"/>
<xs:enumeration value="Clarke 1880 (Benoit)"/>
<xs:enumeration value="Clarke 1880 (IGN)"/>
<xs:enumeration value="Clarke 1880 (RGS)"/>
<xs:enumeration value="Clarke 1880 (Arc)"/>
<xs:enumeration value="Clarke 1880 (SGA 1922)"/>
<xs:enumeration value="Everest 1830 (1937 Adjustment)"/>
<xs:enumeration value="Everest 1830 (1967 Definition)"/>
<xs:enumeration value="Everest 1830 Modified"/>
<xs:enumeration value="Helmert 1906"/>
<xs:enumeration value="Indonesian National Spheroid"/>
<xs:enumeration value="International 1924"/>
<xs:enumeration value="Krassowsky 1940"/>
<xs:enumeration value="NWL 9D"/>
<xs:enumeration value="Plessis 1817"/>
<xs:enumeration value="Struve 1860"/>
<xs:enumeration value="War Office"/>
<xs:enumeration value="GEM 10C"/>
<xs:enumeration value="OSU86F"/>
<xs:enumeration value="OSU91A"/>
<xs:enumeration value="GRS 1967"/>
<xs:enumeration value="Average Terrestrial System 1977"/>
<xs:enumeration value="WGS 72"/>
<xs:enumeration value="Everest 1830 (1962 Definition)"/>
<xs:enumeration value="Everest 1830 (1975 Definition)"/>
<xs:enumeration value="Xian 1980"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="EXTENT_TYPE">
<xs:attribute name="minx" type="xs:decimal" use="required"/>
<xs:attribute name="miny" type="xs:decimal" use="required"/>
<xs:attribute name="maxx" type="xs:decimal" use="required"/>
<xs:attribute name="maxy" type="xs:decimal" use="required"/>
</xs:complexType>
<xs:simpleType name="GEOGRAPHIC_DISPLAY_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value="dms"/>
<xs:enumeration value="decimal_degrees"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="HEMISPHERE_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value="north"/>
<xs:enumeration value="south"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IMAGE_SIZE_TYPE">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="256"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LATITUDE_TYPE">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="-90"/>
<xs:maxInclusive value="90"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LONGITUDE_TYPE">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="-180"/>
<xs:maxInclusive value="180"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NO_APOSTROPHE_TYPE">
<xs:restriction base="xs:token">
<xs:pattern value="[^"]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NO_WHITESPACE_TYPE">
<xs:restriction base="xs:token">
<xs:pattern value="\S+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PROJECTION_UNITS_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value="meters"/>
<xs:enumeration value="feet"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="RECTANGLE_TYPE">
<xs:restriction base="xs:token">
<xs:pattern value="-?\d*(\.\d*)?,-?\d*(\.\d*)?,-?\d*(\.\d*)?,-?\d*(\.\d*)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SCALE_TYPE">
<xs:restriction base="xs:decimal">
<xs:minInclusive value="1.0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SCRIPT_TYPE">
<xs:restriction base="xs:token">
<xs:pattern value="[a-zA-Z0-9/-_]+.jsp"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="SERVER_TYPE">
<xs:attribute name="host" type="NO_WHITESPACE_TYPE" use="required"/>
<xs:attribute name="print-host" type="NO_WHITESPACE_TYPE" use="optional"/>
<xs:attribute name="protocol" type="SERVER_PROTOCOL_TYPE" use="optional" default="http"/>
</xs:complexType>
<xs:simpleType name="SERVER_PROTOCOL_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value="http"/>
<xs:enumeration value="https"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="SERVICE_TYPE">
<xs:attribute name="name" type="NO_WHITESPACE_TYPE" use="required"/>
<xs:attribute name="print-name" type="NO_WHITESPACE_TYPE" use="optional"/>
</xs:complexType>
<xs:complexType name="SERVLET_TYPE">
<xs:attribute name="path" type="NO_WHITESPACE_TYPE" use="required"/>
</xs:complexType>
<xs:simpleType name="SPINNER_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value=""/>
<xs:enumeration value="loadData"/>
<xs:enumeration value="loadMap"/>
<xs:enumeration value="prepareMap"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TARGET_TYPE">
<xs:restriction base="xs:token">
<xs:enumeration value="titleFrame"/>
<xs:enumeration value="tabFrame"/>
<xs:enumeration value="toolFrame"/>
<xs:enumeration value="hiddenFrame"/>
<xs:enumeration value="mapFrame"/>
<xs:enumeration value="dataFrame"/>
<xs:enumeration value="statusFrame"/>
<xs:enumeration value="_top"/>
<xs:enumeration value="_blank"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="URL_ELEMENT_TYPE">
<xs:attribute name="url" type="URL_TYPE" use="required"/>
</xs:complexType>
<xs:simpleType name="URL_TYPE">
<xs:restriction base="xs:token"/>
</xs:simpleType>
</xs:schema>