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



         

Декларация внешней сущности


[75] ExternalID    ::=    'SYSTEM'
| 'PUBLIC'
[76]    NDataDecl    ::=    'NDATA'

Если в декларации присутствует , то это общая . В противном случае, сущность является разобранной.

Ограничение действительности: Декларированная нотация

должно соответствовать декларированному имени .

[Определение: Литерал называется системным идентификатором сущности. Он представляет собой ссылку URI (чье определение было дано в , а затем дополнено в ), которую необходимо разобрать, чтобы получить данные на вход XML процессора и сформировать текст замены для указанной сущности.] Если идентификатор фрагмента (начинающийся с символа #) окажется в составе системного идентификатора, фиксируется ошибка. Для обработки относительных адресов URI в качестве базового берется адрес того источника, в котором была обнаружена декларация данной сущности, если обратное не было указано в ином источнике информации помимо данной спецификация (например, когда специальный тип XML элемента был определен в отдельном DTD или инструкция обработки определена спецификацией конкретного приложения). Таким образом, URI может вычисляться относительно , относительно сущности, содержащей , или какой-либо другой .

Ссылки URI требуют кодирования и маскирования (escaping) определенных символов. Среди запрещенных символов числятся все не-ASCII символы, а также исключенные символы, перечисленные в главе 2.4 документа . Исключение составляют символы решетки (#) и процента (%), а также символы квадратных скобок, разрешенные документом . Запрещенные символы необходимо маскировать следующим образом:

Каждый из запрещенных символов преобразуется в один или два байта в кодировке UTF-8 .

  • Все октеты, относящиеся к запрещенным символам, маскируются с помощью соответствующего механизма URI (то есть преобразуются в формат %HH, где HH - шестнадцатеричное представление для соответствующего байтового значения).

  • Исходный символ замещается полученной последовательностью символов.




    Содержание  Назад  Вперед