Ah... yes... SGML is somewhat lacking with respect to "subclassing."
The HyTime folks came up with this nifty idea of architectural forms.
It goes like this:
... in the prologue of the document, which might be parsed
at runtime, or might be compiled into the app...
<!ATTLIST (grasden|flitzbot|yabsnutz)
HTML NAME #FIXED "fizzbin">
... then, in the instance...
<grasden>sldkfj</grasden>
and the parser tells the application that the GI for that element
is GRASDEN, and the HTML attribute is FIZZBIN. So to index fizzbins,
you look at the HTML attribute in stead of the GI.
I expect this is the way HTML 4.0 will work.
Hmmm... in the mean-time, we could compromise and write the
fixed attributes explicitly in the markup of the instance, since existing
parsers don't grok #FIXED attributes.
<HEAD>
<EXPIRES http>Tue,...</expires>
<KEYWORDS index>a,b,c</keywords>
<summary index>this doc...</description>
</HEAD>
or, until Mosaic is fixed, you might write:
<HEAD>
<EXPIRES http content="Tue,...">
<KEYWORDS index content="a,b,c">
<summary index content="this doc...">
</HEAD>
In the DTD, this looks something like:
<!ELEMENT keywords - O (#PCDATA)>
<!ATTLIST keywords
content CDATA #CONREF
html (index) #IMPLIED>
I can see motivation for expressing "this element should be indexed"
and for "this element should be an HTTP header", but I don't see
the value in expressing "this element is metainformation," since I believe
that sentiment is without meaning.
Dan