# OSGeo::FDO::Schema

## Classes
class | OSGeo::FDO::Schema::AssociationPropertyDefinition
| AssociationPropertyDefinition class derives PropertyDefinition and represents the association between two classes. The class of the associated class must already be defined in the feature schema and cannot be abstract. More...
class | OSGeo::FDO::Schema::Class
| Class derives ClassDefinition and can be used to represent any type of non-spatial data within a feature schema. Typically, classes are used in the feature schema to define complex properties of other feature types by containment. However, they can also be used at global scope and instances can be created, deleted, updated, and selected through FDO commands. The Class type does not pre-define any base properties. More...
class | OSGeo::FDO::Schema::ClassCapabilities
| The ClassCapabilites class describes various capabilities for a particular FDO Class Definition and an FDO Provider datastore. More...
class | OSGeo::FDO::Schema::ClassCollection
| The ClassCollection class represents a collection of ClassDefinition objects. More...
class | OSGeo::FDO::Schema::ClassDefinition
| ClassDefinition is an abstract class that derives from SchemaElement. ClassDefinition is a base class for all concrete class types (e.g., FdoClass, FeatureClass) in the Schema package. More...
class | OSGeo::FDO::Schema::DataPropertyDefinition
| The DataPropertyDefinition class derives PropertyDefinition and represents simple values or collections of simple values. DataPropertyDefinitions can take on any of the data types listed in DataType enumeration. More...
class | OSGeo::FDO::Schema::DataPropertyDefinitionCollection
| The DataPropertyDefinitionCollection class represents a collection of DataPropertyDefinition objects. More...
class | OSGeo::FDO::Schema::FeatureClass
| The FeatureClass class can be used to represent spatial or non-spatial features. Spatial features must have at lease one geometric property. FeatureClass type has one pre-defined base property "Bounds". The "Bounds" read-only property can be used to get the geometric boundary of the spatial feature. The value of this property will be null if the feature is not a spatial feature. More...
class | OSGeo::FDO::Schema::FeatureClassCollection
| The FeatureClassCollection class represents a collection of FeatureClasse objects. More...
class | OSGeo::FDO::Schema::FeatureSchema
| The FeatureSchema class derives from SchemaElement. A feature schema contains all of the classes and relationships that make up a particular data model. The FeatureSchema class can be used to either create a new schema or to browse the schema end of a connection. In the later case, the FeatureSchema instance is created by the DescribeSchema command. In this case the schema objects have additional properties, such as coordinate system definitions that can be useful to the application when placed in context with the schema objects. More...
class | OSGeo::FDO::Schema::FeatureSchemaCollection
| The FeatureSchemaCollection class represents a collection of FeatureSchema objects. More...
class | OSGeo::FDO::Schema::GeometricPropertyDefinition
| GeometricPropertyDefinition derives from PropertyDefinition and represents a geometric value. Geometric properties can take on any of the geometric types listed in the GeometricType enumeration. Note: Geometric properties do not actually store the coordinate system or measure units, this is to enable the use of the same schema in different geometric locals. GeometricType informs the client application what types of geometric primitives it can expect when reading a particular geometric property (and what types they can store in the property on insert/update). The client application can interpret the actual geometry values as it wants, e.g., displaying and manipulating the vertices of a Polyline as a group of independent points. More...
class | OSGeo::FDO::Schema::NetworkClass
| The NetworkClass derives from ClassDefinition and can be used to represent a linear network. The NetworkClass has 2 pre-defined base properties. The first is a Boolean type called "Directed". And the second is a ObjectPropertyDefinition of an ordered collection called "Layers". The "Directed" property is used to indicate if the network is directed or undirected. The network is directed if the Directed property is set to true. Otherwise, it is undirected. The Layers property is used to contain the ordered list of layers. The class of the layers object property must be of type NetworkLayer. More...
class | OSGeo::FDO::Schema::NetworkFeatureClass
| NetworkFeature is an abstract class that derives from FeatureClass and is a base for NetworkNodeFeature and NetworkLinkFeature. More...
class | OSGeo::FDO::Schema::NetworkLayerClass
| NetworkLayerClass derives from ClassDefinition and can be used to represent a network layer. More...
class | OSGeo::FDO::Schema::NetworkLinkFeatureClass
| NetworkLinkFeature derives NetworkFeature and can be used to represent a logical link feature. More...
class | OSGeo::FDO::Schema::NetworkNodeFeatureClass
| NetworkNodeFeature derives from NetworkFeature and can be used to represent a logical node feature. More...
class | OSGeo::FDO::Schema::ObjectPropertyDefinition
| ObjectPropertyDefinition class derives PropertyDefinition and represents containment of an object or a collection of objects within another class. The class of the contained object must already be defined in the feature schema and cannot be abstract. More...
class | OSGeo::FDO::Schema::PropertyDefinition
| PropertyDefinition is an abstract class that derives from SchemaElement. PropertyDefinition is the base class of DataPropertyDefinition, GeometricPropertyDefinition, and ObjectPropertyDefinition. More...
class | OSGeo::FDO::Schema::PropertyDefinitionCollection
| The PropertyDefinitionCollection class represents a collection of PropertyDefinition objects. More...
class | OSGeo::FDO::Schema::PropertyValueConstraint
| PropertyValueConstraint is an abstract class that derives from IDisposable. PropertyValueConstraint is the base class of PropertyValueConstraintRange and PropertyValueConstraintList. More...
class | OSGeo::FDO::Schema::PropertyValueConstraintList
| PropertyValueConstraintList is used to specify a list of allowed values for a particular property. It can be used for all data property types except for Boolean, BLOB, or CLOB. This constraint is represented by a list of values of the same type as the corresponding data property. The list cannot be empty. The list could be a single value. While that may not seem very useful it could serve as a temporary way to enforce a single value for a property, e.g. for a particular customer, Parcel.State is always ‘CA? In this case, the definer of the property definition probably should also set the default value to be the same, unless it can be null. The list does not need to be ordered. However, a provider may choose to reorder the list so the list that is returned when a user gets the definition of this constraint for a property may be different than the order that was given when defined. E.g. defined as (12, 8, 24), but returned as (8, 12, 24). If the list has duplicate values, the provider may choose to eliminate duplicates from the list. If the data property definition allows nulls, a null value is considered as being valid regardless of this list of valid values. The list of valid values should not include the null value itself, but leave the specification of whether null is allowed to the null value constraint. If the data property definition includes a non-null default value, then that value should be one of the values in the list. If both a valid values list constraint and a unique constraint on the same property are included, then the side effect is that there will be an upper limit of the number of objects of that class that have non-null values for the property. More...
class | OSGeo::FDO::Schema::PropertyValueConstraintRange
| PropertyValueConstraintRange is used to specify minimum and / or maximum allowed values for a particular property. It can be used for all data property types except for Boolean, BLOB, or CLOB. One or the other or both of MinValue and MaxValue must be specified. If both are specified, then MaxValue must be greater than or equal to MinValue and if either MinInclusive or MaxInclusive are false, then MaxValue must be greater than MinValue. MinValue and MaxValue if specified must be valid values for the property type. E.g. if the property is decimal(4,0), then the maximum possible MaxValue is 9999. If the data property definition includes a non-null default value, then this constraint is applied to that value as well. If the data property definition allows nulls, a null value is considered as being valid regardless of the range constraint. More...
class | OSGeo::FDO::Schema::RasterPropertyDefinition
| RasterPropertyDefinition has the information needed to create or completely describe a raster property. This class encapsulates the information necessary to insert a 'new' raster, in the absence of any other information, for the properties defined using this schema element. More...
class | OSGeo::FDO::Schema::ReadOnlyDataPropertyDefinitionCollection
| The ReadOnlyDataPropertyDefinitionCollection class represents a collection of DataPropertyDefinition objects. More...
class | OSGeo::FDO::Schema::ReadOnlyPropertyDefinitionCollection
| The ReadOnlyPropertyDefinitionCollection class represents a collection of PropertyDefinition objects. More...
class | OSGeo::FDO::Schema::SchemaAttributeDictionary
| The SchemaAttributeDictionary class maintains a dictionary of named attributes that provide a generic extensibility mechanism for objects in the feature schema. This mechanism can be used to dynamically extend schema elements in either an application- or provider-specific manner. More...
class | OSGeo::FDO::Schema::SchemaElement
| SchemaElement is an abstract class that acts as a base class for all classes in the Schema package. More...
class | OSGeo::FDO::Schema::TopoFeaturePropertyDefinition
| TopoFeaturePropertyDefinition derives PropertyDefinition and its values can be used to relate topological primitives to one or more application domain features. One can use the short form "TopoFeature" to refer to these properties. The semantics of this property are similar to Object properties. One uses IFeatureReader::GetObject() to retrieve values. More...
class | OSGeo::FDO::Schema::TopoGeometryPropertyDefinition
| TopoGeometryPropertyDefinition derives from GeometricPropertyDefinition, but it has behavior of both geometry and fixed association. It can be used to relate an application-domain feature class (other than a topological primitive class) to a topology. One can use the short form TopoGeometry to refer to these properties. Values of this property can be used:. More...
class | OSGeo::FDO::Schema::Topology
| This class is used to represent a topology. More...
class | OSGeo::FDO::Schema::UniqueConstraint
| UniqueConstraint can be used to specify that a property or list of properties taken together have unique values for all objects of that class in a datastore. A unique constraint that is based on a list of two or more properties is called a composite unique constraint. This constraint type applies to all data property types except for Boolean, BLOB, and CLOB. A Boolean property can be included if it’s part of a composite unique constraint. More...
class | OSGeo::FDO::Schema::UniqueConstraintCollection
| The UniqueConstraintCollection class represents a collection of UniqueConstraint objects. More...
## Enumerations
enum | ClassType { ClassType_Class = FdoClassType_Class, ClassType_FeatureClass = FdoClassType_FeatureClass, ClassType_NetworkClass = FdoClassType_NetworkClass, ClassType_NetworkLayerClass = FdoClassType_NetworkLayerClass, ClassType_NetworkNodeClass = FdoClassType_NetworkNodeClass, ClassType_NetworkLinkClass = FdoClassType_NetworkLinkClass }
| The ClassType enumeration lists all of the concrete class types defined in the Schema package. More...
enum | DataType { DataType_Boolean = FdoDataType_Boolean, DataType_Byte = FdoDataType_Byte, DataType_DateTime = FdoDataType_DateTime, DataType_Decimal = FdoDataType_Decimal, DataType_Double = FdoDataType_Double, DataType_Int16 = FdoDataType_Int16, DataType_Int32 = FdoDataType_Int32, DataType_Int64 = FdoDataType_Int64, DataType_Single = FdoDataType_Single, DataType_String = FdoDataType_String, DataType_BLOB = FdoDataType_BLOB, DataType_CLOB = FdoDataType_CLOB }
| The DataType enumeration lists all of the base data types supported by FDO. More...
enum | DeleteRule { DeleteRule_Cascade = FdoDeleteRule_Cascade, DeleteRule_Prevent = FdoDeleteRule_Prevent, DeleteRule_Break = FdoDeleteRule_Break }
| The DeleteRule enumeration specifies the action to take when a delete operation is executed on the class instance at the other end of the relation. More...
enum | GeometricType { GeometricType_Point = 0x01, GeometricType_Curve = 0x02, GeometricType_Surface = 0x04, GeometricType_Solid = 0x08, GeometricType_All = 0x01|0x02|0x04|0x08 }
| The GeometricType enumeration categorizes all of the geometry types supported by FDO based on their geometric dimensionality. More...
enum | ObjectType { ObjectType_Value = FdoObjectType_Value, ObjectType_Collection = FdoObjectType_Collection, ObjectType_OrderedCollection = FdoObjectType_OrderedCollection }
| The ObjectType enumeration defines whether an object property is a single value, a collection, or an ordered collection. More...
enum | OrderType { OrderType_Ascending = FdoOrderType_Ascending, OrderType_Descending = FdoOrderType_Descending }
| The OrderType enumeration list contains two values to indicate if the object collection is to be ordered in ascending or descending fashion. More...
enum | PropertyType { PropertyType_DataProperty = FdoPropertyType_DataProperty, PropertyType_ObjectProperty = FdoPropertyType_ObjectProperty, PropertyType_GeometricProperty = FdoPropertyType_GeometricProperty, PropertyType_AssociationProperty = FdoPropertyType_AssociationProperty, PropertyType_RasterProperty = FdoPropertyType_RasterProperty }
| The PropertyType enumeration lists the possible types that a Property can be. More...
enum | PropertyValueConstraintType { PropertyValueConstraintType_Range = 0x01, PropertyValueConstraintType_List = 0x02 }
| The PropertyValueConstraintType enumeration categorizes the supported constraint. More...
enum | SchemaElementState { SchemaElementState_Added = FdoSchemaElementState_Added, SchemaElementState_Deleted = FdoSchemaElementState_Deleted, SchemaElementState_Detached = FdoSchemaElementState_Detached, SchemaElementState_Modified = FdoSchemaElementState_Modified, SchemaElementState_Unchanged = FdoSchemaElementState_Unchanged }
| The SchemaElementState enumeration defines the current state of the schema element. More...