Data entity subelements

This topic describes the subelements that you can use in metadata definition files. These subelements are:

  • <array>
  • <column>
  • <edgeForeignKey>
  • <events>
  • <foreignkey>
  • <fulldescription>
  • <implementsEntity>
  • <implementsInterface>
  • <index>
  • <onetoone>
  • <remove-index>
  • <tag>
  • <typekey>

Subelements for internal use only

Do not use the following entity subelements. Guidewire uses these subelements for internal purposes only.

  • <aspect>
  • <checkconstraint>
  • <customconsistencycheck>
  • <datetimeordering>
  • <dbcheckbuilder>
  • <jointableconsistencycheck>
  • <tableAugmenter>
  • <validatetypekeyinset>
  • <validatetypekeynotinset>

The deprecated attribute

The deprecated attribute applies to the following subelements:

  • <array>
  • <column>
  • <componentref>
  • <edgeForeignKey>
  • <foreignkey>
  • <onetoone>
  • <searchColumn>
  • <typekey>

The deprecated="true" attribute does not alter the database in any way. Instead, the deprecated attribute marks a data field as deprecated in the Data Dictionary and places a Deprecated annotation on the field in the Guidewire Studio API Reference. The deprecated attribute supports organizations that want to remove a field in a two-phase process.

In the first phase, you add the deprecated attribute to the field subelement. Studio indicates the field is deprecated whenever Gosu code references the field. During this first phase, developers work to remove the deprecated field from their code. The second phase occurs after developers remove all occurrences of the deprecated field.

In the second phase, you drop the field from the entity definition. In some cases, Guidewire will drop the column from the database automatically to synchronize the physical database with your revised data model. In most cases however, the DBA must alter the database with SQL statements run against the database to synchronize the database with your revised data model.

Guidewire generally recommends against using the deprecated attribute and the two-phase removal process. If you deprecate a field, Studio signals to the development team that the field is no longer used. The DBA does not receive this information. Over time, with a number of deprecated fields, the DBA manages an ever larger amount of unused information in the physical database. To avoid managing unused data, Guidewire strongly recommends that you keep your physical database and the data model of your application synchronized by dropping unused fields instead of deprecating them.