1.1. Model of XML element in X-definition

As a starting point, we consider an XML element providing some data:
<Book isbn = "123456789"
      published = "2010" >
      title = "X-definition tutorial" >
</Book>
Usually, such an element may be regarded as an instance of a model, for example written in XSD or Relax NG schema. X-definition is an alternative and, as it turns out, very different approach to modeling XML data. A key difference lies in the comprehensiveness of the model, which does far more than specifying data structure and data types. Let us come closer and get a first impression of what an X-definition model looks like.

In X-definition, the model of an XML element describes, among other things, the structure of that element: the names and cardinalities of items, their order and their parent-child relationships. The first thing to notice is that the model looks very similar to the data elements which it describes, but instance data - attribute values and element text content - have been replaced by model data describing the attribute or text nodes of the element in question. Note that the datatype specification consists of a validation method call parsing and evaluating the instance data, for example:
   int(0, 9999999999)
   gYear()
   string()

Note the cardinality constraints (quantifier - optional, required, and others) preceding the validation method. Note also the use of comments (/*...*/) within the model description.

The language used for a description of data values we call the "Script" of X-definition:
<Book isbn = "required int(0, 9999999999); /* The isbn code must be a number in the range 0 .. 9999999999 */"
      published = "optional gYear(); /* The year of publishing is not required. */" 
      title = "required string();" >
</Book>;

Prev  Content   Next