Lists Home |
Date Index |
- To: "[XML-DEV]" <email@example.com>
- Subject: Questions on XML Schema "all" and RELAX NG "interleave"
- From: "Alessandro Triglia" <firstname.lastname@example.org>
- Date: Sun, 5 Jan 2003 17:07:53 -0500
- Importance: Normal
I have a question about XML Schema "all" and RELAX NG "interleave". I
would like to achieve a deeper understanding of how these things are
seen/used by people, not only "in practice" (say, in a sample of 10 or
1000 real schemas), but also what people think about how they are used
or should be used, and what are the implications of using them.
I could ask what was the rationale for introducing "all" in XML Schema,
or what was the rationale for introducing "interleave" in RELAX NG. But
I understand that the answers to *this* question would be largely
unimportant, because what really matters now is that these things exist
in the languages, irrespective of the reasons why they were introduced
in the languages. So my questions are not really about the past (the
historical reasons), but about the present and the future.
One concrete question I might ask is, If I have an "all" group of 3
elements in a schema, and an instance contains the 3 elements in some
order (any order being valid), how much does it matter if a tool
re-orders the elements on reception, and presents them to the user in a
fixed order? Could I justify such a behavior of the tool by saying
that the order in an "all" group is not important? What are the
chances that the order *is* important and the user absolutely wants it
to be preserved?
Another possible question is, How does a user (either sending or
receiving) benefit, in general, in RELAX NG, from the ability to
interleave, say, elements A (multiple), B (multiple), and C (multiple)
of an "interleave", as opposed to sending all As, then all Bs, then all
Cs? Or possibly all Cs, then all Bs, then all As? Why is "interleave"
more useful than "all", and why is "all" more useful than "sequence"?
What do these things enable me to do, which a mere "sequence" does not?
Why do I need the extra flexibility?