<schema targetNamespace="http://www.opengis.net/gml/3.3/ce" xmlns:gmlce="http://www.opengis.net/gml/3.3/ce" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" elementFormDefault="qualified" version="3.3.0">
<annotation>
<documentation>geometryCompact.xsd, part of GML 3.3. Copyright (c) [2011] Open Geospatial Consortium, Inc. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.</documentation>
</annotation>
<import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd" />
<element name="SimplePolygon" type="gmlce:SimplePolygonType" substitutionGroup="gmlce:AbstractSimplePolygon">
<annotation>
<documentation>A SimplePolygon is a specialized polygon that has a simplified encoding of the logically equivalent GML 3.2 Surface with a single GML 3.2 PolygonPatch as its surface patch consisting of a single LinearRing as its exterior boundary and does not have any interior boundary. Thus the usage of the term 'simple' here refers to a specialized polygon with a _simplified_ encoding, which is _simply_ connected (no interior rings) and uses a _simple_ closed curve (no self-crossings) to represent its single boundary ring.</documentation>
</annotation>
</element>
<element name="AbstractSimplePolygon" type="gml:AbstractSurfaceType" substitutionGroup="gml:AbstractSurface">
<annotation>
<documentation>Abstract element representative of a substitution affiliation</documentation>
</annotation>
</element>
<complexType name="SimplePolygonType">
<complexContent>
<extension base="gml:AbstractSurfaceType">
<sequence>
<choice>
<choice minOccurs="3" maxOccurs="unbounded">
<element ref="gml:pos" />
<element ref="gml:pointProperty" />
</choice>
<element ref="gml:posList" />
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="SimpleRectangle" type="gmlce:SimpleRectangleType" substitutionGroup="gmlce:AbstractSimplePolygon">
<annotation>
<documentation>A SimpleRectangle is the special case of a simple polygon, which has exactly 4 control points in its boundary encoding representing the 4 corners of the rectangle.</documentation>
</annotation>
</element>
<complexType name="SimpleRectangleType">
<complexContent>
<extension base="gml:AbstractSurfaceType">
<sequence>
<choice>
<choice minOccurs="4" maxOccurs="4">
<element ref="gml:pos" />
<element ref="gml:pointProperty" />
</choice>
<element ref="gml:posList" />
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="SimpleTriangle" type="gmlce:SimpleTriangleType" substitutionGroup="gmlce:AbstractSimplePolygon">
<annotation>
<documentation>A SimpleTriangle is the special case of a simple polygon, which has exactly 3 control points in its boundary encoding representing the 3 corners of the triangle.</documentation>
</annotation>
</element>
<complexType name="SimpleTriangleType">
<complexContent>
<extension base="gml:AbstractSurfaceType">
<sequence>
<choice>
<choice minOccurs="3" maxOccurs="3">
<element ref="gml:pos" />
<element ref="gml:pointProperty" />
</choice>
<element ref="gml:posList" />
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="SimpleArcString" type="gmlce:SimpleArcStringType" substitutionGroup="gmlce:AbstractSimpleArcString">
<annotation>
<documentation>A SimpleArcString is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one or more GML 3.2 Arc segments</documentation>
</annotation>
</element>
<element name="AbstractSimpleArcString" type="gml:AbstractCurveType" substitutionGroup="gml:AbstractCurve">
<annotation>
<documentation>Abstract element representative of a substitution affiliation</documentation>
</annotation>
</element>
<complexType name="SimpleArcStringType">
<complexContent>
<extension base="gml:AbstractCurveType">
<sequence>
<choice>
<choice minOccurs="3" maxOccurs="unbounded">
<element ref="gml:pos" />
<element ref="gml:pointProperty" />
</choice>
<element ref="gml:posList" />
</choice>
</sequence>
<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="circularArc3Points" />
<attribute name="numArc" type="integer" />
</extension>
</complexContent>
</complexType>
<element name="SimpleArc" type="gmlce:SimpleArcType" substitutionGroup="gmlce:AbstractSimpleArcString">
<annotation>
<documentation>A SimpleArc is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 ArcString segment .</documentation>
</annotation>
</element>
<complexType name="SimpleArcType">
<complexContent>
<extension base="gml:AbstractCurveType">
<sequence>
<choice>
<choice minOccurs="3" maxOccurs="3">
<element ref="gml:pos" />
<element ref="gml:pointProperty" />
</choice>
<element ref="gml:posList" />
</choice>
</sequence>
<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="circularArc3Points" />
<attribute name="numArc" type="integer" fixed="1" />
</extension>
</complexContent>
</complexType>
<element name="SimpleArcByCenterPoint" type="gmlce:SimpleArcByCenterPointType" substitutionGroup="gmlce:AbstractSimpleArcString">
<annotation>
<documentation>A SimpleArcByCenterPoint is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 SimpleArcByCenterPoint segment.</documentation>
</annotation>
</element>
<complexType name="SimpleArcByCenterPointType">
<complexContent>
<extension base="gml:AbstractCurveType">
<sequence>
<choice>
<choice>
<element ref="gml:pos" />
<element ref="gml:pointProperty" />
</choice>
<element ref="gml:posList" />
</choice>
<element name="radius" type="gml:LengthType" />
<!--note that start and end angle are mandatory in this encoding unlike gml 3.2 ArcByCentrePoint-->
<element name="startAngle" type="gml:AngleType" />
<element name="endAngle" type="gml:AngleType" />
</sequence>
<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="circularArcCenterPointWithRadius" />
<attribute name="numArc" type="integer" use="required" fixed="1" />
</extension>
</complexContent>
</complexType>
<element name="SimpleArcStringByBulge" type="gmlce:SimpleArcStringByBulgeType" substitutionGroup="gmlce:AbstractSimpleArcString">
<annotation>
<documentation>A SimpleArcStringByBulge is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one or more GML 3.2 ArcByBulge segments.</documentation>
</annotation>
</element>
<complexType name="SimpleArcStringByBulgeType">
<complexContent>
<extension base="gml:AbstractCurveType">
<sequence>
<choice>
<choice minOccurs="2" maxOccurs="unbounded">
<element ref="gml:pos" />
<element ref="gml:pointProperty" />
</choice>
<element ref="gml:posList" />
</choice>
<element name="bulge" type="double" maxOccurs="unbounded" />
<element name="normal" type="gml:VectorType" maxOccurs="unbounded" />
</sequence>
<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="circularArc2PointWithBulge" />
<attribute name="numArc" type="integer" />
</extension>
</complexContent>
</complexType>
<element name="SimpleArcByBulge" type="gmlce:SimpleArcByBulgeType" substitutionGroup="gmlce:AbstractSimpleArcString">
<annotation>
<documentation>A SimpleArcStringByBulge is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with one GML 3.2 ArcByBulge segment.</documentation>
</annotation>
</element>
<complexType name="SimpleArcByBulgeType">
<complexContent>
<extension base="gml:AbstractCurveType">
<sequence>
<choice>
<choice minOccurs="2" maxOccurs="2">
<element ref="gml:pos" />
<element ref="gml:pointProperty" />
</choice>
<element ref="gml:posList" />
</choice>
<element name="bulge" type="double" maxOccurs="unbounded" />
<element name="normal" type="gml:VectorType" maxOccurs="unbounded" />
</sequence>
<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="circularArc2PointWithBulge" />
<attribute name="numArc" type="integer" fixed="1" />
</extension>
</complexContent>
</complexType>
<element name="SimpleCircle" type="gmlce:SimpleArcType" substitutionGroup="gmlce:AbstractSimpleArcString">
<annotation>
<documentation>A SimpleCircle is a specialized curve that has a simplified encoding of the logically equivalent GML 3.2 Curve with a single GML 3.2 Circle segment.</documentation>
</annotation>
</element>
<element name="SimpleCircleByCenterPoint" type="gmlce:SimpleArcByCenterPointType" substitutionGroup="gmlce:AbstractSimpleArcString" />
<complexType name="SimpleMultiPointType">
<complexContent>
<extension base="gml:AbstractGeometricAggregateType">
<sequence>
<element ref="gml:posList" />
</sequence>
</extension>
</complexContent>
</complexType>
<element name="SimpleMultiPoint" type="gmlce:SimpleMultiPointType" substitutionGroup="gml:AbstractGeometricAggregate" />
<complexType name="MultiPointPropertyType">
<choice minOccurs="0">
<element ref="gml:MultiPoint" />
<element ref="gmlce:SimpleMultiPoint" />
</choice>
<attributeGroup ref="gml:AssociationAttributeGroup" />
<attributeGroup ref="gml:OwnershipAttributeGroup" />
</complexType>
</schema>