Parameter entities are the major mechanism for customizing a tag set or creating a
new tag set from the modules in the Suite. Individual Tag Sets will be constructed by (1)
establishing element and attribute combinations and content models using parameter
entities in one of the Tag-Set-specific customizing modules and (2) choosing appropriate
modules from the Suite that declare the elements needed. For example, if the base Tag
Set contained 6 kinds of lists and 2 table models, a more specific Tag Set, such as an
authoring Tag Set, might use a Customize Classes Module to redefine the List Class to
name only 3 lists and redefine the Display Class to allow only one table model.
The standard modules to create a customized tag set are: the DTD itself, a module to
name its components, and as many override modules and new elements modules as necessary.
Typical modules for a new Tag Set are:
- DTD — The DTD module (.dtd) for the new
base Tag Set (At a minimum, this module declares the top-level element (such as
article, book, or report) and any other structural elements unique to the new
document type.)
- Tag-Set-specific Module of Modules — Module to name all the new modules
created expressly for the new Tag Set
- Class overrides — Tag-set-specific overrides of the Suite default
element classes
- Mix overrides — Tag-set-specific overrides of the Suite default class
mixes
- Model overrides — Tag-set-specific content model overrides for the
content models in the modules of the Suite (
using “-elements” and
“-model” parameter entities)
- New Models — Tag-Set-specific new elements (for example, a new Book Tag
Set might add book-specific metadata elements)
Many of the elements in the Journal Archiving Tag Set have been grouped into loose
element classes. There is no hard and fast rule for what constitutes a class; each one
is a design decision, a matter of judgment. These classes are designed to ease
customization to meet the particular needs of new Tag Sets. Base classes for the Suite
are defined in a separate
Default Element Classes Module
(
%default-classes.ent;).
Design Note: These element classes can be viewed as building blocks that will be used to build
larger parameter entities for element mixes. A mix describes a usage circumstance for a group of elements, such as all the
paragraph-level elements, all the elements allowed inside a table cell, all the elements inside a paragraph, or all the inline
elements. For example, to add another block display item to the
Block Display Class Elements, you would edit the
%block-display.class; parameter entity in your
Tag-Set-specific Class Override Module to override the default parameter entity
that is defined in the Suite’s
Default Element Classes Module
and create a new module containing the Element Declaration of the new block
display item.
PARAMETER ENTITY: SAME FUNCTION, SAME NAME — The Suite modules and initial Tag
Sets have used a series of parameter entity naming conventions consistently. While
parsing software cannot enforce these parameter entity naming or usage conventions,
these conventions can make it much easier for a person to know how the content models
work and what must be modified to make a change to this Tag Set.
CLASSES — Classes are functional groupings of
elements used together in an OR group. Each class is named with a parameter entity, and
all class parameter entity names end in the
suffix “.class”:
<!ENTITY % list.class "def-list | list">
A class, by definition, should never be made empty; the class should be removed from
all models where you do not want the class elements included.
MIXES — Mixes are functional OR groups of
classes; mixes should never contain element names directly. All mixes must be declared
after all classes, since mixes are composed of classes. Mix names have no set suffix;
for example, they may end
in “-mix” or
“-elements”. Content models and content model overrides use mixes and classes for all OR
groups. Only content model sequences are made up of element names directly.
MODEL OVERRIDES — Parameter entity mixes for
overriding a content model are of two styles: (1) inline mixes and (2) full content model
replacements. These two groupings have been defined and named separately to preserve the
mixed-content or element-content nature of the models in Tag Sets derived from the
Suite.
The inline parameter entities to be intermingled with character data (
#PCDATA) in a mixed content model are named with a
suffix “
-elements”. For example,
“
%copyright-holder-elements;” would be used in the content model for the element
<copyright-holder>:
<!ENTITY % copyright-holder-elements "| %subsup.class; | %x.class;" >
<!ELEMENT copyright-holder (#PCDATA %copyright-holder-elements;)* >
All inline mixes begin with an OR bar, so that the mix can be removed leaving just
character data (#PCDATA):
<!ENTITY % rendition-plus "| %all-phrase;" >
The override of a complete content model will be named with a
suffix “-model” and should include the entire content model, including the enclosing
parentheses:
<!ENTITY % kwd-group-model "(title?, (%kwd.class; | %x.class;)+ )" >
<!ELEMENT kwd-group %kwd-group-model; >