Построение текста замены для внутренней сущности
Обсуждая процедуру обработки внутренних сущностей, полезно различать два вида значений сущности. [Определение: Строковое значение сущности - это строка в кавычках, которая реально присутствует в декларации сущности и соответствует незавершенному .] [Определение: Текст замены - это содержимое сущности после подстановки всех ссылок на символ и сущность параметра.]
Строковое значение сущности, данное в декларации внутренней сущности (), может содержать ссылки на символ, на сущность параметра и на общую сущность. Такие ссылки должны целиком содержаться в строковом значении сущности. Реально текст замены должен содержать текст замены для всех сущностей параметров и все символы, на которые делалась ссылка, причем в тех местах строкового значения сущности, где эти ссылки находились. Вместе с тем, ссылки на общие сущности должны оставаться без изменений. Например, даны следующие декларации:
<!ENTITY % pub "Éditions Gallimard" >
<!ENTITY rights "All rights reserved" > <!ENTITY book "La Peste: Albert Camus, © 1947 %pub;. &rights;" > |
тогда текст замены для сущности "book":
La Peste: Albert Camus, © 1947 Éditions Gallimard. &rights; |
Ссылка на общую сущность "&rights;" должна расшифроваться только тогда, когда ссылка "&book;" попадает в содержимое документа или значение атрибута.
Эти простые правила могут иметь сложные взаимоотношения. Детальное обсуждение сложного примера этого см. в Приложении .