(Feb 16, 2002): Once I really started to get into working with objects, I realized a couple of motivations for list values,
chief of which is the ability to maintain versions of values. Not least, however, is the fact that LDAP fields are all lists,
so it'll behoove us to be able to manage such records so that an LDAP storage adaptor won't have such a long row to hoe.
At any rate, I want to have a simple API which can deal with plain-vanilla fields as well as list-augmented ones, in the same manner.
A plain-vanilla field is a "field" element which has an "id" attribute naming the value, and whose content, in string form, is the
value of the field, or in a "value" attribute. The new wrinkle on that is to posit a couple of extra attributes; the "curver" attribute
signals that the field is versioned, meaning that each child element of the field element is a version value with a key, and that the
curver attribute selects the currently valid value. And the "defval" value does the same thing, except with the understanding that
all the values are currently valid, but that one of them is a default value. A logical combination of the two modes would be
to posit version sets -- but I'm not going to mess with the idea of versioned lists, thank you very much.
This code and documentation are released under the terms of the GNU license. They are
copyright (c) 2001-2005, Vivtek. All rights reserved except those explicitly
granted under the terms of the GNU license.