1.4. X-script sections and events
The script of an element, attribute, or text node may contain several
sections. So far we described the quantifier of an item and the method
used to validate the text value of an attribute or text node. This pair is
called the
validation section(note that in the script of an element
the specification of the validation method is not permitted). The other
sections are introduced by keywords which indicate the situation or
event when the code of a section will be invoked. See the following table:
match invoked before the item is processed. The invoked code must return a Boolean value.
The item is accepted for further processing only if the value is "true".
default invoked if the attribute or the text node is missing. The invoked code must return
the value convertible to the String.
init invoked when the processing of the item started (before other actions).
onElementStart invoked when all attributes were processed, but before the processing of child nodes
of the processed element.
finally invoked at the end of the processing of the element.
onTrue invoked if the validation method of an attribute or text node didn't recognize an error.
onFalse invoked if the validation method of an attribute or text node recognized an error.
onAbsence invoked if the item is missing (never invoked if "default" is specified).
create invoked only in the construction mode (will be described later).
options set parameters used when an item is processed.
Example:
<Book xd:script="init outln('Book processing started'); finally outln('finished');"
isbn="int(10000000, 999999999); onTrue outln('isbn is OK');"
published="optional gYear(); onFalse outln('date error'); onAbsence outln('date missing');" >
<Author xd:script="occurs *"> <xd:text> string(); </xd:text> </Author>
<Title> <xd:text> string(); </xd:text> </Title>
</Book>