<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:e="http://www.esri.com/schemas/ArcGIS/9.3" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.esri.com/schemas/ArcGIS/9.3">
  <types>
    <xs:schema targetNamespace="http://www.esri.com/schemas/ArcGIS/9.3" xmlns="http://www.esri.com/schemas/ArcGIS/9.3">
      <xs:element name="GetDocumentInfo">
        <xs:complexType />
      </xs:element>
      <xs:element name="GetDocumentInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="PropertySet" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetMapCount">
        <xs:complexType />
      </xs:element>
      <xs:element name="GetMapCountResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetMapName">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Index" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetMapNameResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetDefaultMapName">
        <xs:complexType />
      </xs:element>
      <xs:element name="GetDefaultMapNameResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetServerInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetServerInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="MapServerInfo" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExportMapImage">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapDescription" type="MapDescription" />
            <xs:element name="ImageDescription" type="ImageDescription" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExportMapImageResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="MapImage" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExportScaleBar">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ScaleBar" type="ScaleBar" minOccurs="0" />
            <xs:element name="MapDescription" type="MapDescription" />
            <xs:element name="MapDisplay" type="ImageDisplay" />
            <xs:element name="BackGroundColor" type="Color" minOccurs="0" />
            <xs:element name="ImageDescription" type="ImageDescription" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExportScaleBarResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ImageResult" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Find">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapDescription" type="MapDescription" />
            <xs:element name="MapImageDisplay" type="ImageDisplay" />
            <xs:element name="SearchString" type="xs:string" />
            <xs:element name="Contains" type="xs:boolean" />
            <xs:element name="SearchFields" type="xs:string" />
            <xs:element name="FindOption" type="esriFindOption" />
            <xs:element name="LayerIDs" type="ArrayOfInt" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="FindResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfMapServerFindResult" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Identify">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapDescription" type="MapDescription" />
            <xs:element name="MapImageDisplay" type="ImageDisplay" />
            <xs:element name="SearchShape" type="Geometry" />
            <xs:element name="Tolerance" type="xs:int" />
            <xs:element name="IdentifyOption" type="esriIdentifyOption" />
            <xs:element name="LayerIDs" type="ArrayOfInt" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="IdentifyResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfMapServerIdentifyResult" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureCount">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerID" type="xs:int" />
            <xs:element name="QueryFilter" type="QueryFilter" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureCountResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureIDs">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerID" type="xs:int" />
            <xs:element name="QueryFilter" type="QueryFilter" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureIDsResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="FIDSet" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureData">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerID" type="xs:int" />
            <xs:element name="QueryFilter" type="QueryFilter" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureDataResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="RecordSet" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureCount2">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerDescription" type="LayerDescription" />
            <xs:element name="QueryFilter" type="QueryFilter" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureCount2Response">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureIDs2">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerDescription" type="LayerDescription" />
            <xs:element name="QueryFilter" type="QueryFilter" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureIDs2Response">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="FIDSet" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureData2">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerDescription" type="LayerDescription" />
            <xs:element name="QueryFilter" type="QueryFilter" />
            <xs:element name="QueryResultOptions" type="QueryResultOptions" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryFeatureData2Response">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="QueryResult" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryHyperlinks">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapDescription" type="MapDescription" />
            <xs:element name="MapImageDisplay" type="ImageDisplay" />
            <xs:element name="LayerIDs" type="ArrayOfInt" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryHyperlinksResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfMapServerHyperlink" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ComputeScale">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapDescription" type="MapDescription" />
            <xs:element name="MapImageDisplay" type="ImageDisplay" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ComputeScaleResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:double" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ComputeDistance">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="FromPoint" type="Point" />
            <xs:element name="ToPoint" type="Point" />
            <xs:element name="Units" type="esriUnits" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ComputeDistanceResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:double" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ToMapPoints">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapDescription" type="MapDescription" />
            <xs:element name="MapImageDisplay" type="ImageDisplay" />
            <xs:element name="ScreenXValues" type="ArrayOfInt" />
            <xs:element name="ScreenYValues" type="ArrayOfInt" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ToMapPointsResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="Multipoint" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="FromMapPoints">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapDescription" type="MapDescription" />
            <xs:element name="MapImageDisplay" type="ImageDisplay" />
            <xs:element name="MapPoints" type="Multipoint" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="FromMapPointsResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ScreenXValues" type="ArrayOfInt" />
            <xs:element name="ScreenYValues" type="ArrayOfInt" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetLegendInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerIDs" type="ArrayOfInt" />
            <xs:element name="LegendPatch" type="MapServerLegendPatch" />
            <xs:element name="ImageType" type="ImageType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetLegendInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfMapServerLegendInfo" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetSQLSyntaxInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerID" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetSQLSyntaxInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="SQLSyntaxInfo" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetSupportedImageReturnTypes">
        <xs:complexType />
      </xs:element>
      <xs:element name="GetSupportedImageReturnTypesResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="esriImageReturnType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="IsFixedScaleMap">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="IsFixedScaleMapResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="HasSingleFusedMapCache">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="HasSingleFusedMapCacheResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetTileCacheInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetTileCacheInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="TileCacheInfo" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetMapTile">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="Level" type="xs:int" />
            <xs:element name="Row" type="xs:int" />
            <xs:element name="Column" type="xs:int" />
            <xs:element name="Format" type="xs:string" minOccurs="0" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetMapTileResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:base64Binary" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="HasLayerCache">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerID" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="HasLayerCacheResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetLayerTile">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerID" type="xs:int" />
            <xs:element name="Level" type="xs:int" />
            <xs:element name="Row" type="xs:int" />
            <xs:element name="Column" type="xs:int" />
            <xs:element name="Format" type="xs:string" minOccurs="0" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetLayerTileResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:base64Binary" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetVirtualCacheDirectory">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerID" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetVirtualCacheDirectoryResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetCacheName">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
            <xs:element name="LayerID" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetCacheNameResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetTileImageInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetTileImageInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="TileImageInfo" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetCacheControlInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetCacheControlInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="CacheControlInfo" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetServiceConfigurationInfo">
        <xs:complexType />
      </xs:element>
      <xs:element name="GetServiceConfigurationInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="PropertySet" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetCacheDescriptionInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="MapName" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetCacheDescriptionInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="CacheDescriptionInfo" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:simpleType name="esriIdentifyOption">
        <xs:annotation>
          <xs:documentation>Identify Option.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriIdentifyTopmost">
            <xs:annotation>
              <xs:documentation>Topmost Layer.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriIdentifyAllLayers">
            <xs:annotation>
              <xs:documentation>All layers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriIdentifyVisibleLayers">
            <xs:annotation>
              <xs:documentation>Visible layers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriFindOption">
        <xs:annotation>
          <xs:documentation>Find Option.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriFindVisibleLayers">
            <xs:annotation>
              <xs:documentation>Visible layers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFindAllLayers">
            <xs:annotation>
              <xs:documentation>All layers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="TileCacheInfo">
        <xs:annotation>
          <xs:documentation>A Tile Cache Info object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
            <xs:annotation>
              <xs:documentation>The tiling spatial reference.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TileOrigin" type="Point">
            <xs:annotation>
              <xs:documentation>The tiling origin.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="TileCols" type="xs:int">
            <xs:annotation>
              <xs:documentation>The number of columns per tile.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="TileRows" type="xs:int">
            <xs:annotation>
              <xs:documentation>The number of rows per tile.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="DPI" type="xs:int">
            <xs:annotation>
              <xs:documentation>The tiling DPI.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LODInfos" type="ArrayOfLODInfo">
            <xs:annotation>
              <xs:documentation>The tile cache Levels Of Details.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LODInfo">
        <xs:annotation>
          <xs:documentation>A LOD Info object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="LevelID" type="xs:int">
            <xs:annotation>
              <xs:documentation>The level ID.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Scale" type="xs:double">
            <xs:annotation>
              <xs:documentation>The scale at this level.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Resolution" type="xs:double">
            <xs:annotation>
              <xs:documentation>The resolution at this level.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfLODInfo">
        <xs:annotation>
          <xs:documentation>A collection of LOD Info objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="LODInfo" type="LODInfo" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="AreaPatch">
        <xs:annotation>
          <xs:documentation>Classs implements an Area legend patch.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Patch" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfGraphicElement">
        <xs:annotation>
          <xs:documentation>The Graphic Elements collection Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="GraphicElement" type="GraphicElement" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfLayerDescription">
        <xs:annotation>
          <xs:documentation>A collection of Layer Description objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="LayerDescription" type="LayerDescription" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapLayerInfo">
        <xs:annotation>
          <xs:documentation>A collection of Map Layer Info objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapLayerInfo" type="MapLayerInfo" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerBookmark">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Bookmark objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerBookmark" type="MapServerBookmark" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerFindResult">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Find Result objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerFindResult" type="MapServerFindResult" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerHyperlink">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Hyperlink objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerHyperlink" type="MapServerHyperlink" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerIdentifyResult">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Identify Result objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerIdentifyResult" type="MapServerIdentifyResult" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerLegendClass">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Legend Class objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerLegendClass" type="MapServerLegendClass" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerLegendGroup">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Legend Group objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerLegendGroup" type="MapServerLegendGroup" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerLegendInfo">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Legend Info objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerLegendInfo" type="MapServerLegendInfo" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerRelationship">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Relationship objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerRelationship" type="MapServerRelationship" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerRow">
        <xs:annotation>
          <xs:documentation>A collection of Map Server Row objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MapServerRow" type="MapServerRow" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CenterAndScale">
        <xs:annotation>
          <xs:documentation>The Center And Scale object allows you to change the spatial extent of a map by specifying the center and scale.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MapArea">
            <xs:sequence>
              <xs:element minOccurs="0" name="Center" type="Point">
                <xs:annotation>
                  <xs:documentation>The center of the map.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Scale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The map scale.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DPI" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The device resolution of the image.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DevBottom" type="xs:int">
                <xs:annotation>
                  <xs:documentation>The X cooridnate for bottom right corner point.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DevLeft" type="xs:int">
                <xs:annotation>
                  <xs:documentation>The X coordinate for the upper left corner point.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DevTop" type="xs:int">
                <xs:annotation>
                  <xs:documentation>The Y coordinate for the upper left corner point.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DevRight" type="xs:int">
                <xs:annotation>
                  <xs:documentation>The Y coordinate for the bottom right corner point.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CenterAndSize">
        <xs:annotation>
          <xs:documentation>The Center And Size object allows you to change the spatial extent of a map by specifying the center, size and units.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MapArea">
            <xs:sequence>
              <xs:element minOccurs="0" name="Center" type="Point">
                <xs:annotation>
                  <xs:documentation>The center of the map.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Height" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The height of the map expressed in map units.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Width" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The width of the map expressed in map units.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Units" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The current map units.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="FeatureExtent">
        <xs:annotation>
          <xs:documentation>The Feature Extent object allows you to zoom to selected features in a layer.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MapArea">
            <xs:sequence>
              <xs:element name="DefaultScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Scale at which the extent of a single point is drawn.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element default="1.0" name="ExpandRatio" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Ratio used to expand the extent.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FeatureIDs" type="ArrayOfInt">
                <xs:annotation>
                  <xs:documentation>The set of feature IDs.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="LayerID" type="xs:int">
                <xs:annotation>
                  <xs:documentation>The ID of the layer.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="MapName" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the map (data frame).</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ImageDescription">
        <xs:annotation>
          <xs:documentation>The Image Description object contains settings of the image to be generated.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="ImageType" type="ImageType">
            <xs:annotation>
              <xs:documentation>The type of image to be generated.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ImageDisplay" type="ImageDisplay">
            <xs:annotation>
              <xs:documentation>The display characteristics of the image to be generated.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ImageDisplay">
        <xs:annotation>
          <xs:documentation>The Image Display object contains the display characteristics of the image to be generated.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="ImageHeight" type="xs:int">
            <xs:annotation>
              <xs:documentation>The height of the image in pixels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageWidth" type="xs:int">
            <xs:annotation>
              <xs:documentation>The width of the image in pixels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageDPI" type="xs:double">
            <xs:annotation>
              <xs:documentation>The device resolution of the image (dots per inch).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TransparentColor" type="Color">
            <xs:annotation>
              <xs:documentation>Transparent color for image types that support transparent color.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ImageResult">
        <xs:annotation>
          <xs:documentation>The Image Result object contains information about the generated image.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="ImageData" type="xs:base64Binary">
            <xs:annotation>
              <xs:documentation>Binary data representing the generated image.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageURL" type="xs:string">
            <xs:annotation>
              <xs:documentation>The URL of the generated image.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageHeight" type="xs:int">
            <xs:annotation>
              <xs:documentation>The height of the image in pixels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageWidth" type="xs:int">
            <xs:annotation>
              <xs:documentation>The width of the image in pixels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageDPI" type="xs:double">
            <xs:annotation>
              <xs:documentation>The device resolution of the image specified in the request (dots per inch).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriImageFormat">
        <xs:annotation>
          <xs:documentation>Image File Format.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriImageNone">
            <xs:annotation>
              <xs:documentation>None</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageBMP">
            <xs:annotation>
              <xs:documentation>BMP</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageJPG">
            <xs:annotation>
              <xs:documentation>JPG</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageDIB">
            <xs:annotation>
              <xs:documentation>DIB</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageTIFF">
            <xs:annotation>
              <xs:documentation>TIFF</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImagePNG">
            <xs:annotation>
              <xs:documentation>PNG</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImagePNG24">
            <xs:annotation>
              <xs:documentation>PNG24</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageEMF">
            <xs:annotation>
              <xs:documentation>EMF</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImagePS">
            <xs:annotation>
              <xs:documentation>PS</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImagePDF">
            <xs:annotation>
              <xs:documentation>PDF</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageAI">
            <xs:annotation>
              <xs:documentation>AI</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageGIF">
            <xs:annotation>
              <xs:documentation>GIF</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageSVG">
            <xs:annotation>
              <xs:documentation>SVG</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImagePNG32">
            <xs:annotation>
              <xs:documentation>PNG32</xs:documentation>
            </xs:annotation>
          </xs:enumeration>          
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriScaleBarPos">
        <xs:annotation>
          <xs:documentation>Scale bar unit label positioning options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriScaleBarAbove">
            <xs:annotation>
              <xs:documentation>Above bar and labels.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarBeforeLabels">
            <xs:annotation>
              <xs:documentation>Before labels.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarAfterLabels">
            <xs:annotation>
              <xs:documentation>After labels.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarBeforeBar">
            <xs:annotation>
              <xs:documentation>Before bar.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarAfterBar">
            <xs:annotation>
              <xs:documentation>After bar.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarBelow">
            <xs:annotation>
              <xs:documentation>Below bar and labels.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriVertPosEnum">
        <xs:annotation>
          <xs:documentation>Scalebar vertical position options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriAbove">
            <xs:annotation>
              <xs:documentation>Positioned above scalebar.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTop">
            <xs:annotation>
              <xs:documentation>Aligned with top of scalebar.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriOn">
            <xs:annotation>
              <xs:documentation>Vertically centered on scalebar.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriBottom">
            <xs:annotation>
              <xs:documentation>Aligned with bottom of scalebar.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriBelow">
            <xs:annotation>
              <xs:documentation>Positioned below scalebar.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriScaleBarFrequency">
        <xs:annotation>
          <xs:documentation>Scalebar options specifying which divisions to label or add marks to.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriScaleBarNone">
            <xs:annotation>
              <xs:documentation>None.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarOne">
            <xs:annotation>
              <xs:documentation>Midpoint.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarMajorDivisions">
            <xs:annotation>
              <xs:documentation>Ends and zero.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarDivisions">
            <xs:annotation>
              <xs:documentation>All divisions.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarDivisionsAndFirstMidpoint">
            <xs:annotation>
              <xs:documentation>All divisions plus midpoint of first interval.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarDivisionsAndFirstSubdivisions">
            <xs:annotation>
              <xs:documentation>All divisions plus subdivisions in first interval.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarDivisionsAndSubdivisions">
            <xs:annotation>
              <xs:documentation>All divisions and all subdivisions.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriScaleBarResizeHint">
        <xs:annotation>
          <xs:documentation>Scale bar resize options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriScaleBarFixed">
            <xs:annotation>
              <xs:documentation>Use specified division and number of divisions.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarAutoDivision">
            <xs:annotation>
              <xs:documentation>Use specified number of divisions and calculate division.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriScaleBarAutoDivisions">
            <xs:annotation>
              <xs:documentation>Use specified division and calculate number of divisions.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriImageReturnType">
        <xs:annotation>
          <xs:documentation>Image Return Type.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriImageReturnURL">
            <xs:annotation>
              <xs:documentation>URL</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriImageReturnMimeData">
            <xs:annotation>
              <xs:documentation>MimeData</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ImageType">
        <xs:annotation>
          <xs:documentation>The Image Type object contains information about the type of image to be generated.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="ImageFormat" type="esriImageFormat">
            <xs:annotation>
              <xs:documentation>The image format.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageReturnType" type="esriImageReturnType">
            <xs:annotation>
              <xs:documentation>The return type.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LayerDescription">
        <xs:annotation>
          <xs:documentation>The Layer Description object contains settings of a layer in a map.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int">
            <xs:annotation>
              <xs:documentation>The layer ID. This is a unique ID for the layer, and is used to identify the layer in a number of method calls.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Visible" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether the layer is visible as defined in the TOC (i.e. marked on).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ShowLabels" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether the layer should display its dynamic labels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ScaleSymbols" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether the layer should scale its symbols according to the reference scale.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SelectionFeatures" type="ArrayOfInt">
            <xs:annotation>
              <xs:documentation>Array of selected features.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SelectionColor" type="Color">
            <xs:annotation>
              <xs:documentation>The selection color (used when SetSelectionSymbol = FALSE).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SelectionSymbol" type="Symbol">
            <xs:annotation>
              <xs:documentation>The selection symbol.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="SetSelectionSymbol" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the selected set of features is drawn using the SelectionSymbol.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="SelectionBufferDistance" type="xs:double">
            <xs:annotation>
              <xs:documentation>The selection buffer distance. When drawing, and if a selection filter is specified, a buffer zone of the specified distance will be displayed around the selected features.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ShowSelectionBuffer" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether the selection buffer should be displayed.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="DefinitionExpression" type="xs:string">
            <xs:annotation>
              <xs:documentation>The definition expression for the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SourceID" type="xs:string">
            <xs:annotation>
              <xs:documentation>The id of the source to use when drawing the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SelectionBufferSymbol" type="FillSymbol">
            <xs:annotation>
              <xs:documentation>Symbol used for drawing selection buffer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LayerResultOptions" type="LayerResultOptions">
            <xs:annotation>
              <xs:documentation>Indicate whether to include and/or modify Geometry.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LayerResultOptions">
        <xs:annotation>
          <xs:documentation>Layer Result Options Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" default="true" name="IncludeGeometry" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether we should include Geometry.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GeometryResultOptions" type="GeometryResultOptions">
            <xs:annotation>
              <xs:documentation>Indicates whether we need to modify Geometry.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" default="false" name="ReturnFieldNamesInResults" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether to include field name or alias.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" default="true" name="FormatValuesInResults" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether to format the values in results.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LinePatch">
        <xs:annotation>
          <xs:documentation>Class implements a Line legend patch.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Patch" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MapArea" abstract="true">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Extent" type="Envelope">
            <xs:annotation>
              <xs:documentation>The geographic extent of the map.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapDescription">
        <xs:annotation>
          <xs:documentation>The Map Description object contains settings of a map in the current document.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>The name of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="MapArea" type="MapArea">
            <xs:annotation>
              <xs:documentation>The display area of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LayerDescriptions" type="ArrayOfLayerDescription">
            <xs:annotation>
              <xs:documentation>A collection of Layer Description objects, each describing a layer within the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Rotation" type="xs:double">
            <xs:annotation>
              <xs:documentation>The angle/rotation of the map (data frame) in degrees, measured anti-clockwise.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
            <xs:annotation>
              <xs:documentation>The spatial reference of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TransparentColor" type="Color">
            <xs:annotation>
              <xs:documentation>The color that is transparent (100 %).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SelectionColor" type="Color">
            <xs:annotation>
              <xs:documentation>The default selection color.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BackgroundSymbol" type="FillSymbol">
            <xs:annotation>
              <xs:documentation>Background symbol of the Map.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="CustomGraphics" type="ArrayOfGraphicElement">
            <xs:annotation>
              <xs:documentation>Custom graphics.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GeoTransformation" type="GeoTransformation">
            <xs:annotation>
              <xs:documentation>On-the-fly geographic transformations.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapExtent">
        <xs:annotation>
          <xs:documentation>The Map Extent object allows you to change the spatial extent of a map by specifying the new extent.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MapArea" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MapImage">
        <xs:annotation>
          <xs:documentation>The Map Image object contains information about the generated map image.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="ImageData" type="xs:base64Binary">
            <xs:annotation>
              <xs:documentation>Binary data representing the generated image.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageURL" type="xs:string">
            <xs:annotation>
              <xs:documentation>The URL of the generated image.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Extent" type="Envelope">
            <xs:annotation>
              <xs:documentation>The extent of the map frame on the page.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="VisibleLayerIDs" type="ArrayOfInt">
            <xs:annotation>
              <xs:documentation>Array of the visible layers drawn for the generated map scale.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="MapScale" type="xs:double">
            <xs:annotation>
              <xs:documentation>The scale of the generated map image.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageHeight" type="xs:int">
            <xs:annotation>
              <xs:documentation>The height of the image in pixels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageWidth" type="xs:int">
            <xs:annotation>
              <xs:documentation>The width of the image in pixels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageDPI" type="xs:double">
            <xs:annotation>
              <xs:documentation>The device resolution of the image specified in the request (dots per inch).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapLayerInfo">
        <xs:annotation>
          <xs:documentation>The Map Layer Info object provides read-only information about a layer in a map.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int">
            <xs:annotation>
              <xs:documentation>The layer identifier. This ID is used throughout to uniquely identify the layer for all requests.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>The name of the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>The description of the layer. This property is set in the General tab of the Layer Properties dialog.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="LayerType" type="xs:string">
            <xs:annotation>
              <xs:documentation>The layer type.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="SourceDescription" type="xs:string">
            <xs:annotation>
              <xs:documentation>The description of the source information for the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="HasLabels" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer has labels to turn on and off.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="CanSelect" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer supports feature selection.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="CanScaleSymbols" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer supports symbol scaling.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="MinScale" type="xs:double">
            <xs:annotation>
              <xs:documentation>The minimum visible scale for the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="MaxScale" type="xs:double">
            <xs:annotation>
              <xs:documentation>The maximum visible scale for the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Extent" type="Envelope">
            <xs:annotation>
              <xs:documentation>The geographic extent of the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="HasHyperlinks" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer has hyperlinks.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="HasAttributes" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer has attributes.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="CanIdentify" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer supports the Identify operation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="CanFind" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer supports the Find operation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="IsFeatureLayer" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer is a feature layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Fields" type="Fields">
            <xs:annotation>
              <xs:documentation>Array of attribute fields contained in the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="DisplayField" type="xs:string">
            <xs:annotation>
              <xs:documentation>Primary display field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="IDField" type="xs:string" />          
          <xs:element name="IsComposite" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the layer is a composite layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SubLayerIDs" type="ArrayOfInt">
            <xs:annotation>
              <xs:documentation>The list identifying the sublayers if the layer is a composite layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ParentLayerID" type="xs:int">
            <xs:annotation>
              <xs:documentation>If the layer is a member of a composite layer, this property identifies the parent layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FieldAliases" type="ArrayOfString">
            <xs:annotation>
              <xs:documentation>Array of strings that contains field alias for each field in Fields property.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="CopyrightText" type="xs:string">
            <xs:annotation>
              <xs:documentation>Copyright information associated with the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerBookmark">
        <xs:annotation>
          <xs:documentation>The Map Server Bookmark object provides information about a bookmark.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MapArea">
            <xs:sequence>
              <xs:element name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the bookmark.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MapServerFindResult">
        <xs:annotation>
          <xs:documentation>The Map Server Find Result object provides information about a 'find result'.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Value" type="xs:string">
            <xs:annotation>
              <xs:documentation>The found value.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="LayerID" type="xs:int">
            <xs:annotation>
              <xs:documentation>The layer ID.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="FeatureID" type="xs:int">
            <xs:annotation>
              <xs:documentation>The ID of the found feature.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="FieldName" type="xs:string">
            <xs:annotation>
              <xs:documentation>The field name.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Shape" type="Geometry">
            <xs:annotation>
              <xs:documentation>The geometry of the found feature.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Properties" type="PropertySet">
            <xs:annotation>
              <xs:documentation>A set of name-value pairs for the found features's field names and values.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerHyperlink">
        <xs:annotation>
          <xs:documentation>The Map Server Hyperlink object contains settings about a hyperlink.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Location" type="Geometry">
            <xs:annotation>
              <xs:documentation>The geometry of the feature having a hyperlink.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="URL" type="xs:string">
            <xs:annotation>
              <xs:documentation>The URL of the hyperlink.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerIdentifyResult">
        <xs:annotation>
          <xs:documentation>The Map Server Identify Result object provides information about an 'identify result'.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int">
            <xs:annotation>
              <xs:documentation>The layer ID of the identified object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>The name of the identified object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Properties" type="PropertySet">
            <xs:annotation>
              <xs:documentation>A set of name-value pairs for the field names and values of the identified object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Shape" type="Geometry">
            <xs:annotation>
              <xs:documentation>The geometry of the identified object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Relationships" type="ArrayOfMapServerRelationship">
            <xs:annotation>
              <xs:documentation>The related rows (relationships) of the identified object.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerInfo">
        <xs:annotation>
          <xs:documentation>The Map Server Info object provides read-only information about a map.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>The name of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>The description of the map (data frame). This property is set in the General tab of the Data Frame Properties dialog.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FullExtent" type="Envelope">
            <xs:annotation>
              <xs:documentation>The full extent of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Extent" type="Envelope">
            <xs:annotation>
              <xs:documentation>The current extent of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
            <xs:annotation>
              <xs:documentation>The spatial reference of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="MapLayerInfos" type="ArrayOfMapLayerInfo">
            <xs:annotation>
              <xs:documentation>A collection of Map Layer Info objects, each containing information about a layer in the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BackgroundColor" type="Color">
            <xs:annotation>
              <xs:documentation>The background color of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Bookmarks" type="ArrayOfMapServerBookmark">
            <xs:annotation>
              <xs:documentation>The published bookmarks for the map.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DefaultMapDescription" type="MapDescription">
            <xs:annotation>
              <xs:documentation>The default map settings.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Units" type="esriUnits">
            <xs:annotation>
              <xs:documentation>The units for the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="SupportedImageReturnTypes" type="esriImageReturnType" />
          <xs:element minOccurs="0" name="BackgroundSymbol" type="FillSymbol">
            <xs:annotation>
              <xs:documentation>Background symbol of the map (data frame).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="CopyrightText" type="xs:string">
            <xs:annotation>
              <xs:documentation>Copyright information associated with the layer.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerLegendClass">
        <xs:annotation>
          <xs:documentation>The Map Server Legend Class object contains settings about a legend class.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Label" type="xs:string">
            <xs:annotation>
              <xs:documentation>The label string.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>The description string.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SymbolImage" type="ImageResult">
            <xs:annotation>
              <xs:documentation>The symbol image.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TransparentColor" type="Color">
            <xs:annotation>
              <xs:documentation>The transparent color used for the symbol image.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerLegendGroup">
        <xs:annotation>
          <xs:documentation>The Map Server Legend Group object provides information about a legend group.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Heading" type="xs:string">
            <xs:annotation>
              <xs:documentation>The heading string.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LegendClasses" type="ArrayOfMapServerLegendClass">
            <xs:annotation>
              <xs:documentation>A collection of legend class objects.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerLegendInfo">
        <xs:annotation>
          <xs:documentation>The Map Server Legend Info object provides legend information for a layer.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int">
            <xs:annotation>
              <xs:documentation>The layer ID.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>The layer name.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LegendGroups" type="ArrayOfMapServerLegendGroup">
            <xs:annotation>
              <xs:documentation>A collection of legend group objects.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerLegendPatch">
        <xs:annotation>
          <xs:documentation>The Map Server Legend Patch object contains settings about a legend patch.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Width" type="xs:double">
            <xs:annotation>
              <xs:documentation>The patch width (in points).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Height" type="xs:double">
            <xs:annotation>
              <xs:documentation>The patch width (in points).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ImageDPI" type="xs:double">
            <xs:annotation>
              <xs:documentation>The patch resolution (dots per inch).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LinePatch" type="LinePatch">
            <xs:annotation>
              <xs:documentation>The line patch.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AreaPatch" type="AreaPatch">
            <xs:annotation>
              <xs:documentation>The area patch.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerRelationship">
        <xs:annotation>
          <xs:documentation>The Map Server Relationship object contains information about a relationship if one exists.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>The name of the relationship.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Rows" type="ArrayOfMapServerRow">
            <xs:annotation>
              <xs:documentation>The rows.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerRow">
        <xs:annotation>
          <xs:documentation>The Map Server Row object contains information about a row.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>The value of the primary display field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Properties" type="PropertySet">
            <xs:annotation>
              <xs:documentation>A set of name-value pairs for the row's field names and values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Relationships" type="ArrayOfMapServerRelationship">
            <xs:annotation>
              <xs:documentation>The related rows (relationships).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ScaleBar" abstract="true">
        <xs:annotation>
          <xs:documentation>A map surround for displaying a scale bar.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="BarHeight" type="xs:double">
            <xs:annotation>
              <xs:documentation>Height of the bar in points (1/72 inch).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Division" type="xs:double">
            <xs:annotation>
              <xs:documentation>Number of units in one major division.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Divisions" type="xs:short">
            <xs:annotation>
              <xs:documentation>Total number of divisions (including those before zero).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DivisionsBeforeZero" type="xs:short">
            <xs:annotation>
              <xs:documentation>Number of divisions to the left of zero.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Subdivisions" type="xs:short">
            <xs:annotation>
              <xs:documentation>Number of subdivisions per major division.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Units" type="esriUnits">
            <xs:annotation>
              <xs:documentation>The units reported.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UnitLabel" type="xs:string">
            <xs:annotation>
              <xs:documentation>The unit label.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UnitLabelPosition" type="esriScaleBarPos">
            <xs:annotation>
              <xs:documentation>Vertical positioning of the unit label.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UnitLabelGap" type="xs:double">
            <xs:annotation>
              <xs:documentation>Gap between the scale bar and the unit label in points (1/72 inch).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UnitLabelSymbol" type="TextSymbol">
            <xs:annotation>
              <xs:documentation>Unit label symbol.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LabelFrequency" type="esriScaleBarFrequency">
            <xs:annotation>
              <xs:documentation>The label style indicating which marks are labeled.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LabelPosition" type="esriVertPosEnum">
            <xs:annotation>
              <xs:documentation>Vertical positioning of the mark labels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LabelGap" type="xs:double">
            <xs:annotation>
              <xs:documentation>Vertical gap between the bar and the labels in points (1/72 inch).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LabelSymbol" type="TextSymbol">
            <xs:annotation>
              <xs:documentation>Symbol used to draw the labels.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="NumberFormat" type="NumericFormat">
            <xs:annotation>
              <xs:documentation>Number format.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ResizeHint" type="esriScaleBarResizeHint">
            <xs:annotation>
              <xs:documentation>Indicates what happens when scale bar is resized.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="AlternatingScaleBar">
        <xs:annotation>
          <xs:documentation>A map surround for displaying a single alternating scale bar.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="ScaleBar">
            <xs:sequence>
              <xs:element minOccurs="0" name="FillSymbol1" type="FillSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the bar.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FillSymbol2" type="FillSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the bar.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DivisionMarkSymbol" type="LineSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the division marks.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="SubdivisionMarkSymbol" type="LineSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the subdivision marks.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DivisionMarkHeight" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Height of division marks in points (1/72 inch).  Use esriAutoScaleBar to automatically calculate.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="SubdivisionMarkHeight" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Height of subdivision marks in points (1/72 inch).  Use esriAutoScaleBar to automatically calculate.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MarkPosition" type="esriVertPosEnum">
                <xs:annotation>
                  <xs:documentation>Vertical positioning of the marks relative to the bar.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MarkFrequency" type="esriScaleBarFrequency">
                <xs:annotation>
                  <xs:documentation>Mark frequency.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SingleDivisionScaleBar">
        <xs:annotation>
          <xs:documentation>A map surround for displaying a single division scale bar.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="ScaleBar">
            <xs:sequence>
              <xs:element minOccurs="0" name="FillSymbol" type="FillSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the bar.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DivisionMarkSymbol" type="LineSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the division marks.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="SubdivisionMarkSymbol" type="LineSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the subdivision marks.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DivisionMarkHeight" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Height of division marks in points (1/72 inch).  Use esriAutoScaleBar to automatically calculate.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="SubdivisionMarkHeight" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Height of subdivision marks in points (1/72 inch).  Use esriAutoScaleBar to automatically calculate.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MarkPosition" type="esriVertPosEnum">
                <xs:annotation>
                  <xs:documentation>Vertical positioning of the marks relative to the bar.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MarkFrequency" type="esriScaleBarFrequency">
                <xs:annotation>
                  <xs:documentation>Mark frequency.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SQLSyntaxInfo">
        <xs:annotation>
          <xs:documentation>The SQL Syntax Info object supplies information about SQL functionality.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="FunctionNames" type="PropertySet">
            <xs:annotation>
              <xs:documentation>DBMS dependent SQL function names.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SpecialCharacters" type="PropertySet">
            <xs:annotation>
              <xs:documentation>Special DBMS dependent SQL characters.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SupportedPredicates" type="ArrayOfString">
            <xs:annotation>
              <xs:documentation>Supported SQL predicates.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SupportedClauses" type="ArrayOfString">
            <xs:annotation>
              <xs:documentation>Supported SQL clauses.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="IdentifierCase" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether DBMS's identifiers are case sensitive.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="DelimitedIdentifierCase" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether DBMS's quoted identifiers are case sensitive.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="StringComparisonCase" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates whether string comparisons are case sensitive.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Keywords" type="ArrayOfString">
            <xs:annotation>
              <xs:documentation>The list of DBMS specific reserved keywords.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="InvalidCharacters" type="xs:string">
            <xs:annotation>
              <xs:documentation>The list of invalid characters used in literals (if any).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="InvalidStartingCharacters" type="xs:string">
            <xs:annotation>
              <xs:documentation>The list of invalid starting characters used in literals (if any).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Shadow" abstract="true">
        <xs:annotation>
          <xs:documentation>Frame drop shadows.</xs:documentation>
        </xs:annotation>
        <xs:sequence />
      </xs:complexType>
      <xs:complexType name="Background" abstract="true">
        <xs:annotation>
          <xs:documentation>Frame Background.</xs:documentation>
        </xs:annotation>
        <xs:sequence />
      </xs:complexType>
      <xs:complexType name="SymbolBackground">
        <xs:annotation>
          <xs:documentation>Background drawn using a symbol.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Background">
            <xs:sequence>
              <xs:element name="HorizontalGap" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Horizontal offset or gap between the decoration and the subject in points.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="CornerRounding" type="xs:short">
                <xs:annotation>
                  <xs:documentation>Amount of corner rounding.  0 = fully square.  100 = fully round.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="VerticalGap" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Vertical offset or gap between the decoration and the subject in points.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="FillSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the background.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Border" abstract="true">
        <xs:annotation>
          <xs:documentation>Frame border used by this element.</xs:documentation>
        </xs:annotation>
        <xs:sequence />
      </xs:complexType>
      <xs:complexType name="SymbolBorder">
        <xs:annotation>
          <xs:documentation>Border drawn using a symbol.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Border">
            <xs:sequence>
              <xs:element name="HorizontalGap" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Horizontal offset or gap between the decoration and the subject in points.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="CornerRounding" type="xs:short">
                <xs:annotation>
                  <xs:documentation>Amount of corner rounding.  0 = fully square.  100 = fully round.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="VerticalGap" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Vertical offset or gap between the decoration and the subject in points.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="LineSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the border.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SymbolShadow">
        <xs:annotation>
          <xs:documentation>Shadow drawn using a symbol.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Shadow">
            <xs:sequence>
              <xs:element minOccurs="0" name="Symbol" type="LineSymbol">
                <xs:annotation>
                  <xs:documentation>Symbol used to draw the shadow.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="CornerRounding" type="xs:short">
                <xs:annotation>
                  <xs:documentation>Amount of corner rounding.  0 = fully square.  100 = fully round.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="HorizontalOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Horizontal offset or gap between the decoration and the subject in points.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="VerticalOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Vertical offset or gap between the decoration and the subject in points.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Element" abstract="true">
        <xs:annotation>
          <xs:documentation>Element.</xs:documentation>
        </xs:annotation>
        <xs:sequence />
      </xs:complexType>
      <xs:complexType name="GraphicElement" abstract="true">
        <xs:annotation>
          <xs:documentation>Graphic Element Obejct.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Element">
            <xs:sequence />
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="LineElement">
        <xs:annotation>
          <xs:documentation>The Graphic Element to display lines.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>Line symbol this element uses to draw itself.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Line" type="Geometry">
                <xs:annotation>
                  <xs:documentation>Shape of the element as a geometry, in this case it is a PolyLine.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FixedAspectRatio" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the bounds has a fixed aspect ratio.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CircleElement">
        <xs:annotation>
          <xs:documentation>The Graphic Element to display Circles.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Rectangle" type="Geometry">
                <xs:annotation>
                  <xs:documentation>Shape of the element as a geometry, in this case it is a Polygon or an Envelope.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FixedAspectRatio" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the bounds has a fixed aspect ratio.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>Fill symbol this element uses to draw itself.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EllipseElement">
        <xs:annotation>
          <xs:documentation>The Graphic Element to display Ellipses.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Rectangle" type="Geometry">
                <xs:annotation>
                  <xs:documentation>Shape of the element as a geometry, in this case it is a Polygon or an Envelope.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FixedAspectRatio" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the bounds has a fixed aspect ratio.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>Fill symbol this element uses to draw itself.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GroupElement">
        <xs:annotation>
          <xs:documentation>The Group Graphic Element to display a group of graphic elements.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Element">
            <xs:sequence>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Elements" type="ArrayOfGraphicElement">
                <xs:annotation>
                  <xs:documentation>Elements in the group.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Rectangle" type="Geometry">
                <xs:annotation>
                  <xs:documentation>Shape of the element as a geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FixedAspectRatio" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the bounds has a fixed aspect ratio.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Border" type="Border">
                <xs:annotation>
                  <xs:documentation>Frame border used by this element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Background" type="Background">
                <xs:annotation>
                  <xs:documentation>Frame background used by this element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DraftMode" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if this element is in draft mode, i.e., draws fast.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Shadow" type="Shadow">
                <xs:annotation>
                  <xs:documentation>Frame shadow used by this element.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MarkerElement">
        <xs:annotation>
          <xs:documentation>The Graphic Element to display markers.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>Marker symbol this element uses to draw itself.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Point" type="Point">
                <xs:annotation>
                  <xs:documentation>Shape of the element as a geometry, in this case it is a Point.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ParagraphTextElement">
        <xs:annotation>
          <xs:documentation>The Graphic Element to display text which flows into an area geometry.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Text" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Text being displayed by this element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Scale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Should have been boolean type. Indicates if the text scales with the map.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>Text symbol this element uses to draw itself.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="TextGeometry" type="Geometry">
                <xs:annotation>
                  <xs:documentation>Shape of the element as a geometry, in this case it is a .</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FrameBorder" type="Border">
                <xs:annotation>
                  <xs:documentation>Frame border used by this element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FrameBackground" type="Background">
                <xs:annotation>
                  <xs:documentation>Frame background used by this element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FrameShadow" type="Shadow">
                <xs:annotation>
                  <xs:documentation>"Frame shadow used by this element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ColumnGap" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Gap between columns in points.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ColumnCount" type="xs:int">
                <xs:annotation>
                  <xs:documentation>Number of columns.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Margin" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Value for the margin.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolygonElement">
        <xs:annotation>
          <xs:documentation>The Graphic Element to display polygons.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>Fill symbol this element uses to draw itself.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Polygon" type="Geometry">
                <xs:annotation>
                  <xs:documentation>Shape of the element as a geometry, in this case it is a Polygon.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FixedAspectRatio" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the bounds has a fixed aspect ratio.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="RectangleElement">
        <xs:annotation>
          <xs:documentation>The Graphic Element to display rectangles.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Rectangle" type="Geometry">
                <xs:annotation>
                  <xs:documentation>Shape of the element as a geometry, in this case it is a Polygon.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FixedAspectRatio" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the bounds has a fixed aspect ratio.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>Fill symbol this element uses to draw itself.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="TextElement">
        <xs:annotation>
          <xs:documentation>The Graphic Element to display text.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element minOccurs="0" name="Name" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Name of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Type of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="AutoTransform" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if transform is applied to symbols and other parts of element. False = only apply transform to geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ReferenceScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Reference scale of the element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Text" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Text being displayed by this element.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Scale" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the text scales with the map.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Symbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>Text symbol this element uses to draw itself.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="TextGeometry" type="Geometry" />
              <xs:element minOccurs="0" name="Locked" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the element is in a read-only state.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Patch">
        <xs:annotation>
          <xs:documentation>legend patch.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>Name of the patch.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PreserveAspectRatio" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if aspect ratio of patch is preserved.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Geometry" type="Geometry">
            <xs:annotation>
              <xs:documentation>Patch geometry sized to fit the specified bounds.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="TileImageInfo">
        <xs:annotation>
          <xs:documentation>A Tile Image Info object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="CacheTileFormat" type="xs:string">
            <xs:annotation>
              <xs:documentation>The cache tile format.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="CompressionQuality" type="xs:int">
            <xs:annotation>
              <xs:documentation>The cache tile image compression quality.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Antialiasing" type="xs:string">
            <xs:annotation>
              <xs:documentation>Indicates if Antialiasing is set.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LayerCacheInfo">
        <xs:annotation>
          <xs:documentation>The layer cache info object provides information about a layer's cache in a cached map service.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int" />
          <xs:element name="HasCache" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if this layer has cache.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfLayerCacheInfo">
        <xs:annotation>
          <xs:documentation>A collection of LayerCacheInfo objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="LayerCacheInfo" type="LayerCacheInfo" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CacheDescriptionInfo">
        <xs:annotation>
          <xs:documentation>Cache description info object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="TileCacheInfo" type="TileCacheInfo">
            <xs:annotation>
              <xs:documentation>TileCacheInfo object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="TileImageInfo" type="TileImageInfo">
            <xs:annotation>
              <xs:documentation>TileImageInfo object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="LayerCacheInfos" type="ArrayOfLayerCacheInfo">
            <xs:annotation>
              <xs:documentation>LayerCacheInfos object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="CacheControlInfo" type="CacheControlInfo">
            <xs:annotation>
              <xs:documentation>CacheControlInfo object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ServiceType" type="esriCachedMapServiceType" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CacheControlInfo">
        <xs:annotation>
          <xs:documentation>Cache control info object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="ClientCachingAllowed" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if client caching is allowed.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriCachedMapServiceType">
        <xs:annotation>
          <xs:documentation>Cached Map Service Type</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSingleFusedMapCache">
            <xs:annotation>
              <xs:documentation>Single fused map cached service</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriIndividualLayerCaches">
            <xs:annotation>
              <xs:documentation>Separate layer cached service</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriQueryResultFormat">
        <xs:annotation>
          <xs:documentation>Query Result Format.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriQueryResultRecordSetAsObject">
            <xs:annotation>
              <xs:documentation>Indicates RecordSet.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriQueryResultKMLAsMime">
            <xs:annotation>
              <xs:documentation>Indicates KML.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriQueryResultKMLAsURL">
            <xs:annotation>
              <xs:documentation>Indicates KML.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="QueryResultOptions">
        <xs:annotation>
          <xs:documentation>Query Result Options</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Format" type="esriQueryResultFormat">
            <xs:annotation>
              <xs:documentation>The query result format.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FormatProperties" type="PropertySet">
            <xs:annotation>
              <xs:documentation>Format properties specific to result format.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GeoTransformation" type="GeoTransformation">
            <xs:annotation>
              <xs:documentation>Geographic Transformation.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="QueryResult">
        <xs:annotation>
          <xs:documentation>Query Result</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="MimeData" type="xs:base64Binary">
            <xs:annotation>
              <xs:documentation>Binary data representing the generated result in the requested format.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="URL" type="xs:string">
            <xs:annotation>
              <xs:documentation>The URL of the generated query result in the requested format.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Object" type="xs:anyType">
            <xs:annotation>
              <xs:documentation>The Object representing generated query result in the requested format.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Color" abstract="true">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="UseWindowsDithering" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if colors should be dithered to simulate colors that aren't supported by the display.  This only applies on displays that have 256 or fewer colors.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AlphaValue" type="xs:unsignedByte">
            <xs:annotation>
              <xs:documentation>The Alpha Blending value. (0 for transparent, 255 for opaque).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GrayColor">
        <xs:annotation>
          <xs:documentation>A color in the grayscale color system.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="GrayLevel" type="xs:unsignedByte" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="RgbColor">
        <xs:annotation>
          <xs:documentation>A color in the RGB(Red Green Blue) color system.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="Red" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The red component of an IRgbColor (0-255).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Green" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The green component of an IRgbColor (0-255).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Blue" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The blue component of an IRgbColor (0-255).</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CmykColor">
        <xs:annotation>
          <xs:documentation>A color in the CMYK(Cyan Magenta Yellow, Black) color system.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="Cyan" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The cyan component of an ICmykColor (0-255).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Magenta" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The magenta component of an ICmykColor (0-255).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Yellow" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The yellow component of an ICmykColor (0-255).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Black" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The black component of an ICmykColor (0-255).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Overprint" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the color overprints.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="IsSpot" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the color is a spot color.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SpotDescription" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The description of the spot plate.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SpotPercent" type="xs:short">
                <xs:annotation>
                  <xs:documentation>The saturation of the spot plate.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="HlsColor">
        <xs:annotation>
          <xs:documentation>A color in the HLS(Hue, Luminance, Saturation) color system.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="Hue" type="xs:short">
                <xs:annotation>
                  <xs:documentation>The hue component of an IHlsColor (0-360).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Lightness" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The lightness component of an IHlsColor (0-100).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Saturation" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The saturation component of an HlslColor (0-100).</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="HsvColor">
        <xs:annotation>
          <xs:documentation>A color in the HSV (Hue, Saturation, Value) color system.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="Hue" type="xs:short">
                <xs:annotation>
                  <xs:documentation>The hue component of an IhsvColor (0-360).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Saturation" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The saturation component of an IhsvColor (0-100).</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Value" type="xs:unsignedByte">
                <xs:annotation>
                  <xs:documentation>The value component of an IhsvColor (0-100).</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Symbol" abstract="true">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence />
      </xs:complexType>
      <xs:simpleType name="esriSimpleFillStyle">
        <xs:annotation>
          <xs:documentation>Simple fill symbol styles.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSFSSolid">
            <xs:annotation>
              <xs:documentation>Solid fill.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSFSNull">
            <xs:annotation>
              <xs:documentation>Empty fill.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSFSHorizontal">
            <xs:annotation>
              <xs:documentation>Horizontal hatch fill ------.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSFSVertical">
            <xs:annotation>
              <xs:documentation>Vertical hatch fill ||||||.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSFSForwardDiagonal">
            <xs:annotation>
              <xs:documentation>45-degree downward, left-to-right hatch fill  \\\.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSFSBackwardDiagonal">
            <xs:annotation>
              <xs:documentation>45-degree upward, left-to-right hatch fill //////.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSFSCross">
            <xs:annotation>
              <xs:documentation>Horizontal and vertical crosshatch ++++++.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSFSDiagonalCross">
            <xs:annotation>
              <xs:documentation>45-degree crosshatch xxxxxx.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriSimpleLineStyle">
        <xs:annotation>
          <xs:documentation>Simple line symbol styles.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSLSSolid">
            <xs:annotation>
              <xs:documentation>The line is solid.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSLSDash">
            <xs:annotation>
              <xs:documentation>The line is dashed -------.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSLSDot">
            <xs:annotation>
              <xs:documentation>The line is dotted .......</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSLSDashDotDot">
            <xs:annotation>
              <xs:documentation>The line has alternating dashes and double dots _.._.._.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSLSNull">
            <xs:annotation>
              <xs:documentation>The line is invisible.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSLSInsideFrame">
            <xs:annotation>
              <xs:documentation>The line will fit into it's bounding rectangle, if any.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriSimpleMarkerStyle">
        <xs:annotation>
          <xs:documentation>Simple marker symbol styles.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSMSCircle">
            <xs:annotation>
              <xs:documentation>The marker is a circle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSMSSquare">
            <xs:annotation>
              <xs:documentation>The marker is a square.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSMSCross">
            <xs:annotation>
              <xs:documentation>The marker is a cross.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSMSX">
            <xs:annotation>
              <xs:documentation>The marker is an X.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSMSDiamond">
            <xs:annotation>
              <xs:documentation>The marker is a diamond.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextHorizontalAlignment">
        <xs:annotation>
          <xs:documentation>Horizontal text alignment options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTHALeft">
            <xs:annotation>
              <xs:documentation>The text is left justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTHACenter">
            <xs:annotation>
              <xs:documentation>The text is center justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTHARight">
            <xs:annotation>
              <xs:documentation>The text is right justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTHAFull">
            <xs:annotation>
              <xs:documentation>The text is fully justified.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextVerticalAlignment">
        <xs:annotation>
          <xs:documentation>Vertical text alignment options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTVATop">
            <xs:annotation>
              <xs:documentation>The text is aligned at the top.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTVACenter">
            <xs:annotation>
              <xs:documentation>The text is aligned at the center.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTVABaseline">
            <xs:annotation>
              <xs:documentation>The text is aligned at the baseline.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTVABottom">
            <xs:annotation>
              <xs:documentation>The text is aligned at the bottom.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextPosition">
        <xs:annotation>
          <xs:documentation>Text symbol position options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTPNormal">
            <xs:annotation>
              <xs:documentation>The text draws normally.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTPSuperscript">
            <xs:annotation>
              <xs:documentation>The text draws as superscript text.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTPSubscript">
            <xs:annotation>
              <xs:documentation>The text draws as subscript text.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextCase">
        <xs:annotation>
          <xs:documentation>Text symbol case options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTCNormal">
            <xs:annotation>
              <xs:documentation>The text draws normally.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTCLowercase">
            <xs:annotation>
              <xs:documentation>The text draws as all lowercase.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTCAllCaps">
            <xs:annotation>
              <xs:documentation>The text draws as all capitals.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTCSmallCaps">
            <xs:annotation>
              <xs:documentation>The text draws as small capitals.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextDirection">
        <xs:annotation>
          <xs:documentation>Text symbol direction options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTDHorizontal">
            <xs:annotation>
              <xs:documentation>The text draws horizontally.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTDAngle">
            <xs:annotation>
              <xs:documentation>The text draws along an angle.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriTDVertical">
            <xs:annotation>
              <xs:documentation>The text draws vertically.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriMaskStyle">
        <xs:annotation>
          <xs:documentation>Text symbol mask styles.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriMSNone">
            <xs:annotation>
              <xs:documentation>No mask.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriMSHalo">
            <xs:annotation>
              <xs:documentation>The text mask style is halo.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="SimpleFillSymbol">
        <xs:annotation>
          <xs:documentation>A fill symbol comprised from a predefined set of styles.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="FillSymbol">
            <xs:sequence>
              <xs:element name="Style" type="esriSimpleFillStyle">
                <xs:annotation>
                  <xs:documentation>Fill style.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SimpleLineSymbol">
        <xs:annotation>
          <xs:documentation>A line symbol comprised of a predefined set of styles.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="LineSymbol">
            <xs:sequence>
              <xs:element name="Style" type="esriSimpleLineStyle">
                <xs:annotation>
                  <xs:documentation>The style of the line symbol.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SimpleMarkerSymbol">
        <xs:annotation>
          <xs:documentation>A marker symbol comprised of a predefined set of styles.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MarkerSymbol">
            <xs:sequence>
              <xs:element name="Outline" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the symbol outline will draw.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="OutlineSize" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Outline diameter.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="OutlineColor" type="Color">
                <xs:annotation>
                  <xs:documentation>Outline color.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Style" type="esriSimpleMarkerStyle">
                <xs:annotation>
                  <xs:documentation>Marker style.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="TextSymbol">
        <xs:annotation>
          <xs:documentation>A symbol that controls how text is displayed.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element minOccurs="0" name="Color" type="Color">
                <xs:annotation>
                  <xs:documentation>Text color."</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="BreakCharIndex" type="xs:int">
                <xs:annotation>
                  <xs:documentation>Character to be interpreted as text line end.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="VerticalAlignment" type="esriTextVerticalAlignment">
                <xs:annotation>
                  <xs:documentation>Vertical alignment style.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="HorizontalAlignment" type="esriTextHorizontalAlignment">
                <xs:annotation>
                  <xs:documentation>Horizontal alignment style.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Clip" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the text will be clipped per geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="RightToLeft" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if the text is drawn from right to left.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Angle" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Text baseline angle.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="XOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Text offset along X-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="YOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Text offset along Y-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ShadowColor" type="Color">
                <xs:annotation>
                  <xs:documentation>The shadow color.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="ShadowXOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The shadow X offset.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="ShadowYOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The shadow Y offset.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="TextPosition" type="esriTextPosition">
                <xs:annotation>
                  <xs:documentation>The text position.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="TextCase" type="esriTextCase">
                <xs:annotation>
                  <xs:documentation>The text case.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="CharacterSpacing" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The character spacing.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element default="100.0" name="CharacterWidth" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The character width.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element default="100.0" name="WordSpacing" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The word spacing.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Kerning" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if kerning is on.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Leading" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The character leading.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="TextDirection" type="esriTextDirection">
                <xs:annotation>
                  <xs:documentation>The text direction.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="FlipAngle" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The flip angle.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="TypeSetting" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates if typesetting is used.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="TextPathClass" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Path of text baseline.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FillSymbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>The fill symbol.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Text" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Text to draw.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Size" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Text size.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="MaskStyle" type="esriMaskStyle">
                <xs:annotation>
                  <xs:documentation>The mask style.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="MaskSize" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The mask size.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MaskSymbol" type="Symbol">
                <xs:annotation>
                  <xs:documentation>The mask symbol.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontName" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The name of the font family.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontItalic" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates whether the font is italicized.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontUnderline" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates whether the font is underlined.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontStrikethrough" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>
                Indicates whether the font is strikethrough.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontWeight" type="xs:int">
                <xs:annotation>
                  <xs:documentation>
                The boldness or weight of the font.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontCharset" type="xs:int">
                <xs:annotation>
                  <xs:documentation>
                The character set used in the font, such as ANSI_CHARSET, DEFAULT_CHARSET, or SYMBOL_CHARSET.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontSizeHi" type="xs:int">
                <xs:annotation>
                  <xs:documentation>
                Point size of the font expressed in a 64-bit CY variable whose upper 32-bits contains the integer point size.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontSizeLo" type="xs:int">
                <xs:annotation>
                  <xs:documentation>
                Point size of the font expressed in a 64-bit CY variable whose lower 32-bits contains the fractional point size.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="TextParserClass" type="xs:string">
                <xs:annotation>
                  <xs:documentation>Text Parser Class ID</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CharacterMarkerSymbol">
        <xs:annotation>
          <xs:documentation>A marker symbol based on a character from a font.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="CartographicMarkerSymbol">
            <xs:sequence>
              <xs:element name="CharacterIndex" type="xs:int">
                <xs:annotation>
                  <xs:documentation>Character index within font.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontName" type="xs:string">
                <xs:annotation>
                  <xs:documentation>
                The name of the font family.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontItalic" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>
                Indicates whether the font is italicized.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontUnderline" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>
                Indicates whether the font is underlined.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontStrikethrough" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>
                Indicates whether the font is strikethrough.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontWeight" type="xs:int">
                <xs:annotation>
                  <xs:documentation>
                The boldness or weight of the font.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontCharset" type="xs:int">
                <xs:annotation>
                  <xs:documentation>
                The character set used in the font, such as ANSI_CHARSET, DEFAULT_CHARSET, or SYMBOL_CHARSET.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontSizeHi" type="xs:int">
                <xs:annotation>
                  <xs:documentation>
                Point size of the font expressed in a 64-bit CY variable whose upper 32-bits contains the integer point size.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FontSizeLo" type="xs:int">
                <xs:annotation>
                  <xs:documentation>
                Point size of the font expressed in a 64-bit CY variable whose lower 32-bits contains the fractional point size.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PictureMarkerSymbol">
        <xs:annotation>
          <xs:documentation>A marker symbol based on either a BMP or an EMF picture.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="CartographicMarkerSymbol">
            <xs:sequence>
              <xs:element minOccurs="0" name="BgColor" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Background color of the picture for 1 bit images.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="BitmapTransColor" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Color within bitmap indicating transparency.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Picture" type="xs:base64Binary">
                <xs:annotation>
                  <xs:documentation>Picture used for marker symbol.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FgColor" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Foreground color of the picture for 1 bit images.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Swap1BitColor" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>
                Indicates if foreground and background colors are swapped on 1 Bit Images Only.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PictureFillSymbol">
        <xs:annotation>
          <xs:documentation>A fill symbol based on either a BMP or an EMF picture.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="FillSymbol">
            <xs:sequence>
              <xs:element name="Picture" type="xs:base64Binary">
                <xs:annotation>
                  <xs:documentation>Picture used for fill.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="BgColor" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Fill background color.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="FgColor" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Fill foreground color.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="BitmapTransColor" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Color within bitmap indicating transparency.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="XSeparation" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Fill element separation along X-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="YSeparation" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Fill element separation along Y-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Swap1BitColor" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>
                Indicates if the foreground and background colors are swapped on 1 Bit Images Only.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Angle" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Angle of picture fill.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="XOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Fill offset along X-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="YOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Fill offset along Y-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" default="1.0" name="XScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Scale of picture fill along X-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" default="1.0" name="YScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Scale of picture fill along Y-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="FillSymbol" abstract="true">
        <xs:annotation>
          <xs:documentation>
        Fill Sybmol Properties.
      </xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element minOccurs="0" name="Color" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Fill color.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Outline" type="LineSymbol">
                <xs:annotation>
                  <xs:documentation>
                Line symbol of fill outline.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="LineSymbol" abstract="true">
        <xs:annotation>
          <xs:documentation>
        Line Symbol properties.
      </xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element minOccurs="0" name="Color" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Line symbol color.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Width" type="xs:double">
                <xs:annotation>
                  <xs:documentation>
                Line symbol width.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MarkerSymbol" abstract="true">
        <xs:annotation>
          <xs:documentation>
        Marker Symbol Properties.
      </xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element name="Angle" type="xs:double">
                <xs:annotation>
                  <xs:documentation>
                Marker symbol angle.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Color" type="Color">
                <xs:annotation>
                  <xs:documentation>
                Marker symbol color.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Size" type="xs:double">
                <xs:annotation>
                  <xs:documentation>
                Marker symbol size.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="XOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>
                Symbol X-axis offset from point location.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="YOffset" type="xs:double">
                <xs:annotation>
                  <xs:documentation>
                Symbol Y-axis offset from point location.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CartographicMarkerSymbol" abstract="true">
        <xs:annotation>
          <xs:documentation>
        Cartographic marker symbol properties.
      </xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MarkerSymbol">
            <xs:sequence>
              <xs:element default="1.0" name="XScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Symbol scale along X-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element default="1.0" name="YScale" type="xs:double">
                <xs:annotation>
                  <xs:documentation>Symbol scale along Y-axis.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="XMLBinarySymbol">
        <xs:annotation>
          <xs:documentation>XML shim class for symbols that don't implement IXMLSerialize.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element name="Data" type="XMLPersistedObject" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="XMLBinaryFillSymbol">
        <xs:annotation>
          <xs:documentation>XML shim class for fill symbols that don't implement IXMLSerialize.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="FillSymbol">
            <xs:sequence>
              <xs:element name="Data" type="XMLPersistedObject" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:simpleType name="esriFieldType">
        <xs:annotation>
          <xs:documentation>Field Types.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriFieldTypeInteger">
            <xs:annotation>
              <xs:documentation>Long Integer.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeSmallInteger">
            <xs:annotation>
              <xs:documentation>Integer.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeDouble">
            <xs:annotation>
              <xs:documentation>Double-precision floating-point number.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeSingle">
            <xs:annotation>
              <xs:documentation>Single-precision floating-point number.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeString">
            <xs:annotation>
              <xs:documentation>Character string.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeDate">
            <xs:annotation>
              <xs:documentation>Date.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeGeometry">
            <xs:annotation>
              <xs:documentation>Geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeOID">
            <xs:annotation>
              <xs:documentation>Long Integer representing an object identifier.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeBlob">
            <xs:annotation>
              <xs:documentation>Binary Large Object.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeGlobalID">
            <xs:annotation>
              <xs:documentation>ESRI Global ID.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeRaster">
            <xs:annotation>
              <xs:documentation>Raster.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeGUID">
            <xs:annotation>
              <xs:documentation>Globally Unique Identifier.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFieldTypeXML">
            <xs:annotation>
              <xs:documentation>XML Document</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="GeometryDef">
        <xs:annotation>
          <xs:documentation>ESRI Geometry Definition Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="AvgNumPoints" type="xs:int">
            <xs:annotation>
              <xs:documentation>Estimated average number of points per feature.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="GeometryType" type="esriGeometryType">
            <xs:annotation>
              <xs:documentation>The enumerated geometry type.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="HasM" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the feature class has measure (M) values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="HasZ" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the featureClass has Z values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="SpatialReference" type="SpatialReference">
            <xs:annotation>
              <xs:documentation>The spatial reference for the dataset.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GridSize0" type="xs:double" />
          <xs:element minOccurs="0" name="GridSize1" type="xs:double" />
          <xs:element minOccurs="0" name="GridSize2" type="xs:double" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriMergePolicyType">
        <xs:annotation>
          <xs:documentation>Merge policy types.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriMPTSumValues">
            <xs:annotation>
              <xs:documentation>Sum the values merge policy.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriMPTAreaWeighted">
            <xs:annotation>
              <xs:documentation>Area weighted merge policy.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriMPTDefaultValue">
            <xs:annotation>
              <xs:documentation>Default value merge policy.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriSplitPolicyType">
        <xs:annotation>
          <xs:documentation>Split policy types.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSPTGeometryRatio">
            <xs:annotation>
              <xs:documentation>Geometry-ratioed split policy.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSPTDuplicate">
            <xs:annotation>
              <xs:documentation>Duplicate split policy.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSPTDefaultValue">
            <xs:annotation>
              <xs:documentation>Default value split policy.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Domain" abstract="true">
        <xs:annotation>
          <xs:documentation>
        Domain Properties control and their merge split policies control.
      </xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="DomainName" type="xs:string">
            <xs:annotation>
              <xs:documentation>
            The ID of the domain.
          </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="FieldType" type="esriFieldType">
            <xs:annotation>
              <xs:documentation>The field type of the field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="MergePolicy" type="esriMergePolicyType">
            <xs:annotation>
              <xs:documentation>The merge policy.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="SplitPolicy" type="esriSplitPolicyType">
            <xs:annotation>
              <xs:documentation>The split policy.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>The description of the domain.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Owner" type="xs:string">
            <xs:annotation>
              <xs:documentation>The owner of the domain.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Field">
        <xs:annotation>
          <xs:documentation>ESRI Field Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Name" type="xs:string">
            <xs:annotation>
              <xs:documentation>The name of the field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Type" type="esriFieldType">
            <xs:annotation>
              <xs:documentation>The type of the field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="IsNullable" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the field can contain null values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Length" type="xs:int">
            <xs:annotation>
              <xs:documentation>The maximum length, in bytes, for values described by the field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Precision" type="xs:int">
            <xs:annotation>
              <xs:documentation>The precision for field values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Scale" type="xs:int">
            <xs:annotation>
              <xs:documentation>The scale for field values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Required" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the field is required.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Editable" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the field is editable.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DomainFixed" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if the field's domain is fixed.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="GeometryDef" type="GeometryDef">
            <xs:annotation>
              <xs:documentation>The geometry definition for the field if IsGeometry is TRUE.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AliasName" type="xs:string">
            <xs:annotation>
              <xs:documentation>The alias name of the field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ModelName" type="xs:string">
            <xs:annotation>
              <xs:documentation>The model name of the field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="DefaultValue" type="xs:anyType">
            <xs:annotation>
              <xs:documentation>The default value of the field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Domain" type="Domain">
            <xs:annotation>
              <xs:documentation>The default domain of the field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RasterDef" type="RasterDef">
            <xs:annotation>
              <xs:documentation>The raster column definition.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfField">
        <xs:annotation>
          <xs:documentation>ESRI FieldArray object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Field" type="Field" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Fields">
        <xs:annotation>
          <xs:documentation>ESRI Fields Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="FieldArray" type="ArrayOfField" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfValue">
        <xs:annotation>
          <xs:documentation>ESRI Value Array Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Value" nillable="true" type="xs:anyType" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Record">
        <xs:annotation>
          <xs:documentation>ESRI Record Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Values" type="ArrayOfValue" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfRecord">
        <xs:annotation>
          <xs:documentation>ESRI RecordArray object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Record" type="Record" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="RecordSet">
        <xs:annotation>
          <xs:documentation>ESRI RecordSet Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Fields" type="Fields">
            <xs:annotation>
              <xs:documentation>returns the fields for the recordset</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Records" type="ArrayOfRecord" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriSearchOrder">
        <xs:annotation>
          <xs:documentation>Spatial Filter Search Order.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSearchOrderSpatial">
            <xs:annotation>
              <xs:documentation>Spatial query is applied first.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSearchOrderAttribute">
            <xs:annotation>
              <xs:documentation>Attribute query is applied first.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriSpatialRelEnum">
        <xs:annotation>
          <xs:documentation>Queryable Spatial Relationships.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSpatialRelUndefined">
            <xs:annotation>
              <xs:documentation>No Defined Spatial Relationship.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelIntersects">
            <xs:annotation>
              <xs:documentation>Query Geometry Intersects Target Geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelEnvelopeIntersects">
            <xs:annotation>
              <xs:documentation>Envelope of Query Geometry Intersects Envelope of Target Geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelIndexIntersects">
            <xs:annotation>
              <xs:documentation>Query Geometry Intersects Index entry for Target Geometry (Primary Index Filter).</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelTouches">
            <xs:annotation>
              <xs:documentation>Query Geometry Touches Target Geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelOverlaps">
            <xs:annotation>
              <xs:documentation>Query Geometry Overlaps Target Geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelCrosses">
            <xs:annotation>
              <xs:documentation>Query Geometry Crosses Target Geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelWithin">
            <xs:annotation>
              <xs:documentation>Query Geometry is Within Target Geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelContains">
            <xs:annotation>
              <xs:documentation>Query Geometry Contains Target Geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriSpatialRelRelation">
            <xs:annotation>
              <xs:documentation>Query geometry IBE(Interior-Boundary-Exterior) relationship with target geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="FIDSet">
        <xs:annotation>
          <xs:documentation>ESRI FID Set object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="FIDArray" type="ArrayOfInt" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="QueryFilter">
        <xs:annotation>
          <xs:documentation>ESRI Query Filter Object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="SubFields" type="xs:string">
            <xs:annotation>
              <xs:documentation>The comma delimited list of field names for the filter.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="WhereClause" type="xs:string">
            <xs:annotation>
              <xs:documentation>The where clause for the filter.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SpatialReferenceFieldName" type="xs:string">
            <xs:annotation>
              <xs:documentation>
            The field name of the output spatial reference.
          </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="Resolution" type="xs:double">
            <xs:annotation>
              <xs:documentation>
            The spatial resolution in which to output geometry.
          </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="OutputSpatialReference" type="SpatialReference">
            <xs:annotation>
              <xs:documentation>The spatial reference in which to output geometry for a given field.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FIDSet" type="FIDSet" />
          <xs:element minOccurs="0" name="PostfixClause" type="xs:string">
            <xs:annotation>
              <xs:documentation>A clause that will be appended to the end of the where clause. Most commonly used for clauses like ORDER BY.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="FilterDefs" type="ArrayOfFilterDef">
            <xs:annotation>
              <xs:documentation>The filter definitions specified for this query filter.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SpatialFilter">
        <xs:annotation>
          <xs:documentation>ESRI Spatial Filter Object.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="QueryFilter">
            <xs:sequence>
              <xs:element name="SearchOrder" type="esriSearchOrder">
                <xs:annotation>
                  <xs:documentation>The search order used by the filter.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SpatialRel" type="esriSpatialRelEnum">
                <xs:annotation>
                  <xs:documentation>The spatial relationship  checked by the filter.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SpatialRelDescription" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The array elements which describe the spatial relation between the query geometry and the requested geometries. There are 9 chars in this string which can be either 'F', 'T' or '*'; e.g., TT*FFT***' represents CONTAIN.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="FilterGeometry" type="Geometry">
                <xs:annotation>
                  <xs:documentation>
                The query geometry used to filter results.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="GeometryFieldName" type="xs:string">
                <xs:annotation>
                  <xs:documentation>
                The name of the Geometry field to which the filter applies.
              </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="FilterOwnsGeometry" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>Indicates whether the filter owns the query geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="FilterDef" abstract="true">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
      </xs:complexType>
      <xs:complexType name="XMLFilterDef">
        <xs:annotation>
          <xs:documentation>ESRI XML Filter Definition Object.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="FilterDef">
            <xs:sequence>
              <xs:element name="FieldName" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The field name.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Expression" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The filter expression.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfFilterDef">
        <xs:annotation>
          <xs:documentation>An array of filter definition objects.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="FilterDef" type="FilterDef" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="RangeDomain">
        <xs:annotation>
          <xs:documentation>ESRI Range Domain object.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Domain">
            <xs:sequence>
              <xs:element name="MaxValue" type="xs:anyType">
                <xs:annotation>
                  <xs:documentation>The maximum value for the associated attribute.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="MinValue" type="xs:anyType">
                <xs:annotation>
                  <xs:documentation>The minimum value for the associated attribute.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CodedValue">
        <xs:annotation>
          <xs:documentation>
        ESRI Attribute set constraint object.
      </xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Name" type="xs:string" />
          <xs:element name="Code" type="xs:anyType" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfCodedValue">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="CodedValue" type="CodedValue" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CodedValueDomain">
        <xs:annotation>
          <xs:documentation>ESRI Attribute set constraint object.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Domain">
            <xs:sequence>
              <xs:element name="CodedValues" type="ArrayOfCodedValue" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="BitMaskCodedValueDomain">
        <xs:annotation>
          <xs:documentation>ESRI Attribute bitmask constraint object.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="CodedValueDomain" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="RasterDef">
        <xs:annotation>
          <xs:documentation>Raster Column Definition Class.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="Description" type="xs:string">
            <xs:annotation>
              <xs:documentation>The raster column description.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="IsByRef" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>
            Indicates if the Raster column value is to be managed by GeoDatabase.
          </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
            <xs:annotation>
              <xs:documentation>The SpatialReference of the raster.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GeometryResultOptions">
        <xs:annotation>
          <xs:documentation>ESRI Geometry export options object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" default="false" name="DensifyGeometries" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>if true, MaximumSegmentLength and MaximumDeviation will be honored to densify geometry in the results</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" default="-1.0" name="MaximumSegmentLength" type="xs:double">
            <xs:annotation>
              <xs:documentation>.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" default="0.0" name="MaximumDeviation" type="xs:double">
            <xs:annotation>
              <xs:documentation>.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" default="false" name="GeneralizeGeometries" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>if true, MaximumAllowableOffset will be honored to generalize the geometry in the results.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" default="0.0" name="MaximumAllowableOffset" type="xs:double">
            <xs:annotation>
              <xs:documentation>.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PropertySetProperty">
        <xs:annotation>
          <xs:documentation>ESRI PropertySet Property object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Key" type="xs:string" />
          <xs:element minOccurs="0" name="Value" nillable="true" type="xs:anyType" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfPropertySetProperty">
        <xs:annotation>
          <xs:documentation>ESRI PropertySet Property Array object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="PropertySetProperty" type="PropertySetProperty" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PropertySet">
        <xs:annotation>
          <xs:documentation>ESRI Property Set object.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="PropertyArray" type="ArrayOfPropertySetProperty" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="XMLPersistedObject">
        <xs:annotation>
          <xs:documentation>Object to serialize objects to XML.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="Bytes" type="xs:base64Binary" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NumericFormat">
        <xs:annotation>
          <xs:documentation>An object for formatting numbers in a variety of numeric formats.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="RoundingOption" type="esriRoundingOptionEnum">
            <xs:annotation>
              <xs:documentation>The rounding option applied to the ValueToString method.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RoundingValue" type="xs:int">
            <xs:annotation>
              <xs:documentation>The rounding value, whose meaning depends on the rounding option.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AlignmentOption" type="esriNumericAlignmentEnum">
            <xs:annotation>
              <xs:documentation>The alignment option applied to the ValueToString method.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AlignmentWidth" type="xs:int">
            <xs:annotation>
              <xs:documentation>The alignment width applied to the ValueToString method.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UseSeparator" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if formatted numbers contain digit grouping symbols.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ZeroPad" type="xs:boolean">
            <xs:annotation>
              <xs:documentation>Indicates if formatted numbers contain padded zeros to the right of the decimal.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ShowPlus" type="xs:boolean" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfInt">
        <xs:annotation>
          <xs:documentation>An object for holding a Long array.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Int" type="xs:int" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfString">
        <xs:annotation>
          <xs:documentation>An object for holding a String array.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="String" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriUnits">
        <xs:annotation>
          <xs:documentation>ESRI measurement units.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriUnknownUnits">
            <xs:annotation>
              <xs:documentation>Unknown.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriInches">
            <xs:annotation>
              <xs:documentation>Inches.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriPoints">
            <xs:annotation>
              <xs:documentation>Points.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriFeet">
            <xs:annotation>
              <xs:documentation>Feet.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriYards">
            <xs:annotation>
              <xs:documentation>Yards.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriMiles">
            <xs:annotation>
              <xs:documentation>Miles.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriNauticalMiles">
            <xs:annotation>
              <xs:documentation>Nautical miles.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriMillimeters">
            <xs:annotation>
              <xs:documentation>Millimeters.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriCentimeters">
            <xs:annotation>
              <xs:documentation>Centimeters.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriMeters">
            <xs:annotation>
              <xs:documentation>Meters.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriKilometers">
            <xs:annotation>
              <xs:documentation>Kilometers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriDecimalDegrees">
            <xs:annotation>
              <xs:documentation>Decimal degrees.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriDecimeters">
            <xs:annotation>
              <xs:documentation>Decimeters.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriRoundingOptionEnum">
        <xs:annotation>
          <xs:documentation>Number format rounding options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRoundNumberOfDecimals">
            <xs:annotation>
              <xs:documentation>Specify the number of decimal places.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriRoundNumberOfSignificantDigits">
            <xs:annotation>
              <xs:documentation>Specify the number of significant digits.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNumericAlignmentEnum">
        <xs:annotation>
          <xs:documentation>Number format alignment options.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriAlignRight">
            <xs:annotation>
              <xs:documentation>Right-justify formatted numbers within the AlignmentWidth.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriAlignLeft">
            <xs:annotation>
              <xs:documentation>Left-justify formatted numbers.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriGeometryType">
        <xs:annotation>
          <xs:documentation>The available kinds of geometry objects.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriGeometryPoint">
            <xs:annotation>
              <xs:documentation>A single zero dimensional geometry.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriGeometryMultipoint">
            <xs:annotation>
              <xs:documentation>An ordered collection of points.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriGeometryPolyline">
            <xs:annotation>
              <xs:documentation>An ordered collection of paths.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriGeometryPolygon">
            <xs:annotation>
              <xs:documentation>A collection of rings ordered by their containment relationship.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="esriGeometryMultiPatch">
            <xs:annotation>
              <xs:documentation>A collection of surface patches.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="GeoTransformation">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="WKT" type="xs:string" />
          <xs:element minOccurs="0" name="WKID" type="xs:int" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SpatialReference" abstract="true">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" name="WKT" type="xs:string" />
          <xs:element minOccurs="0" name="XOrigin" type="xs:double" />
          <xs:element minOccurs="0" name="YOrigin" type="xs:double" />
          <xs:element minOccurs="0" name="XYScale" type="xs:double" />
          <xs:element minOccurs="0" name="ZOrigin" type="xs:double" />
          <xs:element minOccurs="0" name="ZScale" type="xs:double" />
          <xs:element minOccurs="0" name="MOrigin" type="xs:double" />
          <xs:element minOccurs="0" name="MScale" type="xs:double" />
          <xs:element minOccurs="0" name="XYTolerance" type="xs:double">
            <xs:annotation>
              <xs:documentation>The xy tolerance used to control point coalescing in the X and Y dimensions.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ZTolerance" type="xs:double">
            <xs:annotation>
              <xs:documentation>The tolerance used to control point coalescing strictly along the Z axis.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="MTolerance" type="xs:double">
            <xs:annotation>
              <xs:documentation>The tolerance used to determine equality of M values.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="HighPrecision" type="xs:boolean" />
          <xs:element minOccurs="0" name="LeftLongitude" type="xs:double" />
          <xs:element minOccurs="0" name="WKID" type="xs:int" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ProjectedCoordinateSystem">
        <xs:annotation>
          <xs:documentation>Creates a projected coordinate system.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="SpatialReference" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GeographicCoordinateSystem">
        <xs:annotation>
          <xs:documentation>Creates a geographic coordinate system.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="SpatialReference" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="UnknownCoordinateSystem">
        <xs:annotation>
          <xs:documentation>Creates an unknown coordinate system.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="SpatialReference" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Geometry">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
      </xs:complexType>
      <xs:complexType name="Curve" abstract="true">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Geometry" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Segment" abstract="true">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Curve">
            <xs:sequence>
              <xs:element name="FromPoint" type="Point" />
              <xs:element name="ToPoint" type="Point" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Polycurve" abstract="true">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Curve" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Envelope" abstract="true">
        <xs:annotation>
          <xs:documentation>A rectangle with sides parallel to a coordinate system defining the extent of another geometry; optionally has min and max measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Geometry" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EnvelopeN">
        <xs:annotation>
          <xs:documentation>A rectangle with sides parallel to a coordinate system defining the extent of another geometry; optionally has min and max measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Envelope">
            <xs:sequence>
              <xs:element name="XMin" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The position of the left side.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="YMin" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The position of the bottom.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="XMax" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The position of the right side.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="YMax" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The position of the top.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ZMin" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The minimum Z value in the area of the envelope.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ZMax" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The maximum Z value in the area of the envelope.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MMin" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The minimum measure value in the area of the envelope.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MMax" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The maximum measure value in the area of the envelope.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
                <xs:annotation>
                  <xs:documentation>The spatial reference associated with this geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EnvelopeB">
        <xs:annotation>
          <xs:documentation>A rectangle with sides parallel to a coordinate system defining the extent of another geometry; optionally has min and max measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Envelope">
            <xs:sequence>
              <xs:element name="Bytes" type="xs:base64Binary" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Point" abstract="true">
        <xs:annotation>
          <xs:documentation>A two dimensional point, optionally with measure, height, and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Geometry" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PointN">
        <xs:annotation>
          <xs:documentation>A two dimensional point, optionally with measure, height, and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Point">
            <xs:sequence>
              <xs:element name="X" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The X coordinate.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Y" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The Y coordinate.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="M" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The measure attribute.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Z" type="xs:double">
                <xs:annotation>
                  <xs:documentation>The Z attribute.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="ID" type="xs:int">
                <xs:annotation>
                  <xs:documentation>The Point ID attribute.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
                <xs:annotation>
                  <xs:documentation>The spatial reference associated with this geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PointB">
        <xs:annotation>
          <xs:documentation>A two dimensional point, optionally with measure, height, and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Point">
            <xs:sequence>
              <xs:element name="Bytes" type="xs:base64Binary" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Multipoint" abstract="true">
        <xs:annotation>
          <xs:documentation>An ordered collection of points; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Geometry" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MultipointB">
        <xs:annotation>
          <xs:documentation>An ordered collection of points; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Multipoint">
            <xs:sequence>
              <xs:element name="Bytes" type="xs:base64Binary" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MultipointN">
        <xs:annotation>
          <xs:documentation>An ordered collection of points; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Multipoint">
            <xs:sequence>
              <xs:element name="HasID" type="xs:boolean" />
              <xs:element name="HasZ" type="xs:boolean" />
              <xs:element name="HasM" type="xs:boolean" />
              <xs:element minOccurs="0" name="Extent" type="Envelope" />
              <xs:element minOccurs="0" name="PointArray" type="ArrayOfPoint" />
              <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
                <xs:annotation>
                  <xs:documentation>The spatial reference associated with this geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Line">
        <xs:annotation>
          <xs:documentation>XML shim class for Line.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Segment" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EllipticArc">
        <xs:annotation>
          <xs:documentation>XML shim class for EllipticArc.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Segment">
            <xs:sequence>
              <xs:element name="EllipseStd" type="xs:boolean" />
              <xs:element name="CenterPoint" type="Point" />
              <xs:element name="Rotation" type="xs:double" />
              <xs:element name="MinorMajorRatio" type="xs:double" />
              <xs:element name="IsCounterClockWise" type="xs:boolean" />
              <xs:element name="IsMinor" type="xs:boolean" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CircularArc">
        <xs:annotation>
          <xs:documentation>XML shim class for CircularArc.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Segment">
            <xs:sequence>
              <xs:element name="CenterPoint" type="Point" />
              <xs:element minOccurs="0" name="FromAngle" type="xs:double" />
              <xs:element minOccurs="0" name="ToAngle" type="xs:double" />
              <xs:element name="IsCounterClockwise" type="xs:boolean" />
              <xs:element name="IsMinor" type="xs:boolean" />
              <xs:element name="IsLine" type="xs:boolean" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="BezierCurve">
        <xs:annotation>
          <xs:documentation>XML shim class for BezierCurve.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Segment">
            <xs:sequence>
              <xs:element name="Degree" type="xs:int" />
              <xs:element name="ControlPointArray" type="ArrayOfPoint" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Path">
        <xs:annotation>
          <xs:documentation>A sequence of connected segments.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Curve">
            <xs:sequence>
              <xs:element minOccurs="0" name="PointArray" type="ArrayOfPoint" />
              <xs:element minOccurs="0" name="SegmentArray" type="ArrayOfSegment" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Ring">
        <xs:annotation>
          <xs:documentation>An area bounded by one, closed sequence of connected segments; optionally has measure, height and ID attributes at each vertex.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Path" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Polygon" abstract="true">
        <xs:annotation>
          <xs:documentation>A collection of rings ordered by their containment relationship; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Polycurve" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolygonN">
        <xs:annotation>
          <xs:documentation>A collection of rings ordered by their containment relationship; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Polygon">
            <xs:sequence>
              <xs:element name="HasID" type="xs:boolean" />
              <xs:element name="HasZ" type="xs:boolean" />
              <xs:element name="HasM" type="xs:boolean" />
              <xs:element minOccurs="0" name="Extent" type="Envelope" />
              <xs:element name="RingArray" type="ArrayOfRing" />
              <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
                <xs:annotation>
                  <xs:documentation>The spatial reference associated with this geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolygonB">
        <xs:annotation>
          <xs:documentation>A collection of rings ordered by their containment relationship; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Polygon">
            <xs:sequence>
              <xs:element name="Bytes" type="xs:base64Binary" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Polyline" abstract="true">
        <xs:annotation>
          <xs:documentation>An ordered collection of paths; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Polycurve" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolylineN">
        <xs:annotation>
          <xs:documentation>An ordered collection of paths; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Polyline">
            <xs:sequence>
              <xs:element name="HasID" type="xs:boolean" />
              <xs:element name="HasZ" type="xs:boolean" />
              <xs:element name="HasM" type="xs:boolean" />
              <xs:element minOccurs="0" name="Extent" type="Envelope" />
              <xs:element name="PathArray" type="ArrayOfPath" />
              <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference">
                <xs:annotation>
                  <xs:documentation>The spatial reference associated with this geometry.</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolylineB">
        <xs:annotation>
          <xs:documentation>An ordered collection of paths; optionally has measure, height and ID attributes.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Polyline">
            <xs:sequence>
              <xs:element name="Bytes" type="xs:base64Binary" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfPoint">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Point" type="Point" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfPath">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Path" type="Path" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfRing">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Ring" type="Ring" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfSegment">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Segment" type="Segment" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MultiPatch" abstract="true">
        <xs:annotation>
          <xs:documentation>A collection of surface patches.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Geometry" />
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MultiPatchB">
        <xs:annotation>
          <xs:documentation>A collection of surface patches.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MultiPatch">
            <xs:sequence>
              <xs:element name="Bytes" type="xs:base64Binary" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MultiPatchN">
        <xs:annotation>
          <xs:documentation>A collection of surface patches.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="MultiPatch">
            <xs:sequence>
              <xs:element name="HasID" type="xs:boolean" />
              <xs:element name="HasZ" type="xs:boolean" />
              <xs:element name="HasM" type="xs:boolean" />
              <xs:element name="Extent" type="Envelope" />
              <xs:element name="SurfacePatchArray" type="ArrayOfSurfacePatch" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfSurfacePatch">
        <xs:annotation>
          <xs:documentation />
        </xs:annotation>
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="SurfacePatch" type="Geometry" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="TriangleFan">
        <xs:annotation>
          <xs:documentation>A continuous 3D fan of triangles, where each triangle after the first shares an edge with the preceding triangle, and all triangles share a common pivot point.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Geometry">
            <xs:sequence>
              <xs:element minOccurs="0" name="PointArray" type="ArrayOfPoint" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="TriangleStrip">
        <xs:annotation>
          <xs:documentation>A continuous 3D strip of triangles, where each triangle after the first shares an edge with the preceding triangle.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="false">
          <xs:extension base="Geometry">
            <xs:sequence>
              <xs:element minOccurs="0" name="PointArray" type="ArrayOfPoint" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
    </xs:schema>
  </types>
  <message name="GetDocumentInfoIn">
    <part name="parameters" element="e:GetDocumentInfo" />
  </message>
  <message name="GetDocumentInfoOut">
    <part name="parameters" element="e:GetDocumentInfoResponse" />
  </message>
  <message name="GetTileImageInfoIn">
    <part name="parameters" element="e:GetTileImageInfo" />
  </message>
  <message name="GetTileImageInfoOut">
    <part name="parameters" element="e:GetTileImageInfoResponse" />
  </message>
  <message name="QueryFeatureData2In">
    <part name="parameters" element="e:QueryFeatureData2" />
  </message>
  <message name="QueryFeatureData2Out">
    <part name="parameters" element="e:QueryFeatureData2Response" />
  </message>
  <message name="GetMapNameIn">
    <part name="parameters" element="e:GetMapName" />
  </message>
  <message name="GetMapNameOut">
    <part name="parameters" element="e:GetMapNameResponse" />
  </message>
  <message name="GetSQLSyntaxInfoIn">
    <part name="parameters" element="e:GetSQLSyntaxInfo" />
  </message>
  <message name="GetSQLSyntaxInfoOut">
    <part name="parameters" element="e:GetSQLSyntaxInfoResponse" />
  </message>
  <message name="ExportScaleBarIn">
    <part name="parameters" element="e:ExportScaleBar" />
  </message>
  <message name="ExportScaleBarOut">
    <part name="parameters" element="e:ExportScaleBarResponse" />
  </message>
  <message name="GetVirtualCacheDirectoryIn">
    <part name="parameters" element="e:GetVirtualCacheDirectory" />
  </message>
  <message name="GetVirtualCacheDirectoryOut">
    <part name="parameters" element="e:GetVirtualCacheDirectoryResponse" />
  </message>
  <message name="ComputeDistanceIn">
    <part name="parameters" element="e:ComputeDistance" />
  </message>
  <message name="ComputeDistanceOut">
    <part name="parameters" element="e:ComputeDistanceResponse" />
  </message>
  <message name="GetSupportedImageReturnTypesIn">
    <part name="parameters" element="e:GetSupportedImageReturnTypes" />
  </message>
  <message name="GetSupportedImageReturnTypesOut">
    <part name="parameters" element="e:GetSupportedImageReturnTypesResponse" />
  </message>
  <message name="QueryFeatureIDsIn">
    <part name="parameters" element="e:QueryFeatureIDs" />
  </message>
  <message name="QueryFeatureIDsOut">
    <part name="parameters" element="e:QueryFeatureIDsResponse" />
  </message>
  <message name="QueryFeatureDataIn">
    <part name="parameters" element="e:QueryFeatureData" />
  </message>
  <message name="QueryFeatureDataOut">
    <part name="parameters" element="e:QueryFeatureDataResponse" />
  </message>
  <message name="ToMapPointsIn">
    <part name="parameters" element="e:ToMapPoints" />
  </message>
  <message name="ToMapPointsOut">
    <part name="parameters" element="e:ToMapPointsResponse" />
  </message>
  <message name="GetTileCacheInfoIn">
    <part name="parameters" element="e:GetTileCacheInfo" />
  </message>
  <message name="GetTileCacheInfoOut">
    <part name="parameters" element="e:GetTileCacheInfoResponse" />
  </message>
  <message name="QueryHyperlinksIn">
    <part name="parameters" element="e:QueryHyperlinks" />
  </message>
  <message name="QueryHyperlinksOut">
    <part name="parameters" element="e:QueryHyperlinksResponse" />
  </message>
  <message name="HasLayerCacheIn">
    <part name="parameters" element="e:HasLayerCache" />
  </message>
  <message name="HasLayerCacheOut">
    <part name="parameters" element="e:HasLayerCacheResponse" />
  </message>
  <message name="QueryFeatureIDs2In">
    <part name="parameters" element="e:QueryFeatureIDs2" />
  </message>
  <message name="QueryFeatureIDs2Out">
    <part name="parameters" element="e:QueryFeatureIDs2Response" />
  </message>
  <message name="GetDefaultMapNameIn">
    <part name="parameters" element="e:GetDefaultMapName" />
  </message>
  <message name="GetDefaultMapNameOut">
    <part name="parameters" element="e:GetDefaultMapNameResponse" />
  </message>
  <message name="QueryFeatureCount2In">
    <part name="parameters" element="e:QueryFeatureCount2" />
  </message>
  <message name="QueryFeatureCount2Out">
    <part name="parameters" element="e:QueryFeatureCount2Response" />
  </message>
  <message name="IdentifyIn">
    <part name="parameters" element="e:Identify" />
  </message>
  <message name="IdentifyOut">
    <part name="parameters" element="e:IdentifyResponse" />
  </message>
  <message name="IsFixedScaleMapIn">
    <part name="parameters" element="e:IsFixedScaleMap" />
  </message>
  <message name="IsFixedScaleMapOut">
    <part name="parameters" element="e:IsFixedScaleMapResponse" />
  </message>
  <message name="GetLegendInfoIn">
    <part name="parameters" element="e:GetLegendInfo" />
  </message>
  <message name="GetLegendInfoOut">
    <part name="parameters" element="e:GetLegendInfoResponse" />
  </message>
  <message name="FromMapPointsIn">
    <part name="parameters" element="e:FromMapPoints" />
  </message>
  <message name="FromMapPointsOut">
    <part name="parameters" element="e:FromMapPointsResponse" />
  </message>
  <message name="GetCacheDescriptionInfoIn">
    <part name="parameters" element="e:GetCacheDescriptionInfo" />
  </message>
  <message name="GetCacheDescriptionInfoOut">
    <part name="parameters" element="e:GetCacheDescriptionInfoResponse" />
  </message>
  <message name="GetMapTileIn">
    <part name="parameters" element="e:GetMapTile" />
  </message>
  <message name="GetMapTileOut">
    <part name="parameters" element="e:GetMapTileResponse" />
  </message>
  <message name="GetLayerTileIn">
    <part name="parameters" element="e:GetLayerTile" />
  </message>
  <message name="GetLayerTileOut">
    <part name="parameters" element="e:GetLayerTileResponse" />
  </message>
  <message name="GetServerInfoIn">
    <part name="parameters" element="e:GetServerInfo" />
  </message>
  <message name="GetServerInfoOut">
    <part name="parameters" element="e:GetServerInfoResponse" />
  </message>
  <message name="GetMapCountIn">
    <part name="parameters" element="e:GetMapCount" />
  </message>
  <message name="GetMapCountOut">
    <part name="parameters" element="e:GetMapCountResponse" />
  </message>
  <message name="QueryFeatureCountIn">
    <part name="parameters" element="e:QueryFeatureCount" />
  </message>
  <message name="QueryFeatureCountOut">
    <part name="parameters" element="e:QueryFeatureCountResponse" />
  </message>
  <message name="GetServiceConfigurationInfoIn">
    <part name="parameters" element="e:GetServiceConfigurationInfo" />
  </message>
  <message name="GetServiceConfigurationInfoOut">
    <part name="parameters" element="e:GetServiceConfigurationInfoResponse" />
  </message>
  <message name="GetCacheControlInfoIn">
    <part name="parameters" element="e:GetCacheControlInfo" />
  </message>
  <message name="GetCacheControlInfoOut">
    <part name="parameters" element="e:GetCacheControlInfoResponse" />
  </message>
  <message name="HasSingleFusedMapCacheIn">
    <part name="parameters" element="e:HasSingleFusedMapCache" />
  </message>
  <message name="HasSingleFusedMapCacheOut">
    <part name="parameters" element="e:HasSingleFusedMapCacheResponse" />
  </message>
  <message name="GetCacheNameIn">
    <part name="parameters" element="e:GetCacheName" />
  </message>
  <message name="GetCacheNameOut">
    <part name="parameters" element="e:GetCacheNameResponse" />
  </message>
  <message name="ComputeScaleIn">
    <part name="parameters" element="e:ComputeScale" />
  </message>
  <message name="ComputeScaleOut">
    <part name="parameters" element="e:ComputeScaleResponse" />
  </message>
  <message name="FindIn">
    <part name="parameters" element="e:Find" />
  </message>
  <message name="FindOut">
    <part name="parameters" element="e:FindResponse" />
  </message>
  <message name="ExportMapImageIn">
    <part name="parameters" element="e:ExportMapImage" />
  </message>
  <message name="ExportMapImageOut">
    <part name="parameters" element="e:ExportMapImageResponse" />
  </message>
  <portType name="MapServerPort">
    <documentation>The MapServer component provides programmatic access to the contents of a map document on disk, and creates images of the map contents based on user requests. Designed for use in building map-based web services and web applications.</documentation>
    <operation name="GetDocumentInfo">
      <documentation>A set of name-value pairs for properties set for the map document (mxd only). These properties are string values set in the map document's Map Properties dialog and include: Title, Subject, Author, Category, Keywords and Comments.</documentation>
      <input message="e:GetDocumentInfoIn" />
      <output message="e:GetDocumentInfoOut" />
    </operation>
    <operation name="GetTileImageInfo">
      <documentation>Gets the cache tile image information for a given map.</documentation>
      <input message="e:GetTileImageInfoIn" />
      <output message="e:GetTileImageInfoOut" />
    </operation>
    <operation name="QueryFeatureData2">
      <documentation>Returns a record set of features that meet the query filter selection criteria for the specified layer.</documentation>
      <input message="e:QueryFeatureData2In" />
      <output message="e:QueryFeatureData2Out" />
    </operation>
    <operation name="GetMapName">
      <documentation>Name of the map (data frame) as indicated by the index. The first beginning with 0.</documentation>
      <input message="e:GetMapNameIn" />
      <output message="e:GetMapNameOut" />
    </operation>
    <operation name="GetSQLSyntaxInfo">
      <documentation>Returns the SQL syntax information for the specified layer.</documentation>
      <input message="e:GetSQLSyntaxInfoIn" />
      <output message="e:GetSQLSyntaxInfoOut" />
    </operation>
    <operation name="ExportScaleBar">
      <documentation>Exports a scale bar to an image file.  The client can create the scaleBar object and set its desired properties appropriately.  If scaleBar is Nothing/Null, a default scale bar will be generated.</documentation>
      <input message="e:ExportScaleBarIn" />
      <output message="e:ExportScaleBarOut" />
    </operation>
    <operation name="GetVirtualCacheDirectory">
      <documentation>The virtual directory for cache files.</documentation>
      <input message="e:GetVirtualCacheDirectoryIn" />
      <output message="e:GetVirtualCacheDirectoryOut" />
    </operation>
    <operation name="ComputeDistance">
      <documentation>Computes the distance between two points on the specified map. The result is in the map units of the specified map.</documentation>
      <input message="e:ComputeDistanceIn" />
      <output message="e:ComputeDistanceOut" />
    </operation>
    <operation name="GetSupportedImageReturnTypes">
      <documentation>The supported image return types for the map server.  A value of esriImageReturnMimeData means that only MIME data is supported.  Otherwise, either MIME data or URLs are supported.</documentation>
      <input message="e:GetSupportedImageReturnTypesIn" />
      <output message="e:GetSupportedImageReturnTypesOut" />
    </operation>
    <operation name="QueryFeatureIDs">
      <documentation>Returns the IDs of the features that meet the query filter selection criteria for the specified layer.</documentation>
      <input message="e:QueryFeatureIDsIn" />
      <output message="e:QueryFeatureIDsOut" />
    </operation>
    <operation name="QueryFeatureData">
      <documentation>Returns a record set of features that meet the query filter selection criteria for the specified layer.</documentation>
      <input message="e:QueryFeatureDataIn" />
      <output message="e:QueryFeatureDataOut" />
    </operation>
    <operation name="ToMapPoints">
      <documentation>Converts a screen location to a map coordinate.</documentation>
      <input message="e:ToMapPointsIn" />
      <output message="e:ToMapPointsOut" />
    </operation>
    <operation name="GetTileCacheInfo">
      <input message="e:GetTileCacheInfoIn" />
      <output message="e:GetTileCacheInfoOut" />
    </operation>
    <operation name="QueryHyperlinks">
      <documentation>Returns a collection of Map Server Hyperlink objects for the specified layers. Only hyperlinks of visible layers are returned. If LayerIDs is Nothing/Null or empty, all layers are searched.</documentation>
      <input message="e:QueryHyperlinksIn" />
      <output message="e:QueryHyperlinksOut" />
    </operation>
    <operation name="HasLayerCache">
      <input message="e:HasLayerCacheIn" />
      <output message="e:HasLayerCacheOut" />
    </operation>
    <operation name="QueryFeatureIDs2">
      <documentation>Returns the IDs of the features that meet the query filter selection criteria for the specified layer.</documentation>
      <input message="e:QueryFeatureIDs2In" />
      <output message="e:QueryFeatureIDs2Out" />
    </operation>
    <operation name="GetDefaultMapName">
      <documentation>Name of the document's active map (data frame).</documentation>
      <input message="e:GetDefaultMapNameIn" />
      <output message="e:GetDefaultMapNameOut" />
    </operation>
    <operation name="QueryFeatureCount2">
      <documentation>Returns the count of the features that meet the query filter selection criteria for the specified layer.</documentation>
      <input message="e:QueryFeatureCount2In" />
      <output message="e:QueryFeatureCount2Out" />
    </operation>
    <operation name="Identify">
      <documentation>Returns a collection of Map Server Identify Result objects at the given location. If LayerIDs is Nothing/Null or empty, all layers are searched.</documentation>
      <input message="e:IdentifyIn" />
      <output message="e:IdentifyOut" />
    </operation>
    <operation name="IsFixedScaleMap">
      <input message="e:IsFixedScaleMapIn" />
      <output message="e:IsFixedScaleMapOut" />
    </operation>
    <operation name="GetLegendInfo">
      <documentation>Returns a collection of Map Server Legend Info objects for the specified layers. If layerIDs is Nothing/Null or empty, legend information for all layers is returned.</documentation>
      <input message="e:GetLegendInfoIn" />
      <output message="e:GetLegendInfoOut" />
    </operation>
    <operation name="FromMapPoints">
      <documentation>Converts a map coordinate to a screen location.</documentation>
      <input message="e:FromMapPointsIn" />
      <output message="e:FromMapPointsOut" />
    </operation>
    <operation name="GetCacheDescriptionInfo">
      <documentation>Gets the cache description information for a given map.</documentation>
      <input message="e:GetCacheDescriptionInfoIn" />
      <output message="e:GetCacheDescriptionInfoOut" />
    </operation>
    <operation name="GetMapTile">
      <input message="e:GetMapTileIn" />
      <output message="e:GetMapTileOut" />
    </operation>
    <operation name="GetLayerTile">
      <input message="e:GetLayerTileIn" />
      <output message="e:GetLayerTileOut" />
    </operation>
    <operation name="GetServerInfo">
      <documentation>Returns information about a map (data frame).</documentation>
      <input message="e:GetServerInfoIn" />
      <output message="e:GetServerInfoOut" />
    </operation>
    <operation name="GetMapCount">
      <documentation>The number of maps (data frames) in the document.</documentation>
      <input message="e:GetMapCountIn" />
      <output message="e:GetMapCountOut" />
    </operation>
    <operation name="QueryFeatureCount">
      <documentation>Returns the count of the features that meet the query filter selection criteria for the specified layer.</documentation>
      <input message="e:QueryFeatureCountIn" />
      <output message="e:QueryFeatureCountOut" />
    </operation>
    <operation name="GetServiceConfigurationInfo">
      <documentation>A set of name-value pairs for properties set for the MapServer Service Configuration Restrictions.</documentation>
      <input message="e:GetServiceConfigurationInfoIn" />
      <output message="e:GetServiceConfigurationInfoOut" />
    </operation>
    <operation name="GetCacheControlInfo">
      <documentation>Gets the cache control information for a given map.</documentation>
      <input message="e:GetCacheControlInfoIn" />
      <output message="e:GetCacheControlInfoOut" />
    </operation>
    <operation name="HasSingleFusedMapCache">
      <input message="e:HasSingleFusedMapCacheIn" />
      <output message="e:HasSingleFusedMapCacheOut" />
    </operation>
    <operation name="GetCacheName">
      <input message="e:GetCacheNameIn" />
      <output message="e:GetCacheNameOut" />
    </operation>
    <operation name="ComputeScale">
      <documentation>Computes the scale of the specified map, at the given map extent, for an image with the given size.</documentation>
      <input message="e:ComputeScaleIn" />
      <output message="e:ComputeScaleOut" />
    </operation>
    <operation name="Find">
      <documentation>Returns a collection of Map Server Find Result objects that contain the given search string. If LayerIDs is Nothing/Null or empty, all layers are searched.</documentation>
      <input message="e:FindIn" />
      <output message="e:FindOut" />
    </operation>
    <operation name="ExportMapImage">
      <documentation>Generates an image of the map, based on the given map description, and writes the image to a specified file on disk. Supported file types are: 'bmp', 'jpg', 'tif', 'png'/'png8', 'png24', 'emf', 'ps', 'pdf', 'ai', 'gif', and 'svg'/'svgz'.</documentation>
      <input message="e:ExportMapImageIn" />
      <output message="e:ExportMapImageOut" />
    </operation>
  </portType>
  <binding name="MapServerBinding" type="e:MapServerPort">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="GetDocumentInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetTileImageInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="QueryFeatureData2">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetMapName">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetSQLSyntaxInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ExportScaleBar">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetVirtualCacheDirectory">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ComputeDistance">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetSupportedImageReturnTypes">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="QueryFeatureIDs">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="QueryFeatureData">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ToMapPoints">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetTileCacheInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="QueryHyperlinks">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="HasLayerCache">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="QueryFeatureIDs2">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetDefaultMapName">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="QueryFeatureCount2">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="Identify">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="IsFixedScaleMap">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetLegendInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="FromMapPoints">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetCacheDescriptionInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetMapTile">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetLayerTile">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetServerInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetMapCount">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="QueryFeatureCount">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetServiceConfigurationInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetCacheControlInfo">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="HasSingleFusedMapCache">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetCacheName">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ComputeScale">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="Find">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ExportMapImage">
      <soap:operation soapAction="" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
  </binding>
  <service name="Census_InLaborForce2K_MapServer">
    <port name="MapServerPort" binding="e:MapServerBinding">
      <soap:address location="http://gis.otg.pr.gov/arcgis/services/Census/Census_InLaborForce2K/MapServer" />
    </port>
  </service>
</definitions>