Соответствие Пользовательского Агента (ПА) Семейства XHTML
Соответствующий ПА обязан удовлетворять следующим критериям (как определено в ):
Чтобы следовать Рекомендациям XML 1.0 , ПА обязан разбирать и выполнять документ XHTML правильно сформированным. Если ПА объявлен как проверяющий ПА, он обязан также проверять документы относительно их ОТД в соответствии с .
Если ПА объявляет о поддержке возможностей, определённых в данной спецификации или требуемых данной спецификацией через нормативные ссылки, он обязан выполнять это способами, соответствующими определениям возможностей.
Когда ПА обрабатывает документ XHTML как общий (родовой) документ , он должен лишь распознавать атрибуты типа ID (напр., атрибут id
большинства элементов XHTML) как идентификаторы фрагмента.
Если ПА обнаруживает элемент, который он не в состоянии распознать, он обязан продолжить обработку потомков этого элемента. Если содержимым является текст, то текст обязан быть представлен (выведен) пользователю.
Если ПА обнаруживает атрибут, который он не в состоянии распознать, он обязан игнорировать всю спецификацию атрибута (т.е. атрибут и его значение).
Если ПА обнаруживает значение атрибута, которое он не в состоянии распознать, он обязан использовать значение по умолчанию данного атрибута.
Если ПА обнаруживает ссылку-мнемонику (отличную от предопределённых), для которой ПА не производит объявлений (что может случиться, если объявление находится во внешнем поднаборе, который ПА не может прочесть), то ссылка-мнемоника должна быть выведена как символы (начиная с амперсанда и заканчивая точкой с запятой), представляющие мнемонику.
При выводе содержимого, ПАгенты, обнаружившие символы или мнемоники, которые ими не распознаются, но не могут быть представлены, должны отобразить документ так, чтобы пользователю было понятно, что нормальное представление невозможно.
Пробел обрабатывается в соответствии со следующими правилами. Данные символы определены в как пробельные символы:
SPACE/пробел ( )
HORIZONTAL TABULATION/горизонтальная табуляция (	)
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) предоставляет назначения имён скриптов всем символам.
Содержание раздела