Package org.opengis.feature.type

Feature model ISO 19109 with allowances for usability.


Interface Summary
AssociationDescriptor Describes an instance of an Association.
AssociationType The type of an association; used to describe kind of relationship between two entities.
AttributeDescriptor Describes an instance of an Attribute.
AttributeType The type of an attribute.
ComplexType The type of a complex attribute.
FeatureType The type of a Feature.
FeatureTypeFactory Factory for types and descriptors.
GeometryDescriptor Describes an instance of a geometry attribute.
GeometryType The type of a GeometryAttribute.
Name A qualified Name (with respect to a namespace rather than just a simple prefix).
Namespace A set of 0 or more names, with no duplicates.
Operation An implementation of an operation that may be invoked on an Attribute.
OperationType The type of operations to be invoked on an attribute.
PropertyDescriptor Describes a Property, and how it relates to its containing entity, which is often a ComplexAttribute.
PropertyType The type of a Property.
Schema A collection of AttributeType.

Package org.opengis.feature.type Description

Feature model ISO 19109 with allowances for usability.

This package captures the type information for a general feature model. This feature model has been produced after review of the ISO 19109 specification, and a review of several java implementations.


Possibilities for future work:

Type System

PropertyType forms a class hierarchy representing type information for the feature model.

The following ideas are central to the functioning of this package as a feature model:

Identified objects allow for a String "ID" that; the use of which is application specific. Some applications, such as GML, have strict guidelines on the use of identifiers.

As pointed out above ComplexType can be used to represent data with interesting internal structure. Descriptors are provided to document formally what information is available for retrieval by a query language.

Descriptors are used to describe the composition and relationships between entities in our feature model. AssociationDescriptors are used describe relationships between entities; AttributeDescriptors are used to describe aggregation. Several specific subclasses of AttributeDescriptor are available for working with specific kind of content such as GeometryDescriptor.

Differences from ISO 19103 with respect to Naming

We have explicitly made the following break with ISO 19103:

As indicated above we have removed the "back pointers" required to navigate from Name to its "context", instead we have provided a URI which should be used with your lookup system of choice. This choice may in fact be Namespace (and is when working with TypeNames in a Schema), however the actual implementation should be provided by the hosting language in many cases.
Many applicaitons will make use of their own register when resolving names; we offer the use of javax.naming.Name API as a recommendation.

Differences from ISO 19109 with respect to General Feature Model

We have explicitly made the following break with ISO 19109:

Numerous other changes have been made to leverage Java collection API where appropriate. These represent a direct mapping onto the language constructs and may or may not prove significant to those arriving from an ISO 19109 background.

Relationship to ISO 19109 Primer

This work is greatly informed from a proposal included in the ISO 19109 primer - written by Bryce. In particular the requirement for operations, associations and detailed review of ISO19109, and EMF was a great asset. This primer also served as the only public documentation of the ISO 19109 material available for open development.

Differences from Bryce's proposal:

The definition of Record and Name wsere unresolved at the time of this work and has not been integrated. In particular the definition of Name was taken as "too complicated".

We also disagreed with one of the goals of the proposal: convention that the creation of objects inside an application schema is the responsibility of the schema author. This goal is in conflict with our need to allow applications to create instances of their own devising. This need is particulary apparent when an application needs to ensure the use of a specific base class (for example to work with a persistence system Jaxtor, or modeling system like EMF).

Copyright © 1996-2014 Geotools. All Rights Reserved.