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
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:
- Reaction, and KineticLaw within Reaction
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.