<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:element name="layer-config">
                <xs:complexType>
                        <xs:choice maxOccurs="unbounded">
                            <xs:element ref="dynamic-feature-layer"/>
                            <xs:element ref="dynamic-image-layer"/>
                            <xs:element ref="folder"/>  
                            <xs:element ref="layer"/>
                            <xs:element ref="wms-layer"/>
                        </xs:choice>
                </xs:complexType>
        </xs:element>
        <xs:element name="arcxml" type="xs:string"/>
        <xs:element name="dynamic-feature-layer">
                <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                                <xs:element ref="arcxml" minOccurs="1" maxOccurs="1"/>
                                <xs:element ref="field" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="identify-link" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element name="identify-report" type="REPORT_TYPE" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="layer-list-legend" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="select-menu-option" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element name="select-report" type="REPORT_TYPE" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="select-set-option" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="sql-query" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="sql-report" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="active-identify" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="active-select" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-drill-identify" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-hide-labels" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-identify" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-select" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-set-visibility" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-set-visibility-beyond-scale" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-symbolize" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-zoom-to-layer" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="hide-labels" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="highlight-color" type="COLOR_TYPE" use="optional" default="255,255,0"/>
                        <xs:attribute name="highlight-transparency" type="TRANSPARENCY_TYPE" use="optional"/>
                        <xs:attribute name="highlight-type" type="HIGHLIGHT_TYPE" use="optional" default="outline"/>
                        <xs:attribute name="identify-handler" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="identify-handler-suffix" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="identify-key-fields" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="identify-maximum-results" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="identify-tolerance-pixels" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="identify-type" type="IDENTIFY_TYPE" use="optional" default="default"/>
                        <xs:attribute name="identify-window" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="immediate-refresh" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="max-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="metadata-handler" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="metadata-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="min-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="position" type="LAYER_POSITION_TYPE" use="optional"/>
                        <xs:attribute name="select-handler" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="select-handler-suffix" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="select-highlight" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="select-key-fields" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="select-maximum-results" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="select-shape" type="SELECT_SHAPE_TYPE" use="optional" default="point"/>
                        <xs:attribute name="select-type" type="SELECT_TYPE" use="optional" default="default"/>
                        <xs:attribute name="select-window" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="selected-set" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="show-legend" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="show-symbolize-icon" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="symbolize-script" type="SCRIPT_TYPE" use="optional" default="imfSymbolizeLayerForm.jsp"/>
                        <xs:attribute name="zoom-extent-buffer" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="dynamic-image-layer">
                <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                                <xs:element ref="arcxml" minOccurs="1" maxOccurs="1"/>
                                <xs:element ref="layer-list-legend" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="active-identify" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-drill-identify" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-identify" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-set-visibility" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-set-visibility-beyond-scale" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="identify-window" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="immediate-refresh" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="layer-list-legend-can-hide" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="layer-list-legend-visible" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="max-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="metadata-handler" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="metadata-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="min-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="position" type="LAYER_POSITION_TYPE" use="optional"/>
                        <xs:attribute name="show-legend" type="BOOLEAN_TYPE" use="optional" default="true"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="field">
                <xs:complexType>
                        <xs:attribute name="alias" type="xs:token" use="optional"/>
                        <xs:attribute name="can-extract-excel" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-extract-gml" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-extract-kml" type="BOOLEAN_TYPE" use="optional" default="true"/> 
                        <xs:attribute name="can-find-by-attribute" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-select-by-attribute" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-symbolize-by-attribute" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="display" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="find-by-attribute-buffer" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="find-by-attribute-case" type="CASE_TYPE" use="optional" default="insensitive"/>
                        <xs:attribute name="format" type="FIELD_FORMAT_TYPE" use="optional"/>
                        <xs:attribute name="hypertext-message" type="xs:token" use="optional"/>
                        <xs:attribute name="identify-alias" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="identify-link-alias" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="metadata-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="name" type="NO_WHITESPACE_TYPE" use="required"/>
                        <xs:attribute name="select-alias" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="select-by-attribute-buffer" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="select-by-attribute-case" type="CASE_TYPE" use="optional" default="insensitive"/>
                        <xs:attribute name="select-by-attribute-zoom" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="map-tip" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="map-tip-alias" type="xs:token" use="optional"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="folder">
                <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="dynamic-feature-layer"/>
                                <xs:element ref="dynamic-image-layer"/>
                                <xs:element ref="folder"/>
                                <xs:element ref="group"/>
                                <xs:element ref="layer"/>
                                <xs:element ref="wms-layer"/>
                        </xs:choice>
                        <xs:attribute name="apply-visibility-to-subfolders" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-set-visibility-off" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-set-visibility-on" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="name" type="xs:token" use="required"/>
                        <xs:attribute name="open" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="radio" type="BOOLEAN_TYPE" use="optional" default="false"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="group">
                <xs:complexType>
                        <xs:choice maxOccurs="unbounded">
                                <xs:element ref="dynamic-feature-layer"/>
                                <xs:element ref="dynamic-image-layer"/>
                                <xs:element ref="layer"/>
                                <xs:element ref="wms-layer"/>
                                <xs:element ref="layer-list-legend"/>
                        </xs:choice>
                        <xs:attribute name="active-identify" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="active-select" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-hide-labels" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-identify" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-select" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-set-visibility" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-set-visibility-beyond-scale" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="identify-method" type="GROUP_IDENTIFY_REPORT_METHOD_TYPE" use="optional" default="drill"/>
                        <xs:attribute name="identify-window" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="immediate-refresh" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="layer-list-legend-can-hide" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="layer-list-legend-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="layer-list-legend-height" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="layer-list-legend-visible" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="layer-list-legend-width" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="metadata-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="name" type="xs:token" use="required"/>
                        <xs:attribute name="select-method" type="GROUP_SELECT_REPORT_METHOD_TYPE" use="optional" default="first"/>
                        <xs:attribute name="select-shape" type="SELECT_SHAPE_TYPE" use="optional" default="point"/>
                        <xs:attribute name="visible" type="BOOLEAN_TYPE" use="optional" default="false"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="identify-link">
                <xs:complexType>
                        <xs:attribute name="handler" type="NO_WHITESPACE_TYPE" use="required"/>
                        <xs:attribute name="handler-suffix" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="key-fields" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="text" type="xs:token" use="required"/>
                        <xs:attribute name="type" type="IDENTIFY_LINK_TYPE" use="optional" default="urlFieldValues"/>
                        <xs:attribute name="window" type="BOOLEAN_TYPE" use="optional" default="false"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="layer">
                <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="layer-list-legend"/>
                                <xs:element ref="field"/>
                                <xs:element ref="identify-link"/>
                                <xs:element name="identify-report" type="REPORT_TYPE"/>
                                <xs:element ref="property"/>
                                <xs:element name="select-report" type="REPORT_TYPE"/>
                                <xs:element ref="select-menu-option" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="select-set-option" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="sql-report" minOccurs="0" maxOccurs="unbounded"/>
                                <xs:element ref="sql-query" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:choice>
                        <xs:attribute name="active-copy" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="active-edit" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="active-identify" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="active-select" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="alias" type="xs:token" use="optional"/>
                        <xs:attribute name="can-drill-identify" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-edit" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-extract" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-extract-excel" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-extract-gml" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-extract-kml" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-hide-labels" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-identify" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-select" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-set-visibility" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-set-visibility-beyond-scale" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-symbolize" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="can-zoom-to-layer" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="default-field-visibility" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="edit-handler" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="edit-handler-target" type="TARGET_TYPE" use="optional"/>
                        <xs:attribute name="edit-key-value" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="extract-clip" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="extract-layer-id" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="extract-server" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="extract-service" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="extract-servlet" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="extract-coordsys-id" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="extract-coordsys-string" type="xs:token" use="optional"/>
                        <xs:attribute name="geocode-layer-id" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="geocode-server" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="geocode-service" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="geocode-servlet" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="hide-labels" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="highlight-color" type="COLOR_TYPE" use="optional" default="255,255,0"/>
                        <xs:attribute name="highlight-transparency" type="TRANSPARENCY_TYPE" use="optional"/>
                        <xs:attribute name="highlight-type" type="HIGHLIGHT_TYPE" use="optional" default="outline"/>
                        <xs:attribute name="id" type="xs:NMTOKEN" use="optional"/>
                        <xs:attribute name="identify-handler" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="identify-handler-suffix" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="identify-key-fields" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="identify-maximum-results" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="identify-tolerance-pixels" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="identify-type" type="IDENTIFY_TYPE" use="optional" default="default"/>
                        <xs:attribute name="identify-window" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="immediate-refresh" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="layer-list-legend-can-hide" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="layer-list-legend-height" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="layer-list-legend-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="layer-list-legend-visible" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="layer-list-legend-width" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="max-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="maximum-excel-results" type="xs:positiveInteger" use="optional" default="500"/>
                        <xs:attribute name="maximum-gml-results" type="xs:positiveInteger" use="optional" default="500"/>
                        <xs:attribute name="metadata-handler" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="metadata-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="min-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="name" type="xs:token" use="optional"/>
                        <xs:attribute name="position" type="LAYER_POSITION_TYPE" use="optional"/>
                        <xs:attribute name="select-handler" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="select-handler-suffix" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="select-highlight" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="select-key-fields" type="NO_WHITESPACE_TYPE" use="optional"/>
                        <xs:attribute name="select-maximum-results" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="select-shape" type="SELECT_SHAPE_TYPE" use="optional" default="point"/>
                        <xs:attribute name="select-type" type="SELECT_TYPE" use="optional" default="default"/>
                        <xs:attribute name="select-window" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="selected-set" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="show-legend" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="show-symbolize-icon" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="symbolize-script" type="SCRIPT_TYPE" use="optional" default="imfSymbolizeLayerForm.jsp"/>
                        <xs:attribute name="visible" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="zoom-extent-buffer" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="layer-list-legend">
                <xs:complexType>
                        <xs:attribute name="height" type="xs:positiveInteger" use="required"/>
                        <xs:attribute name="max-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="min-scale" type="NON_NEGATIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="url" type="NO_WHITESPACE_TYPE" use="required"/>
                        <xs:attribute name="width" type="xs:positiveInteger" use="required"/>
                </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="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="sql-parameter">
                <xs:complexType>
                        <xs:attribute name="value" type="NO_WHITESPACE_TYPE" use="required"/>
                        <xs:attribute name="parameter-type" type="SQL_PARAMETER_TYPE" use="required"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="sql-query">
                <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                                <xs:element ref="sql-query-column" minOccurs="1" maxOccurs="unbounded"/>
                                <xs:element ref="sql-relate-column" minOccurs="1" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="description" type="xs:string" use="required"/>
                        <xs:attribute name="connection-name" type="xs:token" use="required"/>
                        <xs:attribute name="table" type="xs:string" use="required"/>
                        <xs:attribute name="maximum-results" type="xs:positiveInteger" use="optional" default="100"/>
                        <xs:attribute name="examples-maximum-results" type="xs:positiveInteger" use="optional" default="100"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="sql-query-column">
                <xs:complexType>
                        <xs:attribute name="column-alias" type="xs:string" use="required"/>
                        <xs:attribute name="column-name" type="xs:string" use="required"/>
                        <xs:attribute name="column-data-type" type="SQL_COLUMN_DATA_TYPE" use="required"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="sql-relate-column">
                <xs:complexType>
                        <xs:attribute name="column-name" type="xs:string" use="required"/>
                        <xs:attribute name="column-data-type" type="SQL_COLUMN_DATA_TYPE" use="required"/>
                        <xs:attribute name="field-name" type="xs:string" use="required"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="sql-report">
                <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="1">
                                <xs:element ref="sql-parameter" minOccurs="1" maxOccurs="unbounded"/>
                                <xs:element ref="sql-report" minOccurs="0" maxOccurs="unbounded"/>
                        </xs:sequence>
                        <xs:attribute name="description" type="xs:string" use="required"/>
                        <xs:attribute name="connection-name" type="xs:token" use="required"/>
                        <xs:attribute name="statement" type="xs:string" use="required"/>
                        <xs:attribute name="maximum-results" type="xs:positiveInteger" use="optional" default="100"/>
                </xs:complexType>
        </xs:element>
        <xs:element name="wms-layer">
                <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element ref="layer-list-legend"/>
                                <xs:element ref="property"/>
                        </xs:choice>
                        <xs:attribute name="authentication" type="xs:NMTOKEN" use="optional"/>
                        <xs:attribute name="authentication-id" type="xs:NMTOKEN" use="optional"/>
                        <xs:attribute name="can-set-visibility" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="can-set-visibility-beyond-scale" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="href" type="URL_TYPE" use="required"/>
                        <xs:attribute name="format" type="xs:token" use="required"/>
                        <xs:attribute name="forward" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="immediate-refresh" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="layer-list-legend-can-hide" type="BOOLEAN_TYPE" use="optional" default="false"/>
                        <xs:attribute name="layer-list-legend-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="layer-list-legend-height" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="layer-list-legend-visible" type="BOOLEAN_TYPE" use="optional" default="true"/>
                        <xs:attribute name="layer-list-legend-width" type="xs:positiveInteger" use="optional"/>
                        <xs:attribute name="layers" type="xs:token" use="required"/>
                        <xs:attribute name="max-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="metadata-url" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="metadata-handler" type="URL_TYPE" use="optional"/>
                        <xs:attribute name="min-scale" type="POSITIVE_DECIMAL_TYPE" use="optional"/>
                        <xs:attribute name="name" type="xs:token" use="required"/>
                        <xs:attribute name="position" type="WMS_POSITION_TYPE" use="optional" default="top"/>
                        <xs:attribute name="srs" type="xs:NMTOKEN" use="required"/>
                        <xs:attribute name="styles" type="xs:token" use="optional"/>
                        <xs:attribute name="time" type="xs:token" use="optional"/>
                        <xs:attribute name="elevation" type="xs:token" use="optional"/>
                        <xs:attribute name="version" type="xs:token" use="required"/>
                        <xs:attribute name="visible" type="BOOLEAN_TYPE" use="optional" default="false"/>
                </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="CASE_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="upper"/>
                        <xs:enumeration value="lower"/>
                        <xs:enumeration value="sensitive"/>
                        <xs:enumeration value="insensitive"/>
                </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="DYNAMIC_LAYER_TYPE">
                <xs:restriction base="xs:token">
                        <xs:pattern value="image"/>
                        <xs:pattern value="featureclass"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="FIELD_FORMAT_TYPE">
                <xs:restriction base="xs:token">
                        <xs:pattern value="currency"/>
                        <xs:pattern value="date,(short|medium|long|full)"/>
                        <xs:pattern value="datetime,(short|medium|long|full)"/>
                        <xs:pattern value="initcap"/>
                        <xs:pattern value="lower"/>
                        <xs:pattern value="precision,\d"/>
                        <xs:pattern value="replace,.+,.+"/>
                        <xs:pattern value="time,(short|medium|long|full)"/>
                        <xs:pattern value="upper"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="GROUP_IDENTIFY_REPORT_METHOD_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="drill"/>
                        <xs:enumeration value="first"/>
                        <xs:enumeration value="location"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="GROUP_SELECT_REPORT_METHOD_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="first"/>
                        <xs:enumeration value="location"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="HIGHLIGHT_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="fill"/>
                        <xs:enumeration value="outline"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="IDENTIFY_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="default"/>
                        <xs:enumeration value="tabular"/>
                        <xs:enumeration value="urlAppend"/>
                        <xs:enumeration value="urlFieldValues"/>
                        <xs:enumeration value="urlMultipleFieldValues"/>
                        <xs:enumeration value="urlFieldValueAsQuery"/>
                        <xs:enumeration value="urlXmlPost"/>
                        <xs:enumeration value="urlTable"/>
                        <xs:enumeration value="urlCoordinates"/>
                        <xs:enumeration value="custom"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="IDENTIFY_LINK_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="urlAppend"/>
                        <xs:enumeration value="urlFieldValues"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="LAYER_POSITION_TYPE">
                <xs:restriction base="xs:token">
                        <xs:pattern value="top"/>
                        <xs:pattern value="bottom"/>
                        <xs:pattern value="\d+"/>
                </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="NON_NEGATIVE_DECIMAL_TYPE">
                <xs:restriction base="xs:decimal">
                        <xs:minInclusive value="0"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="POSITIVE_DECIMAL_TYPE">
                <xs:restriction base="xs:decimal">
                        <xs:minExclusive value="0"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:complexType name="REPORT_TYPE">
                <xs:attribute name="description" type="xs:token" use="required"/>
                <xs:attribute name="handler" type="NO_WHITESPACE_TYPE" use="optional"/>
                <xs:attribute name="key-fields" type="NO_WHITESPACE_TYPE" use="optional"/>
                <xs:attribute name="name" type="xs:token" use="required"/>
                <xs:attribute name="popup" type="BOOLEAN_TYPE" use="optional" default="false"/>
                <xs:attribute name="type" use="optional" default="default">
                        <xs:simpleType>
                                <xs:restriction base="xs:token">
                                        <xs:enumeration value="custom"/>
                                        <xs:enumeration value="default"/>
                                        <xs:enumeration value="tabular"/>
                                        <xs:enumeration value="urlFieldValueAsQuery"/>
                                        <xs:enumeration value="urlFieldValues"/>
                                        <xs:enumeration value="urlMultipleFieldValues"/>
                                        <xs:enumeration value="urlTable"/>
                                </xs:restriction>
                        </xs:simpleType>
                </xs:attribute>
        </xs:complexType>
        <xs:simpleType name="SCRIPT_TYPE">
                <xs:restriction base="xs:token">
                        <xs:pattern value="[a-zA-Z/]+.jsp"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="SELECT_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="default"/>
                        <xs:enumeration value="tabular"/>
                        <xs:enumeration value="urlAppend"/>
                        <xs:enumeration value="urlExtent"/>
                        <xs:enumeration value="urlEnvelope"/>
                        <xs:enumeration value="urlShape"/>
                        <xs:enumeration value="urlFieldValues"/>
                        <xs:enumeration value="urlMultipleFieldValues"/>
                        <xs:enumeration value="urlTable"/>
                        <xs:enumeration value="custom"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="SELECT_SHAPE_TYPE">
                <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: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="SQL_COLUMN_DATA_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="number"/>
                        <xs:enumeration value="string"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="SQL_PARAMETER_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="database-column-index"/>
                        <xs:enumeration value="database-column-value"/>
                        <xs:enumeration value="fat-field-value"/>
                </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="_blank"/>
                        <xs:enumeration value="_parent"/>
                        <xs:enumeration value="_top"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="TRANSPARENCY_TYPE">
                <xs:restriction base="xs:decimal">
                        <xs:minInclusive value="0.0"/>
                        <xs:maxInclusive value="1.0"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="URL_TYPE">
                <xs:restriction base="NO_WHITESPACE_TYPE"/>
        </xs:simpleType>
        <xs:simpleType name="WMS_POSITION_TYPE">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="bottom"/>
                        <xs:enumeration value="top"/>
                </xs:restriction>
        </xs:simpleType>
</xs:schema>