<![INCLUDE [
...any XML content...
]]>
or:
<![IGNORE [
...any XML content...
]]>
The XML processor will either include or ignore the contents,
respectively. Conditional sections may be nested, with the caveat
that all sections contained within an ignored section will be
ignored, even if they are set to be included.
You will rarely see a DTD with the INCLUDE and
IGNORE keywords spelled out. Instead, you'll
see parameter entities that document why the section is being
included or ignored. Suppose you are creating a DTD to exchange
construction plans among builders. Since you have an international
customer base, you build a DTD that can handle both U.S. and metric
units. You might define two parameter entities thus:
<!ENTITY % English "INCLUDE">
<!ENTITY % Metric "IGNORE">
You would then place all the English-specific declarations in a
conditional section and isolate the metric declarations similarly:
<![%English [
...English stuff here...
]]>
<![%Metric [
...Metric stuff here...
]]>
To use the DTD for English construction jobs, define
%English as INCLUDE and
%Metric as IGNORE, which causes
your DTD to use the English declarations. For metric construction,
reverse the two settings, ignoring the English section and including
the metric section.
 |  |  |
15.5. Element Attributes |  | 15.7. Building an XML DTD |