<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" targetNamespace="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.2.0" finalDefault="" blockDefault="" attributeFormDefault="unqualified">
    <annotation>
        <appinfo source="urn:opengis:specification:gml:schema-xsd:geometryComplexes:v3.2.0">geometryComplexes.xsd</appinfo>
        <documentation>See GML 11.2</documentation>
    </annotation>
    <include schemaLocation="geometryAggregates.xsd"/>
    <complexType name="GeometricComplexType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:AbstractGeometryType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element name="element" type="gml:GeometricPrimitivePropertyType" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </sequence>
                <attributeGroup ref="gml:AggregationAttributeGroup"/>
            </extension>
        </complexContent>
    </complexType>
    <element name="GeometricComplex" type="gml:GeometricComplexType" substitutionGroup="gml:AbstractGeometry" nillable="false" abstract="false"/>
    <complexType name="GeometricComplexPropertyType" mixed="false" abstract="false">
        <sequence minOccurs="0" maxOccurs="1">
            <choice minOccurs="1" maxOccurs="1">
                <element ref="gml:GeometricComplex" minOccurs="1" maxOccurs="1" nillable="false"/>
                <element ref="gml:CompositeCurve" minOccurs="1" maxOccurs="1" nillable="false"/>
                <element ref="gml:CompositeSurface" minOccurs="1" maxOccurs="1" nillable="false"/>
                <element ref="gml:CompositeSolid" minOccurs="1" maxOccurs="1" nillable="false"/>
            </choice>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
    </complexType>
    <complexType name="CompositeCurveType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:AbstractCurveType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:curveMember" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </sequence>
                <attributeGroup ref="gml:AggregationAttributeGroup"/>
            </extension>
        </complexContent>
    </complexType>
    <element name="CompositeCurve" type="gml:CompositeCurveType" substitutionGroup="gml:AbstractCurve" nillable="false" abstract="false"/>
    <complexType name="CompositeSurfaceType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:AbstractSurfaceType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:surfaceMember" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </sequence>
                <attributeGroup ref="gml:AggregationAttributeGroup"/>
            </extension>
        </complexContent>
    </complexType>
    <element name="CompositeSurface" type="gml:CompositeSurfaceType" substitutionGroup="gml:AbstractSurface" nillable="false" abstract="false"/>
    <complexType name="CompositeSolidType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:AbstractSolidType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:solidMember" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </sequence>
                <attributeGroup ref="gml:AggregationAttributeGroup"/>
            </extension>
        </complexContent>
    </complexType>
    <element name="CompositeSolid" type="gml:CompositeSolidType" substitutionGroup="gml:AbstractSolid" nillable="false" abstract="false"/>
</schema>