All these functions return a property of the attribute definition. During reading the attribute value specification of a starttag, the current value of the corresponding attribute is filled in. It is recalled with attr_current_value().
In a document only the current value of an attribute changes, and it is possible to change it with att_set_current_value(). If the attribute is a CURRENT attribute, the current value of the attribute must be saved because the default value will automatically become the most recently specified value. If the attribute is not a CONREF attribute a call to att_set_default_value() is ignored.
To visit all the attribute of one attribute specification list one at the time attdef_iterator() is called. It returns an iterator. All attribute definitions are returned by sequential calls to att_iter_next() with this iterator as parameter. The last value returned is zero, this indicates that all the attributes have been visited.
If an attribute name is read, the corresponding attribute structure must be found to check the attribute value etc. This is done in procedure attdef_name_lookup(). In basic SGML it is possible to omit the attribute name. Now there is no name but the value must be unique so the corresponding attribute can be found with attdef_value_lookup(). These functions return ILL_ATT if the attribute definition can not be found.