Technical: AnIML Core Schema

The heart of the AnIML specification is the core schema. A schema document is a set of rules that defines the "valid" structure of an XML document. This is important for AnIML as without rules there would be no way to define a specification. XML schema are also written in XML, based on a set of elements defined - you guessed it - in a schema. OK, enough brain warping for now...

The key to using a schema (modern versions of Document Type Definitions (DTDs)) is that it allows a user to check that the AnIML file that is created is compliant with the specification and thus can easily be share with others that know the AnIML specification.  Also important is that software can be written for creating, viewing, manipulating, converting the data in the file because the structure of the document(s) is well defined.

Below is a high level look at the AnIML core schema showing the four main parts of the document


Every AnIML document must have a topmost element of "AnIML". Then with that element is a sequence of four different elements for the four main data sections of the document.  Because the sequence structure lists them in the order above, the elements must appear in that order in the document.  Also note that none of the elements are required (minOccurs="0"), however a file without experiment data would not be so useful.  Not shown here is the complementary attribute for an element - maxOccurs - which defaults to one if not specifically stated in the schema.

Further on in in the schema each of the above elements is further defined.  The next level looks like this (some items have been collapsed for clarity)


Reading the above structure we can see that each of the top-level elements can have many sub-elements.  This the core schema defines the basic structure of an AnIML file and gives some limits where necessary. For more information, the current version of the AnIML core schema can be downloaded here.