1<?xml version="1.0" encoding="UTF-8"?> 2<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" 3 version="3.1.1 2010-01-28"> 4 <annotation> 5 <appinfo source="urn:opengis:specification:gml:schema-xsd:geometryComplexes:v3.1.1">geometryComplexes.xsd</appinfo> 6 <documentation> 7 GML is an OGC Standard. 8 Copyright (c) 2001,2005,2010 Open Geospatial Consortium, Inc. All Rights Reserved. 9 To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ . 10 </documentation> 11 </annotation> 12 <include schemaLocation="geometryAggregates.xsd"/> 13 <!-- =========================================================== --> 14 <element name="CompositeCurve" type="gml:CompositeCurveType" substitutionGroup="gml:_Curve"/> 15 <!-- =========================================================== --> 16 <complexType name="CompositeCurveType"> 17 <annotation> 18 <documentation>A CompositeCurve is defined by a sequence of (orientable) curves such that the each curve in the sequence terminates at the start point of the subsequent curve in the list.</documentation> 19 </annotation> 20 <complexContent> 21 <extension base="gml:AbstractCurveType"> 22 <sequence> 23 <element ref="gml:curveMember" maxOccurs="unbounded"> 24 <annotation> 25 <documentation>This element references or contains one curve in the composite curve. The curves are contiguous, the collection of curves is ordered. 26NOTE: This definition allows for a nested structure, i.e. a CompositeCurve may use, for example, another CompositeCurve as a curve member.</documentation> 27 </annotation> 28 </element> 29 </sequence> 30 </extension> 31 </complexContent> 32 </complexType> 33 <!-- ============================================================== --> 34 <complexType name="CompositeCurvePropertyType"> 35 <sequence minOccurs="0"> 36 <element ref="gml:CompositeCurve"/> 37 </sequence> 38 <attributeGroup ref="gml:AssociationAttributeGroup"/> 39 </complexType> 40 <!-- =========================================================== --> 41 <element name="CompositeSurface" type="gml:CompositeSurfaceType" substitutionGroup="gml:_Surface"/> 42 <!-- =========================================================== --> 43 <complexType name="CompositeSurfaceType"> 44 <annotation> 45 <documentation>A CompositeSurface is defined by a set of orientable surfaces. A composite surface is geometry type with all the geometric properties of a (primitive) surface. Essentially, a composite surface is a collection of surfaces that join in pairs on common boundary curves and which, when considered as a whole, form a single surface.</documentation> 46 </annotation> 47 <complexContent> 48 <extension base="gml:AbstractSurfaceType"> 49 <sequence> 50 <element ref="gml:surfaceMember" maxOccurs="unbounded"> 51 <annotation> 52 <documentation>This element references or contains one surface in the composite surface. The surfaces are contiguous. 53NOTE: This definition allows for a nested structure, i.e. a CompositeSurface may use, for example, another CompositeSurface as a member.</documentation> 54 </annotation> 55 </element> 56 </sequence> 57 </extension> 58 </complexContent> 59 </complexType> 60 <!-- ============================================================== --> 61 <complexType name="CompositeSurfacePropertyType"> 62 <sequence minOccurs="0"> 63 <element ref="gml:CompositeSurface"/> 64 </sequence> 65 <attributeGroup ref="gml:AssociationAttributeGroup"/> 66 </complexType> 67 <!-- =========================================================== --> 68 <element name="CompositeSolid" type="gml:CompositeSolidType" substitutionGroup="gml:_Solid"/> 69 <!-- =========================================================== --> 70 <complexType name="CompositeSolidType"> 71 <annotation> 72 <documentation>A composite solid is a geometry type with all the geometric properties of a (primitive) solid. 73 Essentially, a composite solid is a collection of solids that join in pairs on common boundary surfaces and which, when considered as a whole, form a single solid.</documentation> 74 </annotation> 75 <complexContent> 76 <extension base="gml:AbstractSolidType"> 77 <sequence> 78 <element ref="gml:solidMember" maxOccurs="unbounded"> 79 <annotation> 80 <appinfo> 81 <sch:pattern name="Check either href or content not both"> 82 <sch:rule context="gml:solidMember"> 83 <sch:extends rule="hrefOrContent"/> 84 </sch:rule> 85 </sch:pattern> 86 </appinfo> 87 <documentation>This element references or contains one solid in the composite solid. The solids are contiguous. 88NOTE: This definition allows for a nested structure, i.e. a CompositeSolid may use, for example, another CompositeSolid as a member.</documentation> 89 </annotation> 90 </element> 91 </sequence> 92 </extension> 93 </complexContent> 94 </complexType> 95 <!-- ============================================================== --> 96 <complexType name="CompositeSolidPropertyType"> 97 <sequence minOccurs="0"> 98 <element ref="gml:CompositeSolid"/> 99 </sequence> 100 <attributeGroup ref="gml:AssociationAttributeGroup"/> 101 </complexType> 102 <!-- =========================================================== --> 103 <!-- complex/composite geometry objects --> 104 <!-- =========================================================== --> 105 <element name="GeometricComplex" type="gml:GeometricComplexType" substitutionGroup="gml:_Geometry"/> 106 <!-- =========================================================== --> 107 <complexType name="GeometricComplexType"> 108 <annotation> 109 <documentation>A geometric complex.</documentation> 110 </annotation> 111 <complexContent> 112 <extension base="gml:AbstractGeometryType"> 113 <sequence> 114 <element name="element" type="gml:GeometricPrimitivePropertyType" maxOccurs="unbounded"/> 115 </sequence> 116 </extension> 117 </complexContent> 118 </complexType> 119 <!-- =========================================================== --> 120 <complexType name="GeometricComplexPropertyType"> 121 <annotation> 122 <documentation>A property that has a geometric complex as its value domain can 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 must be given, but neither both nor none. 123NOTE: The allowed geometry elements contained in such a property (or referenced by it) have to be modelled by an XML Schema choice element since the composites inherit both from geometric complex *and* geometric primitive and are already part of the _GeometricPrimitive substitution group.</documentation> 124 </annotation> 125 <sequence minOccurs="0"> 126 <choice> 127 <element ref="gml:GeometricComplex"/> 128 <element ref="gml:CompositeCurve"/> 129 <element ref="gml:CompositeSurface"/> 130 <element ref="gml:CompositeSolid"/> 131 </choice> 132 </sequence> 133 <attributeGroup ref="gml:AssociationAttributeGroup"> 134 <annotation> 135 <documentation>This attribute group includes the XLink attributes (see xlinks.xsd). XLink is used in GML to reference remote resources (including those elsewhere in the same document). A simple link element can be constructed by including a specific set of XLink attributes. The XML Linking Language (XLink) is currently a Proposed Recommendation of the World Wide Web Consortium. XLink allows elements to be inserted into XML documents so as to create sophisticated links between resources; such links can be used to reference remote properties. 136A simple link element can be used to implement pointer functionality, and this functionality has been built into various GML 3 elements by including the gml:AssociationAttributeGroup.</documentation> 137 </annotation> 138 </attributeGroup> 139 </complexType> 140 <!-- =========================================================== --> 141</schema>