[
Lists Home |
Date Index |
Thread Index
]
Arjun Ray scripsit:
> One use that I'd like to have (in SGML too) is a "virtual element type"
> whose basic purpose is grouping, allowing a complex content model to be
> analysed into simpler named components. For instance, suppose we had a
> HTML-like specification like this:
>
> <!ELEMENT dl (dt+,dd+)* >
>
> Sometimes it's useful to gather a term with its descriptions as a group,
> like this:
>
> <!ELEMENT dl (dli)* >
>
> <!MODEL dli (dt+,dd+) >
That is one of the many purposes of the RELAX NG pattern. Note that
unlike parameter entities, patterns are fully structured, not lexical: but
like PEs, patterns subsume the WXS notions of {content model, attribute
group, etc.} declarations.
In a DTD-ish style of RNG you would write the above as:
dl = element dl {dli+}
dli = dt+, dd+
dt = element dt { <whatever> }
dd = element dd { <whatever> }
> Such "elements" could be required to have no tags! (And they also take
> away one reason to use parameter entities. An open issue would be whether
> such virtual elements should share the same namespace as element types, or
> be indicated specially in model groups with a distinct marker, such as a
> '$' or '@' prefix.)
In RELAx NG they do *not* share the lexical space of element types.
Everything on the left side of "=" in RELAX NG is local to the schema
and never appears in the instance. Element type names and attribute
names appear only after the words "element" and "attribute".
> I've never understood the distaste for DTDs.
My principal objection is that they provide only a single content model
per element type regardless of context. This arises because they
conflate element types with particles in content models. The treatment
of attributes is also weak, and nothing at all is done when alternation
between child elements and attributes is desirable.
--
John Cowan <jcowan@reutershealth.com> http://www.reutershealth.com
I amar prestar aen, han mathon ne nen, http://www.ccil.org/~cowan
han mathon ne chae, a han noston ne 'wilith. --Galadriel, _LOTR:FOTR_
|