gmlBase.xsd 2002-04-10
Schematron validation
Property element may not carry both a reference to an object and contain an object.
Property element must either carry a reference to an object or contain an object.
GML base schema for GML 3.0
Components to support the GML encoding model.
The abstract Schematron rules can be used by any schema that includes gmlBase.
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.
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.
Multiple names may be provided. These will often be distinguished by being assigned by different authorities, as indicated by the value of the codeSpace attribute.
A non-abstract generic collection type that can be used as a document element for a collection of any GML types - Geometries, Topologies, Features ...
The content model would ideally be
member 0..*
members 0..1
member 0..*
for maximum flexibility in building a collection from both homogeneous and distinct components:
included "member" elements each contain a single Object
an included "members" element contains a homogeneous array
However, this is non-deterministic, thus prohibited by XSD.
A non-abstract generic collection type that can be used as a document element for a homogeneous collection of any GML types - Geometries, Topologies, Features ...
An abstract base type for complex metadata types.
A container for generic metadata. Its content may be taken from any external schema.
This abstract element is the head of a substitutionGroup hierararchy which may contain either simpleContent or complexContent elements. It may be used to assert the model position of "property" elements declared in other GML schemas.
It may be deprecated and disappear.
A pattern or base for derived types used to specify complex types by unspecified UML association - either composition or aggregation. Restricts the cardinality of Objects contained in the association to a maximum of one. An instance of this type can contain an element representing an Object, or serve as a pointer to a remote Object.
Descendents of this type can be restricted in an application schema to
* allow only specified classes as valid participants in the aggregation
* allow only association by reference (i.e. empty the content model) or by value (i.e. remove the xlinks).
When used for association by reference, the value of the gml:remoteSchema attribute can be used to locate a schema fragment that constrains the target instance.
In many cases it is desirable to impose the constraint prohibiting the occurence of both reference and value in the same instance, as that would be ambiguous. This is accomplished by adding a directive in the annotation element of the element declaration. This directive can be in the form of normative prose, or can use a Schematron pattern to automatically constrain co-occurrence - see the declaration for _strictAssociation below.
If co-occurence is not prohibited, then both a link and content may be present. If this occurs in an instance, then the rule for interpretation is that the instance found by traversing the href provides the normative value of the property, and should be used when possible. The value(s) included as content may be used if the remote instance cannot be resolved. This may be considered to be a "cached" version of the value(s).
must carry a reference to an object or contain an object but not both
A base for derived types used to specify complex types containing an array of objects, by unspecified UML association - either composition or aggregation. An instance of this type can contain elements representing Objects, or serve as a pointer to a remote Object. The semantics of the association between the Objects and the container are homogeneous.
Ideally this type would be derived by extension of AssociationType.
However, this leads to a non-deterministic content model, since both the base and the extension have minOccurs="0", and is thus prohibited in XML Schema.
Base type for complex metadata property types.
These attributes can be attached to any element, thus allowing it to act as a pointer. The 'remoteSchema' attribute allows an element that carries link attributes to indicate that the element is declared in a remote schema rather than by the schema that constrains the current document instance.
An external identifier. The optional codeSpace attribute indicates the authority or source of validation for the name.
This type is available wherever there is a need for a "text" type property.
It is of string type, so the text can be included inline,
but the value can also be referenced remotely via xlinks from the AssociationAttributeGroup.
It can carry an identifier, making it referenceable.
If the remote reference is present, then the value resolved by traversing the link should be used.
The string content of the element can be used for an annotation.
N.B. string is the only simpleType which is valid when empty,
so this val-or-ref method can only be applied to string simpleContent types.
A dictionary reference is a definition with an identifier which can be referred to by an xlink:href from any other location. The definition may be either inline or may be found by traversing another link. This supports normalisation of definitions which can be stored together and then re-used in mutliple locations within an instance document.