<?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="3.2.0"> <annotation> <appinfo source="urn:ogc:specification:gml:schema-xsd:geometryAggregates:3.2.0">geometryAggregates.xsd</appinfo> <documentation>See ISO/DIS 19136 12.3. Geometric aggregates (i.e. instances of a subtype of gml:AbstractGeometricAggregateType) are arbitrary aggregations of geometry elements. They are not assumed to have any additional internal structure and are used to "collect" pieces of geometry of a specified type. Application schemas may use aggregates for features that use multiple geometric objects in their representations.</documentation> </annotation> <include schemaLocation="geometryPrimitives.xsd"/> <complexType name="AbstractGeometricAggregateType" abstract="true"> <complexContent> <extension base="gml:AbstractGeometryType"> <attributeGroup ref="gml:AggregationAttributeGroup"/> </extension> </complexContent> </complexType> <element name="AbstractGeometricAggregate" type="gml:AbstractGeometricAggregateType" abstract="true" substitutionGroup="gml:AbstractGeometry"> <annotation> <documentation>gml:AbstractGeometricAggregate is the abstract head of the substitution group for all geometric aggregates.</documentation> </annotation> </element> <complexType name="MultiGeometryType"> <complexContent> <extension base="gml:AbstractGeometricAggregateType"> <sequence> <element ref="gml:geometryMember" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:geometryMembers" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <element name="MultiGeometry" type="gml:MultiGeometryType" substitutionGroup="gml:AbstractGeometricAggregate"> <annotation> <documentation>gml:MultiGeometry is a collection of one or more GML geometry objects of arbitrary type. The members of the geometric aggregate may be specified either using the "standard" property (gml:geometryMember) or the array property (gml:geometryMembers). It is also valid to use both the "standard" and the array properties in the same collection.</documentation> </annotation> </element> <element name="geometryMember" type="gml:GeometryPropertyType"> <annotation> <documentation>This property element either references a geometry element via the XLink-attributes or contains the geometry element.</documentation> </annotation> </element> <element name="geometryMembers" type="gml:GeometryArrayPropertyType"> <annotation> <documentation>This property element contains a list of geometry elements. The order of the elements is significant and shall be preserved when processing the array.</documentation> </annotation> </element> <complexType name="MultiGeometryPropertyType"> <annotation> <documentation>A property that has a geometric aggregate as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none.</documentation> </annotation> <sequence minOccurs="0"> <element ref="gml:AbstractGeometricAggregate"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> <attributeGroup ref="gml:OwnershipAttributeGroup"/> </complexType> <element name="multiGeometryProperty" type="gml:MultiGeometryPropertyType"> <annotation> <documentation>This property element either references a geometric aggregate via the XLink-attributes or contains the "multi geometry" element. multiGeometryProperty is the predefined property, which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractGeometricAggregate.</documentation> </annotation> </element> <complexType name="MultiPointType"> <complexContent> <extension base="gml:AbstractGeometricAggregateType"> <sequence> <element ref="gml:pointMember" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:pointMembers" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <element name="MultiPoint" type="gml:MultiPointType" substitutionGroup="gml:AbstractGeometricAggregate"> <annotation> <documentation>A gml:MultiPoint consists of one or more gml:Points. The members of the geometric aggregate may be specified either using the "standard" property (gml:pointMember) or the array property (gml:pointMembers). It is also valid to use both the "standard" and the array properties in the same collection.</documentation> </annotation> </element> <element name="pointMember" type="gml:PointPropertyType"> <annotation> <documentation>This property element either references a Point via the XLink-attributes or contains the Point element.</documentation> </annotation> </element> <element name="pointMembers" type="gml:PointArrayPropertyType"> <annotation> <documentation>This property element contains a list of points. The order of the elements is significant and shall be preserved when processing the array.</documentation> </annotation> </element> <complexType name="MultiPointPropertyType"> <annotation> <documentation>A property that has a collection of points as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none.</documentation> </annotation> <sequence minOccurs="0"> <element ref="gml:MultiPoint"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> <attributeGroup ref="gml:OwnershipAttributeGroup"/> </complexType> <element name="multiPointProperty" type="gml:MultiPointPropertyType"> <annotation> <documentation>This property element either references a point aggregate via the XLink-attributes or contains the "multi point" element. multiPointProperty is the predefined property, which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for MultiPoint.</documentation> </annotation> </element> <complexType name="MultiCurveType"> <complexContent> <extension base="gml:AbstractGeometricAggregateType"> <sequence> <element ref="gml:curveMember" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:curveMembers" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <element name="MultiCurve" type="gml:MultiCurveType" substitutionGroup="gml:AbstractGeometricAggregate"> <annotation> <documentation>A gml:MultiCurve is defined by one or more gml:AbstractCurves. The members of the geometric aggregate may be specified either using the "standard" property (gml:curveMember) or the array property (gml:curveMembers). It is also valid to use both the "standard" and the array properties in the same collection.</documentation> </annotation> </element> <element name="curveMembers" type="gml:CurveArrayPropertyType"> <annotation> <documentation>This property element contains a list of curves. The order of the elements is significant and shall be preserved when processing the array.</documentation> </annotation> </element> <complexType name="MultiCurvePropertyType"> <annotation> <documentation>A property that has a collection of curves as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none.</documentation> </annotation> <sequence minOccurs="0"> <element ref="gml:MultiCurve"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> <attributeGroup ref="gml:OwnershipAttributeGroup"/> </complexType> <element name="multiCurveProperty" type="gml:MultiCurvePropertyType"> <annotation> <documentation>This property element either references a curve aggregate via the XLink-attributes or contains the "multi curve" element. multiCurveProperty is the predefined property, which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for MultiCurve.</documentation> </annotation> </element> <complexType name="MultiSurfaceType"> <complexContent> <extension base="gml:AbstractGeometricAggregateType"> <sequence> <element ref="gml:surfaceMember" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:surfaceMembers" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <element name="MultiSurface" type="gml:MultiSurfaceType" substitutionGroup="gml:AbstractGeometricAggregate"> <annotation> <documentation>A gml:MultiSurface is defined by one or more gml:AbstractSurfaces. The members of the geometric aggregate may be specified either using the "standard" property (gml:surfaceMember) or the array property (gml:surfaceMembers). It is also valid to use both the "standard" and the array properties in the same collection.</documentation> </annotation> </element> <element name="surfaceMembers" type="gml:SurfaceArrayPropertyType"> <annotation> <documentation>This property element contains a list of surfaces. The order of the elements is significant and shall be preserved when processing the array.</documentation> </annotation> </element> <complexType name="MultiSurfacePropertyType"> <annotation> <documentation>A property that has a collection of surfaces as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none.</documentation> </annotation> <sequence minOccurs="0"> <element ref="gml:MultiSurface"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> <attributeGroup ref="gml:OwnershipAttributeGroup"/> </complexType> <element name="multiSurfaceProperty" type="gml:MultiSurfacePropertyType"> <annotation> <documentation>This property element either references a surface aggregate via the XLink-attributes or contains the "multi surface" element. multiSurfaceProperty is the predefined property, which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for MultiSurface.</documentation> </annotation> </element> <complexType name="MultiSolidType"> <complexContent> <extension base="gml:AbstractGeometricAggregateType"> <sequence> <element ref="gml:solidMember" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:solidMembers" minOccurs="0"/> </sequence> </extension> </complexContent> </complexType> <element name="MultiSolid" type="gml:MultiSolidType" substitutionGroup="gml:AbstractGeometricAggregate"> <annotation> <documentation>A gml:MultiSolid is defined by one or more gml:AbstractSolids. The members of the geometric aggregate may be specified either using the "standard" property (gml:solidMember) or the array property (gml:solidMembers). It is also valid to use both the "standard" and the array properties in the same collection.</documentation> </annotation> </element> <element name="solidMember" type="gml:SolidPropertyType"> <annotation> <documentation>This property element either references a solid via the XLink-attributes or contains the solid element. A solid element is any element, which is substitutable for gml:AbstractSolid.</documentation> </annotation> </element> <element name="solidMembers" type="gml:SolidArrayPropertyType"> <annotation> <documentation>This property element contains a list of solids. The order of the elements is significant and shall be preserved when processing the array.</documentation> </annotation> </element> <complexType name="MultiSolidPropertyType"> <annotation> <documentation>A property that has a collection of solids as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none.</documentation> </annotation> <sequence minOccurs="0"> <element ref="gml:MultiSolid"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> <attributeGroup ref="gml:OwnershipAttributeGroup"/> </complexType> <element name="multiSolidProperty" type="gml:MultiSolidPropertyType"> <annotation> <documentation>This property element either references a solid aggregate via the XLink-attributes or contains the "multi solid" element. multiSolidProperty is the predefined property, which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for MultiSolid.</documentation> </annotation> </element> </schema>