Data entry forms consist of 3 things; the name for the instance, the links between that instance and others, and the collection of attributes which store the data related to that instance. The attributes for each type of instance are defined by the attribute definition file for a given database.
This definition file, which uses XML syntax, consists of a collection of the attribute types discussed below. Each table in the schema has a root attribute to which all of the oter attributes for that table are attached. This structure can be seen by examining the contents of the default attribute definition file which is available at:
http://www.bioinf.man.ac.uk/microarray/maxd/xml/standard-attributes.xml
Lots of example usages can be found by examing the master files used to create the standard attribute defintions. They can be downloaded and viewed using a normal web browser or saved and opened in any text editor.
This document describes the various types of attributes and contains some examples of their usage. A separate document contains full details of how to customise the attribute definitions.
All attributes require a name, this is how they can be identified at a later point. Names can be arbitrarily lone, but should only consists of alpha-numeric characters. Names can include spaces, but must not contain the . (full-stop) character.
The bulk of data storage is done using the Integer,Double,String and Text attributes.
Integer allows the storage of a single whole number and Double provides storage for a double-precision (64 bit) real number. These attributes are defined using a very similar syntax:
<Integer name="Number of Eyes" minimum="0" maximum="2"/> <Double name="Intra-occular distance (cm)" minimum="0.001"/>
The String element is designed to store a one-line string value and the Text element is more suitable for a multi-line block of text.
<String name="Brief Description"/> <Text name="Longer Description" hint.lines="10"/>
The Group attribute is a mechanism for grouping one or more other related attributes together.
A Group attribute has a name.
Children are added to a Group attribute by placing their definitions within the scope of the Group tag, for example:
<Group name="Example Group">
<String name="First Name>
<String name="Middle Initial>
<String name="Surname>
</Group>
Group attributes can be nested to any depth.
The onscreen arrangement of the children of a Group attribute is controlled using the hint.layout parameter, for example the following definition specifies that the children are laid out horizontally (i.e. left-to-right) rather that default layout of vertical (i.e. top-to-bottom):
<Group name="Shoe Information" hint.layout="horizontal">
<String name="Colour"/>
<Integer name="Size"/>
<String name="Style"/>
</Group>
The following collection of parameters apply to most attribute definitions (exceptions are indicated). They are used to control the behaviour and appearance of the attributes.
| label | The label that will be displayed instead of the actual name of the attribute |
| default | The default value that will be filled in for the attribute in 'Create Mode' |
| pre_comment | A block of text that will be displayed above the attribute |
| post_comment | A block of text that will be displayed below the attribute |
| help.url | The HTML document that will be displayed when the user requests help information for the attribute |
| minimum | The minimum allowed value for the attribute (only applies to Integer or Double types) |
| maximum | The maximum allowed value for the attribute (only applies to Integer or Double types) |
| history_key | The history key allows several attributes to share the same 'recent values' history information. |
| repeatable | Determines whether a Group attribute can be repeated or not; possible values are true or false. Attributes which are repeatable will have an "Add another" button available in "Create Mode". |
| hint.layout | Selects between horizontal, vertical or array layout for the child elements of a Group attribute. |
| hint.rows | The number of rows to use in the array layout for the child elements of a Group attribute. |
| hint.cols | The number of columns to use in the array layout for the child elements of a Group attribute. |
| hint.length | Selects the desired length (in characters) for the text entry box for this attribute. |
| hint.lines | Selects the desired number of lines for the text entry box for this attribute; only applies to the Text type |
| hint.collapsible | Controls whether this attribute is initially displayed in the 'collapsed' state, i.e. its children are hidden until the "Expand this group" box is pressed. |
| hint.comment_wrap | The position (in characters) at which to wrap the comment text for this attribute. |
| hint.show_border | Selects whether the outer border is drawn around a Group attribute, possible values are true or false. |