<?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"/>
			<output message="e:CancelJobOut"/>
		</operation>

		<operation name="Execute">
			<input message="e:ExecuteIn"/>
			<output message="e:ExecuteOut"/>
		</operation>

		<operation name="GetExecutionType">
			<input message="e:GetExecutionTypeIn"/>
			<output message="e:GetExecutionTypeOut"/>
		</operation>

		<operation name="GetJobMessages">
			<input message="e:GetJobMessagesIn"/>
			<output message="e:GetJobMessagesOut"/>
		</operation>

		<operation name="GetJobResult">
			<input message="e:GetJobResultIn"/>
			<output message="e:GetJobResultOut"/>
		</operation>

		<operation name="GetJobStatus">
			<input message="e:GetJobStatusIn"/>
			<output message="e:GetJobStatusOut"/>
		</operation>

		<operation name="GetResultMapServerName">
			<input message="e:GetResultMapServerNameIn"/>
			<output message="e:GetResultMapServerNameOut"/>
		</operation>

		<operation name="GetTaskInfos">
			<input message="e:GetTaskInfosIn"/>
			<output message="e:GetTaskInfosOut"/>
		</operation>

		<operation name="GetTaskNames">
			<input message="e:GetTaskNamesIn"/>
			<output message="e:GetTaskNamesOut"/>
		</operation>

		<operation name="GetToolInfo">
			<input message="e:GetToolInfoIn"/>
			<output message="e:GetToolInfoOut"/>
		</operation>

		<operation name="GetToolInfos">
			<input message="e:GetToolInfosIn"/>
			<output message="e:GetToolInfosOut"/>
		</operation>

		<operation name="GetToolNames">
			<input message="e:GetToolNamesIn"/>
			<output message="e:GetToolNamesOut"/>
		</operation>

		<operation name="SubmitJob">
			<input message="e:SubmitJobIn"/>
			<output message="e:SubmitJobOut"/>
		</operation>

		<operation name="GetResultWorkspace">
			<input message="e:GetResultWorkspaceIn"/>
			<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>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
  
		<operation name="Execute">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>

		<operation name="GetExecutionType">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		
		<operation name="GetJobMessages">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		
		<operation name="GetJobResult">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		
		<operation name="GetJobStatus">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		
		<operation name="GetResultMapServerName">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		
		<operation name="GetTaskInfos">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		
		<operation name="GetTaskNames">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>

		<operation name="GetToolInfo">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>

		<operation name="GetToolInfos">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>

		<operation name="GetToolNames">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>

		<operation name="SubmitJob">
			<soap:operation soapAction="" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>

		<operation name="GetResultWorkspace">
			<soap:operation soapAction="" style="document"/>
			<input>
				<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>
