Syd Bauman wrote:

> But take the following two equivalent[1] snippets of schema:
>  <!ELEMENT  menu        ( lunch, desserts, drinks )                 >
>  <!ELEMENT  lunch       ( dish+ )                                   >
>  <!ELEMENT  desserts    ( dish+ )                                   >
>  <!ELEMENT  drinks      ( beverage+ )                               >
>  start =    element menu     { lunch, desserts, drinks              }
>  lunch =    element lunch    { dish+                                }
>  desserts = element desserts { dish+                                }
>  drinks =   element drinks   { beverage+                            }
> What about the first makes it easier to teach than the second? Again,
> I'm not an expert at this, but my instinct is that teaching RELAX NG
> (compact syntax) becomes harder than teaching DTDs when you start
> running into the capabilities it has that DTDs don't. But if you're
> willing to limit yourself to DTD-like structures, seems to me it
> should be at a similar degree of difficulty.

to add my own 2 cents: Having repeatedly taught both DTDs and RelaxNG to
computer science students, my experience is that RelaxNG – using compact
syntax, of course, – is indeed much easier to teach. Just add attribute
declaration to the small example above and it begins to show why...

Not to speak niceties of parameter entities, notations and such like
that plague DTDs and which students find it rather difficult to grasp...
and not mentioning all the things like namespaces that DTDs just cannot
adequately express.

Best regards,

Marc Küster