> XML
> DTDs do not allow PCDATA content at random places because of whitespace
> handling problems and backwards compatibility. I do not think that XSchema
> has any such constraint.
How about this. Remove all references to #PCDATA from the content
model (the Mixed element becomes just Seq.) Then add an attribute
to ElementDecl called "XSC:Content", with values
"Element", "PCData", "Mixed".
"Element" means that all data content is ignorable whitespace.
"PCData" means no elements are allowed. "Mixed" means that elements
can be interspersed with data.
Oddball forms get mapped into ANY when translating to a DTD.
> #PCDATA should probably be able to go anywhere an
> element can go, unless someone can come up with a strong reason why not.
> #ANY should also be able to go anywhere an element can go. This will allow
> the natural expression of extensible content models.
Treating #PCDATA as an element is problematic because it doesn't have
delimiters. Consider models like ((#PCDATA, A) | (#PCDATA, B))
or (#PCDATA, #PCDATA).
I like the idea of #ANY, OTOH.
-- John Cowan http://www.ccil.org/~cowan cowan@ccil.org You tollerday donsk? N. You tolkatiff scowegian? Nn. You spigotty anglease? Nnn. You phonio saxo? Nnnn. Clear all so! 'Tis a Jute.... (Finnegans Wake 16.5)