Indeed, I think one could make a strong argument for adding a type=
to TEXT and to GROUP. One cannot do this in TEILite, of course, but
in full TEI it is not hard at all.
In your TEI.extensions.ent file include
<!ENTITY % text 'IGNORE'>
<!ENTITY % group 'IGNORE'>
And then in your TEI.extensions.dtd file include
<!ELEMENT %n.text; - - ((%n.front)?, (%n.body; |
%n.group;), (%n.back)?)
+(%m.globincl;)
>
<!ATTLIST %n.text; %a.global;
%a.declaring;
type ( hardcover | softcover
| pamphlet | leaflet ) #REQUIRED
TEIform CDATA 'text' >
<!ELEMENT %n.group; - - ((%m.divtop;)*, (%n.text; |
%n.group;)+, (%m.divbot;)*) >
<!ATTLIST %n.group; %a.global;
%a.declaring;
type ( this | that
| other | thing ) #REQUIRED
TEIform CDATA 'group' >
Now that all looks quite complicated until you realize that I copied
and pasted the declarations from the file teistr2.dtd, and then made
one change: adding the type= attribute. (Alright, I made one other
change because I couldn't resist -- brownie points to anyone who
notices.) One doesn't really have to understand the details of what
all the parameter entity references (those that start with '%' and
end with ';') mean to make changes like this. One does, however,
have to understand how to make conformant modifications to the TEI
DTD scheme; luckily this is explained reasonably lucidly in P3
chapter 29 (in fact, adding an attribute is the example used in
29.1.4), and made easier by the existance of the various pizza
chef pages.
Caveat: I have not actually tried these modifications and validated
them.
|