Project

General

Profile

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.2">
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.
9
			To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
10
		</documentation>
11
	</annotation>
12
	<include schemaLocation="gml.xsd"/>
13
	<include schemaLocation="geometryAggregates.xsd"/>
14
	<!-- =========================================================== -->
15
	<element name="CompositeCurve" type="gml:CompositeCurveType" substitutionGroup="gml:_Curve"/>
16
	<!-- =========================================================== -->
17
	<complexType name="CompositeCurveType">
18
		<annotation>
19
			<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>
20
		</annotation>
21
		<complexContent>
22
			<extension base="gml:AbstractCurveType">
23
				<sequence>
24
					<element ref="gml:curveMember" maxOccurs="unbounded">
25
						<annotation>
26
							<documentation>This element references or contains one curve in the composite curve. The curves are contiguous, the collection of curves is ordered.
27
NOTE: This definition allows for a nested structure, i.e. a CompositeCurve may use, for example, another CompositeCurve as a curve member.</documentation>
28
						</annotation>
29
					</element>
30
				</sequence>
31
			</extension>
32
		</complexContent>
33
	</complexType>
34
	<!-- ============================================================== -->
35
	<complexType name="CompositeCurvePropertyType">
36
		<sequence minOccurs="0">
37
			<element ref="gml:CompositeCurve"/>
38
		</sequence>
39
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
40
	</complexType>
41
	<!-- =========================================================== -->
42
	<element name="CompositeSurface" type="gml:CompositeSurfaceType" substitutionGroup="gml:_Surface"/>
43
	<!-- =========================================================== -->
44
	<complexType name="CompositeSurfaceType">
45
		<annotation>
46
			<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>
47
		</annotation>
48
		<complexContent>
49
			<extension base="gml:AbstractSurfaceType">
50
				<sequence>
51
					<element ref="gml:surfaceMember" maxOccurs="unbounded">
52
						<annotation>
53
							<documentation>This element references or contains one surface in the composite surface. The surfaces are contiguous.
54
NOTE: This definition allows for a nested structure, i.e. a CompositeSurface may use, for example, another CompositeSurface as a member.</documentation>
55
						</annotation>
56
					</element>
57
				</sequence>
58
			</extension>
59
		</complexContent>
60
	</complexType>
61
	<!-- ============================================================== -->
62
	<complexType name="CompositeSurfacePropertyType">
63
		<sequence minOccurs="0">
64
			<element ref="gml:CompositeSurface"/>
65
		</sequence>
66
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
67
	</complexType>
68
	<!-- =========================================================== -->
69
	<element name="CompositeSolid" type="gml:CompositeSolidType" substitutionGroup="gml:_Solid"/>
70
	<!-- =========================================================== -->
71
	<complexType name="CompositeSolidType">
72
		<annotation>
73
			<documentation>A composite solid is a geometry type with all the geometric properties of a (primitive) solid. 
74
				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>
75
		</annotation>
76
		<complexContent>
77
			<extension base="gml:AbstractSolidType">
78
				<sequence>
79
					<element ref="gml:solidMember" maxOccurs="unbounded">
80
						<annotation>
81
							<appinfo>
82
								<sch:pattern name="Check either href or content not both">
83
									<sch:rule context="gml:solidMember">
84
										<sch:extends rule="hrefOrContent"/>
85
									</sch:rule>
86
								</sch:pattern>
87
							</appinfo>
88
							<documentation>This element references or contains one solid in the composite solid. The solids are contiguous.
89
NOTE: This definition allows for a nested structure, i.e. a CompositeSolid may use, for example, another CompositeSolid as a member.</documentation>
90
						</annotation>
91
					</element>
92
				</sequence>
93
			</extension>
94
		</complexContent>
95
	</complexType>
96
	<!-- ============================================================== -->
97
	<complexType name="CompositeSolidPropertyType">
98
		<sequence minOccurs="0">
99
			<element ref="gml:CompositeSolid"/>
100
		</sequence>
101
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
102
	</complexType>
103
	<!-- =========================================================== -->
104
	<!-- complex/composite geometry objects -->
105
	<!-- =========================================================== -->
106
	<element name="GeometricComplex" type="gml:GeometricComplexType" substitutionGroup="gml:_Geometry"/>
107
	<!-- =========================================================== -->
108
	<complexType name="GeometricComplexType">
109
		<annotation>
110
			<documentation>A geometric complex.</documentation>
111
		</annotation>
112
		<complexContent>
113
			<extension base="gml:AbstractGeometryType">
114
				<sequence>
115
					<element name="element" type="gml:GeometricPrimitivePropertyType" maxOccurs="unbounded"/>
116
				</sequence>
117
			</extension>
118
		</complexContent>
119
	</complexType>
120
	<!-- =========================================================== -->
121
	<complexType name="GeometricComplexPropertyType">
122
		<annotation>
123
			<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.
124
NOTE: 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>
125
		</annotation>
126
		<sequence minOccurs="0">
127
			<choice>
128
				<element ref="gml:GeometricComplex"/>
129
				<element ref="gml:CompositeCurve"/>
130
				<element ref="gml:CompositeSurface"/>
131
				<element ref="gml:CompositeSolid"/>
132
			</choice>
133
		</sequence>
134
		<attributeGroup ref="gml:AssociationAttributeGroup">
135
			<annotation>
136
				<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.
137
A 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>
138
			</annotation>
139
		</attributeGroup>
140
	</complexType>
141
	<!-- =========================================================== -->
142
</schema>
(16-16/29)