Upon the addition of a Unit object to an SBMLDocument, the SBML Level, SBML Version and XML namespace of the document override the values used when creating the Unit object via this constructor. This is necessary to ensure that an SBML document is a consistent structure. Nevertheless, the ability to supply the values at the time of creation of a Unit is an important aid to producing valid SBML. Knowledge of the intented SBML Level and Version determine whether it is valid to assign a particular value to an attribute, or whether it is valid to add an object to an existing SBMLDocument.
Visit SBML.org for more information
about SBML and libSBML.