Copyright (c) 2007,2010 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
GML Subset schema for gml:_Object,gml:metaDataProperty,gml:_association,gml:AssociationType,gml:members,gml:Array,gml:curveProperty,gml:LineString,gml:LinearRing,gml:exterior,gml:interior,gml:Polygon,gml:surfaceMember,gml:surfaceProperty,gml:MultiSurface,gml:multiSurfaceProperty,gml:SurfaceInterpolationType,gml_Feature,gml:featureProperty,gml:featureMembers,gml:_FeatureCollection,gml:featureMember,gml:featureMembers,gml:_FeatureCollection,gml:Dictionary,gml:doubleList,gml:pos,gml:pointRep,gml:CircleByCenterPoint, written by gmlSubset.xslt.
Created using Saxon XSLT processor with the following command 2002-020-13 Paul Daisey U.S. Census
$ java com.icl.saxon.StyleSheet -o gml4xls.xsd gmldep.xml gmlSubset.xslt
// output file input file stylesheet
2003-03-05 - SJDC - commented out various pieces to create a more restricted profile of GML for XLS use.
All changes indicated [SJDC]
2003-03-14 - Marwa Mabrouk - Removed a lot of types only leaving the exact types used by XLS. And made editorial changes to clean up the schema and only leave the types used. The fully commented schema will be retained separately for those interested in researching it
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.
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.
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.
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
The "_Curve" element is the abstract head of the substituition group for all (continuous) curve elements.
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.
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.
This attribute is included for backward compatibility with GML 2 and is deprecated with GML 3. This identifer is superceded by "gml:id" inherited from AbstractGMLType. The attribute "gid" should not be used anymore and may be deleted in future versions of GML without further notice.
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 (Note: These "WKCRS"-ids still have to be specified). 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 aggregate.
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".
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 "pointRep" (PointPropertyType) elements. "pos" elements are control points that are only part of this curve, "pointRep" 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 "coordinates" 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 coordinates list must be at least two.
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.
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 (Note: These "WKCRS"-ids still have to be specified). 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 the attribute will be specified at the direct position level only in rare cases.
The attribute "dimension" is the length of coordinate sequence (the number of entries in the list). This is determined by the coordinate reference system.
XML List based on XML Schema double type. An element of this type contains a space-separated list of double values

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.
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 "pointRep" (PointPropertyType) elements. "pos" elements are control points that are only part of this ring, "pointRep" 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 "coordinates" 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 coordinate list must be at least four.
An abstraction of a ring to support surface boundaries of different complexity.
The "_Ring" element is the abstract head of the substituition group for all closed boundaries of a surface patch.
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.
Encapsulates a ring to represent the surface boundary property of a surface.
A boundary of a surface consists of a number of rings. The "interior" rings seperate the surface / surface patch from the area enclosed by the rings.
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.
An abstraction of a surface to support the different levels of complexity. A surface is always a continuous region of a plane.
The "_Surface" element is the abstract head of the substituition group for all (continuous) surface elements.
This is the abstract root type of the geometric aggregates.
The "_GeometricAggregate" element is the abstract head of the substituition group for all geometric aggremates.
Use the "MultiSurface" element instead.
A MultiPolygon is defined by one or more Polygons, referenced through polygonMember elements.
This property element either references a polygon via the XLink-attributes or contains the polygon element.
A property that has a polygon 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.
SurfaceInterpolationType is a list of codes that may be used to identify the interpolation mechanisms specified by an
application schema.
Bounding shape.
Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions.
Utility type for null elements. The value may be selected from one of the enumerated tokens, or may be a URI in which case this should identify a resource which describes the reason for the null.
Some common reasons for a null value:
innapplicable - the object does not have a value
missing - The correct value is not readily available to the sender of this data.
Furthermore, a correct value may not exist.
template - the value will be available later
unknown - The correct value is not known to, and not computable by, the sender of this data.
However, a correct value probably exists.
withheld - the value is not divulged
Specific communities may agree to assign more strict semantics when these terms are used in a particular context.
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.
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 "pointRep" (PointPropertyType) element. The "pos" element contains a center point that is only part of this curve segment, a "pointRep" 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 "coordinates" element can be used to specifiy the coordinates of the center point, too. The number of direct positions in the coordinate list must be one.
The radius of the arc.
The bearing of the arc at the start. This type is used by GML 3 geometry in this schema file only
The bearing of the arc at the end.
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".
Curve segment defines a homogeneous segment of a curve.
CurveInterpolationType is a list of codes that may be used to identify the interpolation mechanisms specified by an
application schema.
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.
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.
Value of an angle quantity recorded as a single number, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for an angle, such as degrees or radians.