ArcGIS Server Banner

Feature classes in a geodatabase in Informix

Feature classes in a geodatabase in Informix

Release 9.3 E-mail This TopicPrintable VersionGive Us feedback
A feature class is a collection of geographic features, all of the same geometric type (point, line, polygon, multipoint, annotation, dimension, or multipatch). For example, you could store points for all the train depots along a railroad line in one feature class. In another feature class, you could store lines that represent all the railroad tracks.

Below is a description of the way a feature class appears in ArcCatalog and in an XML document. Following that is a description of subtypes, which are used to create subgroups of feature types in a feature class.

Feature classes in ArcCatalog

In the Catalog tree, a feature class looks like this:

Feature class

This is a polygon feature class named lakes, which is owned by user world and stored in database sde92.

The icon to the left of the feature class name indicates the type of feature class it is. The icon above represents a polygon feature class. The icons for the other types of feature classes you can create in ArcGIS are as follows:

Point feature class icon A point or multipoint feature class

Line feature class icon A line feature class

Annotation feature class icon An annotation feature class

Dimension feature class icon A dimension feature class

Multipatch feature class icon A multipatch feature class

For a description of the different types of feature classes, see Feature class basics.

Feature classes in an Informix DBMS

Feature classes stored in geodatabases in a Informix DBMS utilize ST_Geometry storage. That means an ST_Geometry column is added to the business table of the feature class.

ST_Geometry is an abstract, noninstantiable superclass, the subclasses of which are instantiable. For details on ST_Geometry, see The ST_Geometry storage type.

NOTE: You'll notice that once you've loaded data, you will have several i tables and stored procedures in your database. These stored procedures and i tables are used for generating feature IDs for feature classes. The i tables contain a number in their name. This number corresponds to the REGISTRATION_ID of the feature class in the TABLE_REGISTRY table. Editing these tables or stored procedures is not supported and highly discouraged.

To see an example of the tables involved in a feature class, click on the link below. The dashed lines indicate implicit relationships between tables; the solid lines denote explicitly defined relationships. You need Adobe Acrobat Reader to open the file.

Informix feature class diagram

Feature classes stored in an XML document

The following is a small portion of the content of an XML document for the lakes feature class. The first section is the header; subsequent lines define fields in the feature class.

<esri:Workspace xmlns:esri="http://www.esri.com/schemas/ArcGIS/9.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<WorkspaceDefinition xsi:type="esri:WorkspaceDefinition">
   <WorkspaceType>esriRemoteDatabaseWorkspace</WorkspaceType> 
     <Version>sde.DEFAULT</Version> 
     <Domains xsi:type="esri:ArrayOfDomain" /> 
     <DatasetDefinitions xsi:type="esri:ArrayOfDataElement">
        <DataElement xsi:type="esri:DEFeatureClass">
           <CatalogPath>/V=sde.DEFAULT/FC=sde92:world.lakes</CatalogPath> 
           <Name>sde92:world.lakes</Name> 
           <DatasetType>esriDTFeatureClass</DatasetType> 
           <DSID>-1</DSID> 
           <Versioned>false</Versioned> 
           <CanVersion>true</CanVersion> 
           <HasOID>true</HasOID> 
           <OIDFieldName>objectid</OIDFieldName> 
           <Fields xsi:type="esri:Fields">
              <FieldArray xsi:type="esri:ArrayOfField">
                 <Field xsi:type="esri:Field">
                 <Name>sde92:world.lakes.area</Name> 
                 <Type>esriFieldTypeDouble</Type> 
                 <IsNullable>true</IsNullable> 
                 <Length>8</Length> 
                 <Precision>15</Precision> 
                 <Scale>3</Scale> 
              </Field>
              <Field xsi:type="esri:Field">
                 <Name>name</Name> 
                 <Type>esriFieldTypeString</Type> 
                 <IsNullable>true</IsNullable> 
                 <Length>40</Length> 
                 <Precision>0</Precision> 
                 <Scale>0</Scale> 
              </Field>
              <Field xsi:type="esri:Field">
                 <Name>surf_elev</Name> 
                 <Type>esriFieldTypeInteger</Type> 
                 <IsNullable>true</IsNullable> 
                 <Length>4</Length> 
                 <Precision>10</Precision> 
                 <Scale>0</Scale> 
              </Field>
              <Field xsi:type="esri:Field">
                 <Name>depth</Name> 
                 <Type>esriFieldTypeSmallInteger</Type> 
                 <IsNullable>true</IsNullable> 
                 <Length>2</Length> 
                 <Precision>5</Precision> 
                 <Scale>0</Scale> 
              </Field>
              <Field xsi:type="esri:Field">
                 <Name>feature</Name> 
                 <Type>esriFieldTypeGeometry</Type> 
                 <IsNullable>true</IsNullable> 
                 <Length>4</Length> 
                 <Precision>0</Precision> 
                 <Scale>0</Scale> 
                 <GeometryDef xsi:type="esri:GeometryDef">
                    <AvgNumPoints>0</AvgNumPoints> 
                     <GeometryType>esriGeometryPolygon</GeometryType> 
                   <HasM>false</HasM> 
                   <HasZ>false</HasZ> 
                   <SpatialReference xsi:type="esri:UnknownCoordinateSystem">
                      <XOrigin>-180</XOrigin> 
                      <YOrigin>-90</YOrigin> 
                      <XYScale>10000</XYScale> 
                      <ZOrigin>0</ZOrigin> 
                      <ZScale>10000</ZScale> 
                      <MOrigin>0</MOrigin> 
                      <MScale>1</MScale> 
                      <XYTolerance>0</XYTolerance> 
                      <ZTolerance>0</ZTolerance> 
                      <MTolerance>0</MTolerance> 
                      <HighPrecision>true</HighPrecision> 
                  </SpatialReference>
               <GridSize0>-2</GridSize0> 
            </GeometryDef>
         </Field>
         <Field xsi:type="esri:Field">
            <Name>objectid</Name> 
            <Type>esriFieldTypeOID</Type> 
            <IsNullable>false</IsNullable> 
            <Length>4</Length> 
            <Precision>10</Precision> 
            <Scale>0</Scale> 
            <Required>true</Required> 
            <Editable>false</Editable> 
         </Field>
         <Field xsi:type="esri:Field">
            <Name>SE_Area(feature)</Name> 
            <Type>esriFieldTypeDouble</Type> 
            <IsNullable>false</IsNullable> 
            <Length>0</Length> 
            <Precision>0</Precision> 
            <Scale>0</Scale> 
            <Required>true</Required> 
            <Editable>false</Editable> 
         </Field>
         <Field xsi:type="esri:Field">
            <Name>SE_Length(feature)</Name> 
            <Type>esriFieldTypeDouble</Type> 
            <IsNullable>false</IsNullable> 
            <Length>0</Length> 
            <Precision>0</Precision> 
            <Scale>0</Scale> 
            <Required>true</Required> 
            <Editable>false</Editable> 
         </Field>
      </FieldArray>
   </Fields>
  <Indexes xsi:type="esri:Indexes">
     <IndexArray xsi:type="esri:ArrayOfIndex">
        <Index xsi:type="esri:Index">
           <Name>r72_sde_rowid_uk</Name> 
           <IsUnique>true</IsUnique> 
           <IsAscending>true</IsAscending> 
           <Fields xsi:type="esri:Fields">
              <FieldArray xsi:type="esri:ArrayOfField">
                 <Field xsi:type="esri:Field">
                 <Name>objectid</Name> 
                 <Type>esriFieldTypeOID</Type> 
                 <IsNullable>false</IsNullable> 
                 <Length>4</Length> 
                 <Precision>10</Precision> 
                 <Scale>0</Scale> 
                 <Required>true</Required> 
                 <Editable>false</Editable> 
                 </Field>
         </FieldArray>
    </Fields>
  </Index>

Subtypes in feature classes

Subtypes are used to differentiate feature types within a feature class based on their default values, attribute domains, connectivity rules, and relationship rules. Subtypes are defined for a feature class, and only one field in the feature class can have subtypes defined for it.

Subtypes in ArcCatalog

Since subtypes are defined on the feature class, you define and view subtypes in ArcCatalog from the Feature Class Properties dialog box. Right-click the feature class, click Properties, and click the Subtypes tab to see the following dialog box:

Subtype tab of Feature Class Properties dialog box

This example shows subtypes applied to the TYPECODE field for a feature class called Laterals. You see the codes used for the subtypes, the descriptions (names) of the subtypes, and the default subtype for the TYPECODE field in the Laterals feature class.

Subtypes in an Informix DBMS

For the subtypes applied to the TYPECODE field of the Laterals feature class, the tables in an Informix DBMS would look like the following:

Subtype system tables in Informix

In this example, the Laterals feature class is composed of the LATERALS business table and is identified in the GDB_OBJECTCLASSES system table. Additional information about the feature class is maintained in the GDB_FEATURECLASSES and GDB_FIELDINFO system tables.

The subtypes for feature classes are tracked in the GDB_SUBTYPE system table, the default values for the subtypes are tracked in the GDB_DEFAULTVALUES system table, and the fields to which these apply are tracked in the GDB_FIELDINFO system table. The subtypes are associated to the feature class by way of the GDB_OBJECTCLASSES table. The GDB_DEFAULTVALUES table is associated with the GDB_SUBTYPES table by the subtype code, which is stored in the SubtypeCode field in the GDB_SUBTYPES table and the Subtype field in the GDB_DEFAULTVALUES table.

The name of the field to which the subtype applies is stored in the SubtypeField column of the GDB_OBJECTCLASSES table. This field is linked to the FieldName column in the GDB_FIELDINFO table, which in turn is associated to the FieldName column in the GDB_DEFAULTVALUES table.

Subtypes in an XML document

Subtypes appear in XML documents as part of the information for the feature class. They are grouped under a Subtypes tag. For the Laterals example, the subtype information in an XML document is as follows:

<Subtypes xsi:type="esri:ArrayOfSubtype">
  <Subtype xsi:type="esri:Subtype">
      <SubtypeName>Unknown</SubtypeName> 
      <SubtypeCode>0</SubtypeCode> 
    <FieldInfos xsi:type="esri:ArrayOfSubtypeFieldInfo">
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>H_CONFID</FieldName> 
          <DefaultValue xsi:type="xs:int">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DIAMETER</FieldName> 
          <DomainName>LatDiameter</DomainName> 
          <DefaultValue xsi:type="xs:double">8</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DEPTH_BURI</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>RECORDED_L</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>WNM_TYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WUNKNOWN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>PWTYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WUNKNOWN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>MATERIAL</FieldName> 
          <DomainName>Material</DomainName> 
          <DefaultValue xsi:type="xs:string">DI</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>TYPECODE</FieldName> 
          <DefaultValue xsi:type="xs:int">3</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>ENABLED</FieldName> 
          <DomainName>EnabledDomain</DomainName> 
          <DefaultValue xsi:type="xs:short">1</DefaultValue> 
        </SubtypeFieldInfo>
     </FieldInfos>
  </Subtype>
<Subtype xsi:type="esri:Subtype">
    <SubtypeName>Hydrant laterals</SubtypeName> 
    <SubtypeCode>1</SubtypeCode> 
  <FieldInfos xsi:type="esri:ArrayOfSubtypeFieldInfo">
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>H_CONFID</FieldName> 
          <DefaultValue xsi:type="xs:int">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DIAMETER</FieldName> 
          <DomainName>LatDiameter</DomainName> 
          <DefaultValue xsi:type="xs:double">8</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DEPTH_BURI</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>RECORDED_L</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>WNM_TYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WHYDLIN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>PWTYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WHYDLIN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>MATERIAL</FieldName> 
          <DomainName>Material</DomainName> 
          <DefaultValue xsi:type="xs:string">DI</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>ENABLED</FieldName> 
          <DomainName>EnabledDomain</DomainName> 
          <DefaultValue xsi:type="xs:short">1</DefaultValue> 
        </SubtypeFieldInfo>
     </FieldInfos>
  </Subtype>
<Subtype xsi:type="esri:Subtype">
    <SubtypeName>Fire laterals</SubtypeName> 
    <SubtypeCode>2</SubtypeCode> 
  <FieldInfos xsi:type="esri:ArrayOfSubtypeFieldInfo">
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>H_CONFID</FieldName> 
          <DefaultValue xsi:type="xs:int">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DIAMETER</FieldName> 
          <DomainName>LatDiameter</DomainName> 
          <DefaultValue xsi:type="xs:double">8</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DEPTH_BURI</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>RECORDED_L</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>WNM_TYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WFIRELIN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>PWTYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WFIRELIN</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>MATERIAL</FieldName> 
          <DomainName>Material</DomainName> 
         <DefaultValue xsi:type="xs:string">DI</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>ENABLED</FieldName> 
          <DomainName>EnabledDomain</DomainName> 
          <DefaultValue xsi:type="xs:short">1</DefaultValue> 
        </SubtypeFieldInfo>
     </FieldInfos>
  </Subtype>
<Subtype xsi:type="esri:Subtype">
    <SubtypeName>Service laterals</SubtypeName> 
    <SubtypeCode>3</SubtypeCode> 
  <FieldInfos xsi:type="esri:ArrayOfSubtypeFieldInfo">
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>H_CONFID</FieldName> 
          <DefaultValue xsi:type="xs:int">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DIAMETER</FieldName> 
          <DomainName>LatDiameter</DomainName> 
          <DefaultValue xsi:type="xs:double">8</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>DEPTH_BURI</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>RECORDED_L</FieldName> 
          <DefaultValue xsi:type="xs:double">0</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>WNM_TYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WSERVICE</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>PWTYPE</FieldName> 
          <DefaultValue xsi:type="xs:string">WSERVICE</DefaultValue> 
       </SubtypeFieldInfo>
     <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>MATERIAL</FieldName> 
          <DomainName>Material</DomainName> 
          <DefaultValue xsi:type="xs:string">DI</DefaultValue> 
        </SubtypeFieldInfo>
      <SubtypeFieldInfo xsi:type="esri:SubtypeFieldInfo">
          <FieldName>ENABLED</FieldName> 
          <DomainName>EnabledDomain</DomainName> 
          <DefaultValue xsi:type="xs:short">1</DefaultValue> 
        </SubtypeFieldInfo>
     </FieldInfos>
   </Subtype>
 </Subtypes>