Модуляризация XHTML



         

Соответствие Пользовательского Агента (ПА) Семейства XHTML - часть 2


  • CARRIAGE RETURN/возврат каретки (
)
  • LINE FEED/прогон строки (
)
  • Процессор XML нормализует различные системные коды конца строки в единый символ LINE FEED, который и передаётся приложению.

    ПА обязан обрабатывать пробельные символы в данных, полученных от процессора XML, следующим образом:

  • Все пробелы, окружающие блок элементов, должны быть удалены.
  • Комментарии полностью удаляются и не влияют на обработку пробелов. Одиночный пробельный символ с любой стороны комментария рассматривается как два пробельных символа.
  • Если атрибут 'xml:space' установлен в 'preserve', пробельные символы обязаны быть сохранены и последующие символы LINE FEED внутри блока обязаны не быть конвертированы.
  • Если атрибут 'xml:space' установлен в 'preserve', тогда:
  • Ведущие и ведомые пробелы внутри элемента блока обязаны быть удалены.
  • Символы LINE FEED обязаны быть конвертированы в один из следующих символов: SPACE, ZERO WIDTH SPACE (​) или ни в один из символов (т.е. удалены).

    Выбор результирующего символа зависит от ПА и обусловлен свойствами письма (языка) символов до и после символа LINE FEED.

  • Последовательность пробелов без символов LINE FEED обязана быть редуцирована до символа SPACE.
  • Последовательность пробельных символов с одним или более символом LINE FEED обязана быть редуцирована таким же образом до символа SPACE.
  • Пробелы в значениях атрибутов обрабатываются в соответствии с .

    Примечание (информативное): При определении того, как конвертировать символ LINE FEED, ПА должен рассмотреть следующие случаи, когда вид письма с любой стороны от LINE FEED определяет выбор замены. Символы ОБЩЕГО письма (такие как пунктуация) рассматриваются так же, как и письмо с другой стороны:

  • Если символы до и после LINE FEED принадлежат письму, в котором символ SPACE используется как разделитель слов, то символ LINE FEED должен быть конвертирован в символ SPACE. Примерами такого письма могут служить латиница, греческое и кириллица.
  • Если символы до и после LINE FEED принадлежат идеографическому письму или системе письма, в которой нет разделителя слов, то LINE FEED должен быть конвертирован в нулевой (пустой/никакой) символ. Примеры такого письма или системы письма - китайский, японский.
  • Если символы до и после LINE FEED принадлежат неидеографическому письму, в котором нет разделителя слов, LINE FEED должен быть конвертирован в символ ZERO WIDTH SPACE (​) или в нулевой (пустой/никакой) символ. Примеры такого письма -тайский, кхмерский.
  • Если условия с (1) по (3) неприменимы, то символ LINE FEED должен быть конвертирован в символ SPACE.
  • Техническое сообщение Unicode TR#24 (Script Names) предоставляет назначения имён скриптов всем символам.




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