Ссылка на сущность
[67] | Reference | ::= | | | |
[68] | EntityRef | ::= | '&' ';' | |
[69] | PEReference | ::= | '%' ';' | |
Ограничение корректности: Декларированная сущность
Для документа без какого-либо DTD, для документа, имеющего лишь внутренний набор DTD, который не содержит ссылок на сущность параметра, а также для документа с декларацией "standalone='yes'": для каждого в ссылке на сущность, которая не попадает ни во внешний набор, ни в сущность параметра, должен иметься Name в одной из , которые также не располагаются ни во внешнем наборе, ни в сущности параметра. Исключение составляют корректные (well-formed) документы, для которых нет нужды декларировать сущности amp, lt, gt, apos и quot. Декларация общей сущности должна предшествовать всем ссылкам на нее, которые могут иметься в декларации списка атрибутов в составе значения по умолчанию.
Заметим, что если сущность была декларирована во внешнем наборе или во внешней сущности параметра, то непроверяющий процессор читать и обрабатывать ее декларацию. Для подобных документов требование декларировать сущности становится условием корректности только если было указано .
Ограничение действительности: Декларированная сущность
В документе с внешним набором или внешними сущностями параметра, который имеет декларацию "standalone='no'", лексема в ссылке на сущность должна Name в одной из . Чтобы обеспечить взаимодействие, действительные документы должны декларировать сущности amp, lt, gt, apos, quot в том формате, который описан в главе . Декларация сущности параметра должна предшествовать любым ссылкам на нее. Точно так же декларация общей сущности должна предшествовать любым декларациям списка атрибута, содержащим значение по умолчанию с прямой либо косвенной ссылкой на эту общую сущность.
Ограничение корректности: Разобранная сущность
Ссылка на сущность не должна содержать имени . Ссылаться на неразобранные сущности можно только в тех , которые были декларированы как имеющие тип ENTITY или ENTITIES.
Ограничение корректности: Отсутствие рекурсии
Разобранная сущность не должна иметь рекурсивной ссылки саму на себя, прямой либо косвенной.
Ограничение корректности: В DTD
Ссылка на сущность параметра может присутствовать только в .
Примеры ссылок на символ и сущность:
Type <key>less-than</key> (<) to save options. This document was prepared on &docdate; and is classified &security-level;. |
<!-- declare the parameter entity "ISOLat2"... --> <!ENTITY % ISOLat2 SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" > <!-- ... now reference it. --> %ISOLat2; |