libSBML Perl API  5.20.4
Loading...
Searching...
No Matches
SBMLError Class Reference
Inheritance diagram for SBMLError:
[legend]

Detailed Description

An error, warning or other diagnostic.

This class of objects is defined by libSBML only and has no direct equivalent in terms of SBML components. This class is not prescribed by the SBML specifications, although it is used to implement features defined in SBML.

When a libSBML operation on SBML content results in an error, or when there is something wrong with the SBML content, the problems are reported as SBMLError objects. These are generally stored in an SBMLErrorLog object; this log object, in turn, is kept in the SBMLDocument object containing the SBML content. Applications can obtain the list of logged errors using SBMLDocument::getErrorLog() and then use the methods provided by SBMLErrorLog to access individual SBMLError objects. (Note that despite the word "error" in the name, SBMLError objects are used to represent not only "true" errors, but also warnings and some informational diagnostics. The name is a historical hold-over from early versions of libSBML, in which the object really was only used to report errors.)

Error codes are useful mainly for software. For human readers, SBMLError also includes text messages that describe the nature of a given problem. The messages can be accessed using SBMLError::getShortMessage() and SBMLError::getMessage(). The former provides a brief one-line description of the issue, while SBMLError::getMessage() provides a more detailed text, including (if appropriate) references to sections of the SBML specifications where relevant topics are discussed. These text strings are suitable for displaying to human users.

In addition, SBMLError also has a severity code. Its value may be retrieved using the method SBMLError::getSeverity(). The possible severity values are the same as those reported by

Severity levels currently range from informational ( ) to fatal errors ( ). They can be used by an application to evaluate how serious a given problem is.

SBMLError also tracks the Level 3 package extension, if any, was responsible for a given warning or error. Each diagnostic code logged by an libSBML extension for SBML Level 3 packages includes a record of the package that logged it. It can be retrieved using SBMLError::getPackage(). The information is a simple text string; the string will be the nickname of the package, such as "comp" for the Hierarchical Model Composition package, "fbc" for the Flux Balance Constraints package, and so on. If the value returned by SBMLError::getPackage() is an empty string or has the value "core", then the error came from libSBML core.

Finally, SBMLError records the line and column near where the problem occurred in the SBML content. The values may be retrieved using the methods SBMLError::getLine() and SBMLError::getColumn(). We say "near", because a lot of factors affect how accurate the line/column information ultimately is. For example, different XML parsers have different conventions for which line and column number they report for a particular problem (which makes a difference when a problem involves an opening XML tag on one line and a closing tag on another line). In some situations, some parsers report invalid line and/or column numbers altogether. If this occurs, libSBML sets the line and/or column number in the SBMLError object to the the value of the maximum unsigned long integer representable on the platform where libSBML is running. (This is equal to the constant named ULONG_MAX in C and C++.) The probability that a true line or column number in an SBML model would equal this value is vanishingly small; thus, if an application encounters these values in an XMLError object, it can assume no valid line/column number could be provided by libSBML in that situation.

= Not applicable
= Warning
= Error
= Fatal

The text shown in the "Meaning" is the text returned by the SBMLError::getShortMessage() method on a given SBMLError object. A longer and (hopefully) clearer explanation of the issue is returned by SBMLError::getMessage().

The error codes come from different lists depending on whether they're from libSBML core or from an SBML Level 3 package extension. However, in the language interfaces other than C++, all libSBML error codes are ultimately represented as integer constants rather than separate enumerations lists, and they are all stored in a single interface class. Codes from different libSBML extensions have names that begin with the package's nickname, such as Qual for the Qualitative Models package, Layout for the Layout package, and so on. If the name of a code does not begin with one of the package nicknames (Layout, Fbc, Comp, Qual, etc.), then it is a code from libSBML core.

Enumerator Meaning L1 V1 L1 V2 L2 V1 L2 V2 L2 V3 L2 V4 L3 V1 L3 V2
Unknown error
Out of memory
File unreadable
File unwritable
File operation error
Network access error
Internal XML parser error
Unrecognized XML parser code
Transcoder error
Missing XML declaration
Missing XML encoding attribute
Bad XML declaration
Bad XML DOCTYPE
Invalid character
Badly formed XML
Unclosed token
Invalid XML construct
XML tag mismatch
Duplicate attribute
Undefined XML entity
Bad XML processing instruction
Bad XML prefix
Bad XML prefix value
Missing required attribute
Attribute type mismatch
Bad UTF8 content
Missing attribute value
Bad attribute value
Bad XML attribute
Unrecognized XML element
Bad XML comment
Bad XML declaration location
Unexpected EOF
Bad XML ID value
Bad XML IDREF
Uninterpretable XML content
Bad XML document structure
Invalid content after XML content
Expected quoted string
Empty value not permitted
Bad number
Colon character not permitted
Missing XML elements
Empty XML content
Encountered unknown internal libSBML error
File does not use UTF-8 encoding
Encountered unrecognized element
Document does not conform to the SBML XML schema
Document is not well-formed XML
Invalid MathML
Disallowed MathML symbol found
Use of the MathML 'encoding' attribute is not allowed on this element
Use of the MathML 'definitionURL' attribute is not allowed on this element
Invalid <csymbol> 'definitionURL' attribute value
Use of the MathML 'type' attribute is not allowed on this element
Disallowed MathML 'type' attribute value
Use of <lambda> not permitted outside of FunctionDefinition objects
Non-Boolean argument given to Boolean operator
Non-numerical argument given to numerical operator
Arguments to <eq> and <neq> must have the same data types
Terms in a <piecewise> expression must have consistent data types
The second argument of a <piece> expression must yield a Boolean value
A <ci> element in this context must refer to a function definition
A <ci> element in this context must refer to a model component
Cannot use a KineticLaw local parameter outside of its local scope
A formula's result in this context must be a numerical value
Incorrect number of arguments given to MathML operator
Incorrect number of arguments given to function invocation
Attribute 'units' is only permitted on <cn> elements
Invalid value given for the 'units' attribute
A <ci> element cannot reference a 0D compartment
A 'rateOf' <csymbol> must target only a single <ci> element
The target of a 'rateOf' <csymbol> cannot be assigned
Compartments of non-substance <species> referenced by 'rateOf' must not vary
Duplicate 'id' attribute value
Duplicate unit definition 'id' attribute value
Duplicate local parameter 'id' attribute value
Multiple rules for the same variable are not allowed
Multiple event assignments for the same variable are not allowed
An event assignment and an assignment rule must not have the same value for 'variable'
Duplicate 'metaid' attribute value
Invalid syntax for an 'sboTerm' attribute value
Invalid syntax for a 'metaid' attribute value
Invalid syntax for an 'id' attribute value
Invalid syntax for the identifier of a unit
Invalid syntax for a 'name' attribute value
Dangling reference to a unit.
Missing declaration of the XML namespace for the annotation
Multiple annotations using the same XML namespace
The SBML XML namespace cannot be used in an Annotation object
Only one Annotation object is permitted under a given SBML object
The units of the function call's arguments are not consistent with its definition
The kinetic law's units are inconsistent with those of other kinetic laws in the model
Mismatched units in assignment rule for compartment
Mismatched units in assignment rule for species
Mismatched units in assignment rule for parameter
Mismatched units in assignment rule for stoichiometry
Mismatched units in initial assignment to compartment
Mismatched units in initial assignment to species
Mismatched units in initial assignment to parameter
Mismatched units in initial assignment to stoichiometry
Mismatched units in rate rule for compartment
Mismatched units in rate rule for species
Mismatched units in rate rule for parameter
Mismatched units in rate rule for stoichiometry
The units of the kinetic law are not 'substance'/'time'
The species' units are not consistent with units of extent
The units of the delay expression are not units of time
Mismatched units in event assignment for compartment
Mismatched units in event assignment for species
Mismatched units in event assignment for parameter
Mismatched units in event assignment for stoichiometry
The units of a priority expression must be 'dimensionless'
The model is overdetermined
Invalid 'sboTerm' attribute value for a Model object
Invalid 'sboTerm' attribute value for a FunctionDefinition object
Invalid 'sboTerm' attribute value for a Parameter object
Invalid 'sboTerm' attribute value for an InitialAssignment object
Invalid 'sboTerm' attribute value for a Rule object
Invalid 'sboTerm' attribute value for a Constraint object
Invalid 'sboTerm' attribute value for a Reaction object
Invalid 'sboTerm' attribute value for a SpeciesReference object
Invalid 'sboTerm' attribute value for a KineticLaw object
Invalid 'sboTerm' attribute value for an Event object
Invalid 'sboTerm' attribute value for an EventAssignment object
Invalid 'sboTerm' attribute value for a Compartment object
Invalid 'sboTerm' attribute value for a Species object
Invalid 'sboTerm' attribute value for a CompartmentType object
Invalid 'sboTerm' attribute value for a SpeciesType object
Invalid 'sboTerm' attribute value for an Event Trigger object
Invalid 'sboTerm' attribute value for an Event Delay object
Invalid 'sboTerm' attribute value for a LocalParameter object
Invalid 'sboTerm' attribute value for the <sbml> element
Notes must be placed in the XHTML XML namespace
XML declarations are not permitted in Notes objects
XML DOCTYPE elements are not permitted in Notes objects
Invalid notes content found
Only one Notes subobject is permitted on a given SBML object
Invalid XML namespace for the SBML container element
Missing or inconsistent value for the 'level' attribute
Missing or inconsistent value for the 'version' attribute
Inconsistent or invalid SBML Level/Version for the package namespace declaration
The 'level' attribute must have a positive integer value
The 'version' attribute must have a positive integer value
Invalid attribute found on the SBML container element
An L3 package ns found on the SBML container element
No model definition found
Incorrect ordering of components within the Model object
Empty ListOf___ object found
The presence of a species requires a compartment
Only one of each kind of ListOf___ object is allowed inside a Model object
Only FunctionDefinition, Notes and Annotation objects are allowed in ListOfFunctionDefinitions
Only UnitDefinition, Notes and Annotation objects are allowed in ListOfUnitDefinitions objects
Only Compartment, Notes and Annotation objects are allowed in ListOfCompartments objects
Only Species, Notes and Annotation objects are allowed in ListOfSpecies objects
Only Parameter, Notes and Annotation objects are allowed in ListOfParameters objects
Only InitialAssignment, Notes and Annotation objects are allowed in ListOfInitialAssignments objects
Only Rule, Notes and Annotation objects are allowed in ListOfRules objects
Only Constraint, Notes and Annotation objects are allowed in ListOfConstraints objects
Only Reaction, Notes and Annotation objects are allowed in ListOfReactions objects
Only Event, Notes and Annotation objects are allowed in ListOfEvents objects
A 'conversionFactor' attribute value must reference a Parameter object
Invalid 'timeUnits' attribute value
Invalid 'volumeUnits' attribute value
Invalid 'areaUnits' attribute value
Invalid 'lengthUnits' attribute value
Invalid 'extentUnits' attribute value
Invalid attribute found on the Model object
Invalid attribute found on the ListOfFunctionDefinitions object
Invalid attribute found on the ListOfUnitDefinitions object
Invalid attribute found on the ListOfCompartments object
Invalid attribute found on the ListOfSpecies object
Invalid attribute found on the ListOfParameters object
Invalid attribute found on the ListOfInitialAssignments object
Invalid attribute found on the ListOfRules object
Invalid attribute found on the ListOfConstraints object
Invalid attribute found on the ListOfReactions object
Invalid attribute found on the ListOfEvents object
Invalid 'substanceUnits' attribute value
Invalid expression found in the function definition
Invalid forward reference in the MathML <apply><ci>...</ci></apply> expression
Recursive function definitions are not permitted
Invalid <ci> reference found inside the <lambda> mathematical formula
A function's return type must be either a number or a Boolean
A FunctionDefinition object may contain one <math> element
Invalid attribute found on the FunctionDefinition object
Invalid 'id' attribute value for a UnitDefinition object
Invalid redefinition of built-in type 'substance'
Invalid redefinition of built-in type 'length'
Invalid redefinition of built-in type name 'area'
Invalid redefinition of built-in type name 'time'
Invalid redefinition of built-in type name 'volume'
Must use 'exponent'=1 when defining 'volume' in terms of litres
Must use 'exponent'=3 when defining 'volume' in terms of metres
An empty list of Unit objects is not permitted in a UnitDefinition object
Invalid value for the 'kind' attribute of a UnitDefinition object
Unit attribute 'offset' is not supported in this Level+Version of SBML
Unit name 'Celsius' is not defined in this Level+Version of SBML
A ListOfUnits object must not be empty
At most one ListOfUnits object is allowed inside a UnitDefinition object
Only Unit, Notes and Annotation objects are allowed in ListOfUnits objects
Invalid attribute found on the UnitDefinition object
Invalid attribute found on the ListOfUnits object
Invalid attribute found on the Unit object
Invalid use of the 'size' attribute for a zero-dimensional compartment
Invalid use of the 'units' attribute for a zero-dimensional compartment
Zero-dimensional compartments must be defined to be constant
Invalid value for the 'outside' attribute of a Compartment object
Recursive nesting of compartments via the 'outside' attribute is not permitted
Invalid nesting of zero-dimensional compartments
Invalid value for the 'units' attribute of a one-dimensional compartment
Invalid value for the 'units' attribute of a two-dimensional compartment
Invalid value for the 'units' attribute of a three-dimensional compartment
Invalid value for the 'compartmentType' attribute of a compartment
No units defined for 1-D compartment
No units defined for 2-D compartment
No units defined for 3-D Compartment object
Invalid attribute found on Compartment object
No units defined for Compartment object
Invalid value found for Species 'compartment' attribute
Attribute 'spatialSizeUnits' must not be set if 'hasOnlySubstanceUnits'='true'
Attribute 'spatialSizeUnits' must not be set if the compartment is zero-dimensional
Attribute 'initialConcentration' must not be set if the compartment is zero-dimensional
Invalid value for 'spatialSizeUnits' attribute of a one-dimensional compartment
Invalid value for the 'spatialSizeUnits' attribute of a two-dimensional compartment
Invalid value for the 'spatialSizeUnits' attribute of a three-dimensional compartment
Invalid value for a Species 'units' attribute
Cannot set both 'initialConcentration' and 'initialAmount' attributes simultaneously
Cannot use a non-boundary species in both reactions and rules simultaneously
Cannot use a constant, non-boundary species as a reactant or product
Invalid value for the 'speciesType' attribute of a species
Cannot have multiple species of the same species type in the same compartment
Missing value for the 'compartment' attribute
Attribute 'spatialSizeUnits' is not supported in this Level+Version of SBML
No substance units defined for the species
Invalid value for the 'conversionFactor' attribute
Invalid attribute found on Species object
Invalid value for the 'units' attribute of a Parameter object
No units defined for the parameter
A conversion factor must reference a Parameter object declared to be a constant
Invalid attribute found on Parameter object
Invalid value for the 'symbol' attribute of an InitialAssignment object
Multiple initial assignments for the same 'symbol' value are not allowed
Cannot set a value using both an initial assignment and an assignment rule simultaneously
An InitialAssignment object may contain one <math> element
Invalid attribute found on an InitialAssignment object
InitialAssignment cannot reference 0D compartment
Invalid value for the 'variable' attribute of an AssignmentRule object
Invalid value for the 'variable' attribute of a RateRule object
An assignment rule cannot assign an entity declared to be constant
A rate rule cannot assign an entity declared to be constant
Circular dependencies involving rules and reactions are not permitted
A rule object may contain one <math> element
Invalid attribute found on an AssignmentRule object
Invalid attribute found on a RateRule object
Invalid attribute found on an AlgebraicRule object
Rule cannot reference 0D compartment
Circular dependencies are not permitted in RateRule and KineticLaw objects
A Constraint object's <math> must evaluate to a Boolean value
Subobjects inside the Constraint object are not in the prescribed order
A Constraint's Message subobject must be in the XHTML XML namespace
XML declarations are not permitted within Constraint's Message objects
XML DOCTYPE elements are not permitted within Constraint's Message objects
Invalid content for a Constraint object's Message object
A Constraint object may contain one <math> element
A Constraint object can only have one Message subobject
Invalid attribute found on Constraint object
Cannot have a reaction with neither reactants nor products
Subobjects inside the Reaction object are not in the prescribed order
Reaction components, if present, cannot be empty
Invalid object found in the list of reactants or products
Invalid object found in the list of modifiers
A Reaction object can only contain one of each allowed type of object
Invalid value for the Reaction 'compartment' attribute
Invalid attribute for a Reaction object
Invalid 'species' attribute value in SpeciesReference object
The 'stoichiometry' attribute and StoichiometryMath subobject are mutually exclusive
Invalid attribute found on the SpeciesReference object
Invalid attribute found on the ModifierSpeciesReference object
Unknown species referenced in the kinetic law <math> formula
Incorrect ordering of components in the KineticLaw object
The list of parameters, if present, cannot be empty
Parameters local to a KineticLaw object must have a 'constant' attribute value of 'true'
Attribute 'substanceUnits' is not supported in this Level+Version of SBML
Attribute 'timeUnits' is not supported in this Level+Version of SBML
Only one ListOfLocalParameters object is permitted within a KineticLaw object
Only LocalParameter, Notes and Annotation objects are allowed in ListOfLocalParameter objects
Invalid attribute found on the ListOfLocalParameters object
Only one <math> element is allowed in a KineticLaw object
Unknown species referenced in the StoichiometryMath object's <math> formula
Invalid attribute found on the KineticLaw object
Invalid attribute found on the ListOfSpeciesReferences object
Invalid attribute found on the ListOfModifiers object
Fast attribute deprecated
Invalid attribute found on the LocalParameter object
Invalid attribute found on the LocalParameter object
The Event object is missing a Trigger subobject
A Trigger object's <math> expression must evaluate to a Boolean value
The Event object is missing an EventAssignment subobject
Units referenced by 'timeUnits' attribute are not compatible with units of time
Incorrect ordering of components in Event object
Attribute 'useValuesFromTriggerTime'='false', but the Event object does not define a delay
The use of a Delay object requires the Event attribute 'useValuesFromTriggerTime'
A Trigger object may have one <math> element
A Delay object may have one <math> element
Invalid 'variable' attribute value in Event object
An EventAssignment object cannot assign to a component having attribute 'constant'='true'
An EventAssignment object may have one <math> element
Invalid attribute found on the EventAssignment object
An Event object can only have one Delay subobject
An Event object can only have one ListOfEventAssignments subobject
Only EventAssignment, Notes and Annotation objects are allowed in ListOfEventAssignments
Invalid attribute found on the ListOfEventAssignments object
Invalid attribute found on the Event object
Invalid attribute found on the Trigger object
Invalid attribute found on the Delay object
The Trigger attribute 'persistent' must evaluate to a Boolean value
The Trigger attribute 'initialValue' must evaluate to a Boolean value
An Event object can only have one Priority subobject
A Priority object may have one <math> element
Invalid attribute found on the Priority object
It's best to define a size for every compartment in a model
It's best to define an initial amount or initial concentration for every species in a model
It's best to declare units for every parameter in a model
It's best to declare values for every parameter in a model
Local parameters defined within a kinetic law shadow global object symbols
Cannot convert to SBML Level 1 Version 1
SBML Level 1 does not support events
SBML Level 1 does not support function definitions
SBML Level 1 does not support constraints
SBML Level 1 does not support initial assignments
SBML Level 1 does not support species types
SBML Level 1 does not support compartment types
SBML Level 1 only supports three-dimensional compartments
SBML Level 1 does not support non-integer nor non-rational stoichiometry formulas
SBML Level 1 does not support non-integer 'stoichiometry' attribute values
SBML Level 1 does not support multipliers or offsets in unit definitions
In SBML Level 1, a value for 'compartment' is mandatory in species definitions
SBML Level 1 does not support species 'spatialSizeUnits' settings
SBML Level 1 does not support the 'sboTerm' attribute
SBML Level 1 requires strict unit consistency
SBML Level 1 does not support the 'conversionFactor' attribute
SBML Level 1 does not support the 'compartment' attribute on Reaction objects
Units of extent must be compatible with units of substance
Global units must be refer to unit kind or unitDefinition
The concept of hasOnlySubstanceUnits was not available in SBML Level 1
Avogadro not supported in Levels 2 and 1
SBML Level 2 Version 1 does not support Constraint objects
SBML Level 2 Version 1 does not support InitialAssignment objects
SBML Level 2 Version 1 does not support SpeciesType objects
SBML Level 2 Version 1 does not support CompartmentType objects
SBML Level 2 Version 1 does not support the 'sboTerm' attribute
SBML Level 2 Version 1 does not support the 'id' attribute on SpeciesReference objects
SBML Level 2 Version 1 does not support the 'useValuesFromTriggerTime' attribute
SBML Level 2 Version 1 requires strict unit consistency
SBML Level 2 Version 1 requires that compartments have spatial dimensions of 0-3
Conversion to StoichiometryMath objects not yet supported
SBML Level 2 Version 1 does not support priorities on Event objects
SBML Level 2 Version 1 does not support the 'persistent' attribute on Trigger objects
SBML Level 2 Version 1 does not support the 'initialValue' attribute on Trigger objects
The 'sboTerm' attribute is invalid for this component in SBML Level 2 Version 2
This Level+Version of SBML does not support the 'offset' attribute on Unit objects
This Level+Version of SBML does not support the 'timeUnits' attribute on KineticLaw objects
This Level+Version of SBML does not support the 'substanceUnits' attribute on KineticLaw objects
This Level+Version of SBML does not support the 'useValuesFromTriggerTime' attribute
The allowable 'sboTerm' attribute values for Model objects differ for this SBML Level+Version
SBML Level 2 Version 2 requires strict unit consistency
SBML Level 2 Version 2 requires strict SBO term consistency
Duplicate top-level annotations are invalid in SBML Level 2 Version 2
This Level+Version of SBML does not support the 'offset' attribute on Unit objects
This Level+Version of SBML does not support the 'timeUnits' attribute on KineticLaw objects
This Level+Version of SBML does not support the 'substanceUnits' attribute on KineticLaw objects
This Level+Version of SBML does not support the 'spatialSizeUnit' attribute on Species objects
This Level+Version of SBML does not support the 'timeUnits' attribute on Event objects
This Level+Version of SBML does not support the 'useValuesFromTriggerTime' attribute
The allowable 'sboTerm' attribute values for Model objects differ for this SBML Level+Version
SBML Level 2 Version 3 requires strict unit consistency
SBML Level 2 Version 3 requires strict SBO term consistency
Duplicate top-level annotations are invalid in SBML Level 2 Version 3
This Level+Version of SBML does not support the 'offset' attribute on Unit objects
This Level+Version of SBML does not support the 'timeUnits' attribute on KineticLaw objects
This Level+Version of SBML does not support the 'substanceUnits' attribute on KineticLaw objects
This Level+Version of SBML does not support the 'spatialSizeUnit' attribute on Species objects
This Level+Version of SBML does not support the 'timeUnits' attribute on Event objects
The allowable 'sboTerm' attribute values for Model objects differ for this SBML Level+Version
Duplicate top-level annotations are invalid in SBML Level 2 Version 4
SBML Level 3 Version 1 does not support SpeciesType objects
SBML Level 3 Version 1 does not support CompartmentType objects
This Level+Version of SBML does not support the 'offset' attribute on Unit objects
This Level+Version of SBML does not support the 'timeUnits' attribute on KineticLaw objects
This Level+Version of SBML does not support the 'substanceUnits' attribute on KineticLaw objects
This Level+Version of SBML does not support the 'spatialSizeUnit' attribute on Species objects
This Level+Version of SBML does not support the 'timeUnits' attribute on Event objects
The allowable 'sboTerm' attribute values for Model objects differ for this SBML Level+Version
Duplicate top-level annotations are invalid in SBML Level 3 Version 1
This Level+Version of SBML does not support the 'outside' attribute on Compartment objects
This Level+Version of SBML does not support the StoichiometryMath object
Exponent of type double not supported in Levels 2 and 1.
This MathML element is only permitted in L3V2
Empty 'ListOf' element is only permitted in L3V2
Missing <math> element is only permitted in L3V2
missing <trigger> element is only permitted in L3V2
Interchange of Boolean and numeric values only permitted in L3V2
Conversion will lose attributes only available in L3V2 and higher
Omission of both <listOfReactants> and <listOfProducts> is only valid in L3V2
Some L3V2-specific MathML elements are not permitted in InitialAssignment objects
Conversion of reactions employing the 'fast' attribute is not supported
Unknown Level+Version combination of SBML
Annotation objects on the SBML container element are not permitted in SBML Level 1
Invalid ordering of rules
The SBML document requires an SBML Level 3 package unavailable in this software
The SBML document uses an SBML Level 3 package unavailable in this software
This package expects required to be false
Disallowed value for attribute 'substanceUnits' on KineticLaw object
Disallowed value for attribute 'timeUnits' on KineticLaw object
Only predefined functions are allowed in SBML Level 1 formulas
Invalid 'substanceUnits' attribute value
The <stoichiometryMath> element must contain a <math> element
This Level+Version of SBML does not support the 'timeUnits' attribute on Event objects
Invalid MathML expression
Missing or invalid floating-point number in MathML expression
Missing or invalid integer in MathML expression
Missing or invalid exponential expression in MathML
Missing or invalid rational expression in MathML
Invalid MathML element
Invalid MathML attribute
Use of <csymbol> for 'time' not allowed within FunctionDefinition objects
There must be a <lambda> body within the <math> element of a FunctionDefinition object
Units must refer to valid unit or unitDefinition
RDF missing the <about> tag
RDF empty <about> tag
RDF <about> tag is not metaid
RDF does not contain valid ModelHistory
RDF does not result in a ModelHistory
Annotation must contain element
Nested annotations not allowed
Missing unit declarations on parameters or literal numbers in expression
Unable to verify consistency of units: the unit of time has not been declared
Unable to verify consistency of units: the units of reaction extent have not been declared
Unable to verify consistency of units: encountered a model entity with no declared units
Unable to verify consistency of units: encountered an object with no <math> element
Unrecognized 'sboTerm' attribute value
Obsolete 'sboTerm' attribute value
In SBML Level 1, only three-dimensional compartments are allowed
CompartmentType objects are not available in this Level+Version of SBML
This Level+Version of SBML does not support the 'constant' attribute on this component
Attribute 'metaid' is not available in SBML Level 1
The 'sboTerm' attribute is not available on this component before SBML Level 2 Version 3
Invalid units for a compartment in SBML Level 1
In SBML Level 1, a compartment's volume must be specified
CompartmentType objects are not available in this Level+Version of SBML
Constraint objects are not available in this Level+Version of SBML
Event objects are not available in this Level+Version of SBML
The 'sboTerm' attribute is invalid for this component before Level 2 Version 2
FunctionDefinition objects are not available in this Level+Version of SBML
InitialAssignment objects are not available in this Level+Version of SBML
Attribute 'variable' is not available on this component in this Level+Version of SBML
Attribute 'units' is not available on this component in this Level+Version of SBML
Attribute 'constant' is not available on Species objects in SBML Level 1
Attribute 'spatialSizeUnits' is not available on Species objects in SBML Level 1
Attribute 'speciesType' is not available on Species objects in SBML Level 1
Attribute 'hasOnlySubstanceUnits' is not available on Species objects in SBML Level 1
Attribute 'id' is not available on SpeciesReference objects in SBML Level 1
Attribute 'name' is not available on SpeciesReference objects in SBML Level 1
The SpeciesType object is not supported in SBML Level 1
The StoichiometryMath object is not supported in SBML Level 1
Attribute 'multiplier' on Unit objects is not supported in SBML Level 1
Attribute 'offset' on Unit objects is only available in SBML Level 2 Version 1
No value given for 'spatialDimensions' attribute; assuming a value of 3
Conversion of SBML Level 3 package constructs is not yet supported
The requested SBML Level/Version combination is not known to exist
SBML Level 3 is not yet supported
The comp ns is not correctly declared
Element not in comp namespace
Duplicate 'id' attribute value
Model and ExternalModelDefinitions must have unique ids
Ports must have unique ids
Invalid SId syntax
Invalid submodelRef syntax
Invalid deletion syntax
Invalid conversionFactor syntax
Invalid name syntax
Units of replaced elements should match replacement units.
Only one <listOfReplacedElements> allowed.
Allowed children of <listOfReplacedElements>
Allowed <listOfReplacedElements> attributes
<listOfReplacedElements> must not be empty
Only one <replacedBy> object allowed.
Required comp:required attribute on <sbml>
The comp:required attribute must be Boolean
The comp:required attribute must be 'true' if math changes
The comp:required attribute must be 'false' if math does not change
Only one <listOfModelDefinitions> allowed.
<listOfModelDefinitions> and <listOfExternalModelDefinitions> must not be empty
Only <modelDefinitions> in <listOfModelDefinitions>
Only <externalModelDefinitions> in <listOfExternalModelDefinitions>
Allowed <listOfModelDefinitions> attributes
Allowed <listOfExternalModelDefinitions> attributes
Only one <listOfExternalModelDefinitions> allowed.
The comp:required attribute must be 'true'
Allowed <externalModelDefinitions> core attributes
Allowed <externalModelDefinitions> elements
Allowed <externalModelDefinitions> attributes
External models must be L3
'modelRef' must be the 'id' of a model in the 'source' document
MD5 checksum does not match the 'source' document
The 'comp:source' attribute must be of type 'anyURI'
The 'comp:modelRef' attribute must have the syntax of 'SId'
The 'comp:md5' attribute must have the syntax of 'string'
Circular reference in <externalModelDefinition>
Only one <listOfSubmodels> and one <listOfPorts> allowed
No empty listOf elements allowed
Allowed elements on <listOfSubmodels>
Allowed elements on <listOfPorts>
Allowed attributes on <listOfSubmodels>
Allowed attributes on <listOfPorts>
Allowed core attributes on <submodel>
Allowed elements on <submodel>
Only one <listOfDeletions> on a <submodel> allowed
No empty listOfDeletions elements allowed
Allowed elements on <listOfDeletions>
Allowed <listOfDeletions> attributes
Allowed <submodel> attributes
'comp:modelRef' must conform to SId syntax
'comp:timeConversionFactor' must conform to SId syntax
'comp:extentConversionFactor' must conform to SId syntax
The 'comp:modelRef' attribute must reference a model
The 'comp:modelRef' attribute cannot reference own model
<model> may not reference <submodel> that references itself.
The 'comp:timeConversionFactor' must reference a parameter
The 'comp:extentConversionFactor' must reference a parameter
The 'comp:portRef' attribute must be the 'id' of a <port>
The 'comp:idRef' attribute must be the 'id' of a model element
The 'comp:unitRef' attribute must be the 'id' of a UnitDefinition
The 'comp:metaIdRef' attribute must be the 'metaid' of an object
If <sBaseRef> has a child <sBaseRef> its parent must be a <submodel>
The 'comp:portRef' attribute must have the syntax of an SBML SId
The 'comp:idRef' attribute must have the syntax of an SBML SId
The 'comp:unitRef' attribute must have the syntax of an SBML SId
The 'comp:metaIdRef' attribute must have the syntax of an XML ID
Only one <sbaseRef>
The spelling 'sbaseRef' is deprecated
An SBaseRef must reference an object.
An SBaseRef must reference only one other object.
Objects may not be referenced by mutiple SBaseRef constructs.
Port must reference an object
Port must reference only one other object.
Allowed attributes on a Port
Port definitions must be unique.
Deletion must reference an object
Deletion must reference only one other object.
Allowed attributes on a Deletion
ReplacedElement must reference an object
ReplacedElement must reference only one other object.
Allowed attributes on <replacedElement>
The 'comp:submodelRef' attribute must point to a <submodel>
The 'comp:deletion' attribute must point to a <deletion>
The 'comp:conversionFactor attribute must point to a <parameter>
No <replacedElement> refer to same object
No <replacedElement> with deletion and conversionfactor
ReplacedBy must reference an object
ReplacedBy must reference only one other object.
Allowed attributes on <replacedBy>
The 'comp:submodelRef' attribute must point to a <submodel>
Replaced classes must match.
Replaced IDs must be replaced with IDs.
Replaced metaids must be replaced with metaids.
Replaced package IDs must be replaced with package IDs.
Unresolved reference.
No model in referenced document.
Referenced <externalModelDefinition> unresolvable.
Model failed to flatten.
Flat model not valid.
Line numbers unreliable.
Flattening not implemented for required package.
Flattening not implemented for unrequired package.
Flattening not implemented for unrequired package.
Flattening not implemented for required package.
Flattening reference may come from package.
The performDeletions functions is deprecated.
The performReplacementsAndConversions fuctions is deprecated.
Element deleted before a subelement could be replaced.
The 'comp:idRef' attribute must be the 'id' of a model element
The 'comp:metaIdRef' attribute must be the 'metaid' of a model element
The fbc ns is not correctly declared
Element not in fbc namespace
Duplicate 'id' attribute value
Invalid 'id' attribute
Required fbc:required attribute on <sbml>
The fbc:required attribute must be Boolean
The fbc:required attribute must be 'false'
One of each list of allowed
ListOf elements cannot be empty
Allowed elements on ListOfFluxBounds
Allowed elements on ListOfObjectives
Allowed attributes on ListOfFluxBounds
Allowed attributes on ListOfObjectives
Type of activeObjective attribute
ActiveObjective must reference Objective
'Strict' attribute required on <model>
'Strict' attribute must be Boolean
Allowed elements on ListOfGeneProducts
Allowed attributes on ListOfGeneProducts
Species allowed attributes
Charge must be integer
Chemical formula must be string
<fluxBound> may only have 'metaId' and 'sboTerm' from L3 namespace
<fluxBound> may only have <notes> and <annotations> from L3 Core
Invalid attribute found on <fluxBound> object
Datatype for 'fbc:reaction' must be SIdRef
The attribute 'fbc:name' must be of the data type string
The attribute 'fbc:operation' must be of data type FbcOperation
The attribute 'fbc:value' must be of the data type double
'fbc:reaction' must refer to valid reaction
Conflicting set of FluxBounds for a reaction
<objective> may only have 'metaId' and 'sboTerm' from L3 namespace
<objective> may only have <notes> and <annotations> from L3 Core
Invalid attribute found on <objective> object
The attribute 'fbc:name' must be of the data type string
The attribute 'fbc:type' must be of data type FbcType.
An <objective> must have one <listOfFluxObjectives>.
<listOfFluxObjectives> subobject must not be empty
Invalid element found in <listOfFluxObjectives>
<listOfFluxObjectives> may only have 'metaId' and 'sboTerm' from L3 core
<fluxObjective> may only have 'metaId' and 'sboTerm' from L3 namespace
<fluxObjective> may only have <notes> and <annotations> from L3 Core
Invalid attribute found on <fluxObjective> object
The attribute 'fbc:name' must be of the data type string
Datatype for 'fbc:reaction' must be SIdRef
'fbc:reaction' must refer to valid reaction
The attribute 'fbc:coefficient' must be of the data type double
The 'fbc:coefficient' must be declared when strict
One GeneProductAssociation in a Reaction
Fbc attributes on a Reaction
LowerBound must be SIdRef
UpperBound must be SIdRef
LowerBound must point to Parameter
UpperBound must point to Parameter
Reaction must have bounds when strict
Reaction bounds constant when strict
Reaction bounds must have values when strict
Reaction bounds not assigned when strict
LowerBound cannot be INF when strict
UpperBound cannot be -INF when strict
LowerBound less than upperBound when strict
SpeciesReferences must be constant when strict
Stoichiometry of SpeciesReferences must be real valued when strict
SpeciesReference not target of InitialAssignment when strict
Allowed core attributes on <GeneProductAssociation>
Allowed core elements on <GeneProductAssociation>
Allowed fbc attributes on <GeneProductAssociation>
'fbc:id' must have SId syntax
<GeneProductAssociation> must contain one concrete object
'fbc:name' must be string
Allowed core attributes on <GeneProductRef>
Allowed core elements on <GeneProductRef>
Allowed fbc attributes on <GeneProductRef>
'fbc:geneProduct' must be SIdRef
'fbc:geneProduct' must point to existing <GeneProduct>
Allowed core attributes on <And>
Allowed core attributes on <And>
<And> must have at least two child elements
Allowed core attributes on <Or>
Allowed core elements on <Or>
<Or> must have at least two child elements
Allowed core attributes on <GeneProduct>
Allowed core elements on <GeneProduct>
Allowed fbc attributes on <GeneProduct>
'fbc:label' must be string
'fbc:label' must be unique
'fbc:name' must be string
'fbc:associatedSpecies' must point to existing <species>
The qual ns is not correctly declared
Element not in qual namespace
FunctionTerm should return Boolean
CSymbol time or delay not allowed
Duplicate 'id' attribute value
Required qual:required attribute on <sbml>
The qual:required attribute must be Boolean
The qual:required attribute must be 'true' if math changes
Only one <listOfTransitions> or <listOfQualitativeSpecies> allowed.
Empty <listOfTransitions> or <listOfQualitativeSpecies> not allowed.
Elements allowed on <listOfTransitions>.
Elements allowed on <listOfTransitions>.
Attributes allowed on <listOfQualitativeSpecies>.
Attributes allowed on <listOfTransitions>.
Core attributes allowed on <qualitativeSpecies>.
Elements allowed on <qualitativeSpecies>.
Attributes allowed on <qualitativeSpecies>.
Attribute 'constant' on <qualitativeSpecies> must be Boolean.
Attribute 'name' on <qualitativeSpecies> must be string.
Attribute 'initialLevel' on <qualitativeSpecies> must be integer.
Attribute 'maxLevel' on <qualitativeSpecies> must be integer.
Attribute 'compartment' on <qualitativeSpecies> must reference compartment.
Attribute 'initialLevel' on <qualitativeSpecies> cannot exceed maxLevel.
Constant <qualitativeSpecies> cannot be an Output.
A <qualitativeSpecies> can only be assigned once.
Attribute 'initialLevel' on <qualitativeSpecies> cannot be negative.
Attribute 'maxLevel' on <qualitativeSpecies> cannot be negative.
Core attributes allowed on <transition>.
Elements allowed on <transition>.
Attributes allowed on <transition>.
Attribute 'name' on <transition> must be string.
ListOf elements on <transition>.
ListOf elements on <transition> not empty.
Elements on <listOfInputs>.
Elements on <listOfOutputs>.
Elements on <listOfFunctionTerms>.
Attributes allowed on <listOfInputs>.
Attributes allowed on <listOfOutputs>.
Attributes allowed on <listOfFunctionTerms>.
<listOfFunctionTerms> cannot make qualitativeSpecies exceed maxLevel.
<listOfFunctionTerms> cannot make qualitativeSpecies negative.
Core attributes allowed on <input>.
Elements allowed on <input>.
Attributes allowed on <input>.
Attribute 'name' on <input> must be string.
Attribute 'sign' on <input> must be enum.
Attribute 'transitionEffect' on <input> must be enum.
Attribute 'thresholdLevel' on <input> must be non negative integer.
Attribute 'qualitativeSpecies' on <input> must refer to existing
Constant <input> cannot be consumed.
Attribute 'thresholdLevel' on <input> must be non negative integer.
Core attributes allowed on <output>.
Elements allowed on <output>.
Attributes allowed on <output>.
Attribute 'name' on <output> must be string.
Attribute 'transitionEffect' on <output> must be enum.
Attribute 'outputLevel' on <output> must be non negative integer.
Attribute 'qualitativeSpecies' on <output> must refer to existing
Constant 'qualitativeSpecies' cannot be <output>
<output> being produced must have level
Attribute 'outputLevel' on <output> must be non negative integer.
Core attributes allowed on <defaultTerm>.
Elements allowed on <defaultTerm>.
Attributes allowed on <defaultTerm>.
Attribute 'resultLevel' on <defaultTerm> must be non negative integer.
Attribute 'resultLevel' on <defaultTerm> must be non negative integer.
Core attributes allowed on <functionTerm>.
Elements allowed on <functionTerm>.
Attributes allowed on <functionTerm>.
Only one <math> on <functionTerm>.
Attribute 'resultLevel' on <functionTerm> must be non negative integer.
Attribute 'resultLevel' on <functionTerm> must be non negative integer.
The Groups namespace is not correctly declared.
Element not in Groups namespace
Duplicate 'id' attribute value
Invalid SId syntax
Required groups:required attribute on <sbml>
The groups:required attribute must be Boolean
The groups:required attribute must be 'false'
Elements allowed on <model>.
No Empty ListOf elements allowed on <Model>.
Core elements allowed on <model>.
Core attributes allowed on <model>.
Core attributes allowed on <group>.
Core elements allowed on <group>.
Attributes allowed on <group>.
Elements allowed on <group>.
Kind attribute must be GroupKind.
Name attribute must be String.
No Empty ListOf elements allowed on <group>.
Core elements allowed on <listOfMembers>.
Core attributes allowed on <listOfMembers>.
Attributes allowed on <listOfMembers>.
Name attribute must be String.
Consistent references by multiple <member> objects.
Circular references by multiple <member> objects.
Core attributes allowed on <member>.
Core elements allowed on <member>.
Attributes allowed on <member>.
Name attribute must be String.
Attribute 'idRef' must point to SBase object.
Attribute 'metaIdRef' must point to SBase object.
Attribute 'idRef' must be type 'SId'.
Attribute 'metaIdRef' must be type 'ID'.
The layout ns is not correctly declared
Element not in layout namespace
Duplicate 'id' attribute value
'id' attribute incorrect syntax
'xsi:type' allowed locations
'xsi:type' attribute incorrect syntax
Required layout:required attribute on <sbml>
The layout:required attribute must be Boolean
The layout:required attribute must be 'false'
Only one listOfLayouts on <model>
ListOf elements cannot be empty
Allowed elements on ListOfLayouts
Allowed attributes on ListOfLayouts
Allowed elements on Layout
Allowed core attributes on Layout
Only one each listOf on <layout>
ListOf elements cannot be empty
<layout> must have 'id' and may have 'name'
'name' must be string
Attributes allowed on <listOfCompartmentGlyphs>.
Elements allowed on <listOfCompartmentGlyphs>.
Attributes allowed on <listOfSpeciesGlyphs>.
Elements allowed on <listOfSpeciesGlyphs>.
Attributes allowed on <listOfReactionGlyphs>.
Elements allowed on <listOfReactionGlyphs>.
Attributes allowed on <listOfAdditionalGraphicalObjectGlyphs>.
Elements allowed on <listOfAdditionalGraphicalObjectGlyphs>.
Layout must have <dimensions>.
Attributes allowed on <listOfTextGlyphs>.
Elements allowed on <listOfTextGlyphs>.
Core elements allowed on <graphicalObject>.
Core attributes allowed on <graphicalObject>.
Layout elements allowed on <graphicalObject>.
Layout attributes allowed on <graphicalObject>.
Layout 'metaidRef' must be IDREF.
Layout 'metaidRef' must reference existing object.
A <graphicalObject> must contain a <boundingBox>.
Core elements allowed on <compartmentGlyph>.
Core attributes allowed on <compartmentGlyph>.
Layout elements allowed on <compartmentGlyph>.
Layout attributes allowed on <compartmentGlyph>.
Layout 'metaidRef' must be IDREF.
Layout 'metaidRef' must reference existing object.
CompartmentGlyph 'compartment' must have SIdRef syntax.
CompartmentGlyph compartment must reference existing compartment.
CompartmentGlyph cannot reference two objects.
CompartmentGlyph order must be double.
Core elements allowed on <speciesGlyph>.
Core attributes allowed on <speciesGlyph>.
Layout elements allowed on <speciesGlyph>.
Layout attributes allowed on <speciesGlyph>.
Layout 'metaidRef' must be IDREF.
Layout 'metaidRef' must reference existing object.
SpeciesGlyph 'species' must have SIdRef syntax.
SpeciesGlyph species must reference existing species.
SpeciesGlyph cannot reference two objects.
Core elements allowed on <reactionGlyph>.
Core attributes allowed on <reactionGlyph>.
Layout elements allowed on <reactionGlyph>.
Layout attributes allowed on <reactionGlyph>.
Layout 'metaidRef' must be IDREF.
Layout 'metaidRef' must reference existing object.
ReactionGlyph 'reaction' must have SIdRef syntax.
ReactionGlyph reaction must reference existing reaction.
ReactionGlyph cannot reference two objects.
Allowed elements on ListOfSpeciesReferenceGlyphs
Allowed attributes on ListOfSpeciesReferenceGlyphs
ListOfSpeciesReferenceGlyphs not empty
Core elements allowed on <generalGlyph>.
Core attributes allowed on <generalGlyph>.
Layout elements allowed on <generalGlyph>.
Layout attributes allowed on <generalGlyph>.
Layout 'metaidRef' must be IDREF.
Layout 'metaidRef' must reference existing object.
GeneralGlyph 'reference' must have SIdRef syntax.
GeneralGlyph 'reference' must reference existing element.
GeneralGlyph cannot reference two objects.
Allowed elements on ListOfReferenceGlyphs
Allowed attributes on ListOfReferenceGlyphs
Allowed attributes on ListOfSubGlyphs
Core elements allowed on <textGlyph>.
Core attributes allowed on <textGlyph>.
Layout elements allowed on <textGlyph>.
Layout attributes allowed on <textGlyph>.
Layout 'metaidRef' must be IDREF.
Layout 'metaidRef' must reference existing object.
TextGlyph 'originOfText' must have SIdRef syntax.
TextGlyph 'originOfText' must reference existing element.
TextGlyph cannot reference two objects.
TextGlyph 'graphicalObject' must have SIdRef syntax.
TextGlyph 'graphicalObject' must reference existing element.
TextGlyph 'text' must be string.
Core elements allowed on <speciesReferenceGlyph>.
Core attributes allowed on <speciesReferenceGlyph>.
Layout elements allowed on <speciesReferenceGlyph>.
Layout attributes allowed on <speciesReferenceGlyph>.
Layout 'metaidRef' must be IDREF.
Layout 'metaidRef' must reference existing object.
SpeciesReferenceGlyph 'speciesReference' must have SIdRef syntax.
SpeciesReferenceGlyph 'speciesReference' must reference existing element.
SpeciesReferenceGlyph cannot reference two objects.
SpeciesReferenceGlyph 'speciesGlyph' must have SIdRef syntax.
SpeciesReferenceGlyph 'speciesGlyph' must reference existing element.
SpeciesReferenceGlyph 'role' must be string from enumeration.
Core elements allowed on <referenceGlyph>.
Core attributes allowed on <referenceGlyph>.
Layout elements allowed on <referenceGlyph>.
Layout attributes allowed on <referenceGlyph>.
Layout 'metaidRef' must be IDREF.
Layout 'metaidRef' must reference existing object.
ReferenceGlyph 'reference' must have SIdRef syntax.
ReferenceGlyph 'reference' must reference existing element.
ReferenceGlyph cannot reference two objects.
ReferenceGlyph 'glyph' must have SIdRef syntax.
ReferenceGlyph 'glyph' must reference existing element.
ReferenceGlyph 'role' must be string.
Core elements allowed on <point>.
Core attributes allowed on <point>.
Layout attributes allowed on <point>.
Layout 'x', 'y' and 'z' must be double.
Core elements allowed on <boundingBox>.
Core attributes allowed on <boundingBox>.
Layout elements allowed on <boundingBox>.
Layout attributes allowed on <boundingBox>.
Layout consistent dimensions on a <boundingBox>
Core elements allowed on <curve>.
Core attributes allowed on <curve>.
Layout elements allowed on <curve>.
Layout attributes allowed on <curve>.
Allowed attributes on ListOfCurveSegments
Allowed elements on ListOfCurveSegments
No empty ListOfCurveSegments
Core elements allowed on <lineSegment>.
Core attributes allowed on <lineSegment>.
Layout elements allowed on <lineSegment>.
Layout attributes allowed on <lineSegment>.
Core elements allowed on <cubicBezier>.
Core attributes allowed on <cubicBezier>.
Layout elements allowed on <cubicBezier>.
Layout attributes allowed on <cubicBezier>.
Core elements allowed on <dimensions>.
Core attributes allowed on <dimensions>.
Layout attributes allowed on <dimensions>.
Layout 'width', 'height' and 'depth' must be double.
Enumerator Meaning
General error not falling into another category below.
Category of errors that can only occur during attempted translation from one Level/Version of SBML to another. This particular category applies to errors encountered while trying to convert a model from SBML Level 2 to SBML Level 1.
Category of errors that can only occur during attempted translation from one Level/Version of SBML to another. This particular category applies to errors encountered while trying to convert a model to SBML Level 2 Version 1.
Category of errors that can only occur during attempted translation from one Level/Version of SBML to another. This particular category applies to errors encountered while trying to convert a model to SBML Level 2 Version 2.
Category of errors that can occur while validating general SBML constructs. With respect to the SBML specification, these concern failures in applying the validation rules numbered 2xxxx in the Level 2 Versions 2–4 and Level 3 Versions 1–2 specifications.
Category of errors that can occur while validating symbol identifiers in a model. With respect to the SBML specification, these concern failures in applying the validation rules numbered 103xx in the Level 2 Versions 2–4 and Level 3 Versions 1–2 specifications.
Category of errors that can occur while validating the units of measurement on quantities in a model. With respect to the SBML specification, these concern failures in applying the validation rules numbered 105xx in the Level 2 Versions 2–4 and Level 3 Versions 1–2 specifications.
Category of errors that can occur while validating MathML formulas in a model. With respect to the SBML specification, these concern failures in applying the validation rules numbered 102xx in the Level 2 Versions 2–4 and Level 3 Versions 1–2 specifications.
Category of errors that can occur while validating SBO identifiers in a model. With respect to the SBML specification, these concern failures in applying the validation rules numbered 107xx in the Level 2 Versions 2–4 and Level 3 Versions 1–2 specifications.
Error in the system of equations in the model: the system is overdetermined, therefore violating a tenet of proper SBML. With respect to the SBML specification, this is validation rule #10601 in the SBML Level 2 Versions 2–4 and Level 3 Versions 1–2 specifications.
Category of errors that can only occur during attempted translation from one Level/Version of SBML to another. This particular category applies to errors encountered while trying to convert a model to SBML Level 2 Version 3.
Category of warnings about recommended good practices involving SBML and computational modeling. (These are tests performed by libSBML and do not have equivalent SBML validation rules.)
Category of errors that can occur while validating libSBML's internal representation of SBML constructs. (These are tests performed by libSBML and do not have equivalent SBML validation rules.)
Category of errors that can only occur during attempted translation from one Level/Version of SBML to another. This particular category applies to errors encountered while trying to convert a model to SBML Level 2 Version 4.

Category of errors that can only occur during attempted translation from one Level/Version of SBML to another. This particular category applies to errors encountered while trying to convert a model to SBML Level 3 Version 1.

Public Member Functions

unsigned int getCategory () const
 Returns the category of this error.
 
const std::string & getCategoryAsString () const
 Returns a string describing the category of this error.
 
unsigned int getColumn () const
 Returns the column number in the XML input near where the error, warning or other diagnostic occurred.
 
unsigned int getErrorId () const
 Returns the identifier of this error.
 
unsigned int getErrorIdOffset () const
 Returns libSBML's internal numerical offset for the error code associated with this error.
 
unsigned int getLine () const
 Returns the line number in the XML input near where the error, warning or other diagnostic occurred.
 
const std::string & getMessage () const
 Returns the message text of this error.
 
const std::string & getPackage () const
 Returns the SBML Level 3 package extension (if any) that logged this error.
 
unsigned int getSeverity () const
 Returns the severity of this error.
 
const std::string & getSeverityAsString () const
 Returns a string describing the severity level of this error.
 
const std::string & getShortMessage () const
 Returns a brief message for this error.
 
bool isError () const
 Predicate returning true or false depending on whether this error is a significant error.
 
bool isFatal () const
 Predicate returning true or false depending on whether this error is a fatal run-time error.
 
bool isInfo () const
 Predicate returning true or false depending on whether this error object is for information purposes only.
 
bool isInternal () const
 Predicate returning true or false depending on whether this error resulted from an internal program error.
 
bool isSystem () const
 Predicate returning true or false depending on whether this error was generated by the operating system.
 
bool isValid () const
 Predicate returning true or false depending on whether this error resulted from a problem or whether it was logged as an unknown error.
 
bool isWarning () const
 Predicate returning true or false depending on whether this error object is a warning.
 
bool isXML () const
 Predicate returning true or false depending on whether this error resulted from a problem in the XML input (e.g., an XML syntax error).
 
 SBMLError (const unsigned int errorId=0, const unsigned int level=SBML_DEFAULT_LEVEL, const unsigned int version=SBML_DEFAULT_VERSION, const std::string details="", const unsigned int line=0, const unsigned int column=0, const unsigned int severity=LIBSBML_SEV_UNKNOWN, const unsigned int category=LIBSBML_CAT_SBML, const std::string package="core", const unsigned int pkgVersion=1)
 Creates a new SBMLError to report that something occurred during SBML processing.
 
virtual int setCategory (unsigned int category)
 Sets the category of this error.
 
virtual int setCategoryString (const std::string &categoryString)
 Sets the category string of this error.
 
int setColumn (unsigned int column)
 Sets the column number where this error occurred.
 
virtual int setErrorId (unsigned int errorId)
 Sets the identifier of this error.
 
int setLine (unsigned int line)
 Sets the line number where this error occurred.
 
virtual int setMessage (const std::string &message)
 Sets the message text of this error.
 
virtual int setSeverity (unsigned int severity)
 Sets the severity of this error.
 
virtual int setSeverityString (const std::string &severityString)
 Sets the severity of this error.
 
virtual int setShortMessage (const std::string &shortMessage)
 Sets a brief message for this error.
 

Static Public Member Functions

static const std::string getStandardMessage (const int code)
 Returns a copy of the message string associated with the given predefined XMLError code.
 

Constructor & Destructor Documentation

◆ SBMLError()

SBMLError::SBMLError ( const unsigned int  errorId = 0,
const unsigned int  level = SBML_DEFAULT_LEVEL,
const unsigned int  version = SBML_DEFAULT_VERSION,
const std::string  details = "",
const unsigned int  line = 0,
const unsigned int  column = 0,
const unsigned int  severity = LIBSBML_SEV_UNKNOWN,
const unsigned int  category = LIBSBML_CAT_SBML,
const std::string  package = "core",
const unsigned int  pkgVersion = 1 
)

Creates a new SBMLError to report that something occurred during SBML processing.

When a libSBML operation on SBML content results in a warning, error or other diagnostic, the issue is reported as an SBMLError object. SBMLError objects have identification numbers to indicate the nature of the exception. The argument errorId to this constructor can be (but does not have to be) a value from this set of constants. If it is one of the predefined error identifiers, the SBMLError class assumes the error is a low-level system or SBML layer error and prepends a built-in, predefined error message to any string passed in the argument details to this constructor. In addition, all the predefined error identifiers have associated values for the severity and category codes, and these fields are filled-in using the libSBML defaults for each different error identifier.

If the error identifier errorId is a number greater than 99999, the SBMLError class assumes the error was generated from another part of the software and does not do additional filling in of values beyond the default in the constructor itself. This allows SBMLError to serve as a base class for other errors, such as for user-defined validation rules (see Validator). Callers should fill in all the parameters with suitable values if generating errors with codes greater than 99999 to make maximum use of the SBMLError facilities.

As mentioned above, there are additional constants defined for standard severity and standard category codes, and every predefined error in libSBML has an associated value for severity and category taken from these predefined sets. These constants have symbol names prefixed with LIBSBML_SEV_ and LIBSBML_CAT_, respectively. If the value of errorId is one of the standard error codes, callers do not need to fill in severity and category in a call to this constructor. Conversely, if errorId is not an existing SBML-level error code, callers can use other values for severity and category.

Please see the top of the documentation for SBMLError for a longer discussion of the possible error codes, their meanings, and their applicability to different combinations of Level+Version of SBML.

Parameters
errorIdan unsigned int, the identification number of the error.
levelthe SBML Level of the SBML model.
versionthe SBML Version within the Level of the SBML model.
detailsa string containing additional details about the error. If the error code in errorId is one that is recognized by SBMLError, the given message is appended to a predefined message associated with the given code. If the error code is not recognized, the message is stored as-is as the text of the error.
linean unsigned int, the line number at which the error occured.
columnan unsigned int, the column number at which the error occured.
severityan integer indicating severity of the error.
categoryan integer indicating the category to which the error belongs.
packagethe SBML Level package involved.
pkgVersionthe version of the package.
Documentation note:
The native C++ implementation of this method defines a default argument value. In the documentation generated for different libSBML language bindings, you may or may not see corresponding arguments in the method declarations. For example, in Java and C#, a default argument is handled by declaring two separate methods, with one of them having the argument and the other one lacking the argument. However, the libSBML documentation will be identical for both methods. Consequently, if you are reading this and do not see an argument even though one is described, please look for descriptions of other variants of this method near where this one appears in the documentation.

Member Function Documentation

◆ getCategory()

unsigned int XMLError::getCategory ( ) const
inherited

Returns the category of this error.

XMLError defines an enumeration of category codes for the XML layer. Applications that build on XMLError by subclassing it may add their own categories with numbers higher than those in the predefined set of category codes.

Categories can be used to partition errors into distinct groups. Among other things, this can be used to prevent id conflicts by uniquely identifying an XMLError by both id and category.

Returns
the category of this XMLError.
See also
getSeverity()
getCategoryAsString()

◆ getCategoryAsString()

const std::string & XMLError::getCategoryAsString ( ) const
inherited

Returns a string describing the category of this error.

XMLError defines an enumeration of category codes for the XML layer. Applications that build on XMLError by subclassing it may add their own categories with numbers higher than those in the predefined set of category codes.

Categories can be used to partition errors into distinct groups. Among other things, this can be used to prevent id conflicts by uniquely identifying an XMLError by both id and category.

Returns
string representing the category of this XMLError.
See also
getCategory()
getSeverityAsString()

◆ getColumn()

unsigned int XMLError::getColumn ( ) const
inherited

Returns the column number in the XML input near where the error, warning or other diagnostic occurred.

We say "near where the problem occurred", because many factors affect how accurate the line/column information ultimately is. For example, sometimes, the underlying XML parsers can only report such information for the parent XML element where an error occurs, and not for the specific point where the problem occurs. In other situations, some parsers report invalid line and/or column numbers altogether. If this occurs, libSBML sets the line and/or column number in the XMLError object to either 0 or the value of the maximum unsigned long integer representable on the platform where libSBML is running. The probability that a true line or column number in an SBML model would equal this value is vanishingly small; thus, if an application encounters these values in an XMLError object, it can assume no valid line/column number could be provided by libSBML in that situation.

Returns
the column number.
See also
getLine()

◆ getErrorId()

unsigned int XMLError::getErrorId ( ) const
inherited

Returns the identifier of this error.

Returns
the error code for this error.
See also
getMessage()
getShortMessage()
getCategory()
getSeverity()

◆ getErrorIdOffset()

unsigned int XMLError::getErrorIdOffset ( ) const
inherited

Returns libSBML's internal numerical offset for the error code associated with this error.

In the SBML Level 3 package specifications, package validation rules are identified by 5-digit numbers prefixed with the nickname of the package itself—e.g., “comp-10101”, “fbc-20301”, etc. Historically, libSBML reported error codes as pure integers, and some application software systems make decisions based on the numerical values of the error codes. To permit these applications to continue to function in this fashion, libSBML internally continues to maintain error identifiers as pure integers. To handle the possibility that errors may come from package extensions, libSBML uses numerical offsets added to the internal error codes. These offsets add two leading digits to the regular 5-digit error codes; for example, “comp” error codes are stored as 1010101, 1020102, etc. The offset in this case is 1000000. Another package will have the offset 2000000, yet another will have 3000000, etc.

This method returns the integer offset in this error's error code. Calling applications can get the 5-digit package-specific number for a given error code by subtracting the offset from the value reported by getErrorId():

getErrorId() - getErrorIdOffset()

When libSBML produces error messages, it combines the text string returned by getPackage() with the subtracted value of the error code, to produce a text string of the form “comp-10101”.

See also
getErrorId()
getPackage()

◆ getLine()

unsigned int XMLError::getLine ( ) const
inherited

Returns the line number in the XML input near where the error, warning or other diagnostic occurred.

We say "near where the problem occurred", because many factors affect how accurate the line/column information ultimately is. For example, sometimes, the underlying XML parsers can only report such information for the parent XML element where an error occurs, and not for the specific point where the problem occurs. In other situations, some parsers report invalid line and/or column numbers altogether. If this occurs, libSBML sets the line and/or column number in the XMLError object to either 0 or the value of the maximum unsigned long integer representable on the platform where libSBML is running. The probability that a true line or column number in an SBML model would equal this value is vanishingly small; thus, if an application encounters these values in an XMLError object, it can assume no valid line/column number could be provided by libSBML in that situation.

Returns
the line number.
See also
getColumn()

◆ getMessage()

const string & XMLError::getMessage ( ) const
inherited

Returns the message text of this error.

The message associated with an error object describes the nature of the problem. The message returned by this method is generally longer and clearer than the message returned by XMLError::getShortMessage(), but not in all cases.

Callers may use XMLError::getCategory() and XMLError::getSeverity() to obtain additional information about the nature and severity of the problem.

Returns
the message text.
See also
getErrorId()
getShortMessage()
getCategory()
getSeverity()

◆ getPackage()

const std::string & XMLError::getPackage ( ) const
inherited

Returns the SBML Level 3 package extension (if any) that logged this error.

Each error logged by an libSBML extension for SBML Level 3 packages includes a record of the package that logged it. The field is a simple text string. If the string is empty or has the value "core", then the error came from libSBML core; otherwise, the string will be the short-form name of the package (e.g., "comp" for the Hierarchical Model Composition package).

Returns
a string representing the name of the package that logged this error. If the error did not come from a package extension, the value will be the empty string or "core".

◆ getSeverity()

unsigned int XMLError::getSeverity ( ) const
inherited

Returns the severity of this error.

XMLError defines an enumeration of severity codes for the XML layer. Applications that build on XMLError by subclassing it may add their own severity codes with numbers higher than those in the predefined set of severity codes.

Returns
the severity of this XMLError.
See also
getSeverityAsString()
getCategory()

◆ getSeverityAsString()

const std::string & XMLError::getSeverityAsString ( ) const
inherited

Returns a string describing the severity level of this error.

XMLError defines an enumeration of severity codes for the XML layer. Applications that build on XMLError by subclassing it may add their own severity codes with numbers higher than those in the predefined set of severity codes.

Returns
string representing the severity of this XMLError.
See also
getSeverity()
getCategoryAsString()

◆ getShortMessage()

const string & XMLError::getShortMessage ( ) const
inherited

Returns a brief message for this error.

This is an alternative error message that, in general, is as short as the authors could make it. However, brevity is often inversely proportional to clarity, so this short message may not be sufficiently informative to understand the nature of the error. Calling applications may wish to check XMLError::getMessage() in addition or instead.

Returns
the short error message text.
See also
getErrorId()
getMessage()
getCategory()
getSeverity()

◆ getStandardMessage()

const string XMLError::getStandardMessage ( const int  code)
staticinherited

Returns a copy of the message string associated with the given predefined XMLError code.

Parameters
codethe error code whose message is sought; it must be a predefined value from the set of predefined error identifiers.

◆ isError()

bool XMLError::isError ( ) const
inherited

Predicate returning true or false depending on whether this error is a significant error.

This is equivalent to obtaining the severity code from an XMLError object (via XMLError::getSeverity()) and then comparing it to the value from the set of predefined severity codes.

Returns
true if this error is an error, false otherwise.
See also
isInfo()
isWarning()
isFatal()

◆ isFatal()

bool XMLError::isFatal ( ) const
inherited

Predicate returning true or false depending on whether this error is a fatal run-time error.

This is equivalent to obtaining the severity code from an XMLError object (via XMLError::getSeverity()) and then comparing it to the value from the set of predefined severity codes.

Returns
true if this error is a fatal error, false otherwise.
See also
isInfo()
isWarning()
isError()

◆ isInfo()

bool XMLError::isInfo ( ) const
inherited

Predicate returning true or false depending on whether this error object is for information purposes only.

This is equivalent to obtaining the severity code from an XMLError object (via XMLError::getSeverity()) and then comparing it to the value from the set of predefined severity codes.

Returns
true if this XMLError is for informational purposes only, false otherwise.
See also
isWarning()
isError()
isFatal()

◆ isInternal()

bool XMLError::isInternal ( ) const
inherited

Predicate returning true or false depending on whether this error resulted from an internal program error.

This is equivalent to obtaining the category identifier from an XMLError object (via XMLError::getCategory()) and then comparing it to the value from the set of predefined category codes.

Returns
a boolean indicating whether the error is an internal error.
See also
isSystem()
isXML()

◆ isSystem()

bool XMLError::isSystem ( ) const
inherited

Predicate returning true or false depending on whether this error was generated by the operating system.

This is equivalent to obtaining the category identifier from an XMLError object (via XMLError::getCategory()) and then comparing it to the value from the set of predefined category codes.

Returns
boolean indicating whether the error is a system error.
See also
isInternal()
isXML()

◆ isValid()

bool XMLError::isValid ( ) const
inherited

Predicate returning true or false depending on whether this error resulted from a problem or whether it was logged as an unknown error.

This is equivalent to obtaining the error identifier from an XMLError object (via XMLError::getErrorId()) and then comparing it to the value XMLUnknownError or UnknownError from the set of predefined error codes.

Returns
a boolean indicating whether the error is a valid error (true) or whether it is unknown (false).

◆ isWarning()

bool XMLError::isWarning ( ) const
inherited

Predicate returning true or false depending on whether this error object is a warning.

This is equivalent to obtaining the severity code from an XMLError object (via XMLError::getSeverity()) and then comparing it to the value from the set of predefined severity codes.

Returns
true if this error is a warning, false otherwise.
See also
isInfo()
isError()
isFatal()

◆ isXML()

bool XMLError::isXML ( ) const
inherited

Predicate returning true or false depending on whether this error resulted from a problem in the XML input (e.g., an XML syntax error).

This is equivalent to obtaining the category identifier from an XMLError object (via XMLError::getCategory()) and then comparing it to the value from the set of predefined category codes.

Returns
a boolean indicating whether the error is an XML catetory error.
See also
isInternal()
isSystem()

◆ setCategory()

int XMLError::setCategory ( unsigned int  category)
virtualinherited

Sets the category of this error.

XMLError defines an enumeration of category codes for the XML layer. Applications that build on XMLError by subclassing it may add their own categories with numbers higher than those in the predefined set of category codes.

Categories can be used to partition errors into distinct groups. Among other things, this can be used to prevent id conflicts by uniquely identifying an XMLError by both id and category.

See also
setSeverity()

◆ setCategoryString()

int XMLError::setCategoryString ( const std::string &  categoryString)
virtualinherited

Sets the category string of this error.

XMLError defines an enumeration of category codes for the XML layer. Applications that build on XMLError by subclassing it may add their own categories with numbers higher than those in the predefined set of category codes. If so, 'setCategoryString' must be used to set the name of this category for users.

Note that this function does not set the category code itself.

Returns
integer value indicating success/failure of the function. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:

Categories can be used to partition errors into distinct groups. Among other things, this can be used to prevent id conflicts by uniquely identifying an XMLError by both id and category.

See also
setSeverity()

◆ setColumn()

int XMLError::setColumn ( unsigned int  column)
inherited

Sets the column number where this error occurred.

Parameters
columnan unsigned int, the column number to set.
Returns
integer value indicating success/failure of the function. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:
See also
setLine(unsigned int line)

◆ setErrorId()

int XMLError::setErrorId ( unsigned int  errorId)
virtualinherited

Sets the identifier of this error.

Returns
integer value indicating success/failure of the function. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:
See also
setMessage()
setShortMessage()
setCategory()
setSeverity()

◆ setLine()

int XMLError::setLine ( unsigned int  line)
inherited

Sets the line number where this error occurred.

Parameters
linean unsigned int, the line number to set.
Returns
integer value indicating success/failure of the function. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:
See also
setColumn(unsigned int column)

◆ setMessage()

int XMLError::setMessage ( const std::string &  message)
virtualinherited

Sets the message text of this error.

The message associated with an error object describes the nature of the problem. The message set by this method is generally longer and clearer than the message returned by XMLError::setShortMessage(), but not in all cases.

Callers may use XMLError::setCategory() and XMLError::setSeverity() to set additional information about the nature and severity of the problem.

Returns
integer value indicating success/failure of the function. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:
See also
setErrorId()
setShortMessage()
setCategory()
setSeverity()

◆ setSeverity()

int XMLError::setSeverity ( unsigned int  severity)
virtualinherited

Sets the severity of this error.

XMLError defines an enumeration of severity codes for the XML layer. Applications that build on XMLError by subclassing it may add their own severity codes with numbers higher than those in the predefined set of severity codes.

See also
setCategory()

◆ setSeverityString()

int XMLError::setSeverityString ( const std::string &  severityString)
virtualinherited

Sets the severity of this error.

XMLError defines an enumeration of severity codes for the XML layer. Applications that build on XMLError by subclassing it may add their own severity codes with numbers higher than those in the predefined set of severity codes. If so, 'setSeverityString' must be used to set the name of this category for users.

Note that this function does not set the severity code itself.

Returns
integer value indicating success/failure of the function. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:
See also
setCategory()

◆ setShortMessage()

int XMLError::setShortMessage ( const std::string &  shortMessage)
virtualinherited

Sets a brief message for this error.

This is an alternative error message that, in general, is as short as the authors could make it. However, brevity is often inversely proportional to clarity, so this short message may not be sufficiently informative to understand the nature of the error. Setting the longer message with setMessage() in addition may be advisable.

Returns
integer value indicating success/failure of the function. This particular function only does one thing irrespective of user input or object state, and thus will only return a single value:
See also
setErrorId()
setMessage()
setCategory()
setSeverity()