Skip to main content
. Author manuscript; available in PMC: 2017 May 31.
Published in final edited form as: J Integr Bioinform. 2015 Sep 4;12(2):266. doi: 10.2390/biecoll-jib-2015-266
General rules concerning basic XML requirements
10101. graphic file with name nihms859661ig11.jpg An SBML XML file must use UTF-8 as the character encoding. More precisely, the encoding attribute of the XML declaration at the beginning of the XML data stream cannot have a value other than “ UTF-8“. An example valid declaration is <?xml version=“1.0” encoding=“UTF-8”?>. (References: SBML L3V1 Section 4.1.)
10102. graphic file with name nihms859661ig11.jpg An SBML XML document must not contain undefined elements or attributes in the SBML Level 3 Core namespace or in a SBML Level 3 package namespace. Documents containing unknown elements or attributes placed in an SBML namespace do not conform to the SBML specification. (References: SBML L3V1 Section 4.1.)
10104. graphic file with name nihms859661ig11.jpg An SBML document must conform to the rules of XML well-formedness defined in the XML 1.0 specification. These rules define the basic structural and syntactic constraints with which all XML documents must comply. (References: SBML L3V1 Section 4.1.)
General rules for MathML content in SBML
10201. graphic file with name nihms859661ig11.jpg Wherever MathML content appears in an SBML document, the MathML content must be placed within a math element, and that math element must be either explicitly or implicitly declared to be in the XML namespace “http://www.w3.org/1998/Math/MathML”. (References: SBML L3V1 Section 3.4.)
10202. graphic file with name nihms859661ig11.jpg The following is a list of the only MathML 2.0 elements permitted in SBML Level 3: abs, and, annotation, annotation-xml, apply, arccosh, arccos, arccoth, arccot, arccsch, arccsc, arcsech, arcsec, arcsinh, arcsin, arctanh, arctan, bvar, ceiling, ci, cn, cosh, cos, coth, cot, csch, csc, csymbol, degree, divide, eq, exponentiale, exp, factorial, false, floor, geq, gt, infinity, lambda, leq, ln, logbase, log, lt, minus, neq, notanumber, not, or, otherwise, piecewise, piece, pi, plus, power, root, sech, sec, semantics, sep, sinh, sin, tanh, tan, times, true, and xor. (References: SBML L3V1 Section 3.4.1.)
10203. graphic file with name nihms859661ig11.jpg In the SBML subset of MathML 2.0, the MathML attribute encoding is only permitted on csymbol, annotation and annotation-xml. No other MathML elements may have an encoding attribute. (References: SBML L3V1 Section 3.4.1.)
10204. graphic file with name nihms859661ig11.jpg In the SBML subset of MathML 2.0, the MathML attribute definitionURL is only permitted on ci, csymbol and semantics. No other MathML elements may have a definitionURL attribute. (References: SBML L3V1 Section 3.4.1.)
10205. graphic file with name nihms859661ig11.jpg In SBML Level 3, the only values permitted for the attribute definitionURL on a csymbol are “http://www.sbml.org/sbml/symbols/time”, “http://www.sbml.org/sbml/symbols/delay” and “http://www.sbml.org/sbml/symbols/avogadro”. (References: SBML L3V1 Section 3.4.6.)
10206. graphic file with name nihms859661ig11.jpg In the SBML subset of MathML 2.0, the MathML attribute type is only permitted on the cn construct. No other MathML elements may have a type attribute. (References: SBML L3V1 Section 3.4.1.)
10207. graphic file with name nihms859661ig11.jpg The only permitted values for the attribute type on MathML cn elements are “ e-notation“, “ real“, “ integer“, and “ rational“. (References: SBML L3V1 Section 3.4.2.)
10208. graphic file with name nihms859661ig11.jpg MathML lambda elements are only permitted as either the first element inside the math element of a FunctionDefinition object, or as the first element of a semantics element immediately inside the math element of a FunctionDefinition object. MathML lambda elements may not be used elsewhere in an SBML model. (References: SBML L3V1 Sections 3.4.1 and 4.3.2.)
10209. graphic file with name nihms859661ig11.jpg The arguments of the MathML logical operators and, not, or, and xor must evaluate to boolean values. (References: SBML L3V1 Section 3.4.9.)
10210. graphic file with name nihms859661ig11.jpg The arguments to the following MathML constructs must evaluate to numeric values (more specifically, they must evaluate to MathML real, integer, rational, or “e-notation” numbers, or the time, delay or avogadro csymbol elements): abs, arccosh, arccos, arccoth, arccot, arccsch, arccsc, arcsech, arcsec, arcsinh, arcsin, arctanh, arctan, ceiling, cosh, cos, coth, cot, csch, csc, divide, exp, factorial, floor, ln, log, minus, plus, power, root, sech, sec, sinh, sin, tanh, tan, and times. (References: SBML L3V1 Section 3.4.9.)
10211. graphic file with name nihms859661ig11.jpg The values of all arguments to MathML eq and neq operators must evaluate to the same type, either all boolean or all numeric. (References: SBML L3V1 Section 3.4.9.)
10212. graphic file with name nihms859661ig11.jpg The types of the values within MathML piecewise operators must all be consistent; i.e., the set of expressions that make up the first arguments of the piece and otherwise operators within the same piecewise operator must all return values of the same type. (References: SBML L3V1 Section 3.4.9.)
10213. graphic file with name nihms859661ig11.jpg The second argument of a MathML piece operator must evaluate to a boolean value. (References: SBML L3V1 Section 3.4.9.)
10214. graphic file with name nihms859661ig11.jpg Outside of a FunctionDefinition object, if a MathML ci element is the first element within a MathML apply element, then the ci element’s value can only be chosen from the set of identifiers of FunctionDefinition objects defined in the enclosing SBML Model object. (References: SBML L3V1 Section 4.3.2.)
10215. graphic file with name nihms859661ig11.jpg Outside of a FunctionDefinition object, if a MathML ci element is not the first element within a MathML apply, then the ci element’s value may only be chosen from the set of identifiers of the Species, Compartment, Parameter, SpeciesReference or Reaction objects defined in the enclosing Model object. (References: SBML L3V1 Section 3.4.3.)
10216. graphic file with name nihms859661ig11.jpg The id attribute value of a LocalParameter object defined within a KineticLaw object may only be used in MathML ci elements within the math element of that same KineticLaw; in other words, the identifier of the LocalParameter object is not visible to other parts of the model outside of that KineticLaw instance. (References: SBML L3V1 Sections 3.3.1, 3.4.3 and 4.11.5.)
10217. graphic file with name nihms859661ig11.jpg The MathML formulas in the following elements must yield numeric values (that is, MathML real, integer or “e-notation” numbers, or the time, delay or avogadro csymbol): math in KineticLaw, math in InitialAssignment, math in AssignmentRule, math in RateRule, math in AlgebraicRule, math in Event Delay, and math in EventAssignment. (References: SBML L3V1 Sections 4.8, 4.9, 4.11 and 4.12.)
10218. graphic file with name nihms859661ig11.jpg A MathML operator must be supplied the number of arguments appropriate for that operator. (References: SBML L3V1 Section 3.4.1.)
10219. graphic file with name nihms859661ig11.jpg The number of arguments used in a call to a function defined by a FunctionDefinition object must equal the number of arguments accepted by that function, or in other words, must equal the number of MathML bvar elements inside the lambda element of the function definition. (References: SBML L3V1 Section 4.3.4.)
10220. graphic file with name nihms859661ig11.jpg The SBML attribute units may only be added to MathML cn elements; no other MathML elements are permitted to have the units attribute. (References: SBML L2V3 Section 3.4.2.)
10221. graphic file with name nihms859661ig11.jpg The value of the SBML attribute units on a MathML cn element must be chosen from either the set of identifiers of UnitDefinition objects in the model, or the set of base units defined by SBML. (References: SBML L3V1 Section 3.4.2.)
General rules for identifiers
10301. graphic file with name nihms859661ig11.jpg The value of the attribute id on every instance of the following classes of objects must be unique across the set of all id attribute values of all such objects in a model: Model, FunctionDefinition, Compartment, Species, Reaction, SpeciesReference, ModifierSpeciesReference, Event, and Parameter. (References: SBML L3V1 Section 3.3.)
10302. graphic file with name nihms859661ig11.jpg The value of the attribute id of every UnitDefinition object must be unique across the set of all the UnitDefinition objects in the entire model. (References: SBML L3V1 Sections 3.3 and 4.4.)
10303. graphic file with name nihms859661ig11.jpg The value of the attribute id of every LocalParameter object defined within a KineticLaw object must be unique across the set of all such parameter definitions within that particular KineticLaw instance. (References: SBML L3V1 Sections 3.3.1 and 4.11.5.)
10304. graphic file with name nihms859661ig11.jpg The value of the attribute variable of every AssignmentRule and RateRule objects must be unique across the set of all AssignmentRule and RateRule objects in a model. In other words, a given model component cannot be the subject of both an assignment rule and a rate rule simultaneously. (References: SBML L3V1 Section 4.9.3.)
10305. graphic file with name nihms859661ig11.jpg In every Event object, the value of the attribute variable within each EventAssignment subobject must be unique across the set of all such EventAssignment subobjects within that particular Event object. In other words, a single Event cannot make more than one assignment to the same model component. (References: SBML L3V1 4.12.5.)
10306. graphic file with name nihms859661ig11.jpg An identifier used as the value of the attribute variable of an EventAssignment object cannot also appear as the value of the variable attribute in an AssignmentRule object. In other words, a given model component cannot be the subject of both an assignment rule and an assignment by an event. (References: SBML L3V1 Section 4.12.5.)
10307. graphic file with name nihms859661ig11.jpg Every metaid attribute value must be unique across the set of all metaid values in a model. (References: SBML L3V1 Sections 3.2.1 and 3.1.6.)
10308. graphic file with name nihms859661ig11.jpg The value of the attribute sboTerm must always conform to the syntax of the SBML data type SBOTerm, which is a string consisting of the characters ‘S’, ‘B’, ‘O’, ’:’, followed by exactly seven digits. (References: SBML L3V1 Section 3.1.11.)
10309. graphic file with name nihms859661ig11.jpg The value of a metaid attribute must always conform to the syntax of the XML data type ID. (References: SBML L3V1 Sections 3.2.1 and 3.1.6.)
10310. graphic file with name nihms859661ig11.jpg The value of an id attribute must always conform to the syntax of the SBML data type SId. (References: SBML L3V1 Section 3.1.7.)
10311. graphic file with name nihms859661ig11.jpg Unit identifiers (that is, the values of the id attribute on UnitDefinition, the units attribute on Compartment, the units attribute on Parameter, the substanceUnits attribute on Species, the SBML units attribute on MathML ci elements, and the substanceUnits, volumeUnits, areaUnits, lengthUnits, timeUnits and extentUnits on Model) must always conform to the syntax of the SBML data type UnitSId. (References: SBML L3V1 Section 3.1.9.)
10312. graphic file with name nihms859661ig11.jpg The value of a name attribute must always conform to the syntax of type string. (References: SBML L3V1 Section 3.1.1.)
General rules for annotation elements
10401. graphic file with name nihms859661ig11.jpg Every top-level XML element within an Annotation object must have an XML namespace declared. (References: SBML L3V1 Section 3.2.4.)
10402. graphic file with name nihms859661ig11.jpg A given XML namespace cannot be the namespace of more than one top-level element within a given Annotation object. (References: SBML L3V1 Section 3.2.4.)
10404. graphic file with name nihms859661ig11.jpg A given SBML element may contain at most one Annotation subobject. (References: SBML L3V1 Section 3.2.)
General rules for units
10501. graphic file with name nihms859661ig12.jpg The units of the expressions used as arguments to a function call should match the units expected for the arguments of that function. (References: SBML L3V1 Section 3.4.)
10503. graphic file with name nihms859661ig12.jpg The unit of measurement associated with the mathematical formula in the MathML math element of every KineticLaw object in a model should be identical to all KineticLaw objects in the model. (References: SBML L3V1 Section 3.4.)
10511. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in an AssignmentRule object refers to a Compartment object, the unit of measurement associated with the mathematical expression in the rule’s MathML math element should be consistent with the unit of that compartment’s size. (References: SBML L3V1 Section 4.9.3.)
10512. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in an AssignmentRule object refers to a Species object, the unit of measurement associated with the mathematical expression in the rule’s MathML math element should be consistent with the unit of that species’ quantity. (References: SBML L3V1 Section 4.9.3.)
10513. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in an AssignmentRule object refers to a Parameter object, the unit of measurement associated with the mathematical expression in the rule’s MathML math element should be consistent with the unit declared for that parameter’s value. (References: SBML L3V1 Section 4.9.3.)
10514. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in an AssignmentRule object refers to a SpeciesReference object, the unit of measurement associated with the rule’s right-hand side should be consistent with the unit of stoichiometry, that is, dimensionless. (References: SBML L3V1 Section 4.9.3.)
10521. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in an InitialAssignment object refers to a Compartment object, the unit of measurement associated with the InitialAssignment’s math expression should be consistent with the unit of that compartment’s size. (References: SBML L3V1 Section 4.8.)
10522. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in an InitialAssignment object refers to a Species object, the unit of measurement associated with the InitialAssignment’s math expression should be consistent with the unit of that species’ quantity. (References: SBML L3V1 Section 4.8.)
10523. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in an InitialAssignment object refers to a Parameter object, the unit of measurement associated with the InitialAssignment’s math expression should be consistent with the unit declared for that parameter’s value. (References: L2V2 SBML L3V1 Section 4.8.)
10524. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in an InitialAssignment object refers to a SpeciesReference object, the unit of measurement associated with the InitialAssignment’s math expression should be consistent with the unit of stoichiometry, that is, dimensionless. (References: SBML L3V1 Section 4.8.)
10531. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in a RateRule object refers to a Compartment object, the unit of measurement associated with the RateRule’s math expression should be consistent with {unit of compartment size}/{unit of time}. (References: SBML L3V1 Sections 4.5.4, 4.2.4 and 4.9.4.)
10532. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in a RateRule object refers to a Species object, the unit of measurement associated with the RateRule’s math expression should be consistent with {unit of species quantity}/{unit of time}. (References: SBML L3V1 Sections 4.6.5, 4.2.4 and 4.9.4.)
10533. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in a RateRule object refers to a Parameter object, the unit of measurement associated with the RateRule’s math expression should be consistent with {parameter’s units}/{unit of time}. (References: SBML L3V1 Sections 4.7.3, 4.2.4 and 4.9.4.)
10534. graphic file with name nihms859661ig12.jpg When the value of the attribute variable in a RateRule object refers to a SpeciesReference object, the unit of measurement associated with the RateRule’s math expression should be consistent with {unit derived from dimensionless}/{unit of time}. (References: SBML L3V1 Sections 4.11.3, 4.2.4 and 4.9.4.)
10541. graphic file with name nihms859661ig12.jpg In a KineticLaw object, the unit of measurement associated with the formula in the KineticLaw’s math expression should be equal to {unit of reaction extent}/{unit of time}. (References: SBML L3V1 Sections 4.11.7, 4.2.4 and 4.9.4.)
10542. graphic file with name nihms859661ig12.jpg For every Species object produced or consumed in a reaction (that is, referenced by a SpeciesReference object), the unit of measurement of the species’ substance should be consistent with the unit of extent for the model times the unit of the conversion factor for that species. More precisely, the product of the units indicated by the Model object’s extentUnits and the conversionFactor attribute for that particular Species (whether the attribute is set directly on the Species object or inherited from the enclosing Model object) should be consistent with the unit specified by that Species object’s substanceUnits attribute value. (References: SBML L3V1 Section 4.2.6.)
10551. graphic file with name nihms859661ig12.jpg In an Event object, the unit of measurement associated with a Delay object’s math expression object should be identical to the unit indicated by the Model object’s timeUnits attribute. (References: SBML L3V1 Section 4.12.4.)
10561. graphic file with name nihms859661ig12.jpg When the value of the attribute variable of an EventAssignment object is the identifier of a Compartment object, the unit of measurement associated with the EventAssignment’s math expression should be consistent with the unit of that compartment’s size. (References: SBML L3V1 Section 4.12.5.)
10562. graphic file with name nihms859661ig12.jpg When the value of the attribute variable of an EventAssignment object is the identifier of a Species object, the unit of measurement associated with the EventAssignment’s math expression should be consistent with the unit of that species’ size. (References: SBML L3V1 Section 4.12.5.)
10563. graphic file with name nihms859661ig12.jpg When the value of the attribute variable of an EventAssignment object is the identifier of a Parameter object, the unit of measurement associated with the EventAssignment’s math expression should be consistent with the unit declared for that parameter’s value. (References: SBML L3V1 Section 4.12.5.)
10564. graphic file with name nihms859661ig12.jpg When the value of the attribute variable of an EventAssignment object is the identifier of a SpeciesReference object, the unit of measurement associated with the EventAssignment’s math expression should be consistent with the unit of stoichiometry, i.e., dimensionless. (References: SBML L3V1 Section 4.12.5.)
10565. graphic file with name nihms859661ig12.jpg In an Event object, the unit of measurement associated with a Priority object’s math expression object should be dimensionless. (References: SBML L3V1 Section 4.12.3.)
General rules for model definitions
10601. graphic file with name nihms859661ig11.jpg A system of equations created from an SBML model must not be overdetermined. (References: SBML L3V1 Section 4.9.5.)
General rules for SBO usage
10701. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a Model object should be an SBO identifier referring to an interaction framework defined in SBO. That is, the value should be a term derived from SBO:0000231, “interaction”. (References: SBML L3V1 Section 5.)
10702. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a FunctionDefinition object should be an SBO identifier referring to a mathematical expression. That is, the value should be a term derived from SBO:0000064, “mathematical expression”. (References: SBML L3V1 Section 5.)
10703. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a Parameter object should be an SBO identifier referring to a quantitative parameter. That is, the value should be a term derived from SBO:0000002, “quantitative parameter”. (References: SBML L3V1 Section 5.)
10704. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on an InitialAssignment object should be an SBO identifier referring to a mathematical expression. That is, the value should be a term derived from SBO:0000064, “mathematical expression”. (References: SBML L3V1 Section 5.)
10705. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a AlgebraicRule, RateRule or AssignmentRule object should be an SBO identifier referring to a mathematical expression. That is, the value should be a term derived from SBO:0000064, “mathematical expression”. (References: SBML L3V1 Section 5.)
10706. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a Constraint object should be an SBO identifier referring to a mathematical expression. That is, the value should be a term derived from SBO:0000064, “mathematical expression”. (References: SBML L3V1 Section 5.)
10707. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a Reaction object should be an SBO identifier referring to an interaction framework. That is, the value should be a term derived from SBO:0000231, “interaction”. (References: SBML L3V1 Section 5.)
10708. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a SpeciesReference or a ModifierSpeciesReference object should be an SBO identifier referring to a participant role. That is, the value should be a term derived from SBO:0000003, “participant role”. The appropriate term depends on whether the entity is a reactant, product or modifier. (References: SBML L3V1 Section 5.)
10709. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a KineticLaw object should be an SBO identifier referring to a rate law. That is, the value should be a term derived from SBO:0000001, “rate law”. (References: SBML L3V1 Section 5.)
10710. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on an Event object should be an SBO identifier referring to a mathematical expression. That is, the value should be a term derived from SBO:0000231, “interaction”. (References: SBML L3V1 Section 5.)
10711. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on an EventAssignment object should be an SBO identifier referring to a mathematical expression. That is, the value should be a term derived from SBO:0000064, “mathematical expression”. (References: SBML L3V1 Section 5.)
10712. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a Compartment object should be an SBO identifier referring to a material entity. That is, the value should be a term derived from SBO:0000240, “material entity”. (References: SBML L3V1 Section 5.)
10713. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a Species object should be an SBO identifier referring to a material entity. That is, the value should be a term derived from SBO:0000240, “material entity”. (References: SBML L3V1 Section 5.)
10716. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a Trigger object should be an SBO identifier referring to a mathematical expression. That is, the value should be a term derived from SBO:0000064, “mathematical expression”. (References: SBML L3V1 Section 5.)
10717. graphic file with name nihms859661ig12.jpg The value of the attribute sboTerm on a Delay object should be an SBO identifier referring to a mathematical expression. That is, the value should be a term derived from SBO:0000064, “mathematical expression”. (References: SBML L3V1 Section 5.)
General rules for notes elements
10801. graphic file with name nihms859661ig11.jpg The contents of a Notes object must be explicitly placed in the XHTML XML namespace. (References: SBML L3V1 Section 3.2.3.)
10802. graphic file with name nihms859661ig11.jpg The contents of a Notes object must not contain an XML declaration, i.e., a string of the form “ <?xml version=“1.0” encoding=“UTF-8”?>“ or similar. (References: SBML L3V1 Section 3.2.3.)
10803. graphic file with name nihms859661ig11.jpg The content of a Notes object must not contain an XML DOCTYPE declaration, i.e., a string beginning with the characters “ <!DOCTYPE“. (References: SBML L3V1 Section 3.2.3.)
10805. graphic file with name nihms859661ig11.jpg A given SBML object may contain at most one Notes subobject. (References: SBML L3V1 Section 3.2.)
Rules for the <sbml> container element
20101. graphic file with name nihms859661ig11.jpg The sbml container element must declare the XML Namespace for SBML, and this declaration must be consistent with the values of the level and version attributes on the sbml element. (References: SBML L3V1 Section 4.1.)
20102. graphic file with name nihms859661ig11.jpg The sbml container element must declare the SBML Level using the attribute level, and this declaration must be consistent with the XML Namespace declared for the sbml element. (References: SBML L3V1 Section 4.1.)
20103. graphic file with name nihms859661ig11.jpg The sbml container element must declare the SBML Version using the attribute version, and this declaration must be consistent with the XML Namespace declared for the sbml element. (References: SBML L3V1 Section 4.1.)
20104. graphic file with name nihms859661ig11.jpg The sbml container element must declare the XML Namespace for any SBML Level 3 packages used within the SBML document. This declaration must be consistent with the values of the level and version attributes on the sbml element. (References: SBML L3V1 Section 4.1.2.)
20105. graphic file with name nihms859661ig11.jpg The attribute level on the sbml container element must have a value of type positiveInteger. (References: SBML L3V1 Section 3.1.4.)
20106. graphic file with name nihms859661ig11.jpg The attribute version on the sbml container element must have a value of type positiveInteger. (References: SBML L3V1 Section 3.1.4.)
20107. graphic file with name nihms859661ig11.jpg The attribute xmlns on the sbml container element must have a value of type string. (References: SBML L3V1 Section 3.1.1.)
20108. graphic file with name nihms859661ig11.jpg The sbml object may have the optional attributes metaid and sboTerm. (References: SBML L3V1 Section 4.2.8.)
Rules for Model components
20201. graphic file with name nihms859661ig11.jpg An SBML document must contain a Model object. (References: SBML L3V1 Section 4.1).
20203. graphic file with name nihms859661ig11.jpg The various listOf container objects in a Model instance are optional, but if present, such container elements must not be empty. Specifically, if any of the following is present in a Model, it must not be empty: ListOfFunctionDefinitions, ListOfUnitDefinitions, ListOfCompartments, ListOfSpecies, ListOfParameters, ListOfInitialAssignments, ListOfRules, ListOfConstraints, ListOfReactions and ListOfEvents. (References: SBML L3V1 Section 4.2.)
20204. graphic file with name nihms859661ig11.jpg If a model defines any Species object, then the model must also define at least one Compartment object. This is an implication of the fact that the compartment attribute on Species is not optional. (References: SBML L3V1 Section 4.6.3.)
20205. graphic file with name nihms859661ig11.jpg There may be at most one instance of each of the following kind of object in a Model object: ListOfFunctionDefinitions, ListOfUnitDefinitions, ListOfCompartments, ListOfSpecies, ListOfParameters, ListOfInitialAssignments, ListOfRules, ListOfConstraints, ListOfReactions and ListOfEvents. (References: SBML L3V1 Section 4.2.)
20206. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfFunctionDefinitions container object may only contain FunctionDefinition objects. (References: SBML L3V1 Section 4.2.8.)
20207. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfUnitDefinitions container object may only contain UnitDefinition objects. (References: SBML L3V1 Section 4.2.8.)
20208. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfCompartments container object may only contain Compartment objects. (References: SBML L3V1 Section 4.2.8.)
20209. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfSpecies container object may only contain Species objects. (References: SBML L3V1 Section 4.2.8.)
20210. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfParameters container object may only contain Parameter objects. (References: SBML L3V1 Section 4.2.8.)
20211. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfInitialAssignments container object may only contain InitialAssignment objects. (References: SBML L3V1 Section 4.2.8.)
20212. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfRules container object may only contain AssignmentRule, AlgebraicRule and/or RateRule objects. (References: SBML L3V1 Section 4.2.8.)
20213. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfConstraints container object may only contain Constraint objects. (References: SBML L3V1 Section 4.2.8.)
20214. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfReactions container object may only contain Reaction objects. (References: SBML L3V1 Section 4.2.8.)
20215. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfEvents container object may only contain Event objects. (References: SBML L3V1 Section 4.2.8.)
20216. graphic file with name nihms859661ig11.jpg The value of the attribute conversionFactor on a Model object must be the identifier of an existing Parameter object defined in the Model object’s ListOfParameters. (References: SBML L3V1 Section 4.2.)
20217. graphic file with name nihms859661ig13.jpg The value of the attribute timeUnits on a Model object should be either the units “ second“, “ dimensionless“, or the identifier of a UnitDefinition object based on these units. (References: SBML L3V1 Section 4.2.4.)
20218. graphic file with name nihms859661ig13.jpg The value of the attribute volumeUnits on a Model object should be either the units “ litre“, “ dimensionless“, or the identifier of a UnitDefinition object based on these units or a unit derived from “ metre“ (with an exponent of “ 3“). (References: SBML L3V1 Section 4.2.5.)
20219. graphic file with name nihms859661ig13.jpg The value of the attribute areaUnits on a Model object should be either “ dimensionless“ or the identifier of a UnitDefinition object based on “ dimensionless“ or a unit derived from “ metre“ (with an exponent of “ 2“). (References: SBML L3V1 Section 4.2.5.)
20220. graphic file with name nihms859661ig13.jpg The value of the attribute lengthUnits on a Model object should be either the units “ metre“, “ dimensionless“, or the identifier of a UnitDefinition object based on these units. (References: SBML L3V1 Section 4.2.5.)
20221. graphic file with name nihms859661ig13.jpg The value of the attribute extentUnits on a Model object should be either the units “ mole“, “ item“, “ avogadro“, “ dimensionless“, “ kilogram“, “ gram“, or the identifier of a UnitDefinition object based on these units. (References: SBML L3V1 Section 4.2.6.)
20222. graphic file with name nihms859661ig11.jpg A Model object may only have the following attributes, all of which are optional: metaid, sboTerm, id, name, substanceUnits, timeUnits, volumeUnits, areaUnits, lengthUnits, extentUnits and conversionFactor. No other attributes from the SBML Level 3 Core namespace are permitted on a Model object. (References: SBML L3V1 Section 4.2.)
20223. graphic file with name nihms859661ig11.jpg A ListOfFunctionDefinitions object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfFunctionDefinitions object. (References: SBML L3V1 Section 4.2.8.)
20224. graphic file with name nihms859661ig11.jpg A ListOfUnitDefinitions object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfUnitDefinitions object. (References: SBML L3V1 Section 4.2.8.)
20225. graphic file with name nihms859661ig11.jpg A ListOfCompartments object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfCompartments object. (References: SBML L3V1 Section 4.2.8.)
20226. graphic file with name nihms859661ig11.jpg A ListOfSpecies object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfSpecies object. (References: SBML L3V1 Section 4.2.8.)
20227. graphic file with name nihms859661ig11.jpg A ListOfParameters object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfParameters object. (References: SBML L3V1 Section 4.2.8.)
20228. graphic file with name nihms859661ig11.jpg A ListOfInitialAssignments object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfInitialAssignments object. (References: SBML L3V1 Section 4.2.8.)
20229. graphic file with name nihms859661ig11.jpg A ListOfRules object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfRules object. (References: SBML L3V1 Section 4.2.8.)
20230. graphic file with name nihms859661ig11.jpg A ListOfConstraints object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfConstraints object. (References: SBML L3V1 Section 4.2.8.)
20231. graphic file with name nihms859661ig11.jpg A ListOfReactions object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfReactions object. (References: SBML L3V1 Section 4.2.8.)
20232. graphic file with name nihms859661ig11.jpg A ListOfEvents object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfEvents object. (References: SBML L3V1 Section 4.2.8.)
Rules for FunctionDefinition components
20301. graphic file with name nihms859661ig11.jpg The top-level element within the MathML math element in a FunctionDefinition object must be either exactly one MathML lambda element, or exactly one MathML semantics element containing exactly one lambda element. (References: SBML L3V1 Section 4.3.2.)
20303. graphic file with name nihms859661ig11.jpg Inside the lambda MathML element within a FunctionDefinition object, the identifier of that object (i.e., value of the FunctionDefinition’s id attribute) cannot appear as the value of a ci element. Such usage would entail a recursive function call, but SBML functions are not permitted to be recursive. (References: SBML L3V1 Sections 3.4.3 and 4.3.2.)
20304. graphic file with name nihms859661ig11.jpg Inside the lambda MathML element within a FunctionDefinition object, if a ci element is not the first element within a MathML apply, then the ci element’s value may only be an identifier provided as the value of a bvar element declared in that lambda. This restriction also applies to the csymbol objects for time and avogadro. In other words, all model quantities and variables referenced inside a function definition must be passed as arguments to that function. (References: SBML L3V1 Sections 3.4.3 and 4.3.2.)
20305. graphic file with name nihms859661ig11.jpg The type of value returned by a FunctionDefinition object’s math MathML expression must be either boolean or numeric. (References: SBML L3V1 Section 3.4.9.)
20306. graphic file with name nihms859661ig11.jpg A FunctionDefinition object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.3.)
20307. graphic file with name nihms859661ig11.jpg A FunctionDefinition object must have the required attribute id, and may have the optional attributes metaid, sboTerm and name. No other attributes from the SBML Level 3 Core namespace are permitted on a FunctionDefinition object. (References: SBML L3V1 Section 4.3.)
Rules for Unit and UnitDefinition components
20401. graphic file with name nihms859661ig11.jpg The value of the attribute id in a UnitDefinition object must conform to the syntax of the SBML data type UnitSId and not be identical to any unit predefined in SBML. That is, the identifier must not be the same as any of the following base units: “ ampere“, “ avogadro“, “ becquerel“, “ candela“, “ coulomb“, “ dimensionless“, “ farad“, “ gram“, “ gray“, “ henry“, “ hertz“, “ item“, “ joule“, “ katal“, “ kelvin“, “ kilogram“, “ litre“, “ lumen“, “ lux“, “ metre“, “ mole“, “ newton“, “ ohm“, “ pascal“, “ radian“, “ second“, “ siemens“, “ sievert“, “ steradian“, “ tesla“, “ volt“, “ watt“, or “ weber“. (References: SBML L3V1 Section 4.4.2.)
20410. graphic file with name nihms859661ig11.jpg The value of the attribute kind of a Unit object must conform to the syntax of the SBML data type UnitSId and may only take on the value of a base unit defined in SBML; that is, the value must be one of the following units: “ ampere“, “ avogadro“, “ becquerel“, “ candela“, “ coulomb“, “ dimensionless“, “ farad“, “ gram“, “ gray“, “ henry“, “ hertz“, “ item“, “ joule“, “ katal“, “ kelvin“, “ kilogram“, “ litre“, “ lumen“, “ lux“, “ metre“, “ mole“, “ newton“, “ ohm“, “ pascal“, “ radian“, “ second“, “ siemens“, “ sievert“, “ steradian“, “ tesla“, “ volt“, “ watt“, or “ weber“. The SBML unit system is not hierarchical, and user-defined units cannot be defined using other user-defined units. (References: SBML L3V1 Section 4.4.2.)
20413. graphic file with name nihms859661ig11.jpg The ListOfUnits container object in a UnitDefinition object is optional, but if present, it must not be empty. (References: SBML L3V1 Section 4.4.)
20414. graphic file with name nihms859661ig11.jpg There may be at most one ListOfUnits container objects in a UnitDefinition object. (References: SBML L3V1 Section 4.4.)
20415. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfUnits container object may only contain Unit objects. (References: SBML L3V1 Section 4.2.8.)
20416. graphic file with name nihms859661ig11.jpg The attribute exponent on a Unit object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
20417. graphic file with name nihms859661ig11.jpg The attribute scale on a Unit object must have a value of type int. (References: SBML L3V1 Section 3.1.3.)
20418. graphic file with name nihms859661ig11.jpg The attribute multiplier on a Unit object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
20419. graphic file with name nihms859661ig11.jpg A UnitDefinition object must have the required attribute id and may have the optional attributes metaid, sboTerm and name. No other attributes from the SBML Level 3 Core namespace are permitted on a UnitDefinition object. (References: SBML L3V1 Section 4.4.)
20420. graphic file with name nihms859661ig11.jpg A ListOfUnits object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfUnits object. (References: SBML L3V1 Section 4.2.8.)
20421. graphic file with name nihms859661ig11.jpg A Unit object must have the required attributes kind, exponent, scale and multiplier, and may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a Unit object. (References: SBML L3V1 Section 4.4.)
Rules for Compartment components
20507. graphic file with name nihms859661ig13.jpg The value of the attribute units on a Compartment object having spatialDimensions of “ 1“ should be either “ metre“, “ dimensionless“, or the identifier of a UnitDefinition object based on either metre (with exponent equal to “ 1“) or dimensionless. (References: SBML L3V1 Section 4.5.4.)
20508. graphic file with name nihms859661ig13.jpg The value of the attribute units on a Compartment object having spatialDimensions of “ 2“ should be either “ dimensionless“, or the identifier of a UnitDefinition object based on either metre (with exponent equal to “ 2“) or dimensionless. (References: SBML L3V1 Section 4.5.4.)
20509. graphic file with name nihms859661ig13.jpg The value of the attribute units on a Compartment object having spatialDimensions of “ 3“ should be either “ litre“, or the identifier of a UnitDefinition object based on either litre, metre (with exponent equal to “ 3“), or dimensionless. (References: SBML L3V1 Section 4.5.4.)
20511. graphic file with name nihms859661ig13.jpg If the attribute units on a Compartment object having a spatialDimensions attribute value of “ 1“ has not been set, then the unit of measurement associated with the compartment’s size is determined by the value of the enclosing Model object’s lengthUnits attribute. If neither the Compartment object’s units nor the enclosing Model object’s lengthUnits attributes are set, the unit of compartment size is undefined. (References: SBML L3V1 Section 4.5.4.)
20512. graphic file with name nihms859661ig13.jpg If the attribute units on a Compartment object having a spatialDimensions attribute value of “ 2“ has not been set, then the unit of measurement associated with the compartment’s size is determined by the value of the enclosing Model object’s areaUnits attribute. If neither the Compartment object’s units nor the enclosing Model object’s areaUnits attributes are set, the unit of compartment size is undefined. (References: SBML L3V1 Section 4.5.4.)
20513. graphic file with name nihms859661ig13.jpg If the attribute units on a Compartment object having a spatialDimensions attribute value of “ 3“ has not been set, then the unit of measurement associated with the compartment’s size is determined by the value of the enclosing Model object’s volumeUnits attribute. If neither the Compartment object’s units nor the enclosing Model object’s volumeUnits attributes are set, the unit of compartment size is undefined. (References: SBML L3V1 Section 4.5.4.)
20514. graphic file with name nihms859661ig11.jpg The attribute spatialDimensions on a Compartment object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
20515. graphic file with name nihms859661ig11.jpg The attribute size on a Compartment object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
20516. graphic file with name nihms859661ig11.jpg The attribute constant on a Compartment object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
20517. graphic file with name nihms859661ig11.jpg A Compartment object must have the required attributes id and constant, and may have the optional attributes metaid, sboTerm, name, spatialDimensions, size and units. No other attributes from the SBML Level 3 Core namespace are permitted on a Compartment object. (References: SBML L3V1 Section 4.5.)
20518. graphic file with name nihms859661ig13.jpg If neither the attribute units nor the attribute spatialDimensions on a Compartment object is set, the unit associated with that compartment’s size is undefined.
Rules for Species components
20601. graphic file with name nihms859661ig11.jpg The value of the attribute compartment in a Species object must be the identifier of an existing Compartment object defined in the enclosing Model object. (References: SBML L3V1 Section 4.6.3.)
20608. graphic file with name nihms859661ig13.jpg The value of a Species object’s substanceUnits attribute should only be one of the following: “ substance“, “ mole“, “ item“, “ gram“, “ kilogram“, “ dimensionless“, “ avogadro“ or the identifier of a UnitDefinition object derived from “ mole“ (with an exponent of “ 1“), “ item“ (with an exponent of “ 1“), “ gram“ (with an exponent of “ 1“), “ kilogram“ (with an exponent of “ 1“), “ avogadro“ (with an exponent of “ 1“) or “ dimensionless“. (References: SBML L3V1 Section 4.6.5.)
20609. graphic file with name nihms859661ig11.jpg A Species object cannot have values for both its initialConcentration and initialAmount attributes because these attributes are mutually exclusive. (References: SBML L3V1 Section 4.6.4.)
20610. graphic file with name nihms859661ig11.jpg The quantity of a Species object in a model cannot be determined simultaneously by both reactions and rules. More formally, if the identifier of a Species object having attribute values boundaryCondition=“ false“ and constant=“ false“ is referenced by a SpeciesReference object anywhere in a model, then this identifier cannot also appear as the value of a variable in an AssignmentRule or a RateRule object. (References: SBML L3V1 Section 4.6.6.)
20611. graphic file with name nihms859661ig11.jpg A Species object having a value of “ false“ for its attribute boundaryCondition cannot appear as a reactant or product in any reaction if that Species also has a value of “ true“ for its attribute constant. (References: SBML L3V1 Section 4.6.6.)
20614. graphic file with name nihms859661ig11.jpg The attribute compartment in Species is mandatory. A Species object in a model must include a value for this attribute. (References: SBML L3V1 Section 4.6.3.)
20616. graphic file with name nihms859661ig13.jpg If the attribute substanceUnits in a Species object has not been set, then the unit of measurement associated with the species’ quantity is determined by the value of the enclosing Model object’s substanceUnits attribute. If neither the Species object’s substanceUnits attribute nor the enclosing Model object’s substanceUnits attribute are set, then the unit of that species’ quantity is undefined. (References: SBML L3V1 Section 4.6.5.)
20617. graphic file with name nihms859661ig11.jpg The value of the attribute conversionFactor on a Species object must be the identifier of an existing Parameter object defined in the enclosing Model object. (References: SBML L3V1 Section 4.6.7.)
20618. graphic file with name nihms859661ig11.jpg The attribute initialAmount on a Species object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
20619. graphic file with name nihms859661ig11.jpg The attribute initialConcentration on a Species object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
20620. graphic file with name nihms859661ig11.jpg The attribute hasOnlySubstanceUnits on a Species object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
20621. graphic file with name nihms859661ig11.jpg The attribute boundaryCondition on a Species object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
20622. graphic file with name nihms859661ig11.jpg The attribute constant on a Species object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
20623. graphic file with name nihms859661ig11.jpg A Species object must have the required attributes id, compartment, hasOnlySubstanceUnits, boundaryCondition and constant, and may have the optional attributes metaid, sboTerm, name, initialAmount, initialConcentration, substanceUnits and conversionFactor. No other attributes from the SBML Level 3 Core namespace are permitted on a Species object. (References: SBML L3V1 Section 4.6.)
Rules for Parameter components
20701. graphic file with name nihms859661ig11.jpg The units attribute of a Parameter object must be a value chosen from among the following: the identifier of a UnitDefinition object in the enclosing Model object, or one of the base units in SBML. (References: SBML L3V1 Section 4.7.3.)
20702. graphic file with name nihms859661ig13.jpg If the attribute units on a given Parameter object has not been set, then the unit of measurement associated with that parameter’s value is undefined. (References: SBML L3V1 Section 4.7.3.)
20703. graphic file with name nihms859661ig11.jpg The attribute value on a Parameter object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
20704. graphic file with name nihms859661ig11.jpg The attribute constant on a Parameter object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
20705. graphic file with name nihms859661ig11.jpg A Parameter object referenced by the attribute conversionFactor on a Species or Model object must have a value of “ true“ for its attribute constant. (References: SBML L3V1 Section 4.6.7.)
20706. graphic file with name nihms859661ig11.jpg A Parameter object must have the required attributes id and constant, and may have the optional attributes metaid, sboTerm, name, value and units. No other attributes from the SBML Level 3 Core namespace are permitted on a Parameter object. (References: SBML L3V1 Section 4.7.)
Rules for InitialAssignment components
20801. graphic file with name nihms859661ig11.jpg The value of the attribute symbol in an InitialAssignment object must be the identifier of an existing Compartment, Species, Parameter or SpeciesReference object defined in the model. (References: SBML L3V1 Section 4.8.)
20802. graphic file with name nihms859661ig11.jpg A given identifier cannot appear as the value of more than one InitialAssignment object’s symbol attribute across the set of all InitialAssignment objects in a model. (References: SBML L3V1 Section 4.8.)
20803. graphic file with name nihms859661ig11.jpg The identifier given as the value of the attribute symbol in any InitialAssignment object cannot also appear as the value of the variable attribute in an AssignmentRule object. In other words, a model cannot simultaneously define both an initial assignment and an assignment rule for the same species, compartment or parameter in a model. (References: SBML L3V1 Section 4.8.)
20804. graphic file with name nihms859661ig11.jpg An InitialAssignment object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.8.)
20805. graphic file with name nihms859661ig11.jpg An InitialAssignment object must have the required attribute symbol and may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on an InitialAssignment object. (References: SBML L3V1 Section 4.8.)
Rules for AssignmentRule, RateRule and AlgebraicRule components
20901. graphic file with name nihms859661ig11.jpg The value of an AssignmentRule object’s variable attribute must be the identifier of an existing Compartment, Species, Parameter or SpeciesReference object defined in the model. (References: SBML L3V1 Section 4.9.3.)
20902. graphic file with name nihms859661ig11.jpg The value of a RateRule object’s variable attribute must be the identifier of an existing Species, Compartment, Parameter or SpeciesReference object defined in the model. (References: SBML L3V1 Section 4.9.4.)
20903. graphic file with name nihms859661ig11.jpg Any Compartment, Species, Parameter or SpeciesReference object whose identifier is the value of the attribute variable in an AssignmentRule object, must have a value of “ false“ for its constant attribute. (References: SBML L3V1 Section 4.9.3.)
20904. graphic file with name nihms859661ig11.jpg Any Compartment, Species, Parameter or SpeciesReference object whose identifier is the value of the attribute variable in a RateRule object, must have a value of “ false“ for its constant attribute. (References: SBML L3V1 Section 4.9.4.)
20906. graphic file with name nihms859661ig11.jpg There must not be circular dependencies in the combined set of InitialAssignment, AssignmentRule and KineticLaw objects in a model. Each of these constructs has the e3ect of assigning a value to an identifier (i.e., the identifier given in the attribute symbol in InitialAssignment, the attribute variable in AssignmentRule, and the attribute id on the KineticLaw’s enclosing Reaction). Each of these constructs computes the value using a mathematical formula. The formula for a given identifier cannot make reference to a second identifier whose own definition depends directly or indirectly on the first identifier. (References: SBML L3V1 Section 4.9.5.)
20907. graphic file with name nihms859661ig11.jpg Every AssignmentRule, RateRule and AlgebraicRule object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.9.)
20908. graphic file with name nihms859661ig11.jpg An AssignmentRule object must have the required attribute variable and may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on an AssignmentRule object. (References: SBML L3V1 Section 4.9.)
20909. graphic file with name nihms859661ig11.jpg A RateRule object must have the required attribute variable and may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a RateRule object. (References: SBML L3V1 Section 4.9.)
20910. graphic file with name nihms859661ig11.jpg An AlgebraicRule object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on an AlgebraicRule object. (References: SBML L3V1 Section 4.9.)
Rules for Constraint components
21001. graphic file with name nihms859661ig11.jpg The MathML math element in a Constraint object must evaluate to a value of type boolean. (References: SBML L3V1 Section 4.10.)
21004. graphic file with name nihms859661ig11.jpg The contents of the Message subobject in a Constraint object must not contain an XML declaration (i.e., a string of the form “ <?xml version=“1.0” encoding=“UTF-8”?>“ or similar). (References: SBML L3V1 Section 4.10.2.)
21005. graphic file with name nihms859661ig11.jpg The contents of the Message subobject in a Constraint object must not contain an XML DOC-TYPE declaration (i.e., a string beginning with the characters “ <!DOCTYPE“. (References: SBML L3V1 Section 4.10.2.)
21007. graphic file with name nihms859661ig11.jpg A Constraint object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.10.)
21008. graphic file with name nihms859661ig11.jpg A Constraint object may contain at most one Message subobject. (References: SBML L3V1 Section 4.10.)
21009. graphic file with name nihms859661ig11.jpg A Constraint object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a Constraint object. (References: SBML L3V1 Section 4.10.)
Rules for Reaction components
21101. graphic file with name nihms859661ig11.jpg A Reaction object must contain at least one SpeciesReference object, either in its listOfReactants or its listOfProducts element. A reaction without any reactant or product species is not permitted, regardless of whether the reaction has any modifier species. (References: SBML L3V1 Section 4.11.3.)
21103. graphic file with name nihms859661ig11.jpg The following are all optional in a Reaction object, but if any is present, it must not be empty: KineticLaw, the elements listOfReactants and listOfProducts (both ListOfSpeciesReferences objects) and the element listOfModifiers (a ListOfModifierSpeciesReferences object). (References: SBML L3V1 Section 4.11.)
21104. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, the ListOfSpeciesReferences container objects (i.e., the Reaction elements listOfReactants and listOfProducts) may only contain SpeciesReference objects. (References: SBML L3V1 Section 4.11.)
21105. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, ListOfModifierSpeciesReferences container objects (i.e., the Reaction element listOfModifiers) may only contain ModifierSpeciesReference objects. (References: SBML L3V1 Section 4.11.)
21106. graphic file with name nihms859661ig11.jpg A Reaction object may contain at most one of each of the following elements: listOfReactants, listOfProducts, listOfModifiers, and kineticLaw. (References: SBML L3V1 Section 4.11.)
21107. graphic file with name nihms859661ig11.jpg The value of the attribute compartment in a Reaction object is optional, but if present, must be the identifier of an existing Compartment object defined in the model. (References: SBML L3V1 Section 4.11.1.)
21108. graphic file with name nihms859661ig11.jpg The attribute reversible on a Reaction object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
21109. graphic file with name nihms859661ig11.jpg The attribute fast on a Reaction object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
21110. graphic file with name nihms859661ig11.jpg A Reaction object must have the required attributes id, reversible and fast, and may have the optional attributes metaid, sboTerm, name and compartment. No other attributes from the SBML Level 3 Core namespace are permitted on a Reaction object. (References: SBML L3V1 Section 4.11.)
21150. graphic file with name nihms859661ig11.jpg A ListOfSpeciesReferences object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfSpeciesReferences object. (References: SBML L3V1 Section 4.11.)
21151. graphic file with name nihms859661ig11.jpg A ListOfModifierSpeciesReferences object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on an object of class ListOfModifierSpeciesReferences. (References: SBML L3V1 Section 4.11.)
Rules for SpeciesReference and ModifierSpeciesReference components
21111. graphic file with name nihms859661ig11.jpg The value of a SpeciesReference object’s species attribute must be the identifier of an existing Species object in the model. (References: SBML L3V1 Section 4.11.3.)
21114. graphic file with name nihms859661ig11.jpg The attribute stoichiometry on a SpeciesReference object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
21115. graphic file with name nihms859661ig11.jpg The attribute constant on a SpeciesReference object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
21116. graphic file with name nihms859661ig11.jpg A SpeciesReference object must have the required attributes species and constant, and may have the optional attributes metaid, sboTerm, id, name and stoichiometry. No other attributes from the SBML Level 3 Core namespace are permitted on a SpeciesReference object. (References: SBML L3V1 Section 4.11.)
21117. graphic file with name nihms859661ig11.jpg A ModifierSpeciesReference object must have the required attribute species and may have the optional attributes metaid, sboTerm, id and name. No other attributes from the SBML Level 3 Core namespace are permitted on a ModifierSpeciesReference object. (References: SBML L3V1 Section 4.11.)
Rules for KineticLaw components
21121. graphic file with name nihms859661ig11.jpg All Species objects referenced in the MathML math element of a KineticLaw object within a given Reaction object must first be declared using SpeciesReference or ModifierSpeciesReference objects. In other words, if a Species object identifier appears in a MathML ci element within the Reaction’s KineticLaw math content, that same species’ identifier must also appear in at least one object of type SpeciesReference or ModifierSpeciesReference within the listOfReactants, listOfProducts and/or listOfModifiers elements of the Reaction object. (References: SBML L3V1 Section 4.11.5.)
21123. graphic file with name nihms859661ig11.jpg The ListOfLocalParameters container object in a KineticLaw object is optional, but if present, it must not be empty. (References: SBML L3V1 Section 4.11.)
21127. graphic file with name nihms859661ig11.jpg A KineticLaw object may contain at most one ListOfLocalParameters container object. (References: SBML L3V1 Section 4.11.)
21128. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfLocalParameters container object may only contain LocalParameter objects. (References: SBML L3V1 Section 4.2.8.)
21129. graphic file with name nihms859661ig11.jpg A ListOfLocalParameters object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfLocalParameters object. (References: SBML L3V1 Section 4.11.)
21130. graphic file with name nihms859661ig11.jpg A KineticLaw object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.11.)
21132. graphic file with name nihms859661ig11.jpg A KineticLaw object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a KineticLaw. (References: SBML L3V1 Section 4.11.)
Rules for LocalParameter components
21171. graphic file with name nihms859661ig11.jpg The attribute value on a LocalParameter object must have a value of type double. (References: SBML L3V1 Section 3.1.5.)
21172. graphic file with name nihms859661ig11.jpg A LocalParameter object must have the required attribute id and may have the optional attributes metaid, sboTerm, name, value and units. No other attributes from the SBML Level 3 Core namespace are permitted on a LocalParameter object. (References: SBML L3V1 Section 4.11.)
Rules for Event components
21201. graphic file with name nihms859661ig11.jpg An Event object must contain exactly one Trigger object. (References: SBML L3V1 Section 4.12.2.)
21202. graphic file with name nihms859661ig11.jpg The MathML math element of a Trigger object must evaluate to a value of type boolean. (References: SBML L3V1 Section 4.12.2.)
21203. graphic file with name nihms859661ig11.jpg The ListOfEventAssignments container object in an Event object is optional, but if present, it must not be empty. (References: SBML L3V1 Section 4.12.)
21208. graphic file with name nihms859661ig11.jpg The attribute useValuesFromTriggerTime on an Event object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
21209. graphic file with name nihms859661ig11.jpg A Trigger object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.12.)
21210. graphic file with name nihms859661ig11.jpg A Delay object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.12.)
21221. graphic file with name nihms859661ig11.jpg An Event object may contain at most one Delay object. (References: SBML L3V1 Section 4.12.)
21222. graphic file with name nihms859661ig11.jpg An Event object may contain at most one ListOfEventAssignments object. (References: SBML L3V1 Section 4.12.)
21223. graphic file with name nihms859661ig11.jpg Apart from the general notes and annotation subobjects permitted on all SBML components, a ListOfEventAssignments container object may only contain EventAssignment objects. (References: SBML L3V1 Section 4.12.5.)
21224. graphic file with name nihms859661ig11.jpg A ListOfEventAssignments object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a ListOfEventAssignments object. (References: SBML L3V1 Section 4.12.5.)
21225. graphic file with name nihms859661ig11.jpg An Event object must have the required attribute useValuesFromTriggerTime, and in addition, may have the optional attributes metaid, sboTerm, id, and name. No other attributes from the SBML Level 3 Core namespace are permitted on an Event object. (References: SBML L3V1 Section 4.12.)
21226. graphic file with name nihms859661ig11.jpg A Trigger object must have the required attributes persistent and initialValue, and in addition, may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a Trigger object. (References: SBML L3V1 Section 4.12.)
21227. graphic file with name nihms859661ig11.jpg A Delay object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a Delay object. (References: SBML L3V1 Section 4.12.)
21228. graphic file with name nihms859661ig11.jpg The attribute persistent on an Trigger object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
21229. graphic file with name nihms859661ig11.jpg The attribute initialValue on a Trigger object must have a value of type boolean. (References: SBML L3V1 Section 3.1.2.)
21230. graphic file with name nihms859661ig11.jpg An Event object may contain at most one Priority object. (References: SBML L3V1 Section 4.12.)
21231. graphic file with name nihms859661ig11.jpg A Priority object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.12.)
21232. graphic file with name nihms859661ig11.jpg A Priority object may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on a Priority object. (References: SBML L3V1 Section 4.12.)
Rules for EventAssignment components
21211. graphic file with name nihms859661ig11.jpg The value of the attribute variable in an EventAssignment object may only be the identifier of an existing Compartment, Species, Parameter or SpeciesReference object in the model. (References: SBML L3V1 Section 4.12.5.)
21212. graphic file with name nihms859661ig11.jpg Any Compartment, Species, Parameter or SpeciesReference object whose identifier is used as the value of the attribute variable of an EventAssignment object, must have a value of “ false“ for its constant attribute. (References: SBML L3V1 Section 4.12.5.)
21213. graphic file with name nihms859661ig11.jpg An EventAssignment object must contain exactly one MathML math element. (References: SBML L3V1 Section 4.12.)
21214. graphic file with name nihms859661ig11.jpg An EventAssignment object must have the required attribute variable and may have the optional attributes metaid and sboTerm. No other attributes from the SBML Level 3 Core namespace are permitted on an EventAssignment object. (References: SBML L3V1 Section 4.12.)