<?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 ref="map-server"/>
				<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"/>
				<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="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="enable" type="BOOLEAN_TYPE" use="required"/>
			<xs:attribute name="maximum-layers" type="xs:positiveInteger" use="optional"/>
			<xs:attribute name="add-visible" type="BOOLEAN_TYPE" use="optional"/>
		</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-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-server">
		<xs:complexType>
			<xs:attribute name="host" type="NO_WHITESPACE_TYPE" use="required"/>
			<xs:attribute name="print-host" type="NO_WHITESPACE_TYPE" use="optional"/>
		</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="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="background-color" type="COLOR_TYPE" use="optional" default="204,204,204"/>
			<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="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: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: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="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:complexType>
	<xs:complexType name="SERVICE_TYPE">
		<xs:attribute name="name" type="NO_WHITESPACE_TYPE" use="required"/>
	</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>
