GPServer WSDL


[XML]
<?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.2"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  targetNamespace="http://www.esri.com/schemas/ArcGIS/9.2">
  <types>
    <xs:schema
      targetNamespace="http://www.esri.com/schemas/ArcGIS/9.2"
      xmlns="http://www.esri.com/schemas/ArcGIS/9.2">
      <xs:element name="CancelJob">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="JobID" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CancelJobResponse">
        <xs:complexType/>
      </xs:element>
      <xs:element name="Execute">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ToolName" type="xs:string"/>
            <xs:element name="Values" type="GPValues"/>
            <xs:element name="Options" type="GPResultOptions" minOccurs="0"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ExecuteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="GPResult"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetExecutionType">
        <xs:complexType/>
      </xs:element>
      <xs:element name="GetExecutionTypeResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="esriExecutionType"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetJobMessages">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="JobID" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetJobMessagesResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfJobMessage"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetJobResult">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="JobID" type="xs:string"/>
            <xs:element name="ParameterNames" type="ArrayOfString"/>
            <xs:element name="Options" type="GPResultOptions" minOccurs="0"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetJobResultResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="GPResult"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetJobStatus">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="JobID" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetJobStatusResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="esriJobStatus"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetResultMapServerName">
        <xs:complexType/>
      </xs:element>
      <xs:element name="GetResultMapServerNameResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetTaskInfos">
        <xs:complexType/>
      </xs:element>
      <xs:element name="GetTaskInfosResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfGPToolInfo"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetTaskNames">
        <xs:complexType/>
      </xs:element>
      <xs:element name="GetTaskNamesResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfString"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetToolInfo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ToolName" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetToolInfoResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="GPToolInfo"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetToolInfos">
        <xs:complexType/>
      </xs:element>
      <xs:element name="GetToolInfosResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfGPToolInfo"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetToolNames">
        <xs:complexType/>
      </xs:element>
      <xs:element name="GetToolNamesResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="ArrayOfString"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SubmitJob">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ToolName" type="xs:string"/>
            <xs:element name="Values" type="GPValues"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SubmitJobResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetResultWorkspace">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="JobID" type="xs:string"/>
            <xs:element name="TransportType" type="esriGDSTransportType"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetResultWorkspaceResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Result" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:simpleType name="esriExecutionType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriExecutionTypeAsynchronous"/>
          <xs:enumeration value="esriExecutionTypeSynchronous"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriGPParameterDirection">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriGPParameterDirectionInput"/>
          <xs:enumeration value="esriGPParameterDirectionOutput"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriGPParameterType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriGPParameterTypeRequired"/>
          <xs:enumeration value="esriGPParameterTypeOptional"/>
          <xs:enumeration value="esriGPParameterTypeDerived"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriJobMessageType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriJobMessageTypeInformative"/>
          <xs:enumeration value="esriJobMessageTypeWarning"/>
          <xs:enumeration value="esriJobMessageTypeError"/>
          <xs:enumeration value="esriJobMessageTypeEmpty"/>
          <xs:enumeration value="esriJobMessageTypeAbort"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriJobStatus">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriJobNew"/>
          <xs:enumeration value="esriJobSubmitted"/>
          <xs:enumeration value="esriJobWaiting"/>
          <xs:enumeration value="esriJobExecuting"/>
          <xs:enumeration value="esriJobSucceeded"/>
          <xs:enumeration value="esriJobFailed"/>
          <xs:enumeration value="esriJobTimedOut"/>
          <xs:enumeration value="esriJobCancelling"/>
          <xs:enumeration value="esriJobCancelled"/>
          <xs:enumeration value="esriJobDeleting"/>
          <xs:enumeration value="esriJobDeleted"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="JobMessage">
        <xs:sequence>
          <xs:element name="MessageDesc" type="xs:string"/>
          <xs:element name="MessageType" type="esriJobMessageType"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfJobMessage">
        <xs:sequence>
          <xs:element name="JobMessage" type="JobMessage" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPResult">
        <xs:sequence>
          <xs:element name="Values" type="GPValues" minOccurs="0"/>
          <xs:element name="Messages" type="ArrayOfJobMessage" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPToolInfo">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="DisplayName" type="xs:string"/>
          <xs:element name="Category" type="xs:string"/>
          <xs:element name="Help" type="xs:string"/>
          <xs:element name="ParameterInfo" type="ArrayOfGPParameterInfo" minOccurs="0"/>
          <xs:element name="Extent" type="Envelope" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfGPToolInfo">
        <xs:sequence>
          <xs:element name="GPToolInfo" type="GPToolInfo" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPParameterInfo">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="DisplayName" type="xs:string"/>
          <xs:element name="Category" type="xs:string"/>
          <xs:element name="DataType" type="xs:string"/>
          <xs:element name="Direction" type="esriGPParameterDirection"/>
          <xs:element name="ParamType" type="esriGPParameterType"/>
          <xs:element name="ChoiceList" type="ArrayOfString" minOccurs="0"/>
          <xs:element name="Value" type="GPValue" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPResultOptions">
        <xs:sequence>
          <xs:element name="DensifyFeatures" type="xs:boolean" minOccurs="0"/>
          <xs:element name="TransportType" type="esriGDSTransportType" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfGPParameterInfo">
        <xs:sequence>
          <xs:element
            name="GPParameterInfo"
            type="GPParameterInfo"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPValue" abstract="true"/>
      <xs:complexType name="GPString">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Value" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPDouble">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Value" type="xs:double"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPLong">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Value" type="xs:int"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPBoolean">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Value" type="xs:boolean"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPDate">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Value" type="xs:dateTime"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPRecordSet">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="RecordSet" type="RecordSet"/>
              <xs:element name="OIDFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="ExceededTransferLimit" type="xs:boolean" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPRasterData">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Data" type="GDSData" minOccurs="0"/>
              <xs:element name="Format" type="xs:string" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPDataFile">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Data" type="GDSData" minOccurs="0"/>
              <xs:element name="File" type="xs:string" minOccurs="0"/>
              <xs:element name="DatasetName" type="xs:string" minOccurs="0"/>
              <xs:element name="DataType" type="xs:string" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPValues">
        <xs:sequence>
          <xs:element name="GPValue" type="GPValue" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPLinearUnit">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Value" type="xs:double"/>
              <xs:element name="Units" type="esriUnits"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPFeatureRecordSetLayer">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="RecordSet" type="RecordSet" minOccurs="0"/>
              <xs:element name="OIDFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="ShapeFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="LayerDrawingDescription" type="LayerDrawingDescription" minOccurs="0"/>
              <xs:element name="ExceededTransferLimit" type="xs:boolean" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPRasterDataLayer">
        <xs:complexContent>
          <xs:extension base="GPValue">
            <xs:sequence>
              <xs:element name="Data" type="GDSData" minOccurs="0"/>
              <xs:element name="Format" type="xs:string" minOccurs="0"/>
              <xs:element name="LayerDrawingDescription" type="LayerDrawingDescription" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <!-- from system -->
      <xs:complexType name="PropertySetProperty">
        <xs:sequence>
          <xs:element name="Key" type="xs:string"/>
          <xs:element name="Value" type="xs:anyType" nillable="true" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfPropertySetProperty">
        <xs:sequence>
          <xs:element
            name="PropertySetProperty"
            type="PropertySetProperty"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PropertySet">
        <xs:sequence>
          <xs:element name="PropertyArray" type="ArrayOfPropertySetProperty"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfPropertySet">
        <xs:sequence>
          <xs:element name="PropertySet" type="PropertySet" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="XMLPersistedObject">
        <xs:sequence>
          <xs:element name="Bytes" type="xs:base64Binary"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Name" abstract="true">
        <xs:sequence>
          <xs:element name="NameString" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfInt">
        <xs:sequence>
          <xs:element name="Int" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfString">
        <xs:sequence>
          <xs:element name="String" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfDouble">
        <xs:sequence>
          <xs:element name="Double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriUnits">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriUnknownUnits"/>
          <xs:enumeration value="esriInches"/>
          <xs:enumeration value="esriPoints"/>
          <xs:enumeration value="esriFeet"/>
          <xs:enumeration value="esriYards"/>
          <xs:enumeration value="esriMiles"/>
          <xs:enumeration value="esriNauticalMiles"/>
          <xs:enumeration value="esriMillimeters"/>
          <xs:enumeration value="esriCentimeters"/>
          <xs:enumeration value="esriMeters"/>
          <xs:enumeration value="esriKilometers"/>
          <xs:enumeration value="esriDecimalDegrees"/>
          <xs:enumeration value="esriDecimeters"/>
        </xs:restriction>
      </xs:simpleType>
      <!-- from geometry -->
      <xs:simpleType name="esriGeometryType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriGeometryPoint"/>
          <xs:enumeration value="esriGeometryMultipoint"/>
          <xs:enumeration value="esriGeometryPolyline"/>
          <xs:enumeration value="esriGeometryPolygon"/>
          <xs:enumeration value="esriGeometryMultiPatch"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="SpatialReference" abstract="true">
        <xs:sequence>
          <xs:element name="WKT" type="xs:string" minOccurs="0"/>
          <xs:element name="XOrigin" type="xs:double" minOccurs="0"/>
          <xs:element name="YOrigin" type="xs:double" minOccurs="0"/>
          <xs:element name="XYScale" type="xs:double" minOccurs="0"/>
          <xs:element name="ZOrigin" type="xs:double" minOccurs="0"/>
          <xs:element name="ZScale" type="xs:double" minOccurs="0"/>
          <xs:element name="MOrigin" type="xs:double" minOccurs="0"/>
          <xs:element name="MScale" type="xs:double" minOccurs="0"/>
          <xs:element name="XYTolerance" type="xs:double" minOccurs="0"/>
          <xs:element name="ZTolerance" type="xs:double" minOccurs="0"/>
          <xs:element name="MTolerance" type="xs:double" minOccurs="0"/>
          <xs:element name="HighPrecision" type="xs:boolean" minOccurs="0"/>
          <xs:element name="LeftLongitude" type="xs:double" minOccurs="0"/>
          <xs:element name="WKID" type="xs:int" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ProjectedCoordinateSystem">
        <xs:complexContent>
          <xs:extension base="SpatialReference"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GeographicCoordinateSystem">
        <xs:complexContent>
          <xs:extension base="SpatialReference"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="UnknownCoordinateSystem">
        <xs:complexContent>
          <xs:extension base="SpatialReference"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Geometry"/>
      <xs:complexType name="Curve" abstract="true">
        <xs:complexContent>
          <xs:extension base="Geometry"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Segment" abstract="true">
        <xs:complexContent>
          <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:complexContent>
          <xs:extension base="Curve"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Envelope" abstract="true">
        <xs:complexContent>
          <xs:extension base="Geometry"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EnvelopeN">
        <xs:complexContent>
          <xs:extension base="Envelope">
            <xs:sequence>
              <xs:element name="XMin" type="xs:double"/>
              <xs:element name="YMin" type="xs:double"/>
              <xs:element name="XMax" type="xs:double"/>
              <xs:element name="YMax" type="xs:double"/>
              <xs:element name="ZMin" type="xs:double" minOccurs="0"/>
              <xs:element name="ZMax" type="xs:double" minOccurs="0"/>
              <xs:element name="MMin" type="xs:double" minOccurs="0"/>
              <xs:element name="MMax" type="xs:double" minOccurs="0"/>
              <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EnvelopeB">
        <xs:complexContent>
          <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:complexContent>
          <xs:extension base="Geometry"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PointN">
        <xs:complexContent>
          <xs:extension base="Point">
            <xs:sequence>
              <xs:element name="X" type="xs:double"/>
              <xs:element name="Y" type="xs:double"/>
              <xs:element name="M" type="xs:double" minOccurs="0"/>
              <xs:element name="Z" type="xs:double" minOccurs="0"/>
              <xs:element name="ID" type="xs:int" minOccurs="0"/>
              <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PointB">
        <xs:complexContent>
          <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:complexContent>
          <xs:extension base="Geometry"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MultipointB">
        <xs:complexContent>
          <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:complexContent>
          <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 name="Extent" type="Envelope" minOccurs="0"/>
              <xs:element name="PointArray" type="ArrayOfPoint" minOccurs="0"/>
              <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Line">
        <xs:complexContent>
          <xs:extension base="Segment"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EllipticArc">
        <xs:complexContent>
          <xs:extension base="Segment">
            <xs:sequence>
              <xs:element name="EllipseStd" type="xs:boolean">
                <xs:annotation>
                  <xs:documentation>always false</xs:documentation>
                </xs:annotation>
              </xs:element>
              <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:complexContent>
          <xs:extension base="Segment">
            <xs:sequence>
              <xs:element name="CenterPoint" type="Point"/>
              <xs:element name="FromAngle" type="xs:double" minOccurs="0"/>
              <xs:element name="ToAngle" type="xs:double" minOccurs="0"/>
              <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:complexContent>
          <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" abstract="false">
        <xs:complexContent>
          <xs:extension base="Curve">
            <xs:sequence>
              <xs:element name="PointArray" type="ArrayOfPoint" minOccurs="0"/>
              <xs:element name="SegmentArray" type="ArrayOfSegment" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Ring">
        <xs:complexContent>
          <xs:extension base="Path"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Polygon" abstract="true">
        <xs:complexContent>
          <xs:extension base="Polycurve"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolygonN">
        <xs:complexContent>
          <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 name="Extent" type="Envelope" minOccurs="0"/>
              <xs:element name="RingArray" type="ArrayOfRing"/>
              <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolygonB">
        <xs:complexContent>
          <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:complexContent>
          <xs:extension base="Polycurve"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolylineN">
        <xs:complexContent>
          <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 name="Extent" type="Envelope" minOccurs="0"/>
              <xs:element name="PathArray" type="ArrayOfPath"/>
              <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolylineB">
        <xs:complexContent>
          <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:sequence>
          <xs:element name="Point" type="Point" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfPath">
        <xs:sequence>
          <xs:element name="Path" type="Path" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfRing">
        <xs:sequence>
          <xs:element name="Ring" type="Ring" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfSegment">
        <xs:sequence>
          <xs:element name="Segment" type="Segment" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MultiPatch" abstract="true">
        <xs:complexContent>
          <xs:extension base="Geometry"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MultiPatchB">
        <xs:complexContent>
          <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:complexContent>
          <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>Only TriangleFan, TriangleStrip, and Ring are surface patches.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
          <xs:element name="SurfacePatch" type="Geometry" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="TriangleFan">
        <xs:complexContent>
          <xs:extension base="Geometry">
            <xs:sequence>
              <xs:element name="PointArray" type="ArrayOfPoint" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="TriangleStrip">
        <xs:complexContent>
          <xs:extension base="Geometry">
            <xs:sequence>
              <xs:element name="PointArray" type="ArrayOfPoint" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <!-- from geodatabase -->
      <xs:simpleType name="esriWorkspaceType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriFileSystemWorkspace"/>
          <xs:enumeration value="esriLocalDatabaseWorkspace"/>
          <xs:enumeration value="esriRemoteDatabaseWorkspace"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriDatasetType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriDTAny"/>
          <xs:enumeration value="esriDTContainer"/>
          <xs:enumeration value="esriDTGeo"/>
          <xs:enumeration value="esriDTFeatureDataset"/>
          <xs:enumeration value="esriDTFeatureClass"/>
          <xs:enumeration value="esriDTPlanarGraph"/>
          <xs:enumeration value="esriDTGeometricNetwork"/>
          <xs:enumeration value="esriDTText"/>
          <xs:enumeration value="esriDTTable"/>
          <xs:enumeration value="esriDTRelationshipClass"/>
          <xs:enumeration value="esriDTRasterDataset"/>
          <xs:enumeration value="esriDTRasterBand"/>
          <xs:enumeration value="esriDTTin"/>
          <xs:enumeration value="esriDTCadDrawing"/>
          <xs:enumeration value="esriDTRasterCatalog"/>
          <xs:enumeration value="esriDTTopology"/>
          <xs:enumeration value="esriDTToolbox"/>
          <xs:enumeration value="esriDTTool"/>
          <xs:enumeration value="esriDTNetworkDataset"/>
          <xs:enumeration value="esriDTTerrain"/>
          <xs:enumeration value="esriDTRepresentationClass"/>
          <xs:enumeration value="esriDTCadastralFabric"/>
          <xs:enumeration value="esriDTSchematicDataset"/>
          <xs:enumeration value="esriDTLocator"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriFieldType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriFieldTypeInteger"/>
          <xs:enumeration value="esriFieldTypeSmallInteger"/>
          <xs:enumeration value="esriFieldTypeDouble"/>
          <xs:enumeration value="esriFieldTypeSingle"/>
          <xs:enumeration value="esriFieldTypeString"/>
          <xs:enumeration value="esriFieldTypeDate"/>
          <xs:enumeration value="esriFieldTypeGeometry"/>
          <xs:enumeration value="esriFieldTypeOID"/>
          <xs:enumeration value="esriFieldTypeBlob"/>
          <xs:enumeration value="esriFieldTypeGlobalID"/>
          <xs:enumeration value="esriFieldTypeRaster"/>
          <xs:enumeration value="esriFieldTypeGUID"/>
          <xs:enumeration value="esriFieldTypeXML"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="GeometryDef">
        <xs:sequence>
          <xs:element name="AvgNumPoints" type="xs:int"/>
          <xs:element name="GeometryType" type="esriGeometryType"/>
          <xs:element name="HasM" type="xs:boolean"/>
          <xs:element name="HasZ" type="xs:boolean"/>
          <xs:element name="SpatialReference" type="SpatialReference"/>
          <xs:element name="GridSize0" type="xs:double" minOccurs="0"/>
          <xs:element name="GridSize1" type="xs:double" minOccurs="0"/>
          <xs:element name="GridSize2" type="xs:double" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriMergePolicyType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriMPTSumValues"/>
          <xs:enumeration value="esriMPTAreaWeighted"/>
          <xs:enumeration value="esriMPTDefaultValue"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriSplitPolicyType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSPTGeometryRatio"/>
          <xs:enumeration value="esriSPTDuplicate"/>
          <xs:enumeration value="esriSPTDefaultValue"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Domain" abstract="true">
        <xs:sequence>
          <xs:element name="DomainName" type="xs:string"/>
          <xs:element name="FieldType" type="esriFieldType"/>
          <xs:element name="MergePolicy" type="esriMergePolicyType"/>
          <xs:element name="SplitPolicy" type="esriSplitPolicyType"/>
          <xs:element name="Description" type="xs:string" minOccurs="0"/>
          <xs:element name="Owner" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Field">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="Type" type="esriFieldType"/>
          <xs:element name="IsNullable" type="xs:boolean"/>
          <xs:element name="Length" type="xs:int"/>
          <xs:element name="Precision" type="xs:int"/>
          <xs:element name="Scale" type="xs:int"/>
          <xs:element name="Required" type="xs:boolean" minOccurs="0"/>
          <xs:element name="Editable" type="xs:boolean" minOccurs="0"/>
          <xs:element name="DomainFixed" type="xs:boolean" minOccurs="0"/>
          <xs:element name="GeometryDef" type="GeometryDef" minOccurs="0"/>
          <xs:element name="AliasName" type="xs:string" minOccurs="0"/>
          <xs:element name="ModelName" type="xs:string" minOccurs="0"/>
          <xs:element name="DefaultValue" type="xs:anyType" minOccurs="0"/>
          <xs:element name="Domain" type="Domain" minOccurs="0"/>
          <xs:element name="RasterDef" type="RasterDef" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfField">
        <xs:sequence>
          <xs:element name="Field" type="Field" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Fields">
        <xs:sequence>
          <xs:element name="FieldArray" type="ArrayOfField"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfValue">
        <xs:sequence>
          <xs:element
            name="Value"
            type="xs:anyType"
            nillable="true"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Record">
        <xs:sequence>
          <xs:element name="Values" type="ArrayOfValue"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfRecord">
        <xs:sequence>
          <xs:element name="Record" type="Record" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="RecordSet">
        <xs:sequence>
          <xs:element name="Fields" type="Fields"/>
          <xs:element name="Records" type="ArrayOfRecord"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriSearchOrder">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSearchOrderSpatial"/>
          <xs:enumeration value="esriSearchOrderAttribute"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriSpatialRelEnum">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSpatialRelUndefined"/>
          <xs:enumeration value="esriSpatialRelIntersects"/>
          <xs:enumeration value="esriSpatialRelEnvelopeIntersects"/>
          <xs:enumeration value="esriSpatialRelIndexIntersects"/>
          <xs:enumeration value="esriSpatialRelTouches"/>
          <xs:enumeration value="esriSpatialRelOverlaps"/>
          <xs:enumeration value="esriSpatialRelCrosses"/>
          <xs:enumeration value="esriSpatialRelWithin"/>
          <xs:enumeration value="esriSpatialRelContains"/>
          <xs:enumeration value="esriSpatialRelRelation"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="FIDSet">
        <xs:sequence>
          <xs:element name="FIDArray" type="ArrayOfInt"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="QueryFilter">
        <xs:sequence>
          <xs:element name="SubFields" type="xs:string" minOccurs="0"/>
          <xs:element name="WhereClause" type="xs:string"/>
          <xs:element name="SpatialReferenceFieldName" type="xs:string" minOccurs="0"/>
          <xs:element name="Resolution" type="xs:double"/>
          <xs:element name="OutputSpatialReference" type="SpatialReference" minOccurs="0"/>
          <xs:element name="FIDSet" type="FIDSet" minOccurs="0"/>
          <xs:element name="PostfixClause" type="xs:string" minOccurs="0"/>
          <xs:element name="FilterDefs" type="ArrayOfFilterDef" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SpatialFilter">
        <xs:complexContent>
          <xs:extension base="QueryFilter">
            <xs:sequence>
              <xs:element name="SearchOrder" type="esriSearchOrder"/>
              <xs:element name="SpatialRel" type="esriSpatialRelEnum"/>
              <xs:element name="SpatialRelDescription" type="xs:string"/>
              <xs:element name="FilterGeometry" type="Geometry"/>
              <xs:element name="GeometryFieldName" type="xs:string"/>
              <xs:element name="FilterOwnsGeometry" type="xs:boolean"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="FilterDef" abstract="true"/>
      <xs:complexType name="XMLFilterDef">
        <xs:complexContent>
          <xs:extension base="FilterDef">
            <xs:sequence>
              <xs:element name="FieldName" type="xs:string"/>
              <xs:element name="Expression" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfFilterDef">
        <xs:sequence>
          <xs:element name="FilterDef" type="FilterDef" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Index">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="IsUnique" type="xs:boolean"/>
          <xs:element name="IsAscending" type="xs:boolean"/>
          <xs:element name="Fields" type="Fields"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfIndex">
        <xs:sequence>
          <xs:element name="Index" type="Index" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Indexes">
        <xs:sequence>
          <xs:element name="IndexArray" type="ArrayOfIndex"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriFeatureType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriFTSimple"/>
          <xs:enumeration value="esriFTSimpleJunction"/>
          <xs:enumeration value="esriFTSimpleEdge"/>
          <xs:enumeration value="esriFTComplexJunction"/>
          <xs:enumeration value="esriFTComplexEdge"/>
          <xs:enumeration value="esriFTAnnotation"/>
          <xs:enumeration value="esriFTCoverageAnnotation"/>
          <xs:enumeration value="esriFTDimension"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="RangeDomain">
        <xs:complexContent>
          <xs:extension base="Domain">
            <xs:sequence>
              <xs:element name="MaxValue" type="xs:anyType"/>
              <xs:element name="MinValue" type="xs:anyType"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CodedValue">
        <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:sequence>
          <xs:element name="CodedValue" type="CodedValue" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CodedValueDomain">
        <xs:complexContent>
          <xs:extension base="Domain">
            <xs:sequence>
              <xs:element name="CodedValues" type="ArrayOfCodedValue"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Rule" abstract="true">
        <xs:sequence>
          <xs:element name="HelpString" type="xs:string" minOccurs="0"/>
          <xs:element name="RuleID" type="xs:int"/>
          <xs:element name="Category" type="xs:int" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriWeightType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriWTBitGate"/>
          <xs:enumeration value="esriWTInteger"/>
          <xs:enumeration value="esriWTSingle"/>
          <xs:enumeration value="esriWTDouble"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkClassAncillaryRole">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNCARNone"/>
          <xs:enumeration value="esriNCARSourceSink"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNTStreetNetwork"/>
          <xs:enumeration value="esriNTUtilityNetwork"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="JunctionSubtype">
        <xs:sequence>
          <xs:element name="ClassID" type="xs:int"/>
          <xs:element name="SubtypeCode" type="xs:int"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfJunctionSubtype">
        <xs:sequence>
          <xs:element
            name="JunctionSubtype"
            type="JunctionSubtype"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ConnectivityRule" abstract="true">
        <xs:complexContent>
          <xs:extension base="Rule"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EdgeConnectivityRule">
        <xs:complexContent>
          <xs:extension base="ConnectivityRule">
            <xs:sequence>
              <xs:element name="FromClassID" type="xs:int"/>
              <xs:element name="FromEdgeSubtypeCode" type="xs:int"/>
              <xs:element name="ToClassID" type="xs:int"/>
              <xs:element name="ToEdgeSubtypeCode" type="xs:int"/>
              <xs:element name="DefaultJunctionID" type="xs:int"/>
              <xs:element name="DefaultJunctionSubtypeCode" type="xs:int"/>
              <xs:element name="JunctionSubtypes" type="ArrayOfJunctionSubtype"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="JunctionConnectivityRule">
        <xs:complexContent>
          <xs:extension base="ConnectivityRule">
            <xs:sequence>
              <xs:element name="EdgeClassID" type="xs:int"/>
              <xs:element name="EdgeSubtypeCode" type="xs:int"/>
              <xs:element name="JunctionClassID" type="xs:int"/>
              <xs:element name="SubtypeCode" type="xs:int"/>
              <xs:element name="EdgeMinimumCardinality" type="xs:int" minOccurs="0"/>
              <xs:element name="EdgeMaximumCardinality" type="xs:int" minOccurs="0"/>
              <xs:element name="JunctionMinimumCardinality" type="xs:int" minOccurs="0"/>
              <xs:element name="JunctionMaximumCardinality" type="xs:int" minOccurs="0"/>
              <xs:element name="IsDefault" type="xs:boolean"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="NetWeight">
        <xs:sequence>
          <xs:element name="WeightID" type="xs:int"/>
          <xs:element name="WeightName" type="xs:string"/>
          <xs:element name="WeightType" type="esriWeightType"/>
          <xs:element name="BitGateSize" type="xs:int"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NetWeightAssociation">
        <xs:sequence>
          <xs:element name="WeightID" type="xs:int"/>
          <xs:element name="TableName" type="xs:string"/>
          <xs:element name="FieldName" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriTopologyRuleType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTRTAreaNoGaps"/>
          <xs:enumeration value="esriTRTAreaNoOverlap"/>
          <xs:enumeration value="esriTRTAreaCoveredByAreaClass"/>
          <xs:enumeration value="esriTRTAreaAreaCoverEachOther"/>
          <xs:enumeration value="esriTRTAreaCoveredByArea"/>
          <xs:enumeration value="esriTRTAreaNoOverlapArea"/>
          <xs:enumeration value="esriTRTLineCoveredByAreaBoundary"/>
          <xs:enumeration value="esriTRTPointCoveredByAreaBoundary"/>
          <xs:enumeration value="esriTRTPointProperlyInsideArea"/>
          <xs:enumeration value="esriTRTAreaContainOnePoint"/>
          <xs:enumeration value="esriTRTLineNoOverlap"/>
          <xs:enumeration value="esriTRTLineNoIntersection"/>
          <xs:enumeration value="esriTRTLineNoDangles"/>
          <xs:enumeration value="esriTRTLineNoPseudos"/>
          <xs:enumeration value="esriTRTLineFeatureConnected"/>
          <xs:enumeration value="esriTRTLineCoveredByLineClass"/>
          <xs:enumeration value="esriTRTLineNoOverlapLine"/>
          <xs:enumeration value="esriTRTPointCoveredByLine"/>
          <xs:enumeration value="esriTRTPointCoveredByLineEndpoint"/>
          <xs:enumeration value="esriTRTAreaBoundaryCoveredByLine"/>
          <xs:enumeration value="esriTRTAreaBoundaryCoveredByAreaBoundary"/>
          <xs:enumeration value="esriTRTLineNoSelfOverlap"/>
          <xs:enumeration value="esriTRTLineNoSelfIntersect"/>
          <xs:enumeration value="esriTRTLineNoIntersectOrInteriorTouch"/>
          <xs:enumeration value="esriTRTLineEndpointCoveredByPoint"/>
          <xs:enumeration value="esriTRTAreaContainPoint"/>
          <xs:enumeration value="esriTRTLineNoMultipart"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="TopologyRule">
        <xs:complexContent>
          <xs:extension base="Rule">
            <xs:sequence>
              <xs:element name="Name" type="xs:string"/>
              <xs:element name="GUID" type="xs:string" minOccurs="0"/>
              <xs:element name="TopologyRuleType" type="esriTopologyRuleType"/>
              <xs:element name="OriginClassID" type="xs:int"/>
              <xs:element name="OriginSubtype" type="xs:int" minOccurs="0"/>
              <xs:element name="DestinationClassID" type="xs:int"/>
              <xs:element name="DestinationSubtype" type="xs:int" minOccurs="0"/>
              <xs:element name="TriggerErrorEvents" type="xs:boolean"/>
              <xs:element name="AllOriginSubtypes" type="xs:boolean"/>
              <xs:element name="AllDestinationSubtypes" type="xs:boolean"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:simpleType name="esriRelNotification">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRelNotificationNone"/>
          <xs:enumeration value="esriRelNotificationForward"/>
          <xs:enumeration value="esriRelNotificationBackward"/>
          <xs:enumeration value="esriRelNotificationBoth"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriRelCardinality">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRelCardinalityOneToOne"/>
          <xs:enumeration value="esriRelCardinalityOneToMany"/>
          <xs:enumeration value="esriRelCardinalityManyToMany"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriRelRole">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRelRoleAny"/>
          <xs:enumeration value="esriRelRoleOrigin"/>
          <xs:enumeration value="esriRelRoleDestination"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriRelClassKey">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRelClassKeyUndefined"/>
          <xs:enumeration value="esriRelClassKeyClassID"/>
          <xs:enumeration value="esriRelClassKeyClassCode"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriRelKeyType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRelKeyTypeSingle"/>
          <xs:enumeration value="esriRelKeyTypeDual"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriRelKeyRole">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRelKeyRoleOriginPrimary"/>
          <xs:enumeration value="esriRelKeyRoleDestinationPrimary"/>
          <xs:enumeration value="esriRelKeyRoleOriginForeign"/>
          <xs:enumeration value="esriRelKeyRoleDestinationForeign"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriRelDirection">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRelDirectionForward"/>
          <xs:enumeration value="esriRelDirectionBackward"/>
          <xs:enumeration value="esriRelDirectionBoth"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="RelationshipRule">
        <xs:complexContent>
          <xs:extension base="Rule">
            <xs:sequence>
              <xs:element name="DestinationClassID" type="xs:int"/>
              <xs:element name="DestinationSubtypeCode" type="xs:int"/>
              <xs:element name="OriginClassID" type="xs:int"/>
              <xs:element name="OriginSubtypeCode" type="xs:int"/>
              <xs:element name="DestinationMinimumCardinality" type="xs:int" minOccurs="0"/>
              <xs:element name="DestinationMaximumCardinality" type="xs:int" minOccurs="0"/>
              <xs:element name="OriginMinimumCardinality" type="xs:int" minOccurs="0"/>
              <xs:element name="OriginMaximumCardinality" type="xs:int" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Names">
        <xs:sequence>
          <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="XmlPropertySet">
        <xs:sequence>
          <xs:element name="XmlDoc" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DataElement" abstract="true">
        <xs:sequence>
          <xs:element name="CatalogPath" type="xs:string"/>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="ChildrenExpanded" type="xs:boolean" minOccurs="0"/>
          <xs:element name="FullPropsRetrieved" type="xs:boolean" minOccurs="0"/>
          <xs:element name="MetadataRetrieved" type="xs:boolean" minOccurs="0"/>
          <xs:element name="Metadata" type="XmlPropertySet" minOccurs="0"/>
          <xs:element name="Children" type="ArrayOfDataElement" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfDataElement">
        <xs:sequence>
          <xs:element name="DataElement" type="DataElement" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfDElement">
        <xs:sequence>
          <xs:element name="DataElement" type="DataElement" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DEDataset">
        <xs:complexContent>
          <xs:extension base="DataElement">
            <xs:sequence>
              <xs:element name="DatasetType" type="esriDatasetType"/>
              <xs:element name="DSID" type="xs:int" minOccurs="0"/>
              <xs:element name="Versioned" type="xs:boolean" minOccurs="0"/>
              <xs:element name="CanVersion" type="xs:boolean" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="DEWorkspace">
        <xs:complexContent>
          <xs:extension base="DataElement">
            <xs:sequence>
              <xs:element name="WorkspaceType" type="esriWorkspaceType"/>
              <xs:element name="WorkspaceFactoryProgID" type="xs:string"/>
              <xs:element name="ConnectionString" type="xs:string"/>
              <xs:element name="ConnectionInfo" type="PropertySet"/>
              <xs:element name="DomainArray" type="ArrayOfDomain"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="WorkspaceDefinition">
        <xs:sequence>
          <xs:element name="WorkspaceType" type="esriWorkspaceType"/>
          <xs:element name="Version" type="xs:string"/>
          <xs:element name="Domains" type="ArrayOfDomain"/>
          <xs:element name="DatasetDefinitions" type="ArrayOfDataElement"/>
          <xs:element name="Metadata" type="XmlPropertySet" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfDomain">
        <xs:sequence>
          <xs:element name="Domain" type="Domain" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DEGeoDataset">
        <xs:complexContent>
          <xs:extension base="DEDataset">
            <xs:sequence>
              <xs:element name="Extent" type="Envelope"/>
              <xs:element name="SpatialReference" type="SpatialReference"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="DEFeatureDataset">
        <xs:complexContent>
          <xs:extension base="DEGeoDataset"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfConnectivityRule">
        <xs:sequence>
          <xs:element
            name="ConnectivityRule"
            type="ConnectivityRule"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfNetWeight">
        <xs:sequence>
          <xs:element name="NetWeight" type="NetWeight" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfNetWeightAssociation">
        <xs:sequence>
          <xs:element
            name="NetWeightAssociation"
            type="NetWeightAssociation"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DEGeometricNetwork">
        <xs:complexContent>
          <xs:extension base="DEGeoDataset">
            <xs:sequence>
              <xs:element name="NetworkType" type="esriNetworkType"/>
              <xs:element name="OrphanJunctionFeatureClassName" type="xs:string"/>
              <xs:element name="FeatureClassNames" type="Names"/>
              <xs:element name="ConnectivityRules" type="ArrayOfConnectivityRule"/>
              <xs:element name="NetworkWeights" type="ArrayOfNetWeight"/>
              <xs:element name="WeightAssociations" type="ArrayOfNetWeightAssociation"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="DETable">
        <xs:complexContent>
          <xs:extension base="DEDataset">
            <xs:sequence>
              <xs:element name="HasOID" type="xs:boolean"/>
              <xs:element name="OIDFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="Fields" type="Fields"/>
              <xs:element name="Indexes" type="Indexes"/>
              <xs:element name="CLSID" type="xs:string" minOccurs="0"/>
              <xs:element name="EXTCLSID" type="xs:string" minOccurs="0"/>
              <xs:element name="RelationshipClassNames" type="Names" minOccurs="0"/>
              <xs:element name="AliasName" type="xs:string" minOccurs="0"/>
              <xs:element name="ModelName" type="xs:string" minOccurs="0"/>
              <xs:element name="HasGlobalID" type="xs:boolean" minOccurs="0"/>
              <xs:element name="GlobalIDFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="RasterFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="ExtensionProperties" type="PropertySet" minOccurs="0"/>
              <xs:element name="SubtypeFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="DefaultSubtypeCode" type="xs:int" minOccurs="0"/>
              <xs:element name="Subtypes" type="ArrayOfSubtype" minOccurs="0"/>
              <xs:element name="ControllerMemberships" type="ArrayOfControllerMembership" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="DEFeatureClass">
        <xs:complexContent>
          <xs:extension base="DETable">
            <xs:sequence>
              <xs:element name="FeatureType" type="esriFeatureType"/>
              <xs:element name="ShapeType" type="esriGeometryType"/>
              <xs:element name="ShapeFieldName" type="xs:string"/>
              <xs:element name="HasM" type="xs:boolean" minOccurs="0"/>
              <xs:element name="HasZ" type="xs:boolean" minOccurs="0"/>
              <xs:element name="HasSpatialIndex" type="xs:boolean" minOccurs="0"/>
              <xs:element name="AreaFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="LengthFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="Extent" type="Envelope" minOccurs="0"/>
              <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Subtype">
        <xs:sequence>
          <xs:element name="SubtypeName" type="xs:string"/>
          <xs:element name="SubtypeCode" type="xs:int"/>
          <xs:element name="FieldInfos" type="ArrayOfSubtypeFieldInfo"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfSubtype">
        <xs:sequence>
          <xs:element name="Subtype" type="Subtype" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SubtypeFieldInfo">
        <xs:sequence>
          <xs:element name="FieldName" type="xs:string"/>
          <xs:element name="DomainName" type="xs:string" minOccurs="0"/>
          <xs:element name="DefaultValue" type="xs:anyType" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfSubtypeFieldInfo">
        <xs:sequence>
          <xs:element
            name="SubtypeFieldInfo"
            type="SubtypeFieldInfo"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfRelationshipRule">
        <xs:sequence>
          <xs:element
            name="RelationshipRule"
            type="RelationshipRule"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DERelationshipClass">
        <xs:complexContent>
          <xs:extension base="DETable">
            <xs:sequence>
              <xs:element name="Cardinality" type="esriRelCardinality"/>
              <xs:element name="Notification" type="esriRelNotification"/>
              <xs:element name="IsAttributed" type="xs:boolean"/>
              <xs:element name="IsComposite" type="xs:boolean"/>
              <xs:element name="OriginClassNames" type="Names"/>
              <xs:element name="DestinationClassNames" type="Names"/>
              <xs:element name="KeyType" type="esriRelKeyType"/>
              <xs:element name="ClassKey" type="esriRelClassKey"/>
              <xs:element name="ForwardPathLabel" type="xs:string"/>
              <xs:element name="BackwardPathLabel" type="xs:string"/>
              <xs:element name="IsReflexive" type="xs:boolean"/>
              <xs:element name="OriginClassKeys" type="ArrayOfRelationshipClassKey"/>
              <xs:element name="DestinationClassKeys" type="ArrayOfRelationshipClassKey" minOccurs="0"/>
              <xs:element name="RelationshipRules" type="ArrayOfRelationshipRule"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="RelationshipClassKey">
        <xs:sequence>
          <xs:element name="ObjectKeyName" type="xs:string"/>
          <xs:element name="ClassKeyName" type="xs:string"/>
          <xs:element name="KeyRole" type="esriRelKeyRole"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfRelationshipClassKey">
        <xs:sequence>
          <xs:element
            name="RelationshipClassKey"
            type="RelationshipClassKey"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ControllerMembership" abstract="true"/>
      <xs:complexType name="GeometricNetworkMembership">
        <xs:complexContent>
          <xs:extension base="ControllerMembership">
            <xs:sequence>
              <xs:element name="GeometricNetworkName" type="xs:string"/>
              <xs:element name="EnabledFieldName" type="xs:string"/>
              <xs:element name="AncillaryRoleFieldName" type="xs:string" minOccurs="0"/>
              <xs:element
                name="NetworkClassAncillaryRole"
                type="esriNetworkClassAncillaryRole"
                minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="TopologyMembership">
        <xs:complexContent>
          <xs:extension base="ControllerMembership">
            <xs:sequence>
              <xs:element name="TopologyName" type="xs:string"/>
              <xs:element name="Weight" type="xs:double"/>
              <xs:element name="XYRank" type="xs:int"/>
              <xs:element name="ZRank" type="xs:int"/>
              <xs:element name="EventNotificationOnValidate" type="xs:boolean"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="NetworkDatasetMembership">
        <xs:complexContent>
          <xs:extension base="ControllerMembership">
            <xs:sequence>
              <xs:element name="NetworkDatasetName" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfControllerMembership">
        <xs:sequence>
          <xs:element
            name="ControllerMembership"
            type="ControllerMembership"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfTopologyRule">
        <xs:sequence>
          <xs:element name="TopologyRule" type="TopologyRule" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DETopology">
        <xs:complexContent>
          <xs:extension base="DEGeoDataset">
            <xs:sequence>
              <xs:element name="ClusterTolerance" type="xs:double"/>
              <xs:element name="ZClusterTolerance" type="xs:double"/>
              <xs:element name="MaxGeneratedErrorCount" type="xs:int"/>
              <xs:element name="FeatureClassNames" type="Names"/>
              <xs:element name="TopologyRules" type="ArrayOfTopologyRule"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="DERepresentationClass">
        <xs:complexContent>
          <xs:extension base="DEDataset">
            <xs:sequence>
              <xs:element name="FeatureClassName" type="xs:string"/>
              <xs:element name="RuleIDFieldName" type="xs:string"/>
              <xs:element name="OverrideFieldName" type="xs:string"/>
              <xs:element name="RequireShapeOverride" type="xs:boolean"/>
              <xs:element name="RepresentationRules" type="XMLPersistedObject"/>
              <xs:element name="ClassAttributes" type="XMLPersistedObject"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:simpleType name="esriNetworkAttributeDataType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNADTInteger"/>
          <xs:enumeration value="esriNADTFloat"/>
          <xs:enumeration value="esriNADTDouble"/>
          <xs:enumeration value="esriNADTBoolean"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkAttributeUnits">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNAUUnknown"/>
          <xs:enumeration value="esriNAUInches"/>
          <xs:enumeration value="esriNAUFeet"/>
          <xs:enumeration value="esriNAUYards"/>
          <xs:enumeration value="esriNAUMiles"/>
          <xs:enumeration value="esriNAUNauticalMiles"/>
          <xs:enumeration value="esriNAUMillimeters"/>
          <xs:enumeration value="esriNAUCentimeters"/>
          <xs:enumeration value="esriNAUMeters"/>
          <xs:enumeration value="esriNAUKilometers"/>
          <xs:enumeration value="esriNAUDecimalDegrees"/>
          <xs:enumeration value="esriNAUDecimeters"/>
          <xs:enumeration value="esriNAUSeconds"/>
          <xs:enumeration value="esriNAUMinutes"/>
          <xs:enumeration value="esriNAUHours"/>
          <xs:enumeration value="esriNAUDays"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkAttributeUnits2">
        <xs:restriction base="xs:string">
          <xs:enumeration value="Unknown"/>
          <xs:enumeration value="Inches"/>
          <xs:enumeration value="Feet"/>
          <xs:enumeration value="Yards"/>
          <xs:enumeration value="Miles"/>
          <xs:enumeration value="NauticalMiles"/>
          <xs:enumeration value="Millimeters"/>
          <xs:enumeration value="Centimeters"/>
          <xs:enumeration value="Meters"/>
          <xs:enumeration value="Kilometers"/>
          <xs:enumeration value="DecimalDegrees"/>
          <xs:enumeration value="Decimeters"/>
          <xs:enumeration value="Seconds"/>
          <xs:enumeration value="Minutes"/>
          <xs:enumeration value="Hours"/>
          <xs:enumeration value="Days"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkAttributeUsageType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNAUTCost"/>
          <xs:enumeration value="esriNAUTDescriptor"/>
          <xs:enumeration value="esriNAUTRestriction"/>
          <xs:enumeration value="esriNAUTHierarchy"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkDatasetType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNDTUnknown"/>
          <xs:enumeration value="esriNDTGeodatabase"/>
          <xs:enumeration value="esriNDTShapefile"/>
          <xs:enumeration value="esriNDTSDC"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkElementType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNETJunction"/>
          <xs:enumeration value="esriNETEdge"/>
          <xs:enumeration value="esriNETTurn"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkSourceType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNSTNetworkSource"/>
          <xs:enumeration value="esriNSTSystemJunction"/>
          <xs:enumeration value="esriNSTJunctionFeature"/>
          <xs:enumeration value="esriNSTEdgeFeature"/>
          <xs:enumeration value="esriNSTTurnFeature"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkEdgeConnectivityPolicy">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNECPAnyVertex"/>
          <xs:enumeration value="esriNECPEndVertex"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNetworkJunctionConnectivityPolicy">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNJCPHonor"/>
          <xs:enumeration value="esriNJCPOverride"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="NetworkDirections">
        <xs:sequence>
          <xs:element name="DefaultOutputLengthUnits" type="esriNetworkAttributeUnits"/>
          <xs:element name="LengthAttributeName" type="xs:string"/>
          <xs:element name="TimeAttributeName" type="xs:string"/>
          <xs:element name="RoadClassAttributeName" type="xs:string"/>
          <xs:element name="SignpostFeatureClassName" type="xs:string"/>
          <xs:element name="SignpostStreetsTableName" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NetworkAttributeParameter">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="VarType" type="xs:int"/>
          <xs:element name="Value" type="xs:anyType"/>
          <xs:element name="DefaultValue" type="xs:anyType"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfNetworkAttributeParameter">
        <xs:sequence>
          <xs:element
            name="NetworkAttributeParameter"
            type="NetworkAttributeParameter"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NetworkAttribute">
        <xs:sequence>
          <xs:element name="ID" type="xs:int"/>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="Units" type="esriNetworkAttributeUnits2"/>
          <xs:element name="DataType" type="esriNetworkAttributeDataType"/>
          <xs:element name="UsageType" type="esriNetworkAttributeUsageType"/>
          <xs:element name="UserData" type="xs:anyType" nillable="true"/>
          <xs:element name="UseByDefault" type="xs:boolean"/>
          <xs:element name="AttributeParameters" type="ArrayOfNetworkAttributeParameter"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfNetworkAttribute">
        <xs:sequence>
          <xs:element
            name="NetworkAttribute"
            type="NetworkAttribute"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="EvaluatedNetworkAttribute">
        <xs:complexContent>
          <xs:extension base="NetworkAttribute"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfEvaluatedNetworkAttribute">
        <xs:sequence>
          <xs:element
            name="EvaluatedNetworkAttribute"
            type="EvaluatedNetworkAttribute"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Shield">
        <xs:sequence>
          <xs:element name="ShieldType" type="xs:string"/>
          <xs:element name="ShieldDescription" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfShield">
        <xs:sequence>
          <xs:element name="Shield" type="Shield" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Shields">
        <xs:sequence>
          <xs:element name="TypeFieldName" type="xs:string"/>
          <xs:element name="NumberFieldName" type="xs:string"/>
          <xs:element name="CombinedFieldName" type="xs:string"/>
          <xs:element name="UseCombinedField" type="xs:boolean"/>
          <xs:element name="ArrayOfShield" type="ArrayOfShield"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="StreetNameFields">
        <xs:sequence>
          <xs:element name="PrefixDirectionFieldName" type="xs:string"/>
          <xs:element name="PrefixTypeFieldName" type="xs:string"/>
          <xs:element name="StreetNameFieldName" type="xs:string"/>
          <xs:element name="SuffixDirectionsFieldName" type="xs:string"/>
          <xs:element name="SuffixTypeFieldName" type="xs:string"/>
          <xs:element name="Priority" type="xs:int"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfStreetNameFields">
        <xs:sequence>
          <xs:element
            name="StreetNameFields"
            type="StreetNameFields"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NetworkSourceDirections">
        <xs:sequence>
          <xs:element name="AdminAreaFieldName" type="xs:string"/>
          <xs:element name="Shields" type="Shields" minOccurs="0"/>
          <xs:element name="StreetNameFields" type="ArrayOfStreetNameFields"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NetworkSource">
        <xs:sequence>
          <xs:element name="ID" type="xs:int"/>
          <xs:element name="ClassID" type="xs:int"/>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="ElementType" type="esriNetworkElementType"/>
          <xs:element name="Properties" type="PropertySet" minOccurs="0" nillable="true"/>
          <xs:element name="NetworkSourceDirections" type="NetworkSourceDirections" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfNetworkSource">
        <xs:sequence>
          <xs:element name="NetworkSource" type="NetworkSource" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SystemJunctionSource">
        <xs:complexContent>
          <xs:extension base="NetworkSource">
            <xs:sequence>
              <xs:element name="ElevationFieldName" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfSystemJunctionSource">
        <xs:sequence>
          <xs:element
            name="SystemJunctionSource"
            type="SystemJunctionSource"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="TurnFeatureSource">
        <xs:complexContent>
          <xs:extension base="NetworkSource"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfTurnFeatureSource">
        <xs:sequence>
          <xs:element
            name="TurnFeatureSource"
            type="TurnFeatureSource"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="EdgeFeatureSource">
        <xs:complexContent>
          <xs:extension base="NetworkSource">
            <xs:sequence>
              <xs:element name="FromElevationFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="ToElevationFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="Connectivity" type="PropertySet"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfEdgeFeatureSource">
        <xs:sequence>
          <xs:element
            name="EdgeFeatureSource"
            type="EdgeFeatureSource"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="JunctionFeatureSource">
        <xs:complexContent>
          <xs:extension base="NetworkSource">
            <xs:sequence>
              <xs:element name="ElevationFieldName" type="xs:string" minOccurs="0"/>
              <xs:element name="Connectivity" type="PropertySet"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfJunctionFeatureSource">
        <xs:sequence>
          <xs:element
            name="JunctionFeatureSource"
            type="JunctionFeatureSource"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="NetworkAssignment">
        <xs:sequence>
          <xs:element name="IsDefault" type="xs:boolean"/>
          <xs:element name="ID" type="xs:int"/>
          <xs:element name="NetworkAttributeName" type="xs:string"/>
          <xs:element name="NetworkElementType" type="xs:string" minOccurs="0"/>
          <xs:element name="NetworkSourceName" type="xs:string" minOccurs="0"/>
          <xs:element name="NetworkEvaluatorCLSID" type="xs:string"/>
          <xs:element name="NetworkEdgeDirection" type="xs:string"/>
          <xs:element name="NetworkEvaluatorData" type="PropertySet"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfNetworkAssignment">
        <xs:sequence>
          <xs:element
            name="NetworkAssignment"
            type="NetworkAssignment"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DENetworkDataset">
        <xs:complexContent>
          <xs:extension base="DEGeoDataset">
            <xs:sequence>
              <xs:element name="LogicalNetworkName" type="xs:string"/>
              <xs:element name="NetworkType" type="xs:int"/>
              <xs:element name="Buildable" type="xs:boolean"/>
              <xs:element name="SupportsTurns" type="xs:boolean"/>
              <xs:element name="NetworkDirections" type="NetworkDirections" minOccurs="0"/>
              <xs:element name="Properties" type="PropertySet" nillable="true"/>
              <xs:element name="UserData" type="PropertySet" nillable="true"/>
              <xs:element name="EdgeFeatureSources" type="ArrayOfEdgeFeatureSource"/>
              <xs:element name="JunctionFeatureSources" type="ArrayOfJunctionFeatureSource"/>
              <xs:element name="SystemJunctionSources" type="ArrayOfSystemJunctionSource"/>
              <xs:element name="TurnFeatureSources" type="ArrayOfTurnFeatureSource"/>
              <xs:element
                name="EvaluatedNetworkAttributes"
                type="ArrayOfEvaluatedNetworkAttribute"
                minOccurs="0"/>
              <xs:element name="NetworkAttributes" type="ArrayOfNetworkAttribute" minOccurs="0"/>
              <xs:element name="NetworkAssignments" type="ArrayOfNetworkAssignment"/>
              <xs:element name="ConfigurationKeyword" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="DECadastralFabric">
        <xs:complexContent>
          <xs:extension base="DEGeoDataset">
            <xs:sequence>
              <xs:element name="ConfigurationKeyword" type="xs:string"/>
              <xs:element name="DefaultAccuracy" type="xs:int"/>
              <xs:element name="CadastralFieldEditsCollection" type="ArrayOfCadastralFieldEdits"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfCadastralFieldEdits">
        <xs:sequence>
          <xs:element
            name="CadastralFieldEdits"
            type="CadastralFieldEdits"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CadastralFieldEdits">
        <xs:sequence>
          <xs:element name="CadastralTableName" type="xs:string"/>
          <xs:element name="ExtendedAttributeFields" type="Fields"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="AnyDatasetData" abstract="true">
        <xs:sequence>
          <xs:element name="DatasetName" type="xs:string"/>
          <xs:element name="DatasetType" type="esriDatasetType"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="WorkspaceData">
        <xs:sequence>
          <xs:element name="DatasetData" type="AnyDatasetData" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="TableData">
        <xs:complexContent>
          <xs:extension base="AnyDatasetData">
            <xs:sequence>
              <xs:element name="TableRole" type="xs:string" minOccurs="0"/>
              <xs:element name="Data" type="RecordSet"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="RasterDatasetData">
        <xs:complexContent>
          <xs:extension base="AnyDatasetData">
            <xs:sequence>
              <xs:element name="Data" type="RasterData"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:simpleType name="esriRasterSdeCompressionTypeEnum">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRasterSdeCompressionTypeUncompressed"/>
          <xs:enumeration value="esriRasterSdeCompressionTypeRunLength"/>
          <xs:enumeration value="esriRasterSdeCompressionTypeJPEG"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="rstResamplingTypes">
        <xs:restriction base="xs:string">
          <xs:enumeration value="RSP_NearestNeighbor"/>
          <xs:enumeration value="RSP_BilinearInterpolation"/>
          <xs:enumeration value="RSP_CubicConvolution"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="RasterData">
        <xs:sequence>
          <xs:element name="StorageDef" type="RasterStorageDef" minOccurs="0"/>
          <xs:element name="File" type="xs:string" minOccurs="0"/>
          <xs:element name="Bytes" type="xs:base64Binary" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="RasterDef">
        <xs:sequence>
          <xs:element name="Description" type="xs:string" minOccurs="0"/>
          <xs:element name="IsByRef" type="xs:boolean" minOccurs="0"/>
          <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="RasterStorageDef">
        <xs:sequence>
          <xs:element name="CompressionQuality" type="xs:int"/>
          <xs:element name="CompressionType" type="esriRasterSdeCompressionTypeEnum"/>
          <xs:element name="PyramidLevel" type="xs:int"/>
          <xs:element name="PyramidResampleType" type="rstResamplingTypes"/>
          <xs:element name="TileHeight" type="xs:int"/>
          <xs:element name="TileWidth" type="xs:int"/>
          <xs:element name="Origin" type="Point" minOccurs="0"/>
          <xs:element name="CellSizeX" type="xs:double" minOccurs="0"/>
          <xs:element name="CellSizeY" type="xs:double" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DERasterCatalog">
        <xs:complexContent>
          <xs:extension base="DEFeatureClass"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="WorkspaceName">
        <xs:complexContent>
          <xs:extension base="Name">
            <xs:sequence>
              <xs:element name="PathName" type="xs:string" minOccurs="0"/>
              <xs:element name="BrowseName" type="xs:string" minOccurs="0"/>
              <xs:element name="WorkspaceFactoryProgID" type="xs:string" minOccurs="0"/>
              <xs:element name="WorkspaceType" type="esriWorkspaceType" minOccurs="0"/>
              <xs:element name="ConnectionProperties" type="PropertySet" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GPMessages">
        <xs:sequence>
          <xs:element name="GPMessages" type="ArrayOfGPMessage"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfGPMessage">
        <xs:sequence>
          <xs:element name="GPMessage" type="GPMessage" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPMessage">
        <xs:sequence>
          <xs:element name="MessageType" type="xs:int"/>
          <xs:element name="MessageCode" type="xs:int"/>
          <xs:element name="MessageDesc" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="DEToolbox">
        <xs:complexContent>
          <xs:extension base="DEDataset">
            <xs:sequence>
              <xs:element name="Alias" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:simpleType name="esriDEExpandType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriDEExpandNone"/>
          <xs:enumeration value="esriDEExpandChildren"/>
          <xs:enumeration value="esriDEExpandDescendants"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="DEBrowseOptions">
        <xs:sequence>
          <xs:element name="ExpandType" type="esriDEExpandType"/>
          <xs:element name="RetrieveMetadata" type="xs:boolean"/>
          <xs:element name="RetrieveFullProperties" type="xs:boolean"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriReplicaRole">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriReplicaRoleChild"/>
          <xs:enumeration value="esriReplicaRoleParent"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriReplicaModelType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriModelTypeFullGeodatabase"/>
          <xs:enumeration value="esriModelTypeSimple"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriRowsType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRowsTypeFilter"/>
          <xs:enumeration value="esriRowsTypeAll"/>
          <xs:enumeration value="esriRowsTypeNone"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriReplicaAccessType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriReplicaAccessNone"/>
          <xs:enumeration value="esriReplicaChildReadOnly"/>
          <xs:enumeration value="esriReplicaBothReadWrite"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ArrayOfGPReplica">
        <xs:sequence>
          <xs:element name="GPReplica" type="GPReplica" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPReplicaDescription">
        <xs:sequence>
          <xs:element name="ModelType" type="esriReplicaModelType"/>
          <xs:element name="SingleGeneration" type="xs:boolean"/>
          <xs:element name="SpatialRelation" type="esriSpatialRelEnum"/>
          <xs:element name="QueryGeometry" type="Geometry" minOccurs="0"/>
          <xs:element name="GPReplicaDatasets" type="ArrayOfGPReplicaDataset"/>
          <xs:element name="TransferRelatedObjects" type="xs:boolean"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfGPReplicaDataset">
        <xs:sequence>
          <xs:element
            name="GPReplicaDataset"
            type="GPReplicaDataset"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GPReplicaDataset">
        <xs:sequence>
          <xs:element name="DatasetName" type="xs:string"/>
          <xs:element name="DatasetType" type="esriDatasetType"/>
          <xs:element name="RowsType" type="esriRowsType"/>
          <xs:element name="IsPrivate" type="xs:boolean"/>
          <xs:element name="UseGeometry" type="xs:boolean"/>
          <xs:element name="DefQuery" type="xs:string" minOccurs="0"/>
          <xs:element name="RelExtractDirection" type="esriRelExtractDirection" minOccurs="0"/>
          <xs:element name="RelOriginClass" type="xs:string" minOccurs="0"/>
          <xs:element name="RelDestinationClass" type="xs:string" minOccurs="0"/>
          <xs:element name="SelectionIDs" type="ArrayOfInt" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriRelExtractDirection">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRelExtractDirectionForward"/>
          <xs:enumeration value="esriRelExtractDirectionBackward"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriReplicaState">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriReplicaStateSendingData"/>
          <xs:enumeration value="esriReplicaStateWaitingForData"/>
          <xs:enumeration value="esriReplicaStateSendingAcknowledgment"/>
          <xs:enumeration value="esriReplicaStateNone"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="GPReplica">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="ID" type="xs:int"/>
          <xs:element name="ReplicaVersion" type="xs:string"/>
          <xs:element name="CreationDate" type="xs:string" minOccurs="0"/>
          <xs:element name="GUID" type="xs:string"/>
          <xs:element name="Role" type="esriReplicaRole"/>
          <xs:element name="AccessType" type="esriReplicaAccessType"/>
          <xs:element name="MyGenerationNumber" type="xs:int"/>
          <xs:element name="SibGenerationNumber" type="xs:int"/>
          <xs:element name="SibMyGenerationNumber" type="xs:int"/>
          <xs:element name="ReplicaState" type="esriReplicaState"/>
          <xs:element name="SibConnectionString" type="xs:string" minOccurs="0"/>
          <xs:element name="GPReplicaDescription" type="GPReplicaDescription"/>
          <xs:element name="ReconcilePolicy" type="esriReplicaReconcilePolicyType"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriVersionAccess">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriVersionAccessPrivate"/>
          <xs:enumeration value="esriVersionAccessPublic"/>
          <xs:enumeration value="esriVersionAccessProtected"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="GPVersionInfo">
        <xs:sequence>
          <xs:element name="VersionName" type="xs:string"/>
          <xs:element name="Description" type="xs:string"/>
          <xs:element name="Created" type="xs:string" minOccurs="0"/>
          <xs:element name="Modified" type="xs:string" minOccurs="0"/>
          <xs:element name="Access" type="esriVersionAccess"/>
          <xs:element name="ParentName" type="xs:string"/>
          <xs:element name="ChildrenNames" type="Names"/>
          <xs:element name="AncestorNames" type="Names"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfGPVersionInfo">
        <xs:sequence>
          <xs:element name="GPVersionInfo" type="GPVersionInfo" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriReplicaReconcilePolicyType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriReplicaDetectConflicts"/>
          <xs:enumeration value="esriReplicaResolveConflictsInFavorOfImportedChanges"/>
          <xs:enumeration value="esriReplicaResolveConflictsInFavorOfDatabaseChanges"/>
          <xs:enumeration value="esriReplicaResolveConflictsNone"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="GPReplicaOptions">
        <xs:sequence>
          <xs:element name="IsChildFirstSender" type="xs:boolean"/>
          <xs:element name="AccessType" type="esriReplicaAccessType"/>
          <xs:element name="ChildReconcilePolicy" type="esriReplicaReconcilePolicyType"/>
          <xs:element name="ParentReconcilePolicy" type="esriReplicaReconcilePolicyType"/>
        </xs:sequence>
      </xs:complexType>
      <!-- from GeoDatabaseDistributed -->
      <xs:simpleType name="esriGDSTransportType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriGDSTransportTypeEmbedded"/>
          <xs:enumeration value="esriGDSTransportTypeUrl"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="GDSData">
        <xs:sequence>
          <xs:element name="Compressed" type="xs:boolean"/>
          <xs:element name="TransportType" type="esriGDSTransportType"/>
          <xs:element name="EmbeddedData" type="xs:base64Binary" minOccurs="0"/>
          <xs:element name="URL" type="xs:string" minOccurs="0"/>
          <xs:element name="ConnectionProperties" type="PropertySet" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <!-- from Display -->
      <!--  (COLORS)          -->
      <xs:complexType name="Color" abstract="true">
        <xs:sequence>
          <xs:element name="UseWindowsDithering" type="xs:boolean" minOccurs="0"/>
          <xs:element name="AlphaValue" type="xs:unsignedByte" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GrayColor">
        <xs:complexContent>
          <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:complexContent>
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="Red" type="xs:unsignedByte"/>
              <xs:element name="Green" type="xs:unsignedByte"/>
              <xs:element name="Blue" type="xs:unsignedByte"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CmykColor">
        <xs:complexContent>
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="Cyan" type="xs:unsignedByte"/>
              <xs:element name="Magenta" type="xs:unsignedByte"/>
              <xs:element name="Yellow" type="xs:unsignedByte"/>
              <xs:element name="Black" type="xs:unsignedByte"/>
              <xs:element name="Overprint" type="xs:boolean"/>
              <xs:element name="IsSpot" type="xs:boolean"/>
              <xs:element name="SpotDescription" type="xs:string"/>
              <xs:element name="SpotPercent" type="xs:short"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="HlsColor">
        <xs:complexContent>
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="Hue" type="xs:short"/>
              <xs:element name="Lightness" type="xs:unsignedByte"/>
              <xs:element name="Saturation" type="xs:unsignedByte"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="HsvColor">
        <xs:complexContent>
          <xs:extension base="Color">
            <xs:sequence>
              <xs:element name="Hue" type="xs:short"/>
              <xs:element name="Saturation" type="xs:unsignedByte"/>
              <xs:element name="Value" type="xs:unsignedByte"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <!--  (SYMBOLS)         -->
      <xs:complexType name="Symbol" abstract="true">
        <xs:sequence/>
      </xs:complexType>
      <xs:simpleType name="esriSimpleFillStyle">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSFSSolid"/>
          <xs:enumeration value="esriSFSNull"/>
          <xs:enumeration value="esriSFSHorizontal"/>
          <xs:enumeration value="esriSFSVertical"/>
          <xs:enumeration value="esriSFSForwardDiagonal"/>
          <xs:enumeration value="esriSFSBackwardDiagonal"/>
          <xs:enumeration value="esriSFSCross"/>
          <xs:enumeration value="esriSFSDiagonalCross"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriSimpleLineStyle">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSLSSolid"/>
          <xs:enumeration value="esriSLSDash"/>
          <xs:enumeration value="esriSLSDot"/>
          <xs:enumeration value="esriSLSDashDotDot"/>
          <xs:enumeration value="esriSLSNull"/>
          <xs:enumeration value="esriSLSInsideFrame"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriSimpleMarkerStyle">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriSMSCircle"/>
          <xs:enumeration value="esriSMSSquare"/>
          <xs:enumeration value="esriSMSCross"/>
          <xs:enumeration value="esriSMSX"/>
          <xs:enumeration value="esriSMSDiamond"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextHorizontalAlignment">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTHALeft"/>
          <xs:enumeration value="esriTHACenter"/>
          <xs:enumeration value="esriTHARight"/>
          <xs:enumeration value="esriTHAFull"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextVerticalAlignment">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTVATop"/>
          <xs:enumeration value="esriTVACenter"/>
          <xs:enumeration value="esriTVABaseline"/>
          <xs:enumeration value="esriTVABottom"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextPosition">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTPNormal"/>
          <xs:enumeration value="esriTPSuperscript"/>
          <xs:enumeration value="esriTPSubscript"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextCase">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTCNormal"/>
          <xs:enumeration value="esriTCLowercase"/>
          <xs:enumeration value="esriTCAllCaps"/>
          <xs:enumeration value="esriTCSmallCaps"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriTextDirection">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriTDHorizontal"/>
          <xs:enumeration value="esriTDAngle"/>
          <xs:enumeration value="esriTDVertical"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriMaskStyle">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriMSNone"/>
          <xs:enumeration value="esriMSHalo"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriBalloonCalloutStyle">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriBCSRectangle"/>
          <xs:enumeration value="esriBCSRoundedRectangle"/>
          <xs:enumeration value="esriBCSOval"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriLineCalloutStyle">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriLCSBase"/>
          <xs:enumeration value="esriLCSMidpoint"/>
          <xs:enumeration value="esriLCSThreePoint"/>
          <xs:enumeration value="esriLCSFourPoint"/>
          <xs:enumeration value="esriLCSUnderline"/>
          <xs:enumeration value="esriLCSCustom"/>
          <xs:enumeration value="esriLCSCircularCW"/>
          <xs:enumeration value="esriLCSCircularCCW"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="SimpleFillSymbol">
        <xs:complexContent>
          <xs:extension base="FillSymbol">
            <xs:sequence>
              <xs:element name="Style" type="esriSimpleFillStyle"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SimpleLineSymbol">
        <xs:complexContent>
          <xs:extension base="LineSymbol">
            <xs:sequence>
              <xs:element name="Style" type="esriSimpleLineStyle"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SimpleMarkerSymbol">
        <xs:complexContent>
          <xs:extension base="MarkerSymbol">
            <xs:sequence>
              <xs:element name="Outline" type="xs:boolean"/>
              <xs:element name="OutlineSize" type="xs:double"/>
              <xs:element name="OutlineColor" type="Color"/>
              <xs:element name="Style" type="esriSimpleMarkerStyle"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="TextSymbol">
        <xs:complexContent>
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element name="Color" type="Color" minOccurs="0"/>
              <xs:element name="BreakCharIndex" type="xs:int"/>
              <xs:element name="VerticalAlignment" type="esriTextVerticalAlignment"/>
              <xs:element name="HorizontalAlignment" type="esriTextHorizontalAlignment"/>
              <xs:element name="Clip" type="xs:boolean"/>
              <xs:element name="RightToLeft" type="xs:boolean"/>
              <xs:element name="Angle" type="xs:double"/>
              <xs:element name="XOffset" type="xs:double"/>
              <xs:element name="YOffset" type="xs:double"/>
              <xs:element name="ShadowColor" type="Color" minOccurs="0"/>
              <xs:element name="ShadowXOffset" type="xs:double"/>
              <xs:element name="ShadowYOffset" type="xs:double"/>
              <xs:element name="TextPosition" type="esriTextPosition"/>
              <xs:element name="TextCase" type="esriTextCase"/>
              <xs:element name="CharacterSpacing" type="xs:double"/>
              <xs:element name="CharacterWidth" type="xs:double" default="100.0"/>
              <xs:element name="WordSpacing" type="xs:double" default="100.0"/>
              <xs:element name="Kerning" type="xs:boolean"/>
              <xs:element name="Leading" type="xs:double"/>
              <xs:element name="TextDirection" type="esriTextDirection"/>
              <xs:element name="FlipAngle" type="xs:double"/>
              <xs:element name="TypeSetting" type="xs:boolean"/>
              <xs:element name="TextPathClass" type="xs:string" minOccurs="0"/>
              <xs:element name="FillSymbol" type="Symbol" minOccurs="0"/>
              <xs:element name="Text" type="xs:string"/>
              <xs:element name="Size" type="xs:double"/>
              <xs:element name="MaskStyle" type="esriMaskStyle"/>
              <xs:element name="MaskSize" type="xs:double"/>
              <xs:element name="MaskSymbol" type="Symbol" minOccurs="0"/>
              <xs:element name="FontName" type="xs:string" minOccurs="0"/>
              <xs:element name="FontItalic" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FontUnderline" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FontStrikethrough" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FontWeight" type="xs:int" minOccurs="0"/>
              <xs:element name="FontCharset" type="xs:int" minOccurs="0"/>
              <xs:element name="FontSizeHi" type="xs:int" minOccurs="0"/>
              <xs:element name="FontSizeLo" type="xs:int" minOccurs="0"/>
              <xs:element name="TextParserClass" type="xs:string" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CharacterMarkerSymbol">
        <xs:complexContent>
          <xs:extension base="CartographicMarkerSymbol">
            <xs:sequence>
              <xs:element name="CharacterIndex" type="xs:int"/>
              <xs:element name="FontName" type="xs:string" minOccurs="0"/>
              <xs:element name="FontItalic" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FontUnderline" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FontStrikethrough" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FontWeight" type="xs:int" minOccurs="0"/>
              <xs:element name="FontCharset" type="xs:int" minOccurs="0"/>
              <xs:element name="FontSizeHi" type="xs:int" minOccurs="0"/>
              <xs:element name="FontSizeLo" type="xs:int" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PictureMarkerSymbol">
        <xs:complexContent>
          <xs:extension base="CartographicMarkerSymbol">
            <xs:sequence>
              <xs:element name="BgColor" type="Color" minOccurs="0"/>
              <xs:element name="BitmapTransColor" type="Color" minOccurs="0"/>
              <xs:element name="Picture" type="xs:base64Binary" minOccurs="0"/>
              <xs:element name="Swap1BitColor" type="xs:boolean"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PictureFillSymbol">
        <xs:complexContent>
          <xs:extension base="FillSymbol">
            <xs:sequence>
              <xs:element name="Picture" type="xs:base64Binary"/>
              <xs:element name="BgColor" type="Color" minOccurs="0"/>
              <xs:element name="FgColor" type="Color" minOccurs="0"/>
              <xs:element name="BitmapTransColor" type="Color" minOccurs="0"/>
              <xs:element name="XSeparation" type="xs:double" minOccurs="0"/>
              <xs:element name="YSeparation" type="xs:double" minOccurs="0"/>
              <xs:element name="Swap1BitColor" type="xs:boolean" minOccurs="0"/>
              <xs:element name="Angle" type="xs:double" minOccurs="0"/>
              <xs:element name="XOffset" type="xs:double" minOccurs="0"/>
              <xs:element name="YOffset" type="xs:double" minOccurs="0"/>
              <xs:element name="XScale" type="xs:double" minOccurs="0" default="1.0"/>
              <xs:element name="YScale" type="xs:double" minOccurs="0" default="1.0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="BalloonCallout">
        <xs:complexContent>
          <xs:extension base="Callout"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="LineCallout">
        <xs:complexContent>
          <xs:extension base="Callout">
            <xs:sequence/>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MarkerTextBackground">
        <xs:complexContent>
          <xs:extension base="TextBackground">
            <xs:sequence>
              <xs:element name="Scale" type="xs:boolean"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SimpleLineCallout">
        <xs:complexContent>
          <xs:extension base="Callout">
            <xs:sequence>
              <xs:element name="AutoSnap" type="xs:boolean"/>
              <xs:element name="LineGeometry" type="Geometry" minOccurs="0"/>
              <xs:element name="LineSymbol" type="Symbol" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="FillSymbol" abstract="true">
        <xs:complexContent>
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element name="Color" type="Color" minOccurs="0"/>
              <xs:element name="Outline" type="LineSymbol" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="LineSymbol" abstract="true">
        <xs:complexContent>
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element name="Color" type="Color" minOccurs="0"/>
              <xs:element name="Width" type="xs:double"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MarkerSymbol" abstract="true">
        <xs:complexContent>
          <xs:extension base="Symbol">
            <xs:sequence>
              <xs:element name="Angle" type="xs:double"/>
              <xs:element name="Color" type="Color" minOccurs="0"/>
              <xs:element name="Size" type="xs:double"/>
              <xs:element name="XOffset" type="xs:double"/>
              <xs:element name="YOffset" type="xs:double"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="TextBackground" abstract="true"/>
      <xs:complexType name="CartographicMarkerSymbol" abstract="true">
        <xs:complexContent>
          <xs:extension base="MarkerSymbol">
            <xs:sequence>
              <xs:element name="XScale" type="xs:double" default="1.0"/>
              <xs:element name="YScale" type="xs:double" default="1.0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Callout" abstract="true">
        <xs:complexContent>
          <xs:extension base="TextBackground">
            <xs:sequence>
              <xs:element name="AnchorPoint" type="Point" minOccurs="0"/>
              <xs:element name="LeaderTolerance" type="xs:double"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="XMLBinarySymbol">
        <xs:complexContent>
          <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:complexContent>
          <xs:extension base="FillSymbol">
            <xs:sequence>
              <xs:element name="Data" type="XMLPersistedObject"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <!-- from Carto -->
      <xs:complexType name="AreaPatch">
        <xs:complexContent>
          <xs:extension base="Patch"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfGraphicElement">
        <xs:sequence>
          <xs:element name="GraphicElement" type="GraphicElement" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfLayerDescription">
        <xs:sequence>
          <xs:element
            name="LayerDescription"
            type="LayerDescription"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapDescription">
        <xs:sequence>
          <xs:element name="MapDescription" type="MapDescription" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapFrameDescription">
        <xs:sequence>
          <xs:element
            name="MapFrameDescription"
            type="MapFrameDescription"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapImage">
        <xs:sequence>
          <xs:element name="MapImage" type="MapImage" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapLayerInfo">
        <xs:sequence>
          <xs:element name="MapLayerInfo" type="MapLayerInfo" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerBookmark">
        <xs:sequence>
          <xs:element
            name="MapServerBookmark"
            type="MapServerBookmark"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerFindResult">
        <xs:sequence>
          <xs:element
            name="MapServerFindResult"
            type="MapServerFindResult"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerHyperlink">
        <xs:sequence>
          <xs:element
            name="MapServerHyperlink"
            type="MapServerHyperlink"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerIdentifyResult">
        <xs:sequence>
          <xs:element
            name="MapServerIdentifyResult"
            type="MapServerIdentifyResult"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerLegendClass">
        <xs:sequence>
          <xs:element
            name="MapServerLegendClass"
            type="MapServerLegendClass"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerLegendGroup">
        <xs:sequence>
          <xs:element
            name="MapServerLegendGroup"
            type="MapServerLegendGroup"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerLegendInfo">
        <xs:sequence>
          <xs:element
            name="MapServerLegendInfo"
            type="MapServerLegendInfo"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerRelationship">
        <xs:sequence>
          <xs:element
            name="MapServerRelationship"
            type="MapServerRelationship"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMapServerRow">
        <xs:sequence>
          <xs:element name="MapServerRow" type="MapServerRow" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="CenterAndScale">
        <xs:complexContent>
          <xs:extension base="MapArea">
            <xs:sequence>
              <xs:element name="Center" type="Point" minOccurs="0"/>
              <xs:element name="Scale" type="xs:double"/>
              <xs:element name="DPI" type="xs:double" minOccurs="0"/>
              <xs:element name="DevBottom" type="xs:int" minOccurs="0"/>
              <xs:element name="DevLeft" type="xs:int" minOccurs="0"/>
              <xs:element name="DevTop" type="xs:int" minOccurs="0"/>
              <xs:element name="DevRight" type="xs:int" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CenterAndSize">
        <xs:complexContent>
          <xs:extension base="MapArea">
            <xs:sequence>
              <xs:element name="Center" type="Point" minOccurs="0"/>
              <xs:element name="Height" type="xs:double"/>
              <xs:element name="Width" type="xs:double"/>
              <xs:element name="Units" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="FeatureExtent">
        <xs:complexContent>
          <xs:extension base="MapArea">
            <xs:sequence>
              <xs:element name="DefaultScale" type="xs:double"/>
              <xs:element name="ExpandRatio" type="xs:double" default="1.0"/>
              <xs:element name="FeatureIDs" type="ArrayOfInt" minOccurs="0"/>
              <xs:element name="LayerID" type="xs:int"/>
              <xs:element name="MapName" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ImageDescription">
        <xs:sequence>
          <xs:element name="ImageType" type="ImageType" minOccurs="0"/>
          <xs:element name="ImageDisplay" type="ImageDisplay" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ImageDisplay">
        <xs:sequence>
          <xs:element name="ImageHeight" type="xs:int"/>
          <xs:element name="ImageWidth" type="xs:int"/>
          <xs:element name="ImageDPI" type="xs:double"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ImageResult">
        <xs:sequence>
          <xs:element name="ImageData" type="xs:base64Binary" minOccurs="0"/>
          <xs:element name="ImageURL" type="xs:string"/>
          <xs:element name="ImageHeight" type="xs:int"/>
          <xs:element name="ImageWidth" type="xs:int"/>
          <xs:element name="ImageDPI" type="xs:double"/>
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="esriImageFormat">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriImageNone"/>
          <xs:enumeration value="esriImageBMP"/>
          <xs:enumeration value="esriImageJPG"/>
          <xs:enumeration value="esriImageDIB"/>
          <xs:enumeration value="esriImageTIFF"/>
          <xs:enumeration value="esriImagePNG"/>
          <xs:enumeration value="esriImagePNG24"/>
          <xs:enumeration value="esriImageEMF"/>
          <xs:enumeration value="esriImagePS"/>
          <xs:enumeration value="esriImagePDF"/>
          <xs:enumeration value="esriImageAI"/>
          <xs:enumeration value="esriImageGIF"/>
          <xs:enumeration value="esriImageSVG"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriImageReturnType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriImageReturnURL"/>
          <xs:enumeration value="esriImageReturnMimeData"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="ImageType">
        <xs:sequence>
          <xs:element name="ImageFormat" type="esriImageFormat"/>
          <xs:element name="ImageReturnType" type="esriImageReturnType"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LayerDescription">
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int"/>
          <xs:element name="Visible" type="xs:boolean"/>
          <xs:element name="ShowLabels" type="xs:boolean"/>
          <xs:element name="ScaleSymbols" type="xs:boolean"/>
          <xs:element name="SelectionFeatures" type="ArrayOfInt" minOccurs="0"/>
          <xs:element name="SelectionColor" type="Color" minOccurs="0"/>
          <xs:element name="SelectionSymbol" type="Symbol" minOccurs="0"/>
          <xs:element name="SetSelectionSymbol" type="xs:boolean"/>
          <xs:element name="SelectionBufferDistance" type="xs:double"/>
          <xs:element name="ShowSelectionBuffer" type="xs:boolean"/>
          <xs:element name="DefinitionExpression" type="xs:string"/>
          <xs:element name="SourceID" type="xs:string" minOccurs="0"/>
          <xs:element name="SelectionBufferSymbol" type="FillSymbol" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LayoutImage">
        <xs:sequence>
          <xs:element name="ImageData" type="xs:base64Binary" minOccurs="0"/>
          <xs:element name="ImageURL" type="xs:string"/>
          <xs:element name="Extent" type="Envelope" minOccurs="0"/>
          <xs:element name="MapImages" type="ArrayOfMapImage" minOccurs="0"/>
          <xs:element name="ImageHeight" type="xs:int"/>
          <xs:element name="ImageWidth" type="xs:int"/>
          <xs:element name="ImageDPI" type="xs:double"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LegendClass">
        <xs:sequence>
          <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
          <xs:element name="Label" type="xs:string"/>
          <xs:element name="Description" type="xs:string"/>
          <xs:element name="LegendClassFormat" type="LegendClassFormat" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LegendClassFormat">
        <xs:sequence>
          <xs:element name="LabelSymbol" type="Symbol" minOccurs="0"/>
          <xs:element name="DescriptionSymbol" type="Symbol" minOccurs="0"/>
          <xs:element name="LinePatch" type="LinePatch" minOccurs="0"/>
          <xs:element name="AreaPatch" type="AreaPatch" minOccurs="0"/>
          <xs:element name="PatchWidth" type="xs:double"/>
          <xs:element name="PatchHeight" type="xs:double"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="LinePatch">
        <xs:complexContent>
          <xs:extension base="Patch"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MapArea" abstract="true">
        <xs:sequence>
          <xs:element name="Extent" type="Envelope" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapDescription">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="MapArea" type="MapArea" minOccurs="0"/>
          <xs:element name="LayerDescriptions" type="ArrayOfLayerDescription" minOccurs="0"/>
          <xs:element name="Rotation" type="xs:double"/>
          <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
          <xs:element name="TransparentColor" type="Color" minOccurs="0"/>
          <xs:element name="SelectionColor" type="Color" minOccurs="0"/>
          <xs:element name="BackgroundSymbol" type="FillSymbol" minOccurs="0"/>
          <xs:element name="CustomGraphics" type="ArrayOfGraphicElement" minOccurs="0"/>
          <!-- <xs:element name="LabelBarriers" type="GeometryCollection" minOccurs="0" /> -->
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapExtent">
        <xs:complexContent>
          <xs:extension base="MapArea"/>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MapFrameDescription">
        <xs:sequence>
          <xs:element name="Extent" type="Envelope" minOccurs="0"/>
          <xs:element name="MapDescription" type="MapDescription" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapImage">
        <xs:sequence>
          <xs:element name="ImageData" type="xs:base64Binary" minOccurs="0"/>
          <xs:element name="ImageURL" type="xs:string"/>
          <xs:element name="Extent" type="Envelope" minOccurs="0"/>
          <xs:element name="VisibleLayerIDs" type="ArrayOfInt" minOccurs="0"/>
          <xs:element name="MapScale" type="xs:double"/>
          <xs:element name="ImageHeight" type="xs:int"/>
          <xs:element name="ImageWidth" type="xs:int"/>
          <xs:element name="ImageDPI" type="xs:double"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapLayerInfo">
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int"/>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="Description" type="xs:string"/>
          <xs:element name="LayerType" type="xs:string"/>
          <xs:element name="SourceDescription" type="xs:string"/>
          <xs:element name="HasLabels" type="xs:boolean"/>
          <xs:element name="CanSelect" type="xs:boolean"/>
          <xs:element name="CanScaleSymbols" type="xs:boolean"/>
          <xs:element name="MinScale" type="xs:double"/>
          <xs:element name="MaxScale" type="xs:double"/>
          <xs:element name="Extent" type="Envelope" minOccurs="0"/>
          <xs:element name="HasHyperlinks" type="xs:boolean"/>
          <xs:element name="HasAttributes" type="xs:boolean"/>
          <xs:element name="CanIdentify" type="xs:boolean"/>
          <xs:element name="CanFind" type="xs:boolean"/>
          <xs:element name="IsFeatureLayer" type="xs:boolean"/>
          <xs:element name="Fields" type="Fields" minOccurs="0"/>
          <xs:element name="DisplayField" type="xs:string"/>
          <xs:element name="IDField" type="xs:string"/>
          <xs:element name="IsComposite" type="xs:boolean"/>
          <xs:element name="SubLayerIDs" type="ArrayOfInt" minOccurs="0"/>
          <xs:element name="ParentLayerID" type="xs:int"/>
          <xs:element name="FieldAliases" type="ArrayOfString" minOccurs="0"/>
          <xs:element name="CopyrightText" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerBookmark">
        <xs:complexContent>
          <xs:extension base="MapArea">
            <xs:sequence>
              <xs:element name="Name" type="xs:string"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MapServerFindResult">
        <xs:sequence>
          <xs:element name="Value" type="xs:string"/>
          <xs:element name="LayerID" type="xs:int"/>
          <xs:element name="FeatureID" type="xs:int"/>
          <xs:element name="FieldName" type="xs:string"/>
          <xs:element name="Shape" type="Geometry" minOccurs="0"/>
          <xs:element name="Properties" type="PropertySet" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerHyperlink">
        <xs:sequence>
          <xs:element name="Location" type="Geometry" minOccurs="0"/>
          <xs:element name="URL" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerIdentifyResult">
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int"/>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="Properties" type="PropertySet" minOccurs="0"/>
          <xs:element name="Shape" type="Geometry" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerInfo">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="Description" type="xs:string"/>
          <xs:element name="FullExtent" type="Envelope" minOccurs="0"/>
          <xs:element name="Extent" type="Envelope" minOccurs="0"/>
          <xs:element name="SpatialReference" type="SpatialReference" minOccurs="0"/>
          <xs:element name="MapLayerInfos" type="ArrayOfMapLayerInfo" minOccurs="0"/>
          <xs:element name="BackgroundColor" type="Color" minOccurs="0"/>
          <xs:element name="Bookmarks" type="ArrayOfMapServerBookmark" minOccurs="0"/>
          <xs:element name="DefaultMapDescription" type="MapDescription" minOccurs="0"/>
          <xs:element name="Units" type="xs:string"/>
          <xs:element name="SupportedImageReturnTypes" type="esriImageReturnType"/>
          <xs:element name="BackgroundSymbol" type="FillSymbol" minOccurs="0"/>
          <xs:element name="CopyrightText" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerLegendClass">
        <xs:sequence>
          <xs:element name="Label" type="xs:string"/>
          <xs:element name="Description" type="xs:string"/>
          <xs:element name="SymbolImage" type="ImageResult" minOccurs="0"/>
          <xs:element name="TransparentColor" type="Color" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerLegendGroup">
        <xs:sequence>
          <xs:element name="Heading" type="xs:string"/>
          <xs:element name="LegendClasses" type="ArrayOfMapServerLegendClass" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerLegendInfo">
        <xs:sequence>
          <xs:element name="LayerID" type="xs:int"/>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="LegendGroups" type="ArrayOfMapServerLegendGroup" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerLegendPatch">
        <xs:sequence>
          <xs:element name="Width" type="xs:double"/>
          <xs:element name="Height" type="xs:double"/>
          <xs:element name="ImageDPI" type="xs:double"/>
          <xs:element name="LinePatch" type="LinePatch" minOccurs="0"/>
          <xs:element name="AreaPatch" type="AreaPatch" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerRelationship">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="Rows" type="ArrayOfMapServerRow" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="MapServerRow">
        <xs:sequence>
          <xs:element name="Name" type="xs:string"/>
          <xs:element name="Properties" type="PropertySet" minOccurs="0"/>
          <xs:element name="Relationships" type="ArrayOfMapServerRelationship" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PageDescription">
        <xs:sequence>
          <xs:element name="Height" type="xs:double"/>
          <xs:element name="Width" type="xs:double"/>
          <xs:element name="Units" type="xs:string"/>
          <xs:element name="Extent" type="Envelope" minOccurs="0"/>
          <xs:element name="MapFrameDescriptions" type="ArrayOfMapFrameDescription" minOccurs="0"/>
          <xs:element name="CustomGraphics" type="ArrayOfGraphicElement" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SQLSyntaxInfo">
        <xs:sequence>
          <xs:element name="FunctionNames" type="PropertySet" minOccurs="0"/>
          <xs:element name="SpecialCharacters" type="PropertySet" minOccurs="0"/>
          <xs:element name="SupportedPredicates" type="ArrayOfString" minOccurs="0"/>
          <xs:element name="SupportedClauses" type="ArrayOfString" minOccurs="0"/>
          <xs:element name="IdentifierCase" type="xs:boolean"/>
          <xs:element name="DelimitedIdentifierCase" type="xs:boolean"/>
          <xs:element name="StringComparisonCase" type="xs:boolean"/>
          <xs:element name="Keywords" type="ArrayOfString" minOccurs="0"/>
          <xs:element name="InvalidCharacters" type="xs:string"/>
          <xs:element name="InvalidStartingCharacters" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Shadow" abstract="true">
        <xs:sequence/>
      </xs:complexType>
      <xs:complexType name="Background" abstract="true">
        <xs:sequence/>
      </xs:complexType>
      <xs:complexType name="SymbolBackground">
        <xs:complexContent>
          <xs:extension base="Background">
            <xs:sequence>
              <xs:element name="HorizontalGap" type="xs:double"/>
              <xs:element name="CornerRounding" type="xs:short"/>
              <xs:element name="VerticalGap" type="xs:double"/>
              <xs:element name="Symbol" type="FillSymbol" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Border" abstract="true">
        <xs:sequence/>
      </xs:complexType>
      <xs:complexType name="SymbolBorder">
        <xs:complexContent>
          <xs:extension base="Border">
            <xs:sequence>
              <xs:element name="HorizontalGap" type="xs:double"/>
              <xs:element name="CornerRounding" type="xs:short"/>
              <xs:element name="VerticalGap" type="xs:double"/>
              <xs:element name="Symbol" type="LineSymbol" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="SymbolShadow">
        <xs:complexContent>
          <xs:extension base="Shadow">
            <xs:sequence>
              <xs:element name="Symbol" type="LineSymbol" minOccurs="0"/>
              <xs:element name="CornerRounding" type="xs:short"/>
              <xs:element name="HorizontalOffset" type="xs:double"/>
              <xs:element name="VerticalOffset" type="xs:double"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Element" abstract="true">
        <xs:sequence/>
      </xs:complexType>
      <xs:complexType name="GraphicElement" abstract="true">
        <xs:complexContent>
          <xs:extension base="Element">
            <xs:sequence/>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="LineElement">
        <xs:complexContent>
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
              <xs:element name="Line" type="Geometry"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FixedAspectRatio" type="xs:boolean" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="CircleElement">
        <xs:complexContent>
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Rectangle" type="Geometry"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FixedAspectRatio" type="xs:boolean" minOccurs="0"/>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="EllipseElement">
        <xs:complexContent>
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Rectangle" type="Geometry"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FixedAspectRatio" type="xs:boolean" minOccurs="0"/>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="GroupElement">
        <xs:complexContent>
          <xs:extension base="Element">
            <xs:sequence>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Elements" type="ArrayOfGraphicElement"/>
              <xs:element name="Rectangle" type="Geometry" minOccurs="0"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FixedAspectRatio" type="xs:boolean" minOccurs="0"/>
              <xs:element name="Border" type="Border" minOccurs="0"/>
              <xs:element name="Background" type="Background" minOccurs="0"/>
              <xs:element name="DraftMode" type="xs:boolean" minOccurs="0"/>
              <xs:element name="Shadow" type="Shadow" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="MarkerElement">
        <xs:complexContent>
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
              <xs:element name="Point" type="Point"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ParagraphTextElement">
        <xs:complexContent>
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Text" type="xs:string" minOccurs="0"/>
              <xs:element name="Scale" type="xs:double" minOccurs="0"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
              <xs:element name="TextGeometry" type="Geometry"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FrameBorder" type="Border" minOccurs="0"/>
              <xs:element name="FrameBackground" type="Background" minOccurs="0"/>
              <xs:element name="FrameShadow" type="Shadow" minOccurs="0"/>
              <xs:element name="ColumnGap" type="xs:double" minOccurs="0"/>
              <xs:element name="ColumnCount" type="xs:int" minOccurs="0"/>
              <xs:element name="Margin" type="xs:double" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="PolygonElement">
        <xs:complexContent>
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
              <xs:element name="Polygon" type="Geometry"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FixedAspectRation" type="xs:boolean" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="RectangleElement">
        <xs:complexContent>
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Rectangle" type="Geometry"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
              <xs:element name="FixedAspectRation" type="xs:boolean" minOccurs="0"/>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="TextElement">
        <xs:complexContent>
          <xs:extension base="GraphicElement">
            <xs:sequence>
              <xs:element name="Name" type="xs:string" minOccurs="0"/>
              <xs:element name="Type" type="xs:string" minOccurs="0"/>
              <xs:element name="AutoTransform" type="xs:boolean" minOccurs="0"/>
              <xs:element name="ReferenceScale" type="xs:double" minOccurs="0"/>
              <xs:element name="Text" type="xs:string" minOccurs="0"/>
              <xs:element name="Scale" type="xs:boolean" minOccurs="0"/>
              <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
              <xs:element name="TextGeometry" type="Geometry"/>
              <xs:element name="Locked" type="xs:boolean" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="Patch">
        <xs:sequence>
          <xs:element name="Name" type="xs:string" minOccurs="0"/>
          <xs:element name="PreserveAspectRatio" type="xs:boolean" minOccurs="0"/>
          <xs:element name="Geometry" type="Geometry" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <!-- Begining of FeatureRenderer-->
      <!-- base-->
      <xs:simpleType name="esriRotationType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriRotateSymbolGeographic"/>
          <xs:enumeration value="esriRotateSymbolArithmetic"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType name="esriNormalizationType">
        <xs:restriction base="xs:string">
          <xs:enumeration value="esriNormalizeByField"/>
          <xs:enumeration value="esriNormalizeByLog"/>
          <xs:enumeration value="esriNormalizeByPercentOfTotal"/>
          <xs:enumeration value="esriNormalizeByArea"/>
          <xs:enumeration value="esriNormalizeByNothing"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="FeatureRenderer" abstract="true">
        <xs:sequence/>
      </xs:complexType>
      <!-- RenderDescription Elements-->
      <xs:complexType name="UniqueValueInfo">
        <xs:sequence>
          <xs:element name="Value" type="xs:string"/>
          <xs:element name="Label" type="xs:string" minOccurs="0"/>
          <xs:element name="Description" type="xs:string" minOccurs="0"/>
          <xs:element name="Symbol" type="Symbol" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ClassBreakInfo">
        <xs:sequence>
          <xs:element name="ClassMaximumValue" type="xs:double"/>
          <xs:element name="Label" type="xs:string" minOccurs="0"/>
          <xs:element name="Description" type="xs:string" minOccurs="0"/>
          <xs:element name="Symbol" type="Symbol"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfClassBreakInfo">
        <xs:sequence>
          <xs:element name="ClassBreakInfo" type="ClassBreakInfo" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfUniqueValueInfo">
        <xs:sequence>
          <xs:element
            name="UniqueValueInfo"
            type="UniqueValueInfo"
            minOccurs="0"
            maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
      <!-- RendererDescription types -->
      <xs:complexType name="SimpleRenderer">
        <xs:complexContent>
          <xs:extension base="FeatureRenderer">
            <xs:sequence>
              <xs:element name="Symbol" type="Symbol"/>
              <xs:element name="Label" type="xs:string" minOccurs="0"/>
              <xs:element name="Description" type="xs:string" minOccurs="0"/>
              <xs:element name="RotationField" type="xs:string" minOccurs="0"/>
              <xs:element name="RotationType" type="esriRotationType" minOccurs="0"/>
              <xs:element name="TransparencyField" type="xs:string" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="UniqueValueRenderer">
        <xs:complexContent>
          <xs:extension base="FeatureRenderer">
            <xs:sequence>
              <xs:element name="Field1" type="xs:string"/>
              <xs:element name="Field2" type="xs:string" minOccurs="0"/>
              <xs:element name="Field3" type="xs:string" minOccurs="0"/>
              <xs:element name="FieldDelimiter" type="xs:string" minOccurs="0"/>
              <xs:element name="DefaultSymbol" type="Symbol" minOccurs="0"/>
              <xs:element name="DefaultLabel" type="xs:string" minOccurs="0"/>
              <xs:element name="UniqueValueInfos" type="ArrayOfUniqueValueInfo" minOccurs="0"/>
              <xs:element name="RotationField" type="xs:string" minOccurs="0"/>
              <xs:element name="RotationType" type="esriRotationType" minOccurs="0"/>
              <xs:element name="TransparencyField" type="xs:string" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ClassBreaksRenderer">
        <xs:complexContent>
          <xs:extension base="FeatureRenderer">
            <xs:sequence>
              <xs:element name="Field" type="xs:string"/>
              <xs:element name="MinimumValue" type="xs:double"/>
              <xs:element name="ClassBreakInfos" type="ArrayOfClassBreakInfo"/>
              <xs:element name="BackgroundSymbol" type="FillSymbol" minOccurs="0"/>
              <xs:element name="NormalizationField" type="xs:string" minOccurs="0"/>
              <xs:element name="NormalizationType" type="esriNormalizationType" minOccurs="0"/>
              <xs:element name="NormalizationTotal" type="xs:double" minOccurs="0"/>
              <xs:element name="RotationField" type="xs:string" minOccurs="0"/>
              <xs:element name="RotationType" type="esriRotationType" minOccurs="0"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <!-- End of FeatureRenderer-->
      <xs:complexType name="LayerDrawingDescription" abstract="true">
        <xs:sequence/>
      </xs:complexType>
      <xs:complexType name="FeatureLayerDrawingDescription">
        <xs:complexContent>
          <xs:extension base="LayerDrawingDescription">
            <xs:sequence>
              <xs:element name="FeatureRenderer" type="FeatureRenderer"/>
              <xs:element name="ScaleSymbols" type="xs:boolean"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
    </xs:schema>
  </types>
  <message name="CancelJobIn">
    <part name="parameters" element="e:CancelJob"/>
  </message>
  <message name="CancelJobOut">
    <part name="parameters" element="e:CancelJobResponse"/>
  </message>
  <message name="ExecuteIn">
    <part name="parameters" element="e:Execute"/>
  </message>
  <message name="ExecuteOut">
    <part name="parameters" element="e:ExecuteResponse"/>
  </message>
  <message name="GetExecutionTypeIn">
    <part name="parameters" element="e:GetExecutionType"/>
  </message>
  <message name="GetExecutionTypeOut">
    <part name="parameters" element="e:GetExecutionTypeResponse"/>
  </message>
  <message name="GetJobMessagesIn">
    <part name="parameters" element="e:GetJobMessages"/>
  </message>
  <message name="GetJobMessagesOut">
    <part name="parameters" element="e:GetJobMessagesResponse"/>
  </message>
  <message name="GetJobResultIn">
    <part name="parameters" element="e:GetJobResult"/>
  </message>
  <message name="GetJobResultOut">
    <part name="parameters" element="e:GetJobResultResponse"/>
  </message>
  <message name="GetJobStatusIn">
    <part name="parameters" element="e:GetJobStatus"/>
  </message>
  <message name="GetJobStatusOut">
    <part name="parameters" element="e:GetJobStatusResponse"/>
  </message>
  <message name="GetResultMapServerNameIn">
    <part name="parameters" element="e:GetResultMapServerName"/>
  </message>
  <message name="GetResultMapServerNameOut">
    <part name="parameters" element="e:GetResultMapServerNameResponse"/>
  </message>
  <message name="GetTaskInfosIn">
    <part name="parameters" element="e:GetTaskInfos"/>
  </message>
  <message name="GetTaskInfosOut">
    <part name="parameters" element="e:GetTaskInfosResponse"/>
  </message>
  <message name="GetTaskNamesIn">
    <part name="parameters" element="e:GetTaskNames"/>
  </message>
  <message name="GetTaskNamesOut">
    <part name="parameters" element="e:GetTaskNamesResponse"/>
  </message>
  <message name="GetToolInfoIn">
    <part name="parameters" element="e:GetToolInfo"/>
  </message>
  <message name="GetToolInfoOut">
    <part name="parameters" element="e:GetToolInfoResponse"/>
  </message>
  <message name="GetToolInfosIn">
    <part name="parameters" element="e:GetToolInfos"/>
  </message>
  <message name="GetToolInfosOut">
    <part name="parameters" element="e:GetToolInfosResponse"/>
  </message>
  <message name="GetToolNamesIn">
    <part name="parameters" element="e:GetToolNames"/>
  </message>
  <message name="GetToolNamesOut">
    <part name="parameters" element="e:GetToolNamesResponse"/>
  </message>
  <message name="SubmitJobIn">
    <part name="parameters" element="e:SubmitJob"/>
  </message>
  <message name="SubmitJobOut">
    <part name="parameters" element="e:SubmitJobResponse"/>
  </message>
  <message name="GetResultWorkspaceIn">
    <part name="parameters" element="e:GetResultWorkspace"/>
  </message>
  <message name="GetResultWorkspaceOut">
    <part name="parameters" element="e:GetResultWorkspaceResponse"/>
  </message>
  <portType name="GPServerPort">
    <operation name="CancelJob">
      <input message="e:CancelJobIn" ID="Text1" NAME="Text1"/>
      <output message="e:CancelJobOut"/>
    </operation>
    <operation name="Execute">
      <input message="e:ExecuteIn" ID="Text2" NAME="Text2"/>
      <output message="e:ExecuteOut"/>
    </operation>
    <operation name="GetExecutionType">
      <input message="e:GetExecutionTypeIn" ID="Text3" NAME="Text3"/>
      <output message="e:GetExecutionTypeOut"/>
    </operation>
    <operation name="GetJobMessages">
      <input message="e:GetJobMessagesIn" ID="Text4" NAME="Text4"/>
      <output message="e:GetJobMessagesOut"/>
    </operation>
    <operation name="GetJobResult">
      <input message="e:GetJobResultIn" ID="Text5" NAME="Text5"/>
      <output message="e:GetJobResultOut"/>
    </operation>
    <operation name="GetJobStatus">
      <input message="e:GetJobStatusIn" ID="Text6" NAME="Text6"/>
      <output message="e:GetJobStatusOut"/>
    </operation>
    <operation name="GetResultMapServerName">
      <input message="e:GetResultMapServerNameIn" ID="Text7" NAME="Text7"/>
      <output message="e:GetResultMapServerNameOut"/>
    </operation>
    <operation name="GetTaskInfos">
      <input message="e:GetTaskInfosIn" ID="Text8" NAME="Text8"/>
      <output message="e:GetTaskInfosOut"/>
    </operation>
    <operation name="GetTaskNames">
      <input message="e:GetTaskNamesIn" ID="Text9" NAME="Text9"/>
      <output message="e:GetTaskNamesOut"/>
    </operation>
    <operation name="GetToolInfo">
      <input message="e:GetToolInfoIn" ID="Text10" NAME="Text10"/>
      <output message="e:GetToolInfoOut"/>
    </operation>
    <operation name="GetToolInfos">
      <input message="e:GetToolInfosIn" ID="Text11" NAME="Text11"/>
      <output message="e:GetToolInfosOut"/>
    </operation>
    <operation name="GetToolNames">
      <input message="e:GetToolNamesIn" ID="Text12" NAME="Text12"/>
      <output message="e:GetToolNamesOut"/>
    </operation>
    <operation name="SubmitJob">
      <input message="e:SubmitJobIn" ID="Text13" NAME="Text13"/>
      <output message="e:SubmitJobOut"/>
    </operation>
    <operation name="GetResultWorkspace">
      <input message="e:GetResultWorkspaceIn" ID="Text14" NAME="Text14"/>
      <output message="e:GetResultWorkspaceOut"/>
    </operation>
  </portType>
  <binding name="GPServerBinding" type="e:GPServerPort">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="CancelJob">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text15" NAME="Text15">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="Execute">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text16" NAME="Text16">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetExecutionType">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text17" NAME="Text17">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetJobMessages">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text18" NAME="Text18">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetJobResult">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text19" NAME="Text19">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetJobStatus">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text20" NAME="Text20">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetResultMapServerName">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text21" NAME="Text21">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetTaskInfos">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text22" NAME="Text22">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetTaskNames">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text23" NAME="Text23">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetToolInfo">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text24" NAME="Text24">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetToolInfos">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text25" NAME="Text25">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetToolNames">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text26" NAME="Text26">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="SubmitJob">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text27" NAME="Text27">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="GetResultWorkspace">
      <soap:operation soapAction="" style="document"/>
      <input ID="Text28" NAME="Text28">
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="#NAME#">
    <port name="GPPort" binding="e:GPServerBinding">
      <soap:address location="#URL#"/>
    </port>
  </service>
</definitions>