<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Galip Aydin -->
<schema targetNamespace="http://mastar.ucs.indiana.edu/fault" xmlns:fault="http://mastar.ucs.indiana.edu/fault" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="3.0">
	<!-- import constructs from the GML feature, geometry, measures, units, gmlBase, and baseTypes schemas -->
	<import namespace="http://www.opengis.net/gml" schemaLocation="feature.xsd"/>
	<!--=======================================================-->
	<!--====================== Elements =========================-->
	<element name="Fault" type="fault:FaultType"/>
	<element name="Reference" type="fault:ReferenceType"/>
	<element name="Segment" type="fault:SegmentType"/>
	<element name="LReference" type="fault:ReferenceType"/>
	<element name="Layer" type="fault:LayerType"/>
	<!--========================================================-->
	<!--================ Fault DB Complex Types ====================-->
	<complexType name="FaultType">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element name="FaultId" minOccurs="0">
						<complexType>
							<simpleContent>
								<extension base="string"/>
							</simpleContent>
						</complexType>
					</element>
					<element name="FaultName" type="string"/>
					<element name="StrandName" type="gml:CodeType" minOccurs="0"/>
					<element name="MapView" type="fault:MapViewType" minOccurs="0"/>
					<element name="CartView" type="fault:CartViewType" minOccurs="0"/>
					<element name="MaterialProps" type="fault:MaterialPropsType" minOccurs="0"/>
					<choice minOccurs="0">
						<element name="Slip" type="fault:SlipTypeType" minOccurs="0"/>
						<element name="Rate" type="fault:SlipRateType" minOccurs="0"/>
					</choice>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ReferenceType">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element name="InterpId" type="string"/>
					<element name="Author" type="gml:CodeType" minOccurs="0" maxOccurs="unbounded"/>
					<element name="Publication" type="gml:CodeType" minOccurs="0"/>
					<element name="Year" type="gml:TimeInstantPropertyType" minOccurs="0"/>
					<element name="Title" type="gml:CodeType" minOccurs="0"/>
					<element name="Volume" type="string" minOccurs="0"/>
					<element name="Number" type="string" minOccurs="0"/>
					<element name="Pages" type="string" minOccurs="0"/>
					<element name="Comment" type="string" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="SegmentType">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element name="FaultId" type="string"/>
					<element name="FaultName" type="string"/>
					<element name="InterpId" type="string"/>
					<element name="SegmentId" type="int" minOccurs="0"/>
					<element name="SegmentName" type="gml:CodeType" minOccurs="0"/>
					<element name="Strike" type="gml:MeasureType" minOccurs="0"/>
					<element name="Dip" type="gml:MeasureType" minOccurs="0"/>
					<element name="Depth" type="gml:MeasureType" minOccurs="0"/>
					<element name="Width" type="gml:MeasureType" minOccurs="0"/>
					<element name="Latitude" type="fault:ValuesType" minOccurs="0"/>
					<element name="Longitude" type="fault:ValuesType" minOccurs="0"/>
					<element name="LastBreak" type="gml:TimePositionType" minOccurs="0" maxOccurs="unbounded"/>
					<element name="Friction" type="gml:MeasureType" minOccurs="0"/>
					<element name="ObsType" type="string" minOccurs="0"/>
					<element name="Recurrence" type="fault:RateType" minOccurs="0"/>
					<element name="Slip" type="fault:SlipType" minOccurs="0"/>
					<element name="DipRate" type="fault:RateType" minOccurs="0"/>
					<element name="StrikeRate" type="fault:RateType" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="LayerType">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element name="InterpId" type="string"/>
					<element name="LayerId" type="string"/>
					<element name="LatOrigin" type="gml:PointType" minOccurs="0"/>
					<element name="LonOrigin" type="gml:PointType" minOccurs="0"/>
					<element name="Datum" type="string" minOccurs="0"/>
					<element name="Origin" minOccurs="0">
						<complexType>
							<sequence minOccurs="0">
								<element name="X" type="fault:CoordinateType" minOccurs="0"/>
								<element name="Y" type="fault:CoordinateType" minOccurs="0"/>
								<element name="Z" type="fault:CoordinateType" minOccurs="0"/>
							</sequence>
						</complexType>
					</element>
					<element name="Length" type="gml:MeasureType" minOccurs="0"/>
					<element name="Width" type="gml:MeasureType" minOccurs="0"/>
					<element name="Depth" type="gml:MeasureType" minOccurs="0"/>
					<element name="Lame" type="fault:LameType" minOccurs="0"/>
					<element name="Viscosity" type="fault:ViscosityType" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!--========================================================-->
	<!--================= Common Complex Types ===================-->
	<complexType name="SlipType"/>
	<complexType name="SlipTypeType">
		<sequence minOccurs="0">
			<element name="StrikeSlip" type="fault:RateType" minOccurs="0"/>
			<element name="DipSlip" type="fault:RateType" minOccurs="0"/>
			<element name="TensileSlip" type="fault:RateType" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="SlipRateType">
		<sequence>
			<element name="SlipRate" type="fault:RateType" minOccurs="0"/>
			<element name="DipRate" type="fault:RateType" minOccurs="0"/>
			<element name="TensileRate" type="fault:RateType" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="RateType">
		<sequence minOccurs="0">
			<element name="Max" type="gml:MeasureType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="Min" type="gml:MeasureType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="Average" type="gml:MeasureType" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="value" type="float" use="optional"/>
		<attribute name="error" type="float" use="optional" default="0.0"/>
		<attribute name="constrained" type="boolean" use="optional" default="true"/>
	</complexType>
	<complexType name="ValuesType">
		<sequence>
			<element name="Start" type="gml:PointType" minOccurs="0"/>
			<element name="End" type="gml:PointType" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="LameType">
		<sequence>
			<element name="LameLambda" type="gml:MeasureType" minOccurs="0"/>
			<element name="LameMu" type="gml:MeasureType" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="ViscosityType">
		<sequence>
			<element name="Viscosity" type="gml:MeasureType" minOccurs="0"/>
			<element name="ViscosityExponent" type="gml:MeasureType" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="MaterialPropsType">
		<sequence minOccurs="0">
			<element name="Lame" type="fault:LameType" minOccurs="0"/>
			<element name="Viscosity" type="fault:ViscosityType" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="FaultParamType">
		<annotation>
			<documentation>
This type is used to hold both the value and the error.
Error is optional. Constrained means the value maybe described as fixed or allowed to change (which is used by simplex).    </documentation>
		</annotation>
		<sequence>
			<element name="value" type="gml:MeasureType"/>
			<element name="error" type="gml:MeasureType" default="0.0" minOccurs="0"/>
			<element name="constrained" type="boolean" default="true" minOccurs="0"/>
		</sequence>
	</complexType>
	<complexType name="CoordinateType">
		<complexContent>
			<extension base="gml:PointType"/>
		</complexContent>
	</complexType>
	<complexType name="MapViewType">
		<sequence>
			<element name="Latitude" type="fault:CoordinateType" minOccurs="0"/>
			<element name="Longitude" type="fault:CoordinateType" minOccurs="0"/>
			<element name="StrikeAngle">
				<complexType>
					<simpleContent>
						<restriction base="gml:MeasureType">
							<minInclusive value="-360.0"/>
							<maxInclusive value="360.0"/>
						</restriction>
					</simpleContent>
				</complexType>
			</element>
		</sequence>
	</complexType>
	<complexType name="CartViewType">
		<sequence>
			<element name="Location" type="fault:LocationType"/>
			<element name="DipAngle" type="fault:FaultParamType"/>
			<element name="FaultDimension" type="fault:FaultDimensionType"/>
		</sequence>
	</complexType>
	<complexType name="FaultDimensionType">
		<sequence>
			<element name="Width" type="fault:FaultParamType"/>
			<element name="Length" type="fault:FaultParamType"/>
		</sequence>
	</complexType>
	<complexType name="LocationType">
		<sequence>
			<element name="XCoordinate">
				<complexType>
					<complexContent>
						<extension base="fault:CoordinateType">
							<attribute name="error" type="string" use="optional" default="0.0"/>
							<attribute name="constrained" type="boolean" use="optional" default="true"/>
						</extension>
					</complexContent>
				</complexType>
			</element>
			<element name="YCoordinate">
				<complexType>
					<complexContent>
						<extension base="fault:CoordinateType">
							<attribute name="error" type="string" use="optional" default="0.0"/>
							<attribute name="constrained" type="boolean" use="optional" default="true"/>
						</extension>
					</complexContent>
				</complexType>
			</element>
			<element name="Depth" type="fault:FaultParamType"/>
		</sequence>
	</complexType>
</schema>
