Feltételes szövegrészek

Esetenként előfordul, hogy bizonyos feltételek alapján másképpen szeretnénk megjeleníteni a szövegünket. Sőt, olyan is előfordul, hogy más szöveget szeretnénk megjeleníti. Erre szolgálnak a jelölt részek (marked sections).


<![INCLUDE [ keys are boxed, such as <key>F1</key> ]] >

<![IGNORE [ keys are blue inside brackets, such as <key>F1</key> ]] >

Az INCLUDE és az IGNORE SGML kulcsszavak, amelyek arra utasítják az SGML rendszert, hogy valamit feldolgozzanak, vagy kihagyjanak. A jelölt részek tartalmazhatnak szöveget és markup tagokat is.

Persze ezt (is) lehet automatizálni:


<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.0//EN" [
...
<!ENTITY % hardcopy "INCLUDE">
<!ENTITY % softcopy "IGNORE">
...]>

...
<![%hardcopy; [ keys are boxed, such as <key>F1</key> ]] >
<![%softcopy; [ keys are blue inside brackets, such as <key>F1</key> ]] >

Most már csak egyetlen helyen kell átírnunk az INCLUDE/IGNORE párt, ha pl. a nyomtatott verzióról át akarunk térni az elektronikus verzióra.

Elvileg a jelölt részek egymásba ágyazhatóak. A gyakorlatban azonban az SGML processzorok jó része hibázik, ezért kerüljük el ezt a technikát.

Nem igazán támogatottak a szabványos XML-ben.