GML Profile schema for gml:Point,gml:LineString,gml:Polygon,gml:Envelope,
gml:CirclebyCenterpoint written by Joshua Lieberman.
for use by the GeoRSS application schema
most optional elements of the full schema have been removed for simplicity
Generated by Joshua Lieberman - December 2006
A Point is defined by a single coordinate tuple.
GML supports two different ways to specify the direct
poisiton of a point. 1. The "pos" element is of type
DirectPositionType.
DirectPosition instances hold the coordinates for a position within some
coordinate reference system (CRS). Since DirectPositions, as data types, will often
be included in larger objects (such as geometry elements) that have references to
CRS, the "srsName" attribute will in general be missing, if this particular
DirectPosition is included in a larger element with such a reference to a CRS. In
this case, the CRS is implicitly assumed to take on the value of the containing
object's CRS.
XML List based on XML Schema double type. An element of this type
contains a space-separated list of double values

A LineString is a special curve that consists of a single segment with
linear interpolation. It is defined by two or more coordinate tuples, with linear
interpolation between them. It is backwards compatible with the LineString of GML 2,
GM_LineString of ISO 19107 is implemented by LineStringSegment.
GML supports two different ways to specify the control
points of a line string. 1. A sequence of "pos" (DirectPositionType)
or "pointProperty" (PointPropertyType) elements. "pos" elements are
control points that are only part of this curve, "pointProperty"
elements contain a point that may be referenced from other geometry
elements or reference another point defined outside of this curve
(reuse of existing points). 2. The "posList" element allows for a
compact way to specifiy the coordinates of the control points, if
all control points are in the same coordinate reference systems and
belong to this curve only. The number of direct positions in the
list must be at least two.
DirectPositionList instances hold the coordinates for a sequence of
direct positions within the same coordinate reference system (CRS).
"count" allows to specify the number of direct positions in
the list. If the attribute “count” is present then the attribute
“srsDimension” shall be present, too.
Envelope defines an extent using a pair of positions defining opposite
corners in arbitrary dimensions. The first direct position is the "lower corner" (a
coordinate position consisting of all the minimal ordinates for each dimension for
all points within the envelope), the second one the "upper corner" (a coordinate
position consisting of all the maximal ordinates for each dimension for all points
within the envelope).
A CircleByCenterPoint is an ArcByCenterPoint with identical start and end
angle to form a full circle. Again, this represenation can be used only in
2D.
A Polygon is a special surface that is defined by a single surface patch.
The boundary of this patch is coplanar and the polygon uses planar interpolation in
its interior. It is backwards compatible with the Polygon of GML 2, GM_Polygon of
ISO 19107 is implemented by PolygonPatch.
A LinearRing is defined by four or more coordinate tuples, with linear
interpolation between them; the first and last coordinates must be
coincident.
GML supports two different ways to specify the control
points of a linear ring. 1. A sequence of "pos" (DirectPositionType)
or "pointProperty" (PointPropertyType) elements. "pos" elements are
control points that are only part of this ring, "pointProperty"
elements contain a point that may be referenced from other geometry
elements or reference another point defined outside of this ring
(reuse of existing points). 2. The "posList" element allows for a
compact way to specifiy the coordinates of the control points, if
all control points are in the same coordinate reference systems and
belong to this ring only. The number of direct positions in the list
must be at least four.
A boundary of a surface consists of a number of rings. In the normal 2D
case, one of these rings is distinguished as being the exterior boundary. In a
general manifold this is not always possible, in which case all boundaries shall be
listed as interior boundaries, and the exterior will be empty.
This variant of the arc requires that the points on the arc have to be
computed instead of storing the coordinates directly. The control point is the
center point of the arc plus the radius and the bearing at start and end. This
represenation can be used only in 2D.
GML supports two different ways to specify the control
points of a curve segment. 1. A "pos" (DirectPositionType) or
"pointProperty" (PointPropertyType) element. The "pos" element
contains a center point that is only part of this curve segment, a
"pointProperty" element contains a point that may be referenced from
other geometry elements or reference another point defined outside
of this curve segment (reuse of existing points). 2. The "posList"
element can be used to specifiy the coordinates of the center point,
too. The number of direct positions in the list must be
one.
The radius of the arc.
The attribute "interpolation" specifies the curve
interpolation mechanism used for this segment. This mechanism uses the
control points and control parameters to determine the position of this
curve segment. For an ArcByCenterPoint the interpolation is fixed as
"circularArcCenterPointWithRadius".
Since this type describes always a single arc, the attribute
is fixed to "1".
CurveInterpolationType is a list of codes that may be used to identify
the interpolation mechanisms specified by an application schema.
A set of values, representing a list of token with the lexical value
space of NCName. The tokens are seperated by whitespace.

Value of a length (or distance) quantity, with its units. Uses the
MeasureType with the restriction that the unit of measure referenced by uom must be
suitable for a length, such as metres or feet.
Number with a scale. The value of uom (Units Of Measure) attribute is a
reference to a Reference System for the amount, either a ratio or position scale.
This is the abstract root type of the geometric primitives. A geometric
primitive is a geometric object that is not decomposed further into other primitives
in the system. All primitives are oriented in the direction implied by the sequence
of their coordinate tuples.
All geometry elements are derived directly or indirectly from this
abstract supertype. A geometry element may have an identifying attribute ("gml:id"),
a name (attribute "name") and a description (attribute "description"). It may be
associated with a spatial reference system (attribute "srsName"). The following
rules shall be adhered: - Every geometry type shall derive from this abstract type.
- Every geometry element (i.e. an element of a geometry type) shall be directly or
indirectly in the substitution group of _Geometry.
All complexContent GML elements are directly or indirectly derived from
this abstract supertype to establish a hierarchy of GML types that may be
distinguished from other XML types by their ancestry. Elements in this hierarchy may
have an ID and are thus referenceable.
Database handle for the object. It is of XML type “ID”, so is constrained
to be unique in the XML document within which it occurs. An external identifier for
the object in the form of a URI may be constructed using standard XML and XPointer
methods. This is done by concatenating the URI for the document, a fragment
separator “#”, and the value of the id attribute.
Optional reference to the CRS used by this geometry, with optional
additional information to simplify use when a more complete definition of the CRS is
not needed.
In general this reference points to a CRS instance of
gml:CoordinateReferenceSystemType (see coordinateReferenceSystems.xsd). For well
known references it is not required that the CRS description exists at the
location the URI points to. If no srsName attribute is given, the CRS must be
specified as part of the larger context this geometry element is part of, e.g. a
geometric element like point, curve, etc. It is expected that this attribute
will be specified at the direct position level only in rare cases.
The "srsDimension" is the length of coordinate sequence (the number
of entries in the list). This dimension is specified by the coordinate reference
system. When the srsName attribute is omitted, this attribute shall be omitted.
The "_GeometricPrimitive" element is the abstract head of the
substituition group for all (pre- and user-defined) geometric primitives.
The "_Geometry" element is the abstract head of the substituition group
for all geometry elements of GML 3. This includes pre-defined and user-defined
geometry elements. Any geometry element must be a direct or indirect
extension/restriction of AbstractGeometryType and must be directly or indirectly in
the substitution group of "_Geometry".
Global element which acts as the head of a substitution group that may
include any element which is a GML feature, object, geometry or complex value
This abstract element is the head of a substitutionGroup hierararchy
which may contain either simpleContent or complexContent elements. It is used to
assert the model position of "class" elements declared in other GML schemas.
An abstraction of a curve to support the different levels of complexity.
The curve can always be viewed as a geometric primitive, i.e. is continuous.
The "_Curve" element is the abstract head of the substituition group for
all (continuous) curve elements.
The "_CurveSegment" element is the abstract head of the substituition
group for all curve segment elements, i.e. continuous segments of the same
interpolation mechanism.
Curve segment defines a homogeneous segment of a curve.
An abstraction of a surface to support the different levels of
complexity. A surface is always a continuous region of a plane.
Encapsulates a ring to represent the surface boundary property of a
surface.
The "_Ring" element is the abstract head of the substituition group for
all closed boundaries of a surface patch.
An abstraction of a ring to support surface boundaries of different
complexity.
The "_Surface" element is the abstract head of the substituition group
for all (continuous) surface elements.