HTML and CSS Reference
You'll find parameter entities littered throughout any well-written DTD,
including the HTML DTD. Parameter entities have a percent sign ( % ) pre-
ceding their names. The percent sign tells the XML processor to look up
the entity name in the DTD's list of parameter entities, insert the value
of the entity into the DTD in place of the entity reference, and process
the value of the entity as part of the DTD.
That last bit is important. By processing the contents of the parameter
entity as part of the DTD, the XML processor allows you to place any val-
id XML content in a parameter entity. Many parameter entities contain
lengthy XML definitions and may even contain other entity definitions.
Parameter entities are the workhorses of the XML DTD; creating DTDs
without them would be extremely difficult. [*]
[*] C and C++ programmers may recognize that the entity mechanism in XML is similar to the #define
macro mechanism in C and C++. The XML entities provide only simple character-string substitution
and do not employ C's more elaborate macro parameter mechanism.
15.3.3. Entity Declarations
Let's define an entity with the <!ENTITY> tag in an XML DTD. Inside the
tag, first supply the entity name and value, and then indicate whether it
is a general or a parameter entity:
<!ENTITY name value >
<!ENTITY % name value >