— the global portal for all things SBML

No element ordering restrictions

For reasons due entirely to limitations in the XML Schema language, many elements in SBML prior to SBML Level 3 had requirements about element ordering. These requirements are shown in the UML diagrams for each component as a comment about "Order is significant" . For example, in the Reaction component, there are ordering requirements that require the listOfReactants, listofProducts, listOfModifiers, and kineticLaw to appear in that order, and within the last, there is an additional ordering requirement that math appear before listOfLocalParameters. Many people have remarked that these requirements for ordering are rather un-XML-like.

For SBML Level 3, the ordering restrictions will be removed and the XML Schema formulated in a different way.

Changes relative to Level 2

The change affects the UML diagrams of every SBML component that included an ordering restriction. These are:

  • Model
  • Constraint
  • Reaction, and KineticLaw within Reaction
  • Event

Notable implications

This change is entirely forward compatible, as any Level 2 model or software that obeyed the element ordering restrictions will comply with the Level 3 scheme.

The XML Schema for SBML Level 3 will be structured internally in a very different way in order to permit lifting the element ordering restrictions. The result will be that the Schema will not mirror the class inheritance hierarchy of the SBML UML diagrams (but of course, the actual component definitions will be defined in a way that match the individual SBML object structures). Software that relied on the internals of the XML Schema definition for SBML may need modifications for supporting Level 3.

Retrieved from ""

This page was last modified 18:31, 8 July 2009.

Please use our issue tracking system for any questions or suggestions about this website. This page was last modified 18:31, 8 July 2009.