[
Lists Home |
Date Index |
Thread Index
]
> additionally, i'd like to know whether Schematron can be used for
> editing purposes or not (i don't think so), that is to say if one can
> predict if an element is available with a given context, for example.
If you write the Schematron schema for that purpose, yes it could be used
to guide editing. Imagine an editor that filters out messages except those
relating to the most recent element (or that only checks assertions where
the context node matches the current element).
Then we have the schema:
<sch:phase name="guidance">
<sch:active pattern="edit"/>
</sch:phase>
...
<sch:pattern id="edit">
<sch:rule context="page/*">
<sch:report test="position() mod 2 = 0" >
An "odd" tag can be inserted after this element.
</sch:report>
<sch:report test="position() mod 2 = 1" role="edit">
An "even" tag can be inserted after this element.
</sch:report>
</sch:rule>
<sch:rule context="page>
<sch:report test="true()" role="edit" >
The first tag allowed is "odd".
</sch:report>
</sch:rule>
</sch:pattern>
Note that for validation with Schematron you don't need to try to
express the grammar: that is putting the cart before the horse.
So rather than trying to say "You can have zero or more
Odd each followed by an Even, with an optional Odd at the end"
you say "the page is empty, or starts with an odd;
only odds follow evens; only evens follow odds"
<sch:pattern id="sequences">
<sch:rule context="page">
the page is empty, or starts with an odd;
only odds follow evens;
only evens follow odds"
|