Расширяемый язык разметки

Построение текста замены для внутренней сущности


Обсуждая процедуру обработки внутренних сущностей, полезно различать два вида значений сущности. [Определение: Строковое значение сущности - это строка в кавычках, которая реально присутствует в декларации сущности и соответствует незавершенному .] [Определение: Текст замены - это содержимое сущности после подстановки всех ссылок на символ и сущность параметра.]

Строковое значение сущности, данное в декларации внутренней сущности (), может содержать ссылки на символ, на сущность параметра и на общую сущность. Такие ссылки должны целиком содержаться в строковом значении сущности. Реально текст замены должен содержать текст замены для всех сущностей параметров и все символы, на которые делалась ссылка, причем в тех местах строкового значения сущности, где эти ссылки находились. Вместе с тем, ссылки на общие сущности должны оставаться без изменений. Например, даны следующие декларации:

<!ENTITY % pub "&#xc9;ditions Gallimard" >

<!ENTITY rights "All rights reserved" >

<!ENTITY book "La Peste: Albert Camus, &#xA9; 1947 %pub;. &rights;" >

тогда текст замены для сущности "book":

La Peste: Albert Camus, © 1947 Éditions Gallimard. &rights;

Ссылка на общую сущность "&rights;" должна расшифроваться только тогда, когда ссылка "&book;" попадает в содержимое документа или значение атрибута.

Эти простые правила могут иметь сложные взаимоотношения. Детальное обсуждение сложного примера этого см. в Приложении .



Содержание раздела