<?xml version="1.0"?>
<schema targetNamespace="http://www.landxml.org/schema/LandXML-0.88/LandXML-0.88" xmlns:lx="http://www.landxml.org/schema/LandXML-0.88/LandXML-0.88" xmlns="http://www.w3.org/2000/10/XMLSchema" version="0.88" id="LandXML-0.88.xsd">
	<!-- root element declarations-->
	<element name="LandXML">
		<complexType>
			<sequence>
				<element ref="lx:Project" minOccurs="0"/>
				<element ref="lx:Units"/>
				<element ref="lx:CoordinateSystem" minOccurs="0"/>
				<element ref="lx:Application" minOccurs="0" maxOccurs="unbounded"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:Survey" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:CgPoints" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Surfaces" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Parcels" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Alignments" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:PipeNetworks" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:CoordGeom" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:CrossSects" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:CgPointList" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:GradeModel" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
				<any/>
			</sequence>
			<attribute name="date" type="date" use="required"/>
			<attribute name="time" type="time" use="required"/>
			<attribute name="version" type="string" use="required"/>
			<attribute name="language" type="string"/>
			<attribute name="readOnly" type="boolean"/>
			<attribute name="LandXMLId" type="int" use="optional"/>
			<attribute name="crc" type="integer"/>
			<!-- data elements -->
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
		<unique name="uPntName">
			<selector xpath="CgPoints/CgPoint"/>
			<field xpath="@name"/>
		</unique>
		<unique name="uSrfName">
			<selector xpath="/Surface"/>
			<field xpath="@name"/>
		</unique>
		<unique name="uSrfPntNum">
			<selector xpath="/Surface/Definition/Pnts/P"/>
			<field xpath="@id"/>
		</unique>
		<unique name="uPclName">
			<selector xpath="/Parcel"/>
			<field xpath="@name"/>
		</unique>
		<unique name="uAlnName">
			<selector xpath="Alignments/Alignment"/>
			<field xpath="@name"/>
		</unique>
		<unique name="uPipeNetName">
			<selector xpath="PipeNetworks/PipeNetwork"/>
			<field xpath="@name"/>
		</unique>
		<unique name="uPipeNum">
			<selector xpath="/PipeNetwork/Pipes/Pipe"/>
			<field xpath="@name"/>
		</unique>
		<unique name="uStructNum">
			<selector xpath="/PipeNetwork/Stucts/Struct"/>
			<field xpath="@name"/>
		</unique>
		<unique name="uCrossSectSta">
			<selector xpath="/CrossSect"/>
			<field xpath="@sta"/>
		</unique>
		<key name="CgPointKey">
			<selector xpath="CgPoints/CgPoint"/>
			<field xpath="@name"/>
		</key>
		<keyref name="Start" refer="CgPointKey">
			<selector xpath=".//Start"/>
			<field xpath="@pntRef"/>
		</keyref>
		<keyref name="End" refer="CgPointKey">
			<selector xpath=".//End"/>
			<field xpath="@pntRef"/>
		</keyref>
		<keyref name="Center" refer="CgPointKey">
			<selector xpath=".//Center"/>
			<field xpath="@pntRef"/>
		</keyref>
		<keyref name="PI" refer="CgPointKey">
			<selector xpath=".//PI"/>
			<field xpath="@pntRef"/>
		</keyref>
		<key name="StructKey">
			<selector xpath="PipeNetworks/PipeNetwork/Stucts/Struct"/>
			<field xpath="@id"/>
		</key>
		<keyref name="PipeStart" refer="StructKey">
			<selector xpath="PipeNetworks/PipeNetwork/Pipes/Pipe"/>
			<field xpath="@refStart"/>
		</keyref>
		<keyref name="PipeEnd" refer="StructKey">
			<selector xpath="PipeNetworks/PipeNetwork/Pipes/Pipe"/>
			<field xpath="@refEnd"/>
		</keyref>
		<key name="PipeKey">
			<selector xpath="PipeNetworks/PipeNetwork/Pipes/Pipe"/>
			<field xpath="@id"/>
		</key>
		<keyref name="Struct" refer="PipeKey">
			<selector xpath="PipeNetworks/PipeNetwork/Stucts/Struct/Invert"/>
			<field xpath="@refPipe"/>
		</keyref>
		<!-- Schema validation elements - uniqueness -->
		<!-- Schema validation elements - references -->
	</element>
	<!-- simpleType declarations-->
	<simpleType name="angle">
		<annotation>
			<documentation>Represents a normalized angular value in radians, valid from 0 to 2pi.</documentation>
		</annotation>
		<restriction base="double">
			<minInclusive value="-6.28318530718"/>
			<maxInclusive value="6.28318530718"/>
		</restriction>
	</simpleType>
	<simpleType name="clockwise">
		<restriction base="string">
			<enumeration value="cw"/>
			<enumeration value="ccw"/>
		</restriction>
	</simpleType>
	<simpleType name="xsVolCalcMethodType">
		<restriction base="string">
			<enumeration value="AverageEndArea"/>
			<enumeration value="Prismoidal"/>
		</restriction>
	</simpleType>
	<simpleType name="surfVolCMethodType">
		<restriction base="string">
			<enumeration value="grid"/>
			<enumeration value="composite"/>
		</restriction>
	</simpleType>
	<simpleType name="curveType">
		<restriction base="string">
			<enumeration value="arc"/>
			<enumeration value="chord"/>
		</restriction>
	</simpleType>
	<simpleType name="inOut">
		<restriction base="string">
			<enumeration value="in"/>
			<enumeration value="out"/>
		</restriction>
	</simpleType>
	<simpleType name="impArea">
		<restriction base="string">
			<enumeration value="acre"/>
			<enumeration value="squareFoot"/>
			<enumeration value="squareInch"/>
		</restriction>
	</simpleType>
	<simpleType name="impLinear">
		<restriction base="string">
			<enumeration value="foot"/>
			<enumeration value="USSurveyFoot"/>
			<enumeration value="inch"/>
		</restriction>
	</simpleType>
	<simpleType name="impVolume">
		<restriction base="string">
			<enumeration value="cubicFoot"/>
			<enumeration value="cubicYard"/>
		</restriction>
	</simpleType>
	<simpleType name="impTemperature">
		<restriction base="string">
			<enumeration value="fahrenheit"/>
			<enumeration value="kelvin"/>
		</restriction>
	</simpleType>
	<simpleType name="impPressure">
		<restriction base="string">
			<enumeration value="inHG"/>
		</restriction>
	</simpleType>
	<simpleType name="metArea">
		<restriction base="string">
			<enumeration value="hectare"/>
			<enumeration value="squareMeter"/>
		</restriction>
	</simpleType>
	<simpleType name="metLinear">
		<restriction base="string">
			<enumeration value="meter"/>
			<enumeration value="millimeter"/>
		</restriction>
	</simpleType>
	<simpleType name="metVolume">
		<restriction base="string">
			<enumeration value="cubicMeter"/>
			<enumeration value="liter"/>
		</restriction>
	</simpleType>
	<simpleType name="metTemperature">
		<restriction base="string">
			<enumeration value="celsius"/>
			<enumeration value="kelvin"/>
		</restriction>
	</simpleType>
	<simpleType name="metPressure">
		<restriction base="string">
			<enumeration value="HPA"/>
			<enumeration value="milliBars"/>
			<enumeration value="mmHG"/>
		</restriction>
	</simpleType>
	<simpleType name="pipeNetworkType">
		<restriction base="string">
			<enumeration value="sanitary"/>
			<enumeration value="storm"/>
			<enumeration value="water"/>
			<enumeration value="other"/>
		</restriction>
	</simpleType>
	<simpleType name="pntList2DType">
		<annotation>
			<documentation>A sequential space delimited list of 2D coordinate pairs. </documentation>
			<documentation>It is primarily used for ProfileSurf to hold the list of station/elevations and CrossSectSurf for offset/elevation. </documentation>
			<documentation>Example: "0.000 86.52 6.267 86.89 12.413 87.01 26.020 87.83" </documentation>
		</annotation>
		<list itemType="double"/>
	</simpleType>
	<simpleType name="pntList3DType">
		<annotation>
			<documentation>A sequential space delimited list of 3D coordinates. </documentation>
			<documentation>Primarily used to store lists of northing/easting/elevation for Terrain Surface data. </documentation>
			<documentation>Example: "0.000 86.52 50.0 6.267 86.89 50.0 12.413 87.01 50.0 26.020 87.83 50.0" </documentation>
		</annotation>
		<list itemType="double"/>
	</simpleType>
	<simpleType name="point2DType">
		<annotation>
			<documentation>Represents a 2D Point. The coordinates are stored as a space delimited text value in the form of "north east", "station elevation" or "offset elevation"</documentation>
			<documentation>Example, "1200.000 78.50"</documentation>
		</annotation>
		<list itemType="double"/>
	</simpleType>
	<simpleType name="point">
		<annotation>
			<documentation>Represents a 2D or 3D Point. The coordinates are stored as a space delimited text value in the form of "north east" or "north east elev"</documentation>
			<documentation>Example, "1632.546 2391.045 240.30"</documentation>
		</annotation>
		<list itemType="double"/>
	</simpleType>
	<simpleType name="purposeType">
		<annotation>
			<documentation>Used by many of the Survey elements</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="normal"/>
			<enumeration value="check"/>
			<enumeration value="backsight"/>
			<enumeration value="foresight"/>
			<enumeration value="traverse"/>
			<enumeration value="sideshot"/>
			<enumeration value="resection"/>
			<enumeration value="levelLoop"/>
			<enumeration value="digitalLevel"/>
			<enumeration value="remoteElevation"/>
			<enumeration value="recipricalObservation"/>
			<enumeration value="topo"/>
			<enumeration value="cutSheets"/>
			<enumeration value="asbuilt"/>
		</restriction>
	</simpleType>
	<simpleType name="spiralType">
		<restriction base="string">
			<enumeration value="biquadratic"/>
			<enumeration value="bloss"/>
			<enumeration value="clothoid"/>
			<enumeration value="cosine"/>
			<enumeration value="cubic"/>
			<enumeration value="sinusoid"/>
			<enumeration value="revBiquadratic"/>
			<enumeration value="revBloss"/>
			<enumeration value="revCosine"/>
			<enumeration value="revSinusoid"/>
		</restriction>
	</simpleType>
	<simpleType name="stateType">
		<restriction base="string">
			<enumeration value="abandoned"/>
			<enumeration value="destroyed"/>
			<enumeration value="existing"/>
			<enumeration value="proposed"/>
		</restriction>
	</simpleType>
	<simpleType name="surfBndType">
		<annotation>
			<documentation>Surface boundaries can be one of three types: outer, void, island</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="outer"/>
			<enumeration value="void"/>
			<enumeration value="island"/>
		</restriction>
	</simpleType>
	<simpleType name="surfFaceType">
		<annotation>
			<documentation>Represents a face on a 3D surface by referencing points from the Pnts collection"</documentation>
			<documentation>The number of poitns are determined by the surfType attrinute: 3 for TIN, 4 for grid</documentation>
			<documentation>Note: TIN is the acronym for "triangulated irregular network"</documentation>
			<documentation>The point references are stored as a space delimited text value in the form of "id id id"</documentation>
			<documentation>Example, "62 68 44" for TIN, ""62 68 44 71" for Grid</documentation>
		</annotation>
		<list itemType="positiveInteger"/>
	</simpleType>
	<simpleType name="surfPntType">
		<annotation>
			<documentation>Represents a 3D surface definition point. </documentation>
			<documentation> The coordinates are stored as a space delimited text value in the form of "north east elev"</documentation>
			<documentation>Example, "1632.546 2391.045 240.30"</documentation>
		</annotation>
		<list itemType="double"/>
	</simpleType>
	<simpleType name="surfTypeEnum">
		<annotation>
			<documentation>TIN is the acronym for "triangulated irregular network", a surface comprised of 3 point faces</documentation>
			<documentation>grid is a surface comprised of 4 point faces.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="TIN"/>
			<enumeration value="grid"/>
		</restriction>
	</simpleType>
	<simpleType name="survPntType">
		<annotation>
			<documentation>Optional COGO Point attribute to designate the survey point type.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="monument"/>
			<enumeration value="control"/>
			<enumeration value="sideShot"/>
		</restriction>
	</simpleType>
	<simpleType name="GPSSolutionTypeEnum">
		<annotation>
			<documentation>The GPS solution type indicates the type of computed solution for a GPS vector or position</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="Unknown"/>
			<enumeration value="Code"/>
			<enumeration value="Float"/>
			<enumeration value="Fixed"/>
			<enumeration value="Network Float"/>
			<enumeration value="Network Fixed"/>
			<enumeration value="WAAS Float"/>
			<enumeration value="WAAS Fixed"/>
		</restriction>
	</simpleType>
	<simpleType name="GPSSolutionFrequencyEnum">
		<annotation>
			<documentation>The GPS solution frequency indicates the GPS frequencies used in the computed solution for a GPS vector or position		</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="Unknown"/>
			<enumeration value="L1"/>
			<enumeration value="L2"/>
			<enumeration value="L2 Squared"/>
			<enumeration value="Wide Lane"/>
			<enumeration value="Narrow Lane"/>
			<enumeration value="Iono Free"/>
		</restriction>
	</simpleType>
	<simpleType name="pointGeometryType">
		<restriction base="string">
			<enumeration value="point"/>
			<enumeration value="curve"/>
		</restriction>
	</simpleType>
	<simpleType name="DTMAttributeType">
		<restriction base="string">
			<enumeration value="determinebyfeature"/>
			<enumeration value="donotinclude"/>
			<enumeration value="spot"/>
			<enumeration value="spotandbreak"/>
			<enumeration value="void"/>
			<enumeration value="drapevoid"/>
			<enumeration value="breakvoid"/>
			<enumeration value="island"/>
			<enumeration value="boundary"/>
			<enumeration value="countour"/>
			<enumeration value="feature"/>
			<enumeration value="ground"/>
			<enumeration value="xsection"/>
			<enumeration value="user"/>
		</restriction>
	</simpleType>
	<simpleType name="zoneNumberType">
		<restriction base="positiveInteger">
			<minInclusive value="1"/>
			<maxInclusive value="99"/>
		</restriction>
	</simpleType>
	<simpleType name="sideType">
		<restriction base="string">
			<enumeration value="right"/>
			<enumeration value="left"/>
		</restriction>
	</simpleType>
	<!-- elements declarations -->
	<element name="PntList2D" type="lx:pntList2DType">
		<annotation>
			<documentation>A sequential space delimited list of 2D coordinate pairs. </documentation>
			<documentation>It is primarily used for ProfileSurf to hold the list of station/elevations and CrossSectSurf for offset/elevation. </documentation>
			<documentation>Example: "0.000 86.52 6.267 86.89 12.413 87.01 26.020 87.83" </documentation>
		</annotation>
	</element>
	<element name="PntList3D" type="lx:pntList3DType">
		<annotation>
			<documentation>A sequential space delimited list of 3D coordinates. </documentation>
			<documentation>Primarily used to store lists of northing/easting/elevation for Terrain Surface data. </documentation>
			<documentation>Example: "0.000 86.52 50.0 6.267 86.89 50.0 12.413 87.01 50.0 26.020 87.83 50.0" </documentation>
		</annotation>
	</element>
	<element name="Property">
		<annotation>
			<documentation>Used to include additional information that is not explicitly defined by the LandXML schema. Each Property element defines one piece of data.</documentation>
			<documentation>The "label" attribute defines the name of the value held in the "value" attribute.</documentation>
		</annotation>
		<complexType>
			<attribute name="label" use="required"/>
			<attribute name="value" use="required"/>
			<!-- required attributes -->
		</complexType>
	</element>
	<element name="Feature">
		<annotation>
			<documentation>Used to include additional information that is not explicitly defined by the LandXML schema, Feature contains one or more Property elements.</documentation>
			<documentation>Each Property element defines one piece of data.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Property" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				<any processContents="lax"/>
			</sequence>
			<attribute name="code" type="string" use="required"/>
			<attribute name="source" use="optional"/>
		</complexType>
	</element>
	<element name="Author">
		<complexType mixed="false">
			<sequence>
				<any processContents="lax"/>
			</sequence>
			<attribute name="createdBy" type="string" use="optional"/>
			<attribute name="createdByEmail" type="string" use="optional"/>
			<attribute name="company" type="string" use="optional"/>
			<attribute name="companyURL" type="string" use="optional"/>
		</complexType>
	</element>
	<element name="Application">
		<complexType mixed="false">
			<sequence>
				<choice>
					<element ref="lx:Author" minOccurs="0" maxOccurs="unbounded"/>
					<any processContents="lax"/>
				</choice>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="manufacturer" type="string" use="optional"/>
			<attribute name="version" type="string" use="optional"/>
			<attribute name="manufacturerURL" type="string" use="optional"/>
		</complexType>
	</element>
	<element name="Project">
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				<any processContents="lax"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Metric">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<attribute name="areaUnit" type="lx:metArea" use="required"/>
			<attribute name="linearUnit" type="lx:metLinear" use="required"/>
			<attribute name="volumeUnit" type="lx:metVolume" use="required"/>
			<attribute name="temperatureUnit" type="lx:metTemperature" use="required"/>
			<attribute name="pressureUnit" type="lx:metPressure" use="required"/>
			<!-- required attributes -->
		</complexType>
	</element>
	<element name="Imperial">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<attribute name="areaUnit" type="lx:impArea" use="required"/>
			<attribute name="linearUnit" type="lx:impLinear" use="required"/>
			<attribute name="volumeUnit" type="lx:impVolume" use="required"/>
			<attribute name="temperatureUnit" type="lx:impTemperature" use="required"/>
			<attribute name="pressureUnit" type="lx:impPressure" use="required"/>
			<!-- required attributes -->
		</complexType>
	</element>
	<element name="Units">
		<annotation>
			<documentation>All angular and direction values are in radians unless otherwise noted. Direction values are measured counter-clockwise from east=0.</documentation>
		</annotation>
		<complexType>
			<choice>
				<element ref="lx:Metric"/>
				<element ref="lx:Imperial"/>
			</choice>
		</complexType>
	</element>
	<complexType name="CgPointType" mixed="true">
		<simpleContent>
			<extension base="lx:point">
				<attribute name="name" use="required"/>
				<attribute name="desc" use="optional"/>
				<attribute name="pntSurv" type="lx:survPntType" use="optional"/>
				<attribute name="state" type="lx:stateType" use="optional"/>
				<attribute name="code" use="optional"/>
				<attribute name="zoneNumber" type="lx:zoneNumberType" use="optional"/>
				<attribute name="pointGeometry" type="lx:pointGeometryType" use="optional"/>
				<attribute name="DTMAttribute" type="lx:DTMAttributeType" use="optional"/>
			</extension>
		</simpleContent>
		<!-- required attributes -->
		<!-- optional attributes -->
	</complexType>
	<element name="CgPoint" type="lx:CgPointType">
		<annotation>
			<documentation>Represents a COGO Point (Cg = COGO = Cordinate Geometry)</documentation>
		</annotation>
	</element>
	<element name="CgPoints">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:CgPoint" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<attribute name="code" use="optional"/>
			<attribute name="zoneNumber" type="lx:zoneNumberType" use="optional"/>
			<attribute name="DTMAttribute" type="lx:DTMAttributeType" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<complexType name="PointType" mixed="true">
		<annotation>
			<documentation>All elements derived from PointType will either contain a coordinate text value ( "north east" or "north east elev"), "pntRef" attribute value, or both.</documentation>
			<documentation>The "pntRef" attribute contains the value of a CgPoint "number" that exists in the CgPoints collection. </documentation>
			<documentation>If this element has a "pntRef" value, then it's coordinates will be retrieved from the referenced CgPoint.</documentation>
			<documentation>If an element contains both a coordinate value and a pntRef, the coordinate value should be used as the point location and the referenced point is either ignored or is used for point attributes such as number or desc.</documentation>
		</annotation>
		<simpleContent>
			<extension base="lx:point">
				<attribute name="desc" use="optional"/>
				<attribute name="name" use="optional"/>
				<attribute name="code" use="optional"/>
				<attribute name="pntRef" use="optional"/>
			</extension>
		</simpleContent>
		<!-- optional attributes -->
	</complexType>
	<element name="Start" type="lx:PointType">
		<annotation>
			<documentation>Represents a 2D or 3D Starting or beginning Point</documentation>
			<documentation>Defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute.</documentation>
		</annotation>
	</element>
	<element name="End" type="lx:PointType">
		<annotation>
			<documentation>Represents a 2D or 3D Ending Point</documentation>
			<documentation>Defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute.</documentation>
		</annotation>
	</element>
	<element name="Center" type="lx:PointType">
		<annotation>
			<documentation>Represents a 2D or 3D Center Point</documentation>
			<documentation>Defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute.</documentation>
		</annotation>
	</element>
	<element name="PI" type="lx:PointType">
		<annotation>
			<documentation>Represents a 2D or 3D Point of Intersection</documentation>
			<documentation>Defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute.</documentation>
		</annotation>
	</element>
	<element name="Line">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Start"/>
				<element ref="lx:End"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="dir" type="lx:angle" use="optional"/>
			<attribute name="length" type="double" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="staStart" type="double" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Curve">
		<annotation>
			<documentation>The distance from the Start to the Center provides the radius value.</documentation>
			<documentation>The rotation attribute "rot" defines whether the arc travels clockwise or counter-clockwise from the Start to End point.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Start"/>
				<element ref="lx:Center"/>
				<element ref="lx:End"/>
				<element ref="lx:PI" minOccurs="0"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="rot" type="lx:clockwise" use="required"/>
			<attribute name="chord" type="double" use="optional"/>
			<attribute name="crvType" type="lx:curveType" use="optional"/>
			<attribute name="delta" type="lx:angle" use="optional"/>
			<attribute name="desc" use="optional"/>
			<attribute name="dirEnd" type="lx:angle" use="optional"/>
			<attribute name="dirStart" type="lx:angle" use="optional"/>
			<attribute name="external" type="double" use="optional"/>
			<attribute name="length" type="double" use="optional"/>
			<attribute name="midOrd" type="double" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="radius" type="double" use="optional"/>
			<attribute name="staStart" type="double" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<attribute name="tangent" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Spiral">
		<annotation>
			<documentation>An "infinite" spiral radius is denoted by the value "INF". </documentation>
			<documentation>This conforms to XML Schema which defines infinity as "INF" or "-INF" for all numeric datatypes </documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Start"/>
				<element ref="lx:PI"/>
				<element ref="lx:End"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="length" type="double" use="required"/>
			<attribute name="radiusEnd" type="double" use="required"/>
			<attribute name="radiusStart" type="double" use="required"/>
			<attribute name="rot" type="lx:clockwise" use="required"/>
			<attribute name="spiType" type="lx:spiralType" use="required"/>
			<attribute name="chord" type="double" use="optional"/>
			<attribute name="constant" type="double" use="optional"/>
			<attribute name="desc" use="optional"/>
			<attribute name="dirEnd" type="lx:angle" use="optional"/>
			<attribute name="dirStart" type="lx:angle" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="theta" type="double" use="optional"/>
			<attribute name="totalY" type="double" use="optional"/>
			<attribute name="totalX" type="double" use="optional"/>
			<attribute name="staStart" type="double" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<attribute name="tanLong" type="double" use="optional"/>
			<attribute name="tanShort" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="CoordGeom">
		<annotation>
			<documentation>A sequential list of Line and/or Curve and/or Spiral elements.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<choice maxOccurs="unbounded">
					<element ref="lx:Line" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Curve" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Spiral" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="CrossSectSurf">
		<annotation>
			<documentation>It is defined with a space delimited PntList2D of offset/elevations pairs that will represent either existing or proposed surfaces. </documentation>
			<documentation>Example: "-60.00 86.52 -36.26 86.89 12.41 87.01 60.00 87.83" </documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:PntList2D"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="CrossSect">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:CrossSectSurf" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="sta" type="double" use="required"/>
			<attribute name="angleSkew" type="lx:angle" use="optional"/>
			<attribute name="areaCut" type="double" use="optional"/>
			<attribute name="areaFill" type="double" use="optional"/>
			<attribute name="centroidCut" type="double" use="optional"/>
			<attribute name="centroidFill" type="double" use="optional"/>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="sectType" use="optional"/>
			<attribute name="volumeCut" type="double" use="optional"/>
			<attribute name="volumeFill" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="CrossSects">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:CrossSect" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<attribute name="calcMethod" type="lx:xsVolCalcMethodType" use="optional"/>
			<attribute name="curveCorrection" type="boolean"/>
			<attribute name="swellFactor" type="double"/>
			<attribute name="shrinkFactor" type="double"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Parcel">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Center"/>
				<element ref="lx:CoordGeom"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="area" type="double" use="optional"/>
			<attribute name="desc" use="optional"/>
			<attribute name="dirClosure" type="lx:angle" use="optional"/>
			<attribute name="distClosure" type="double" use="optional"/>
			<attribute name="owner" use="optional"/>
			<attribute name="parcelType" use="optional"/>
			<attribute name="setbackFront" type="double" use="optional"/>
			<attribute name="setbackRear" type="double" use="optional"/>
			<attribute name="setbackSide" type="double" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<attribute name="taxId" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Parcels">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Parcel" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="StructFlow">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="lossIn" type="double" use="required"/>
			<attribute name="lossOut" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="hglIn" type="double" use="optional"/>
			<attribute name="hglOut" type="double" use="optional"/>
			<attribute name="localDepression" type="double" use="optional"/>
			<attribute name="slopeSurf" type="double" use="optional"/>
			<attribute name="slopeGutter" type="double" use="optional"/>
			<attribute name="widthGutter" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Invert">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<attribute name="desc" use="optional"/>
			<attribute name="elev" type="double" use="required"/>
			<attribute name="flowDir" type="lx:inOut" use="required"/>
			<attribute name="refPipe" type="positiveInteger" use="required"/>
			<!-- required attributes -->
		</complexType>
	</element>
	<element name="CircStruct">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="diameter" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="inletCase" use="optional"/>
			<attribute name="lossCoeff" type="double" use="optional"/>
			<attribute name="material" use="optional"/>
			<attribute name="thickness" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="RectStruct">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="length" type="double" use="required"/>
			<attribute name="lengthDir" type="lx:angle" use="required"/>
			<attribute name="width" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="inletCase" use="optional"/>
			<attribute name="lossCoeff" type="double" use="optional"/>
			<attribute name="material" use="optional"/>
			<attribute name="thickness" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="InletStruct">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<!-- to be completed -->
		</complexType>
	</element>
	<element name="OutletStruct">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<!-- to be completed -->
		</complexType>
	</element>
	<element name="Connection">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<!-- to be completed -->
		</complexType>
	</element>
	<element name="Struct">
		<annotation>
			<documentation>Each Struct within a Structs collection element will have a unique  "id" attribute.</documentation>
			<documentation>The structure type is determined by the existance of one of the following elements: CircStruct or RectStruct.</documentation>
			<documentation>The Center element will contain the "north east" coordinate text value or a CgPoint "refPnt" attribute.</documentation>
			<documentation>Each Invert element contains a "refPipe" attribute to reference a Pipe element  "id"</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Center"/>
				<choice>
					<element ref="lx:CircStruct"/>
					<element ref="lx:RectStruct"/>
					<element ref="lx:InletStruct"/>
					<element ref="lx:OutletStruct"/>
					<element ref="lx:Connection"/>
				</choice>
				<element ref="lx:StructFlow" minOccurs="0"/>
				<element ref="lx:Invert" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="id" type="positiveInteger" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="elevRim" type="double" use="optional"/>
			<attribute name="elevSump" type="double" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Structs">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Struct" minOccurs="2" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name="PipeFlow">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="flowIn" type="double" use="required"/>
			<attribute name="areaCatchment" type="double" use="optional"/>
			<attribute name="desc" use="optional"/>
			<attribute name="depthCritical" type="double" use="optional"/>
			<attribute name="hglDown" type="double" use="optional"/>
			<attribute name="hglUp" type="double" use="optional"/>
			<attribute name="intensity" type="double" use="optional"/>
			<attribute name="runoffCoeff" type="double" use="optional"/>
			<attribute name="slopeCritical" type="double" use="optional"/>
			<attribute name="timeInlet" type="double" use="optional"/>
			<attribute name="velocityCritical" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="CircPipe">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="diameter" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="hazenWilliams" type="double" use="optional"/>
			<attribute name="mannings" type="double" use="optional"/>
			<attribute name="material" use="optional"/>
			<attribute name="thickness" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="ElliPipe">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="height" type="double" use="required"/>
			<attribute name="span" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="hazenWilliams" type="double" use="optional"/>
			<attribute name="mannings" type="double" use="optional"/>
			<attribute name="material" use="optional"/>
			<attribute name="thickness" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="RectPipe">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="height" type="double" use="required"/>
			<attribute name="width" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="hazenWilliams" type="double" use="optional"/>
			<attribute name="mannings" type="double" use="optional"/>
			<attribute name="material" use="optional"/>
			<attribute name="thickness" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Channel">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="height" type="double" use="required"/>
			<attribute name="widthTop" type="double" use="required"/>
			<attribute name="widthBottom" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="hazenWilliams" type="double" use="optional"/>
			<attribute name="mannings" type="double" use="optional"/>
			<attribute name="material" use="optional"/>
			<attribute name="thickness" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Pipe">
		<annotation>
			<documentation>Each Pipe within a Pipes collection element will have a unique  "id" attribute.</documentation>
			<documentation>The pipe type is determined by the existance of one of the following elements: CircPipe, ElliPipe or RectPipe.</documentation>
			<documentation>The "startRef and "endRef" attributes reference Struct "id" values.</documentation>
			<documentation>The start and end invert elevations for the pipe are defined in the Invert elements of referenced structures.</documentation>
			<documentation>Since a struct may have more than one Invert element, the Invert "pipeRef" attribute is used to select the correct invert element.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<choice>
					<element ref="lx:CircPipe"/>
					<element ref="lx:ElliPipe"/>
					<element ref="lx:RectPipe"/>
					<element ref="lx:Channel"/>
				</choice>
				<element ref="lx:PipeFlow" minOccurs="0"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="id" type="positiveInteger" use="required"/>
			<attribute name="refEnd" type="positiveInteger" use="required"/>
			<attribute name="refStart" type="positiveInteger" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="length" type="double" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="slope" type="double" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Pipes">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Pipe" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name="PipeNetwork">
		<annotation>
			<documentation>This element contains one "Structs" collection element and one "Pipes" collection element.</documentation>
			<documentation>keyRef is a Schema validation mechanism that ensures that the "structRef" and "pipeRef" attribute values have corresponding Pipe and Struct "id" values"</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Structs"/>
				<element ref="lx:Pipes"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="pipeNetType" type="lx:pipeNetworkType" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="PipeNetworks">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:PipeNetwork" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="PVI">
		<annotation>
			<documentation>Represents a station/offset  Point of Vertical Intersection</documentation>
		</annotation>
		<complexType mixed="true">
			<simpleContent>
				<extension base="lx:point2DType">
					<attribute name="desc" use="optional"/>
				</extension>
			</simpleContent>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="ParaCurve">
		<annotation>
			<documentation>Represents a station/offset PVI that has a parabolic vertical curve.</documentation>
		</annotation>
		<complexType mixed="true">
			<simpleContent>
				<extension base="lx:point2DType">
					<attribute name="length" type="double" use="required"/>
					<attribute name="desc" use="optional"/>
				</extension>
			</simpleContent>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="UnsymParaCurve">
		<annotation>
			<documentation>Represents a station/offset PVI that has an unsymmetrical parabolic vertical curve.</documentation>
		</annotation>
		<complexType mixed="true">
			<simpleContent>
				<extension base="lx:point2DType">
					<attribute name="lengthIn" type="double" use="required"/>
					<attribute name="lengthOut" type="double" use="required"/>
					<attribute name="desc" use="optional"/>
				</extension>
			</simpleContent>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="CircCurve">
		<annotation>
			<documentation>Represents a station/offset PVI that has a circular vertical curve.</documentation>
		</annotation>
		<complexType mixed="true">
			<simpleContent>
				<extension base="lx:point2DType">
					<attribute name="length" type="double" use="required"/>
					<attribute name="radius" type="double" use="required"/>
					<attribute name="desc" use="optional"/>
				</extension>
			</simpleContent>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="ProfAlign">
		<annotation>
			<documentation>The "ProfAlign" element will typically represent a proposed vertical alignment for a profile.</documentation>
			<documentation>It is defined by a sequential series of any combination of the four "PVI" element types.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<choice maxOccurs="unbounded">
					<element ref="lx:PVI" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:ParaCurve" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:UnsymParaCurve" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:CircCurve" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="ProfSurf">
		<annotation>
			<documentation>The "ProfSurf" element will typically represent an existing ground surface for a profile. </documentation>
			<documentation>It is defined with a space delimited PntList2D of station/elevations pairs. </documentation>
			<documentation>Example: "0.000 86.52 6.267 86.89 12.413 87.01 26.020 87.83" </documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:PntList2D"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Profile">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice maxOccurs="unbounded">
					<element ref="lx:ProfSurf" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:ProfAlign" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="staStart" type="double" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="StaEquation">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="staAhead" type="double" use="required"/>
			<attribute name="staBack" type="double" use="required"/>
			<attribute name="staInternal" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Alignment">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Start" minOccurs="0"/>
				<element ref="lx:CoordGeom"/>
				<element ref="lx:StaEquation" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:Profile" minOccurs="0"/>
				<element ref="lx:CrossSects" minOccurs="0"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="length" type="double" use="required"/>
			<attribute name="staStart" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Alignments">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Alignment" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<!-- Road Elements -->
	<element name="StationWidth">
		<complexType>
			<attribute name="station" type="double" use="required"/>
			<attribute name="width" type="double" use="required"/>
		</complexType>
	</element>
	<element name="StationSlope">
		<complexType>
			<attribute name="station" type="double" use="required"/>
			<attribute name="vertvalue" type="double" use="required"/>
			<attribute name="changeType" type="string" use="required"/>
			<attribute name="hingeType" type="string" use="optional"/>
			<attribute name="parabolicStartStation" type="double" use="optional"/>
			<attribute name="parabolicEndStation" type="double" use="optional"/>
			<!-- changeType is a flag that indicates the use of slope or vertical change it can be either "slope" or "vertDistance"-->
		</complexType>
	</element>
	<element name="StationCutFill">
		<complexType>
			<attribute name="station" type="double" use="required"/>
			<attribute name="cutSlope" type="double" use="optional"/>
			<attribute name="fillSlope" type="double" use="optional"/>
		</complexType>
	</element>
	<element name="Zone">
		<complexType>
			<choice>
				<element ref="lx:StationWidth" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:StationSlope" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:StationCutFill" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</choice>
			<attribute name="priority" use="required"/>
			<attribute name="startStation" type="double" use="required"/>
			<attribute name="startWidth" type="double" use="required"/>
			<attribute name="startVertValue" type="double" use="required"/>
			<attribute name="startVertType" type="double" use="required"/>
			<attribute name="endStation" type="double" use="optional"/>
			<attribute name="endWidth" type="double" use="optional"/>
			<attribute name="endVertValue" type="double" use="optional"/>
			<attribute name="endVertType" use="optional"/>
			<attribute name="name" use="optional"/>
		</complexType>
	</element>
	<element name="Zones">
		<complexType>
			<choice>
				<element ref="lx:Zone" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</choice>
			<attribute name="side" type="lx:angle" use="required"/>
		</complexType>
	</element>
	<element name="GradeSurface">
		<complexType>
			<choice>
				<element ref="lx:Start" minOccurs="0"/>
				<element ref="lx:Zones" maxOccurs="2"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</choice>
			<attribute name="surfaceName" use="required"/>
			<attribute name="alignmentRef" type="IDREF" use="optional"/>
			<attribute name="surfaceRefs" type="IDREFS" use="optional"/>
			<attribute name="cgPointRefs" type="IDREFS" use="optional"/>
			<attribute name="surfaceType" use="required"/>
			<attribute name="stationAlignmentRef" use="optional"/>
			<attribute name="name" use="optional"/>
		</complexType>
	</element>
	<element name="GradeModel">
		<complexType>
			<choice>
				<element ref="lx:GradeSurface" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</choice>
			<attribute name="name" use="optional"/>
		</complexType>
	</element>
	<!-- Surface Defintions -->
	<element name="CgPointList">
		<annotation>
			<documentation>A string of the COGO point names that were used to define the surface.</documentation>
			<documentation>example: "1-1240, 1365, 1367, 1389-1503"</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="pntList" use="required"/>
			<attribute name="zoneNumber" type="lx:zoneNumberType" use="optional"/>
			<attribute name="DTMAttribute" type="lx:DTMAttributeType" use="optional"/>
			<!-- required attributes -->
		</complexType>
	</element>
	<element name="PointFile">
		<annotation>
			<documentation>A reference to an external file containing point information.</documentation>
			<documentation>The format of the information is defined by the order and delimeter attributes.</documentation>
		</annotation>
		<complexType>
			<attribute name="fileName" use="required"/>
			<attribute name="fileType" use="required"/>
			<attribute name="fileFormat" use="required"/>
		</complexType>
	</element>
	<element name="PointFiles">
		<annotation>
			<documentation>The collection of breaklines that were used to define the surface.</documentation>
			<documentation>Use is optional.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:PointFile" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name="Boundary">
		<annotation>
			<documentation>The boundary region contains a 2D north/east or 3D north/east/elev list of points that define the geometry.</documentation>
			<documentation>is identified by the "name" attribute.</documentation>
			<documentation>If the "edgeTrim" attribute is true the faces are trimmed at the boundary edge, otherwise faces are not trimmed</documentation>
			<documentation>and must exist entirely within the boundary.</documentation>
		</annotation>
		<complexType>
			<choice>
				<element ref="lx:PntList2D"/>
				<element ref="lx:PntList3D"/>
			</choice>
			<attribute name="bndType" type="lx:surfBndType" use="required"/>
			<attribute name="edgeTrim" type="boolean" use="required"/>
			<attribute name="area" type="double" use="optional"/>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Boundaries">
		<annotation>
			<documentation>The collection of boundaries that were used to define the surface.</documentation>
			<documentation>Use is optional.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Boundary" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<complexType name="RetWallPntType" mixed="true">
		<simpleContent>
			<extension base="lx:point">
				<attribute name="height" type="double" use="required"/>
				<attribute name="offset" type="double" use="required"/>
			</extension>
		</simpleContent>
		<!-- required attributes -->
	</complexType>
	<element name="RetWallPnt" type="lx:RetWallPntType">
		<annotation>
			<documentation>Represents point along the retaining wall with height and top offset attributes</documentation>
		</annotation>
	</element>
	<element name="RetWall">
		<annotation>
			<documentation>The retaining wall is defined by a collection of points along the wall.</documentation>
			<documentation>Each point has a location (norht/east/elev) height of wall and offset at top.</documentation>
			<documentation>The offset value is negative for left and positive for right.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:RetWallPnt" minOccurs="2" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Breakline">
		<annotation>
			<documentation>The breakline is defined by a 2D north/east or 3D north/east/elev list of points that define the geometry.</documentation>
			<documentation>is identified by the "name" attribute.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<choice>
					<element ref="lx:PntList2D"/>
					<element ref="lx:PntList3D"/>
				</choice>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="brkType" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Breaklines">
		<annotation>
			<documentation>The collection of breaklines that were used to define the surface.</documentation>
			<documentation>Use is optional.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Breakline" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:RetWall" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name="Contour">
		<annotation>
			<documentation>The contour is defined by an elevation attribute and a 2D north/east list of points that define the geometry.</documentation>
			<documentation>is identified by the "name" attribute.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:PntList2D"/>
			</sequence>
			<attribute name="elev" type="double" use="required"/>
			<!-- required attributes -->
		</complexType>
	</element>
	<element name="Contours">
		<annotation>
			<documentation>The collection of contours that were used to define the surface.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Contour" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name="SourceData">
		<annotation>
			<documentation>The collection of data that was used to create the surface.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<choice maxOccurs="5">
					<element ref="lx:CgPointList" minOccurs="0"/>
					<element ref="lx:PointFiles" minOccurs="0"/>
					<element ref="lx:Boundaries" minOccurs="0"/>
					<element ref="lx:Breaklines" minOccurs="0"/>
					<element ref="lx:Contours" minOccurs="0"/>
				</choice>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<complexType name="SurfPnt" mixed="true">
		<annotation>
			<documentation>A surface point contains an id value and a space delimited "north east elev" text value.</documentation>
			<documentation>The id values are referenced by the surface faces for the coordinate values.</documentation>
		</annotation>
		<simpleContent>
			<extension base="lx:surfPntType">
				<attribute name="id" type="positiveInteger" use="required"/>
			</extension>
		</simpleContent>
		<!-- required attributes -->
	</complexType>
	<element name="P" type="lx:SurfPnt">
		<annotation>
			<documentation>A surface point. derived from the complex type "SurfPnt", it contains an id value and a space delimited "north east elev" text value.</documentation>
		</annotation>
	</element>
	<element name="Pnts">
		<annotation>
			<documentation>The collection of points that defined the surface. Contains an id value and a space delimited "north east elev" text value.</documentation>
			<documentation>The id values are referenced by the surface faces and breaklines.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:P" minOccurs="3" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<complexType name="SurfFace">
		<annotation>
			<documentation>A surface face contains a space delimited list of references to 3 surface points id's from the SurfPnts collection.</documentation>
		</annotation>
		<simpleContent>
			<extension base="lx:surfFaceType"/>
		</simpleContent>
	</complexType>
	<element name="F" type="lx:SurfFace">
		<annotation>
			<documentation>A surface face. Derived from the complex type SurfFace, it contains a space delimited list of references for 3 (TIN) or 4 (grid) surface points. </documentation>
			<documentation>The 3 or 4 numbers represent the vertices on the face. Each number is a reference to the ID value of a surface point "P" for the face coordinates.</documentation>
		</annotation>
	</element>
	<element name="Faces">
		<annotation>
			<documentation>The collection of faces that defined the surface.</documentation>
			<documentation>The faces are defined by either 3 (TIN) or 4 (grid) points, as indicated by the "surfType" attribute</documentation>
			<documentation>For the north/east/elev values, each point of the face references a "P"point element point in the SurfPnts collection.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:F" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name="Definition">
		<annotation>
			<documentation>The collection of faces and points that defined the surface.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Pnts"/>
				<element ref="lx:Faces"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="surfType" type="lx:surfTypeEnum" use="required"/>
			<attribute name="area2DSurf" type="double" use="optional"/>
			<attribute name="area3DSurf" type="double" use="optional"/>
			<attribute name="elevMax" type="double" use="optional"/>
			<attribute name="elevMin" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<complexType name="OutletPntType" mixed="true">
		<simpleContent>
			<extension base="lx:point">
				<attribute name="refWs" use="optional"/>
			</extension>
		</simpleContent>
		<!-- optional attributes -->
	</complexType>
	<element name="Outlet" type="lx:OutletPntType">
		<annotation>
			<documentation>Identifies a drain point from the watershed.</documentation>
			<documentation>If it drains to another known watershed, then the name of that watershed is identified by the "refWs" attribute.</documentation>
			<documentation>If it drains to a specific point, then the text value identifies the north/east/elev values</documentation>
		</annotation>
	</element>
	<element name="Watershed">
		<annotation>
			<documentation>The watershed region contains a 2D north/east or 3D north/east/elev list of points that define the boundary.</documentation>
			<documentation>A watershed is identified by the "name" attribute.</documentation>
			<documentation>It may have 1 or more Outlet elements.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<choice>
					<element ref="lx:PntList2D"/>
					<element ref="lx:PntList3D"/>
				</choice>
				<element ref="lx:Outlet" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="area" type="double" use="optional"/>
			<attribute name="desc" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Watersheds">
		<annotation>
			<documentation>The collection of watershed regions for the surface.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Watershed" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name="Surface">
		<annotation>
			<documentation>SourceData is an optional collection of the points, contours, breaklines and boundaries that were used to create the surface.</documentation>
			<documentation>Definition is a collection of points and faces that define the surface.</documentation>
			<documentation>Watersheds is a collection the watershed boundaries for the surface.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<choice maxOccurs="3">
					<element ref="lx:SourceData" minOccurs="0"/>
					<element ref="lx:Definition" minOccurs="0"/>
					<element ref="lx:Watersheds" minOccurs="0">
						<!-- <unique name="uWsName">
						<selector>Watershed</selector>
						<field>@name</field>
					</unique> -->
					</element>
				</choice>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="name" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="SurfVolume">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="surfBase" use="required"/>
			<attribute name="surfCompare" use="required"/>
			<attribute name="volCut" type="double" use="required"/>
			<attribute name="volFill" type="double" use="required"/>
			<attribute name="volTotal" type="double" use="required"/>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="SurfVolumes">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:SurfVolume" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="surfVolCalcMethod" type="lx:surfVolCMethodType" use="required"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="Surfaces">
		<annotation>
			<documentation>The collection of surface models.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Surface" maxOccurs="unbounded"/>
				<element ref="lx:SurfVolumes" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<attribute name="state" type="lx:stateType" use="optional"/>
			<!-- required attributes -->
		</complexType>
	</element>
	<!-- ** Begin Survey Data Structure ** -->
	<element name="OrientationPoint" type="lx:PointType">
		<annotation>
			<documentation>Represents a 2D or 3D Station for instrument orientation</documentation>
			<documentation>It is defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute.</documentation>
		</annotation>
	</element>
	<element name="TargetPoint" type="lx:PointType">
		<annotation>
			<documentation>Represents a 2D or 3D Station for the target</documentation>
			<documentation>It is defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute.</documentation>
		</annotation>
	</element>
	<element name="FieldNote">
		<annotation>
			<documentation>Place the note as a text value between the FieldNote element tags.
			You may also place any valid XML structure inside this tag.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<any processContents="lax"/>
			</sequence>
		</complexType>
	</element>
	<element name="GPSQCInfoLevel1">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<attribute name="GPSSolnType" type="lx:GPSSolutionTypeEnum"/>
			<attribute name="GPSSolnFreq" type="lx:GPSSolutionFrequencyEnum"/>
			<attribute name="nbrSatellites" type="integer"/>
			<attribute name="RDOP" type="double"/>
			<attribute name="startTime" type="double"/>
			<attribute name="stopTime" type="double"/>
			<!--  GPS Time = Nbr of GPS weeks * 604800 (seconds in a week) + seconds in GPS week  -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="GPSQCInfoLevel2">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<attribute name="covarianceXX" type="double"/>
			<attribute name="covarianceXY" type="double"/>
			<attribute name="covarianceXZ" type="double"/>
			<attribute name="covarianceYY" type="double"/>
			<attribute name="covarianceYZ" type="double"/>
			<attribute name="covarianceZZ" type="double"/>
			<attribute name="GPSSolnType" type="lx:GPSSolutionTypeEnum"/>
			<attribute name="GPSSolnFreq" type="lx:GPSSolutionFrequencyEnum"/>
			<attribute name="RMS" type="double"/>
			<attribute name="ratio" type="double"/>
			<attribute name="referenceVariance" type="double"/>
			<attribute name="nbrSatellites" type="integer"/>
			<attribute name="startTime" type="double"/>
			<attribute name="stopTime" type="double"/>
			<!--  GPS Time = Nbr of GPS weeks * 604800 (seconds in a week) + seconds in GPS week  -->
			<!--  optional attributes  -->
		</complexType>
	</element>
	<element name="GPSPosition">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:TargetPoint"/>
				<element ref="lx:GPSQCInfoLevel1" minOccurs="0"/>
				<element ref="lx:GPSQCInfoLevel2" minOccurs="0"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="setupID" type="IDREF"/>
			<attribute name="setID"/>
			<attribute name="wgsHeight" type="double" use="required"/>
			<attribute name="wgsLatitude" type="double" use="required"/>
			<attribute name="wgsLongitude" type="double" use="required"/>
			<attribute name="purpose"/>
			<!--  required attributes  -->
			<!--  optional attributes  -->
		</complexType>
	</element>
	<element name="GPSVector">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:TargetPoint"/>
				<element ref="lx:GPSQCInfoLevel1" minOccurs="0"/>
				<element ref="lx:GPSQCInfoLevel2" minOccurs="0"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="dX" type="double" use="required"/>
			<attribute name="dY" type="double" use="required"/>
			<attribute name="dZ" type="double" use="required"/>
			<attribute name="setupID_A" type="IDREF" use="required"/>
			<attribute name="setupID_B" type="IDREF" use="required"/>
			<attribute name="purpose" type="lx:purposeType"/>
			<attribute name="setID"/>
			<attribute name="solutionDataLink"/>
			<!--  required attributes  -->
			<!--  optional attributes  -->
		</complexType>
	</element>
	<element name="GPSSetup">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:TargetSetup" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:GPSPosition"/>
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="antennaHeight" type="double" use="required"/>
			<attribute name="stationName" use="required"/>
			<attribute name="GPSAntennaDetailsID" type="IDREF"/>
			<attribute name="observationDataLink"/>
			<attribute name="stationDescription"/>
			<attribute name="startTime" type="double"/>
			<attribute name="stopTime" type="double"/>
			<!--  GPS Time = Nbr of GPS weeks * 604800 (seconds in a week) + seconds in GPS week  -->
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="OffsetVals">
		<annotation>
			<documentation>offsetInOut:   -ve = offset in towards inst, +ve = offset away from inst </documentation>
			<documentation>offsetLeftRight:   -ve = left, +ve = right (as viewed from instrument) </documentation>
			<documentation>offsetUpDown:   -ve = down, +ve = up</documentation>
		</annotation>
		<complexType>
			<attribute name="offsetInOut" type="double"/>
			<attribute name="offsetLeftRight" type="double"/>
			<attribute name="offsetUpDown" type="double"/>
			<!-- -ve = offset in towards inst, +ve = offset away from inst -->
			<!-- -ve = left, +ve = right - As viewed from instrument -->
			<!-- -ve = down, +ve = up -->
		</complexType>
	</element>
	<element name="TargetSetup">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="targetHeight" type="double" use="required"/>
			<attribute name="edmTargetVertOffset" type="double" use="optional"/>
			<attribute name="prismConstant" type="double" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
			<!-- To allow for older style EDM's -->
		</complexType>
	</element>
	<element name="Backsight">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element name="Point" type="lx:PointType" minOccurs="0"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="azimuth" type="lx:angle" use="required"/>
			<attribute name="targetHeight" type="double" use="optional"/>
			<attribute name="circle" type="lx:angle" use="required"/>
			<attribute name="setupID" type="IDREF"/>
		</complexType>
	</element>
	<element name="LaserObservation">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:TargetPoint" minOccurs="0"/>
				<element ref="lx:OffsetVals" minOccurs="0"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="purpose" type="lx:purposeType"/>
			<attribute name="setupID" type="IDREF"/>
			<attribute name="targetSetupID" type="IDREF"/>
			<attribute name="setID"/>
			<attribute name="targetHeight" type="double"/>
			<attribute name="horizAngle" type="double" use="required"/>
			<attribute name="slopeDistance" type="double" use="required"/>
			<attribute name="zenithAngle" type="double" use="required"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="LaserSetup">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element name="InstrumentPoint" type="lx:PointType" minOccurs="0"/>
				<element ref="lx:Backsight" minOccurs="0"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:TargetSetup" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:LaserObservation"/>
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="stationName" use="required"/>
			<attribute name="instrumentHeight" type="double"/>
			<attribute name="laserDetailsID" type="IDREF"/>
			<attribute name="magDeclination" type="double"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="PointResults">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:TargetPoint" minOccurs="0"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="setupID" type="IDREF"/>
			<attribute name="targetSetupID" type="IDREF"/>
			<attribute name="meanHorizAngle" type="double"/>
			<attribute name="horizStdDeviation" type="double"/>
			<attribute name="meanzenithAngle" type="double"/>
			<attribute name="vertStdDeviation" type="double"/>
			<attribute name="meanSlopeDistance" type="double"/>
			<attribute name="slopeDistanceStdDeviation" type="double"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="ObservationGroup">
		<annotation>
			<documentation>All observations to the same point in a group should be averaged together (they have consistant orientation)</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:TargetPoint"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:Backsight"/>
					<element ref="lx:RawObservation" maxOccurs="unbounded"/>
					<element ref="lx:ReducedObservation"/>
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="purpose" type="lx:purposeType"/>
			<attribute name="setupID" type="IDREF"/>
			<attribute name="targetSetupID" type="IDREF"/>
			<attribute name="setID"/>
			<attribute name="disabledDist"/>
			<attribute name="disabledHoriz"/>
			<attribute name="disabledVert"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="ControlObservations">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:ObservationGroup" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:PointResults" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
		</complexType>
	</element>
	<element name="RawObservation">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:TargetPoint" minOccurs="0"/>
				<element ref="lx:OffsetVals" minOccurs="0"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="purpose" type="lx:purposeType"/>
			<attribute name="setupID" type="IDREF"/>
			<attribute name="targetSetupID" type="IDREF"/>
			<attribute name="setID"/>
			<attribute name="targetHeight" type="double"/>
			<attribute name="horizAngle" type="double" use="required"/>
			<attribute name="slopeDistance" type="double" use="required"/>
			<attribute name="zenithAngle" type="double" use="required"/>
			<attribute name="horizDistance" type="double"/>
			<attribute name="vertDistance" type="double"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="ReducedObservation">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:TargetPoint" minOccurs="0"/>
				<element ref="lx:OffsetVals" minOccurs="0"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="purpose" type="lx:purposeType"/>
			<attribute name="setupID" type="IDREF"/>
			<attribute name="targetSetupID" type="IDREF"/>
			<attribute name="setID"/>
			<attribute name="targetHeight" type="double"/>
			<attribute name="azimuth" type="lx:angle" use="required"/>
			<attribute name="horizDistance" type="double" use="required"/>
			<attribute name="vertDistance" type="double" use="required"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="InstrumentSetup">
		<annotation>
			<documentation>The Instrument setup location is defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute.</documentation>
		</annotation>
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element name="InstrumentPoint" type="lx:PointType" minOccurs="0"/>
					<element ref="lx:Backsight" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:TargetSetup" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:RawObservation" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:ObservationGroup" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:ControlObservations" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="instrumentDetailsID" type="IDREF"/>
			<attribute name="stationName" type="string" use="required"/>
			<attribute name="instrumentHeight" type="double" use="required"/>
			<attribute name="orientationAzimuth" type="lx:angle"/>
			<attribute name="circleAzimuth" type="lx:angle"/>
		</complexType>
	</element>
	<element name="Corrections">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="applyAtmosphericCorrection" type="boolean"/>
			<attribute name="pressure" type="double"/>
			<attribute name="temperature" type="double"/>
			<attribute name="horizCollimation" type="double"/>
			<attribute name="vertCollimation" type="double"/>
			<attribute name="seaLevel" type="double"/>
			<attribute name="curvatureRefraction" type="double"/>
			<attribute name="sphericity" type="double"/>
			<attribute name="prismEccentricity" type="double"/>
			<attribute name="scaleFactor" type="double"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="GPSAntennaDetails">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="makeAndModel"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="LaserDetails">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="laserVertOffset" type="double"/>
			<attribute name="makeAndModel"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="InstrumentDetails">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="edmAccuracyConstant" type="double"/>
			<attribute name="edmAccuracyppm" type="double"/>
			<attribute name="edmVertOffset" type="double"/>
			<attribute name="horizAnglePrecision" type="double"/>
			<attribute name="makeAndModel"/>
			<attribute name="zenithAnglePrecision" type="double"/>
			<!-- required attributes -->
			<!-- optional attributes ???-->
			<!-- To allow for older style top mounted EDM's -->
		</complexType>
	</element>
	<element name="Equipment">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<choice>
					<element ref="lx:InstrumentDetails"/>
					<element ref="lx:LaserDetails"/>
					<element ref="lx:GPSAntennaDetails"/>
				</choice>
				<element ref="lx:Corrections"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
		</complexType>
	</element>
	<element name="Personnel">
		<complexType>
			<attribute name="name" type="string"/>
			<attribute name="role" type="string"/>
		</complexType>
	</element>
	<element name="SurveyHeader">
		<complexType mixed="true">
			<choice minOccurs="0" maxOccurs="unbounded">
				<element ref="lx:Personnel" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
			</choice>
			<attribute name="name"/>
			<attribute name="desc"/>
			<attribute name="purpose" type="lx:purposeType"/>
			<attribute name="date" type="date"/>
			<attribute name="time" type="time"/>
		</complexType>
	</element>
	<element name="Survey">
		<annotation>
			<documentation/>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:SurveyHeader"/>
				<element ref="lx:Equipment"/>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:InstrumentSetup" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:LaserSetup" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:GPSSetup" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:TargetSetup" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element ref="lx:RawObservation"/>
					<element ref="lx:LaserObservation"/>
					<element ref="lx:GPSVector"/>
					<element ref="lx:GPSPosition"/>
					<element ref="lx:ObservationGroup"/>
					<element ref="lx:ControlObservations"/>
					<element ref="lx:ReducedObservation"/>
					<element ref="lx:FieldNote" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				</choice>
			</sequence>
			<attribute name="desc" use="optional"/>
			<attribute name="date" type="date" use="optional"/>
			<attribute name="time" type="time" use="optional"/>
			<!-- optional attributes -->
		</complexType>
	</element>
	<element name="CoordinateSystem">
		<annotation>
			<documentation>The OpenGIS coordinate systems XML description may be appended to this element and still validate.
			</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref="lx:Start"/>
				<element ref="lx:Feature" minOccurs="0" maxOccurs="unbounded"/>
				<any processContents="lax"/>
			</sequence>
			<attribute name="rotationAngle" type="lx:angle"/>
			<attribute name="ProjectionSystemName" type="string"/>
			<attribute name="desc" use="optional"/>
			<attribute name="name" use="optional"/>
			<!-- required attributes -->
			<!-- optional attributes -->
		</complexType>
	</element>
</schema>

