workflow options: default surround. component options: attr: component type - REQUIRED XML config attr: collapsed attr: surround to use (get from workflow) attr of <wf:field> required="yes" required="no" (default) required="for_archive" (should show required icon to staff) collapsed="yes" (ignored if field is required, is for_archive and in staff mode, has data set) collapsed="no" Library function which parses <field required="foo" name="bar" /> that field in same namespace as workflow. surround has a method which returns XHTML for a required icon. any render method of components get passed a pointer to the surround. surround->render_required component->is_collapsed (base level has utiltity method which takes X field structures and a dataobj) component->are_these_all_collapsed( list-of-field-objects {required, name, collapsed} ) Component field object (maybe not in plugins) which takes XML of <field> and returns object with field id, field handle, required, collapsed etc. EPrints::InputField?