Lists Home |
Date Index |
Michael Kay wrote:
>>It's also obvious that a processor using schema to build a
>>code model is
>> able to ignore UPA and still get its work done.
>Only if its work is confined to giving a yes/no answer to the validity
>If the work is to associate types with individual element instances, then
>UPA is rather important.
There are two things that deserve to be mentioned.
--> Firstly, a simple example involving derivation-by-extension Suppose
you were allowed to use arbitrary regular expressions (I use short
notation instead of XML Schema).
type Foo = A*
type Bar extends Foo = A*.
An element of type Bar contains something like A*A*, because derivation
by extension means "append it at the right end".
And now, there is no way to know which of the A's in a valid instance
belong to Foo and which to Bar.
This looks strange at first but may turn into a problem if somebody
extends Foo without knowing (or having control over) what its content
--> Secondly, it is possible to rewrite every regular expression in a
(huge and incomprehensible) form that goes through that so-called UPA
constraint. This can of course only happen on one level, i.e. no
derivation by extension involved.
Document-afficionados and everybody who hates UPA, have a party now!
(at least those who did not yet switch to Relax NG:-)