Lists Home |
Date Index |
Eric van der Vlist wrote:
> Coincidence, I have written a section about this issue in my (to be
> published soon) book on Relax NG no later than a couple of hours ago
> taking an exact opposite position:
> <extract title="Be liberal on the relative order between children
> In fact, the main reasons behind this principle are limitations from
> DTDs and more recently from W3C XML Schema but there are strong reasons
> to believe that on the contrary when there is no special reasons,
> relative order between sub elements is a serialization detail and that
> we shouldn't bother users and applications with the unecessary
> constraint of enforcing it.
You've reversed the issue of bother. When you allow any order you
"bother" the user with the responsibility of choosing an order. From the
user's point of view, the order matters unless they are told otherwise.
When you give them the choice of ordering, they must wonder what is the
semantic of that choice. As an example, if HTML allowed the HEAD to
follow the BODY, users might wonder whether that meant something
different (especially for the BASE element!) than if the HEAD preceded
the BODY. Because HTML's HEAD always precedes the BODY there is no
confusion. HEAD means what it means and the order "doesn't matter" (and
is thus hard-coded).
Plus, this HTML example should also highlight issues about streaming,
buffering and incremental processing.