Some words of explanation about the
set/unset/isSet methods:
SBML Levels 1 and 2 define certain attributes on some classes of objects as
optional. This requires an application to be careful about the distinction
between two cases: (1) a given attribute has never been set to a
value, and therefore should be assumed to have the SBML-defined default
value, and (2) a given attribute has been set to a value, but the value
happens to be an empty string. LibSBML supports these distinctions by
providing methods to set, unset, and query the status of attributes that
are optional. The methods have names of the form
setAttribute(...),
unsetAttribute(), and
isSetAttribute(), where Attribute
is the the name of the optional attribute in question.