In general, the catalog is setup by the following items:
Figure 1: Overall structure of the catalog

<catalog>
This is the root of the catalog. As of SGML/XML a valid resp. a well formed document must have one and only one root element.
<ablock>
This is the assertion about one particular "work item" or exchange item. This item can either be a file, a set of fields, or a specific configuration which is comprised by <aref>.
The primary identification of an <ablock> is the combination of [class] and [name]. This reflects to the fact that a work item in an engineering process may have a particular role in the process (denoted by [class]) and a name.
For ease of processing in SGML/XML-tools catalog also supports the identification by [id].
<aref>
This is used to establish a relationship between configuration items and particular exchange items. As an example, a program kit is setup as a set of particular files. This fact is expressed within the <ablock> describing the program by referencing (via <aref>) the <ablock> describing the particular files.
Note that this reference can be expressed using SGML's ID/IDREF or by using [class] and [name] or both. If both mechanisms are use, they must be in sync.
<metadata>
This structure receives all metadata formally specified in the catalog. This is mainly a descriptive name delivered in multiple languages and revision information.
<fields>
This is a generic structure allowing to transmit any kind of fields. The application domain of a field set can be denoted in [class] within <field-set>. For an example see 2. Using the catalog for transmitting a revision history.

For further details refer to the element and attributes documentation in 2.2. Elements and attributes.