Indicates the multiplicity term for multiple-instance submodels and array variables.
In Prolog terms, this is a list of terms Te, where each Te is either
'count=X' or 'type=Ty'.
X is a list of terms D, where D is
Although the spec is expressed in terms of a list of terms Te, it appears that this is always a list of just one element, and we cannot think of a case where it could have more than one element.
Valid examples (in Prolog syntax) are:
A list of specifications for the enumerated types defined in the current submodel (or at the top level).
Can occur only in submodel node elements, and the top-level model.
In Prolog, each spec is of the form Type-Members where Members is a list of the values that make up the type. E.g. [fruit-[apple,pear,orange]].
Here, we cheat by just handling each of these specs as a string, still in Prolog syntax. It needs to be broken down into the name of the enumerated, and the list of enumerated values.
Influence arrows only. Further restricted to :
In Prolog terms, 'role' has the following form: A list of N terms T, where T has the form 'use(R,W,A,B)'. R is the role, either 'none' or a reference to the role arrow the corresponding parameter in the destination node's equation is associated with. W is which way the role arrow is going: 'in_hierarchy' if no role, 'in_base' if same direction as the influence, 'in_assoc' if other direction. A is a Simile quantity, as it would appear under 'Influences > Parameter' in the Equation dialogue window, i.e. as the local name, decorated with [...] and/or {...} if it is a non-scalar. B is the units/dimension information for this quantity.
The declaration actually used here does not fully capture the above data model. The commented-out below bit is an attempt to handle this, but it fails because the first two sub-elements (which_role_arc and which_way) are defined twice. It is, according to Richard Tobin, not possible to specify the required dependencies in XML Schema, though it should be possible in RELAX NG.