<?xml version="1.0" encoding="UTF-8"?> <!-- File: feature.xsd --> <schema targetNamespace="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2000/10/XMLSchema" elementFormDefault="qualified" version="2.06"> <annotation> <appinfo>feature.xsd v2.06 2001-02</appinfo> <documentation xml:lang="en"> GML Feature schema. Copyright (c) 2001 OGC, All Rights Reserved. </documentation> </annotation> <!-- include constructs from the GML Geometry schema --> <include schemaLocation="geometry.xsd"/> <!-- ============================================================== global declarations =============================================================== --> <element name="_Feature" type="gml:AbstractFeatureType" abstract= "true"/> <element name="_FeatureCollection" type= "gml:AbstractFeatureCollectionType" abstract="true" substitutionGroup="gml:_Feature"/> <element name="featureMember" type="gml:FeatureAssociationType"/> <!-- some basic geometric properties of features --> <element name="_geometryProperty" type="gml:GeometryPropertyType" abstract="true"/> <element name="geometryProperty" type="gml:GeometryPropertyType" /> <element name="boundedBy" type="gml:BoundingShapeType"/> <element name="pointProperty" type="gml:PointPropertyType" substitutionGroup="gml:_geometryProperty"/> <element name="polygonProperty" type="gml:PolygonPropertyType" substitutionGroup="gml:_geometryProperty"/> <element name="lineStringProperty" type="gml:LineStringPropertyType" substitutionGroup="gml:_geometryProperty"/> <element name="multiPointProperty" type="gml:MultiPointPropertyType" substitutionGroup="gml:_geometryProperty"/> <element name="multiLineStringProperty" type= "gml:MultiLineStringPropertyType" substitutionGroup="gml:_geometryProperty"/> <element name="multiPolygonProperty" type= "gml:MultiPolygonPropertyType" substitutionGroup="gml:_geometryProperty"/> <element name="multiGeometryProperty" type= "gml:MultiGeometryPropertyType" substitutionGroup="gml:_geometryProperty"/> <!-- common aliases for geometry properties --> <element name="location" type="gml:PointPropertyType" substitutionGroup="gml:pointProperty"/> <element name="centerOf" type="gml:PointPropertyType" substitutionGroup="gml:pointProperty"/> <element name="position" type="gml:PointPropertyType" substitutionGroup="gml:pointProperty"/> <element name="extentOf" type="gml:PolygonPropertyType" substitutionGroup="gml:polygonProperty"/> <element name="coverage" type="gml:PolygonPropertyType" substitutionGroup="gml:polygonProperty"/> <element name="edgeOf" type="gml:LineStringPropertyType" substitutionGroup="gml:lineStringProperty"/> <element name="centerLineOf" type="gml:LineStringPropertyType" substitutionGroup="gml:lineStringProperty"/> <element name="multiLocation" type="gml:MultiPointPropertyType" substitutionGroup="gml:multiPointProperty"/> <element name="multiCenterOf" type="gml:MultiPointPropertyType" substitutionGroup="gml:multiPointProperty"/> <element name="multiPosition" type="gml:MultiPointPropertyType" substitutionGroup="gml:multiPointProperty"/> <element name="multiCenterLineOf" type= "gml:MultiLineStringPropertyType" substitutionGroup="gml:multiLineStringProperty"/> <element name="multiEdgeOf" type="gml:MultiLineStringPropertyType" substitutionGroup="gml:multiLineStringProperty"/> <element name="multiCoverage" type="gml:MultiPolygonPropertyType" substitutionGroup="gml:multiPolygonProperty"/> <element name="multiExtentOf" type="gml:MultiPolygonPropertyType" substitutionGroup="gml:multiPolygonProperty"/> <!-- common feature descriptors --> <element name="description" type="string"/> <element name="name" type="string"/> <!-- ============================================================== abstract supertypes =============================================================== --> <complexType name="AbstractFeatureType" abstract="true"> <annotation> <documentation> An abstract feature provides a set of common properties. A concrete feature type must derive from this type and specify additional properties in an application schema. A feature may optionally possess an identifying attribute ('fid'). </documentation> </annotation> <sequence> <element ref="gml:description" minOccurs="0"/> <element ref="gml:name" minOccurs="0"/> <element ref="gml:boundedBy" minOccurs="0"/> <!-- additional properties must be specified in an application schema --> </sequence> <attribute name="fid" type="ID" use="optional"/> </complexType> <complexType name="AbstractFeatureCollectionBaseType" abstract= "true"> <annotation> <documentation> This abstract base type just makes the boundedBy element mandatory for a feature collection. </documentation> </annotation> <complexContent> <restriction base="gml:AbstractFeatureType"> <sequence> <element ref="gml:description" minOccurs="0"/> <element ref="gml:name" minOccurs="0"/> <element ref="gml:boundedBy"/> </sequence> <attribute name="fid" type="ID" use="optional"/> </restriction> </complexContent> </complexType> <complexType name="AbstractFeatureCollectionType" abstract="true"> <annotation> <documentation> A feature collection contains zero or more featureMember elements. </documentation> </annotation> <complexContent> <extension base="gml:AbstractFeatureCollectionBaseType"> <sequence> <element ref="gml:featureMember" minOccurs="0" maxOccurs= "unbounded"/> </sequence> </extension> </complexContent> </complexType> <complexType name="GeometryPropertyType"> <annotation> <documentation> A simple geometry property encapsulates a geometry element. Alternatively, it can function as a pointer (simple-type link) that refers to a remote geometry element. </documentation> </annotation> <sequence minOccurs="0"> <element ref="gml:_Geometry"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </complexType> <complexType name="FeatureAssociationType"> <annotation> <documentation> An instance of this type (e.g. a featureMember) can either enclose or point to a feature (or feature collection); this type can be restricted in an application schema to allow only specified features as valid participants in the association. When serving as a simple link that references a remote feature instance, the value of the gml:remoteSchema attribute can be used to locate a schema fragment that constrains the target instance. </documentation> </annotation> <sequence minOccurs="0"> <element ref="gml:_Feature"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </complexType> <complexType name="BoundingShapeType"> <annotation> <documentation> Bounding shapes--a Box or a null element are currently allowed. </documentation> </annotation> <sequence> <choice> <element ref="gml:Box"/> <element name="null" type="gml:NullType" /> </choice> </sequence> </complexType> <!-- ============================================================== geometry properties =============================================================== --> <complexType name="PointPropertyType"> <annotation> <documentation> Encapsulates a single point to represent position, location, or centerOf properties. </documentation> </annotation> <complexContent> <restriction base="gml:GeometryPropertyType"> <sequence minOccurs="0"> <element ref="gml:Point"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </restriction> </complexContent> </complexType> <complexType name="PolygonPropertyType"> <annotation> <documentation> Encapsulates a single polygon to represent coverage or extentOf properties. </documentation> </annotation> <complexContent> <restriction base="gml:GeometryPropertyType"> <sequence minOccurs="0"> <element ref="gml:Polygon"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </restriction> </complexContent> </complexType> <complexType name="LineStringPropertyType"> <annotation> <documentation> Encapsulates a single LineString to represent centerLineOf or edgeOf properties. </documentation> </annotation> <complexContent> <restriction base="gml:GeometryPropertyType"> <sequence minOccurs="0"> <element ref="gml:LineString"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </restriction> </complexContent> </complexType> <complexType name="MultiPointPropertyType"> <annotation> <documentation> Encapsulates a MultiPoint element to represent the following discontiguous geometric properties: multiLocation, multiPosition, multiCenterOf. </documentation> </annotation> <complexContent> <restriction base="gml:GeometryPropertyType"> <sequence minOccurs="0"> <element ref="gml:MultiPoint"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </restriction> </complexContent> </complexType> <complexType name="MultiLineStringPropertyType"> <annotation> <documentation> Encapsulates a MultiLineString element to represent the following discontiguous geometric properties: multiEdgeOf, multiCenterLineOf. </documentation> </annotation> <complexContent> <restriction base="gml:GeometryPropertyType"> <sequence minOccurs="0"> <element ref="gml:MultiLineString"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </restriction> </complexContent> </complexType> <complexType name="MultiPolygonPropertyType"> <annotation> <documentation> Encapsulates a MultiPolygon to represent the following discontiguous geometric properties: multiCoverage, multiExtentOf. </documentation> </annotation> <complexContent> <restriction base="gml:GeometryPropertyType"> <sequence minOccurs="0"> <element ref="gml:MultiPolygon"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </restriction> </complexContent> </complexType> <complexType name="MultiGeometryPropertyType"> <annotation> <documentation>Encapsulates a MultiGeometry element. </documentation> </annotation> <complexContent> <restriction base="gml:GeometryPropertyType"> <sequence minOccurs="0"> <element ref="gml:MultiGeometry"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </restriction> </complexContent> </complexType> <simpleType name="NullType"> <annotation> <documentation> If a bounding shape is not provided for a feature collection, explain why. Allowable values are: innapplicable - the features do not have geometry unknown - the boundingBox cannot be computed unavailable - there may be a boundingBox but it is not divulged missing - there are no features </documentation> </annotation> <restriction base="string"> <enumeration value="inapplicable"/> <enumeration value="unknown"/> <enumeration value="unavailable"/> <enumeration value="missing"/> </restriction> </simpleType> </schema> |