The specification of `block_design` is as follows:

block_design = element block_design { attribute id { xsd:ID } , attribute v { xsd:positiveInteger } , attribute b { xsd:positiveInteger } ? , attribute precision { xsd:positiveInteger } ? , blocks , point_labels ? , indicators ? , combinatorial_properties ? , block_design_automorphism_group ? , resolutions ? , statistical_properties ? , alternative_representations ? , info ? }

The first four components of the specification are:

`id`

An attribute giving a unique identifier for the design.`v`

An attribute giving the number of points.`b`

An attribute giving the number of blocks (optional).`blocks`

The list of blocks (as described above). The list must be ordered:blocks = element blocks { attribute ordered { "true" } , block+ } block = element block { z+ }

Here is the design from the example in the Introduction, including only the components above:

<block_design b="7" id="t2-v7-k3-L1-1" v="7"> <blocks ordered="true"> <block><z>0</z><z>1</z><z>2</z></block> <block><z>0</z><z>3</z><z>4</z></block> <block><z>0</z><z>5</z><z>6</z></block> <block><z>1</z><z>3</z><z>5</z></block> <block><z>1</z><z>4</z><z>6</z></block> <block><z>2</z><z>3</z><z>6</z></block> <block><z>2</z><z>4</z><z>5</z></block> </blocks> </block_design>

All these components, except the attribute `b`, are essential.
The subsequent elements are optional. The
first optional element is `point_labels`. If, for example, the
design has been built from a set of points in a projective geometry, the
point labels might be the coordinates of the points. More important for
applications, the point labels could be the actual treatments associated
to the points in the experimental plan (after randomisation). The point
labels, if present, should form a list of length .