<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="profile-schema-for-documentation---use-complete-schema-for-validation" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml/3.2" version="3.2.2" elementFormDefault="qualified" targetNamespace="http://www.opengis.net/gml/3.2">
	<annotation>
		<documentation>GML 3.2 Profil für die NAS Versionen 6 und 7</documentation>
	</annotation>
	<import schemaLocation="http://www.w3.org/1999/xlink.xsd" namespace="http://www.w3.org/1999/xlink"/>
	<!-- ================================================= -->
	<complexType name="AbstractMetadataPropertyType" abstract="true">
		<sequence/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<attributeGroup name="OwnershipAttributeGroup">
		<attribute name="owns" type="boolean" default="false"/>
	</attributeGroup>
	<!-- ================================================= -->
	<complexType name="AbstractMemberType" abstract="true">
		<sequence/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<complexType name="CodeType">
		<simpleContent>
			<extension base="string">
				<attribute name="codeSpace" type="anyURI"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractFeature" type="gml:AbstractFeatureType" abstract="true" substitutionGroup="gml:AbstractGML">
	</element>
	<!-- ================================================= -->
	<complexType name="AbstractFeatureType" abstract="true">
		<complexContent>
			<extension base="gml:AbstractGMLType">
				<sequence>
					<element ref="gml:boundedBy" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AbstractGMLType" abstract="true">
		<sequence>
			<group ref="gml:StandardObjectProperties"/>
		</sequence>
		<attribute ref="gml:id"/>
	</complexType>
	<!-- ================================================= -->
	<group name="StandardObjectProperties">
		<sequence>
			<element ref="gml:description" minOccurs="0"/>
			<element ref="gml:descriptionReference" minOccurs="0"/>
			<element ref="gml:identifier" minOccurs="0"/>
			<element ref="gml:name" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</group>
	<!-- ================================================= -->
	<attribute name="id" type="ID"/>
	<!-- ================================================= -->
	<element name="AbstractObject" abstract="true"/>
	<!-- ================================================= -->
	<attributeGroup name="AssociationAttributeGroup">
		<attributeGroup ref="xlink:simpleAttrs"/>
		<attribute name="nilReason" type="gml:NilReasonType"/>
	</attributeGroup>
	<!-- ================================================= -->
	<simpleType name="NilReasonType">
		<union memberTypes="gml:NilReasonEnumeration anyURI"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="NilReasonEnumeration">
		<union>
			<simpleType>
				<restriction base="string">
					<enumeration value="inapplicable"/>
					<enumeration value="missing"/>
					<enumeration value="template"/>
					<enumeration value="unknown"/>
					<enumeration value="withheld"/>
				</restriction>
			</simpleType>
			<simpleType>
				<restriction base="string">
					<pattern value="other:\w{2,}"/>
				</restriction>
			</simpleType>
		</union>
	</simpleType>
	<!-- ================================================= -->
	<element name="description" type="string"/>
	<!-- ================================================= -->
	<element name="descriptionReference" type="gml:ReferenceType"/>
	<!-- ================================================= -->
	<complexType name="ReferenceType">
		<sequence/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="identifier" type="gml:CodeWithAuthorityType"/>
	<!-- ================================================= -->
	<complexType name="CodeWithAuthorityType">
		<simpleContent>
			<restriction base="gml:CodeType">
				<attribute name="codeSpace" type="anyURI" use="required"/>
			</restriction>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<element name="name" type="gml:CodeType"/>
	<!-- ================================================= -->
	<element name="boundedBy" type="gml:BoundingShapeType" nillable="true"/>
	<!-- ================================================= -->
	<complexType name="BoundingShapeType">
		<sequence>
			<element ref="gml:Envelope"/>
		</sequence>
		<attribute name="nilReason" type="gml:NilReasonType"/>
	</complexType>
	<!-- ================================================= -->
	<element name="Envelope" type="gml:EnvelopeType" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<complexType name="EnvelopeType">
		<sequence>
			<element name="lowerCorner" type="gml:DirectPositionType"/>
			<element name="upperCorner" type="gml:DirectPositionType"/>
		</sequence>
		<attributeGroup ref="gml:SRSReferenceGroup"/>
	</complexType>
	<!-- ================================================= -->
	<complexType name="DirectPositionType">
		<simpleContent>
			<extension base="gml:doubleList">
				<attributeGroup ref="gml:SRSReferenceGroup"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<simpleType name="doubleList">
		<list itemType="double"/>
	</simpleType>
	<!-- ================================================= -->
	<attributeGroup name="SRSReferenceGroup">
		<attribute name="srsName" type="anyURI"/>
		<attribute name="srsDimension" type="positiveInteger"/>
		<attributeGroup ref="gml:SRSInformationGroup"/>
	</attributeGroup>
	<!-- ================================================= -->
	<attributeGroup name="SRSInformationGroup">
		<attribute name="axisLabels" type="gml:NCNameList"/>
		<attribute name="uomLabels" type="gml:NCNameList"/>
	</attributeGroup>
	<!-- ================================================= -->
	<simpleType name="NCNameList">
		<list itemType="NCName"/>
	</simpleType>
	<!-- ================================================= -->
	<element name="pos" type="gml:DirectPositionType"/>
	<!-- ================================================= -->
	<element name="AbstractGeometry" type="gml:AbstractGeometryType" abstract="true" substitutionGroup="gml:AbstractGML"/>
	<!-- ================================================= -->
	<complexType name="AbstractGeometryType" abstract="true">
		<complexContent>
			<extension base="gml:AbstractGMLType">
				<attributeGroup ref="gml:SRSReferenceGroup"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractGML" type="gml:AbstractGMLType" abstract="true" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<element name="AbstractFeatureCollection" type="gml:AbstractFeatureCollectionType" abstract="true" substitutionGroup="gml:AbstractFeature">
		<annotation>
			<appinfo>deprecated</appinfo>
		</annotation>
	</element>
	<!-- ================================================= -->
	<complexType name="AbstractFeatureCollectionType" abstract="true">
		<annotation>
			<appinfo>deprecated</appinfo>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element ref="gml:featureMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="featureMember" type="gml:FeaturePropertyType">
		<annotation>
			<appinfo>deprecated</appinfo>
		</annotation>
	</element>
	<!-- ================================================= -->
	<complexType name="FeaturePropertyType">
		<sequence minOccurs="0">
			<element ref="gml:AbstractFeature"/>
		</sequence>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<complexType name="GeometryPropertyType">
		<sequence minOccurs="0">
			<element ref="gml:AbstractGeometry"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<complexType name="PointPropertyType">
		<sequence minOccurs="0">
			<element ref="gml:Point"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="Point" type="gml:PointType" substitutionGroup="gml:AbstractGeometricPrimitive"/>
	<!-- ================================================= -->
	<complexType name="PointType">
		<complexContent>
			<extension base="gml:AbstractGeometricPrimitiveType">
				<sequence>
					<element ref="gml:pos"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AbstractGeometricPrimitiveType" abstract="true">
		<complexContent>
			<extension base="gml:AbstractGeometryType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractGeometricPrimitive" type="gml:AbstractGeometricPrimitiveType" abstract="true" substitutionGroup="gml:AbstractGeometry"/>
	<!-- ================================================= -->
	<complexType name="MultiPointPropertyType">
		<sequence minOccurs="0">
			<element ref="gml:MultiPoint"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="MultiPoint" type="gml:MultiPointType" substitutionGroup="gml:AbstractGeometricAggregate"/>
	<!-- ================================================= -->
	<complexType name="MultiPointType">
		<complexContent>
			<extension base="gml:AbstractGeometricAggregateType">
				<sequence>
					<element ref="gml:pointMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AbstractGeometricAggregateType" abstract="true">
		<complexContent>
			<extension base="gml:AbstractGeometryType">
				<attributeGroup ref="gml:AggregationAttributeGroup"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<attributeGroup name="AggregationAttributeGroup">
		<attribute name="aggregationType" type="gml:AggregationType"/>
	</attributeGroup>
	<!-- ================================================= -->
	<simpleType name="AggregationType" final="#all">
		<restriction base="string">
			<enumeration value="set"/>
			<enumeration value="bag"/>
			<enumeration value="sequence"/>
			<enumeration value="array"/>
			<enumeration value="record"/>
			<enumeration value="table"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<element name="pointMember" type="gml:PointPropertyType"/>
	<!-- ================================================= -->
	<element name="AbstractGeometricAggregate" type="gml:AbstractGeometricAggregateType" abstract="true" substitutionGroup="gml:AbstractGeometry"/>
	<!-- ================================================= -->
	<complexType name="CurvePropertyType">
		<sequence minOccurs="0">
			<element ref="gml:AbstractCurve"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractCurve" type="gml:AbstractCurveType" abstract="true" substitutionGroup="gml:AbstractGeometricPrimitive"/>
	<!-- ================================================= -->
	<complexType name="AbstractCurveType" abstract="true">
		<complexContent>
			<extension base="gml:AbstractGeometricPrimitiveType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="MultiCurvePropertyType">
		<sequence minOccurs="0">
			<element ref="gml:MultiCurve"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="MultiCurve" type="gml:MultiCurveType" substitutionGroup="gml:AbstractGeometricAggregate"/>
	<!-- ================================================= -->
	<complexType name="MultiCurveType">
		<complexContent>
			<extension base="gml:AbstractGeometricAggregateType">
				<sequence>
					<element ref="gml:curveMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="curveMember" type="gml:CurvePropertyType"/>
	<!-- ================================================= -->
	<complexType name="SurfacePropertyType">
		<sequence minOccurs="0">
			<element ref="gml:AbstractSurface"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractSurface" type="gml:AbstractSurfaceType" abstract="true" substitutionGroup="gml:AbstractGeometricPrimitive"/>
	<!-- ================================================= -->
	<complexType name="AbstractSurfaceType" abstract="true">
		<complexContent>
			<extension base="gml:AbstractGeometricPrimitiveType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="SolidPropertyType">
		<sequence minOccurs="0">
			<element ref="gml:AbstractSolid"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractSolid" type="gml:AbstractSolidType" abstract="true" substitutionGroup="gml:AbstractGeometricPrimitive"/>
	<!-- ================================================= -->
	<complexType name="AbstractSolidType">
		<complexContent>
			<extension base="gml:AbstractGeometricPrimitiveType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="SolidType">
		<complexContent>
			<extension base="gml:AbstractSolidType">
				<sequence>
					<element name="exterior" type="gml:ShellPropertyType" minOccurs="0"/>
					<element name="interior" type="gml:ShellPropertyType" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="Solid" type="gml:SolidType" substitutionGroup="gml:AbstractSolid"/>
	<!-- ================================================= -->
	<complexType name="ShellType">
		<complexContent>
			<extension base="gml:AbstractSurfaceType">
				<sequence>
					<element ref="gml:surfaceMember" maxOccurs="unbounded"/>
				</sequence>
				<attributeGroup ref="gml:AggregationAttributeGroup"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="Shell" type="gml:ShellType" substitutionGroup="gml:AbstractSurface"/>
	<!-- ================================================= -->
	<complexType name="ShellPropertyType">
		<sequence>
			<element ref="gml:Shell"/>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<element name="MultiSurface" type="gml:MultiSurfaceType" substitutionGroup="gml:AbstractGeometricAggregate"/>
	<!-- ================================================= -->
	<complexType name="MultiSurfaceType">
		<complexContent>
			<extension base="gml:AbstractGeometricAggregateType">
				<sequence>
					<element ref="gml:surfaceMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="surfaceMember" type="gml:SurfacePropertyType"/>
	<!-- ================================================= -->
	<element name="TriangulatedSurface" type="gml:SurfaceType" substitutionGroup="gml:Surface"/>
	<!-- ================================================= -->
	<complexType name="SurfaceType">
		<complexContent>
			<extension base="gml:AbstractSurfaceType">
				<sequence>
					<element ref="gml:patches"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="patches" type="gml:SurfacePatchArrayPropertyType"/>
	<!-- ================================================= -->
	<complexType name="SurfacePatchArrayPropertyType">
		<sequence minOccurs="0" maxOccurs="unbounded">
			<element ref="gml:AbstractSurfacePatch"/>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractSurfacePatch" type="gml:AbstractSurfacePatchType" abstract="true"/>
	<!-- ================================================= -->
	<complexType name="AbstractSurfacePatchType" abstract="true"/>
	<!-- ================================================= -->
	<element name="Surface" type="gml:SurfaceType" substitutionGroup="gml:AbstractSurface"/>
	<!-- ================================================= -->
	<complexType name="MultiSurfacePropertyType">
		<sequence minOccurs="0">
			<element ref="gml:MultiSurface"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="CompositeCurve" type="gml:CompositeCurveType" substitutionGroup="gml:AbstractCurve"/>
	<!-- ================================================= -->
	<complexType name="CompositeCurveType">
		<complexContent>
			<extension base="gml:AbstractCurveType">
				<sequence>
					<element ref="gml:curveMember" maxOccurs="unbounded"/>
				</sequence>
				<attributeGroup ref="gml:AggregationAttributeGroup"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="CompositeSolid" type="gml:CompositeSolidType" substitutionGroup="gml:AbstractSolid"/>
	<!-- ================================================= -->
	<complexType name="CompositeSolidType">
		<complexContent>
			<extension base="gml:AbstractSolidType">
				<sequence>
					<element ref="gml:solidMember" maxOccurs="unbounded"/>
				</sequence>
				<attributeGroup ref="gml:AggregationAttributeGroup"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="solidMember" type="gml:SolidPropertyType"/>
	<!-- ================================================= -->
	<complexType name="MeasureType">
		<simpleContent>
			<extension base="double">
				<attribute name="uom" type="gml:UomIdentifier" use="required"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<simpleType name="UomIdentifier">
		<union memberTypes="gml:UomSymbol gml:UomURI"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="UomSymbol">
		<restriction base="string">
			<pattern value="[^: \n\r\t]+"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="UomURI">
		<restriction base="anyURI">
			<pattern value="([a-zA-Z][a-zA-Z0-9\-\+\.]*:|\.\./|\./|#).*"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<complexType name="LengthType">
		<simpleContent>
			<extension base="gml:MeasureType"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AreaType">
		<simpleContent>
			<extension base="gml:MeasureType"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="VolumeType">
		<simpleContent>
			<extension base="gml:MeasureType"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AngleType">
		<simpleContent>
			<extension base="gml:MeasureType"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="ScaleType">
		<simpleContent>
			<extension base="gml:MeasureType"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<element name="LineString" type="gml:LineStringType" substitutionGroup="gml:AbstractCurve"/>
	<!-- ================================================= -->
	<complexType name="LineStringType">
		<complexContent>
			<extension base="gml:AbstractCurveType">
				<sequence>
					<element ref="gml:posList"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="posList" type="gml:DirectPositionListType"/>
	<!-- ================================================= -->
	<complexType name="DirectPositionListType">
		<simpleContent>
			<extension base="gml:doubleList">
				<attributeGroup ref="gml:SRSReferenceGroup"/>
				<attribute name="count" type="positiveInteger"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<element name="Curve" type="gml:CurveType" substitutionGroup="gml:AbstractCurve"/>
	<!-- ================================================= -->
	<complexType name="CurveType">
		<complexContent>
			<extension base="gml:AbstractCurveType">
				<sequence>
					<element ref="gml:segments"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="segments" type="gml:CurveSegmentArrayPropertyType"/>
	<!-- ================================================= -->
	<complexType name="CurveSegmentArrayPropertyType">
		<sequence minOccurs="0" maxOccurs="unbounded">
			<element ref="gml:AbstractCurveSegment"/>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractCurveSegment" type="gml:AbstractCurveSegmentType" abstract="true" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<complexType name="AbstractCurveSegmentType" abstract="true">
		<attribute name="numDerivativesAtStart" type="integer" default="0"/>
		<attribute name="numDerivativesAtEnd" type="integer" default="0"/>
		<attribute name="numDerivativeInterior" type="integer" default="0"/>
	</complexType>
	<!-- ================================================= -->
	<element name="LineStringSegment" type="gml:LineStringSegmentType" substitutionGroup="gml:AbstractCurveSegment"/>
	<!-- ================================================= -->
	<complexType name="LineStringSegmentType">
		<complexContent>
			<extension base="gml:AbstractCurveSegmentType">
				<sequence>
					<element ref="gml:posList"/>
				</sequence>
				<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="linear"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<simpleType name="CurveInterpolationType">
		<restriction base="string">
			<enumeration value="linear"/>
			<enumeration value="geodesic"/>
			<enumeration value="circularArc3Points"/>
			<enumeration value="circularArc2PointWithBulge"/>
			<enumeration value="circularArcCenterPointWithRadius"/>
			<enumeration value="elliptical"/>
			<enumeration value="clothoid"/>
			<enumeration value="conic"/>
			<enumeration value="polynomialSpline"/>
			<enumeration value="cubicSpline"/>
			<enumeration value="rationalSpline"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<element name="CubicSpline" type="gml:CubicSplineType" substitutionGroup="gml:AbstractCurveSegment"/>
	<!-- ================================================= -->
	<complexType name="CubicSplineType">
		<complexContent>
			<extension base="gml:AbstractCurveSegmentType">
				<sequence>
					<element ref="gml:posList"/>
					<element name="vectorAtStart" type="gml:VectorType"/>
					<element name="vectorAtEnd" type="gml:VectorType"/>
				</sequence>
				<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="cubicSpline"/>
				<attribute name="degree" type="integer" fixed="3"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="VectorType">
		<simpleContent>
			<restriction base="gml:DirectPositionType"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<element name="Arc" type="gml:ArcType" substitutionGroup="gml:ArcString"/>
	<!-- ================================================= -->
	<complexType name="ArcType">
		<complexContent>
			<restriction base="gml:ArcStringType">
				<sequence>
					<element ref="gml:posList"/>
				</sequence>
				<attribute name="numArc" type="integer" fixed="1"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="ArcStringType">
		<complexContent>
			<extension base="gml:AbstractCurveSegmentType">
				<sequence>
					<element ref="gml:posList"/>
				</sequence>
				<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="circularArc3Points"/>
				<attribute name="numArc" type="integer"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="ArcString" type="gml:ArcStringType" substitutionGroup="gml:AbstractCurveSegment"/>
	<!-- ================================================= -->
	<element name="Circle" type="gml:CircleType" substitutionGroup="gml:Arc"/>
	<!-- ================================================= -->
	<complexType name="CircleType">
		<complexContent>
			<extension base="gml:ArcType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="Polygon" type="gml:PolygonType" substitutionGroup="gml:AbstractSurface"/>
	<!-- ================================================= -->
	<complexType name="PolygonType">
		<complexContent>
			<extension base="gml:AbstractSurfaceType">
				<sequence>
					<element ref="gml:exterior" minOccurs="0"/>
					<element ref="gml:interior" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="exterior" type="gml:AbstractRingPropertyType"/>
	<!-- ================================================= -->
	<complexType name="AbstractRingPropertyType">
		<sequence>
			<element ref="gml:AbstractRing"/>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<element name="AbstractRing" type="gml:AbstractRingType" abstract="true" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<complexType name="AbstractRingType" abstract="true">
		<complexContent>
			<extension base="gml:AbstractCurveType">
				<sequence/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="interior" type="gml:AbstractRingPropertyType"/>
	<!-- ================================================= -->
	<element name="LinearRing" type="gml:LinearRingType" substitutionGroup="gml:AbstractRing"/>
	<!-- ================================================= -->
	<complexType name="LinearRingType">
		<complexContent>
			<extension base="gml:AbstractRingType">
				<sequence>
					<element ref="gml:posList"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="Ring" type="gml:RingType" substitutionGroup="gml:AbstractRing"/>
	<!-- ================================================= -->
	<complexType name="RingType">
		<complexContent>
			<extension base="gml:AbstractRingType">
				<sequence>
					<element ref="gml:curveMember" maxOccurs="unbounded"/>
				</sequence>
				<attributeGroup ref="gml:AggregationAttributeGroup"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="CRSPropertyType">
		<sequence/>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="MultiPointCoverage" type="gml:DiscreteCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
	<!-- ================================================= -->
	<complexType name="AbstractCoverageType" abstract="true">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element ref="gml:domainSet"/>
					<element ref="gml:rangeSet"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="domainSet" type="gml:DomainSetType"/>
	<!-- ================================================= -->
	<complexType name="DomainSetType">
		<sequence>
			<element ref="gml:AbstractGeometry"/>
		</sequence>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="rangeSet" type="gml:RangeSetType"/>
	<!-- ================================================= -->
	<complexType name="RangeSetType">
		<choice>
			<element ref="gml:DataBlock"/>
			<element ref="gml:File"/>
		</choice>
	</complexType>
	<!-- ================================================= -->
	<element name="DataBlock" type="gml:DataBlockType" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<complexType name="DataBlockType">
		<sequence>
			<element ref="gml:rangeParameters"/>
			<element ref="gml:doubleOrNilReasonTupleList"/>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<element name="rangeParameters" type="gml:AssociationRoleType"/>
	<!-- ================================================= -->
	<complexType name="AssociationRoleType">
		<sequence minOccurs="0">
			<element ref="gml:AbstractObject"/>
		</sequence>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="doubleOrNilReasonTupleList" type="gml:doubleOrNilReasonList"/>
	<!-- ================================================= -->
	<simpleType name="doubleOrNilReasonList">
		<list itemType="gml:doubleOrNilReason"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="doubleOrNilReason">
		<union memberTypes="gml:NilReasonEnumeration double anyURI"/>
	</simpleType>
	<!-- ================================================= -->
	<element name="File" type="gml:FileType" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<complexType name="FileType">
		<sequence>
			<element ref="gml:rangeParameters"/>
			<element name="fileReference" type="anyURI"/>
			<element name="fileStructure" type="gml:CodeType"/>
			<element name="mimeType" type="anyURI" minOccurs="0"/>
			<element name="compression" type="anyURI" minOccurs="0"/>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<element name="coverageFunction" type="gml:CoverageFunctionType" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<complexType name="CoverageFunctionType">
		<choice>
			<element ref="gml:CoverageMappingRule"/>
			<element ref="gml:GridFunction"/>
		</choice>
	</complexType>
	<!-- ================================================= -->
	<element name="CoverageMappingRule" type="gml:MappingRuleType" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<complexType name="MappingRuleType" final="#all">
		<choice>
			<element name="ruleDefinition" type="string"/>
			<element name="ruleReference" type="gml:ReferenceType"/>
		</choice>
	</complexType>
	<!-- ================================================= -->
	<element name="GridFunction" type="gml:GridFunctionType" substitutionGroup="gml:AbstractObject"/>
	<!-- ================================================= -->
	<complexType name="GridFunctionType">
		<sequence>
			<element name="sequenceRule" type="gml:SequenceRuleType" minOccurs="0"/>
			<element name="startPoint" type="gml:integerList" minOccurs="0"/>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<complexType name="SequenceRuleType">
		<simpleContent>
			<extension base="gml:SequenceRuleEnumeration">
				<attribute name="axisOrder" type="gml:AxisDirectionList"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<simpleType name="SequenceRuleEnumeration">
		<restriction base="string">
			<enumeration value="Linear"/>
			<enumeration value="Boustrophedonic"/>
			<enumeration value="Cantor-diagonal"/>
			<enumeration value="Spiral"/>
			<enumeration value="Morton"/>
			<enumeration value="Hilbert"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="AxisDirectionList">
		<list itemType="gml:AxisDirection"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="AxisDirection">
		<restriction base="string">
			<pattern value="[\+\-][1-9][0-9]*"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="integerList">
		<list itemType="integer"/>
	</simpleType>
	<!-- ================================================= -->
	<element name="AbstractCoverage" type="gml:AbstractCoverageType" abstract="true" substitutionGroup="gml:AbstractFeature"/>
	<!-- ================================================= -->
	<element name="AbstractDiscreteCoverage" type="gml:DiscreteCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
	<!-- ================================================= -->
	<element name="RectifiedGridCoverage" type="gml:DiscreteCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
	<!-- ================================================= -->
	<complexType name="DiscreteCoverageType">
		<complexContent>
			<extension base="gml:AbstractCoverageType">
				<sequence>
					<element ref="gml:coverageFunction" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
</schema>
