Иной

XHTML 1.0

Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Виртуальная библиотека</title>
</head>
<body>
<p>Переехала по адресу <a href="http://vlib.org/">vlib.org</a>.</p>
</body>
</html>
Обратите внимание, что в данном примере включено объявление XML. Такое объявление XML не является обязательным для всех документов XML. Авторам документов XHTML настоятельно рекомендуется использовать объявления XML во всех своих документах. Такое объявление обязательно, если кодировка символов документа отличается от используемых по умолчанию UTF-8 или UTF-16.
3.1.2 Использование XHTML с другими пространствами имен
Пространство имен XHTML может использоваться с другими пространствами XML в соответствии с [XMLNAMES], хотя такие документы не являются строго конформными XHTML 1.0 в соответствии с приведенным выше определением. В будущих работах W3C будут определены способы указания конформности документов, в которых используется несколько пространств имен.
в следующем примере показано, как XHTML 1.0 может использоваться с Рекомендацией MathML:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>Пример Math</title>
</head>
<body>
<p>Далее приводится разметка MathML:</p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply> <log/>
<logbase>
<cn> 3 </cn>
</logbase>
<ci> x </ci>
</apply>
</math>
</body>
</html>
В следующем примере показан способ внедрения разметки XHTML 1.0 в другое пространство имен XML:
<?xml version="1.0" encoding="UTF-8"?>
<!-сначала пространство имен по умолчанию: "books" -->
<book xmlns='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="ru" lang="ru">
<title>На десятку дешевле</title>
<isbn:number>1568491379</isbn:number>
<notes>
<!-для комментария по умолчанию устанавливается пространство имен HTML -->
<p xmlns='http://www.w3.org/1999/xhtml'>
Можно также найти <a href="http://www.w3.org/">в сети</a>.
</p>
</notes>
</book>
3.2 Конформность пользовательских агентов
Конформный пользовательский агент должен соответствовать всем следующим критериям:
Для соответствия Рекомендации XML 1.0 [XML] пользовательский агент должен разбирать документ XHTML и оценивать его правильность. Если пользовательский агент выполняет проверку на правильность, он должен также проверять документы на соответствие с DTD, на которые они ссылаются, в соответствии с [XML].
Если пользовательский агент поддерживает возможности, определенные в настоящей спецификации или обязательные согласно нормативной ссылке, он должен это делать в соответствии со способами, описанными в определении этой возможности.
Если пользовательский агент обрабатывает документ XHTML как общий документ XML, он должен распознавать только атрибуты типа ID (например, атрибут id большинства элементов XHTML) в качестве идентификаторов фрагментов.
Если пользовательский агент встречает элемент, который он не распознает, он должен сгенерировать содержимое элемента.
Если пользовательский агент встречает атрибут, который он не распознает, он должен проигнорировать всю спецификацию атрибута (т.е. атрибут и его значение).
Если пользовательский агент встречает значение атрибута, которое он не распознает, он должен использовать значение атрибута по умолчанию.
Если пользовательский агент встречает ссылку на объект (отличный от заранее определенных объектов), для которой он не обрабатывал объявления (что могло произойти, если объявление расположено во внешнем подмножестве, которое пользовательский агент не прочел), ссылка на объект должна генерироваться в виде символов (начиная с амперсанда и заканчивая точкой с запятой), составляющий ее.
Во время генерации содержимого пользовательские агенты, если они встречают распознаваемые, но негенерируемые символы или ссылки на символьные объекты, должны представлять документ таким образом, чтобы пользователю было понятно, что корректная генерация была невозможна.
Следующие символы определены в [XML] как пробельные:
пробел (&#x0020;)
табуляция (&#x0009;)
возврат каретки (&#x000D;)
перевод строки (&#x000A;)
Процессор XML приводит коды конца строки, различные в различных в системах, в одному символу перевода строки, который передается в приложение. Пользовательский агент XHTML, кроме того, должен обрабатывать как пробельные следующие символы:
перевод страницы (&#x000C;)
пробел нулевой ширины (&#x200B;)
В элементах, в которых для атрибута 'xml:space' установлено значение 'preserve', пользовательский агент должен сохранять все пробельные символы (за исключением начальных и конечных пробельных символов, которые должны удаляться). В противном случае пробелы должны обрабатываться по следующим правилам:
Все пробельные символы, окружающие элементы блока, должны удаляться.
Комментарии удаляются полностью и не влияют на обработку пробелов. Один пробельный символ в начале и в конце комментария обрабатывается как два пробела.
Начальные и конечные пробельные символы внутри элемента блока должны быть удалены.
Символы перевода строки в элементе блока должны быть преобразованы в пробел (если для атрибута 'xml:space' не установлено значение 'preserve').
Последовательность пробельных символов должна сокращаться до одного пробела (если для атрибута 'xml:space' не установлено значение 'preserve').
Относительно воспроизведения, пользовательский агент должен генерировать содержимое подходящим для языка, на котором оно написано, способом. В языках, основным написанием которых является латиница, символ пробела набора ASCII обычно используется для кодирования грамматических границ слов и типографских пробелов; в языках, основное написание которых связано с алфавитом нагари (например, в санскрите, тайском и т.д.), грамматические границы между словами могут кодироваться с помощью символа пробела набора ZW, но в генерируемом выводе они обычно не представляются типографскими пробелами; в языках с арабским написанием типографские пробелы могут кодироваться с помощью символа пробела, а также с помощью символа пробела набора ZW для отделения 'внутренних' грамматических границ (то, что для русского человека выглядит в арабском языке, как одно слово, часто может быть несколькими словами, например, 'kitAbuhum' = 'kitAbu-hum' = 'книга их' == их книга); а в языках с китайским написанием традиционно не кодируются ни пробелы между словами, ни типографские пробелы.
Пробелы в значениях атрибутов обрабатываются в соответствии с [XML].
4. Различия по сравнению с HTML 4
Поскольку XHTML является приложением XML, некоторые приемы, допустимые в языке HTML 4 [HTML], основанном на SGML, должны быть изменены.
4.1 Документы должны быть правильно построены
Правильное построение - это новое понятие, введенное в [XML]. В основном это означает, что все элементы либо должны иметь закрывающие теги, либо записываться в специальной форме (как описано ниже), и все элементы должны вкладываться друг в друга.
Хотя в SGML перекрытие недопустимо, существующие браузеры обычно не считают это ошибкой.
ПРАВИЛЬНО: вложенные элементы.
<p>это выделенный <em>абзац</em>.</p>
НЕПРАВИЛЬНО: перекрывающиеся элементы
<p>это выделенный <em>абзац.</p></em>
4.2 Имена атрибутов и элементов должны быть в нижнем регистре
В документах XHTML для всех имен элементов и атрибутов HTML должен использоваться нижний регистр. Это различие обязательно, поскольку в XML регистр имеет значение - например, <li> и <LI> - различные теги.
4.3 Для непустых элементов конечные теги обязательны
В HTML 4 конечный тег некоторых элементов может опускаться; при этом закрытие элемента подразумевалось автоматически благодаря последующим тегам. Это не допускается в XHTML, построенном на основе XML. Все элементы, кроме объявленных в DTD как EMPTY, должны иметь конечный тег.
ПРАВИЛЬНО: закрытые элементы
<p>это абзац.</p><p>here is
another paragraph.</p>
НЕПРАВИЛЬНО: незакрытые элементы
<p>это абзац.<p>here is another
paragraph.
4.4 Значения атрибутов должны всегда заключаться в кавычки
Все значения атрибутов должны заключаться в кавычки, даже числовые.
ПРАВИЛЬНО: значения атрибутов в кавычках
<table rows="3">
НЕПРАВИЛЬНО: значения атрибутов без кавычек
<table rows=3>
4.5 Минимизация атрибутов
В XML не поддерживается минимизация атрибутов. Пары атрибут-значение должны быть записаны полностью. Такие имена атрибутов как
compact и checked не могут встречаться в элементах без указания их значения.
ПРАВИЛЬНО: неминимизированные атрибуты
<dl compact="compact">
НЕПРАВИЛЬНО: минимизированные атрибуты
<dl compact>
4.6 Пустые элементы
Пустые элементы должны иметь конечный тег или начальный тег должен заканчиваться угловой скобкой (/>). Например, <br/> или <hr></hr>. Информацию о том, как обеспечить обратную совместимость с пользовательскими агентами HTML 4 см. в HTML Compatibility Guidelines.
ПРАВИЛЬНО: закрытые пустые теги
<br/><hr/>
НЕПРАВИЛЬНО: незакрытые пустые теги
<br><hr>
4.7 Обработка пробелов в значениях атрибутов
В значениях атрибутов пользовательские агенты должны удалять начальные и конечные пробелы от значений атрибутов и отображать последовательности из одного или нескольких пробельных символов (включая перевод строки) в один пробел между словами (символ пробела кодировки ASCII для западного начертания). См. раздел 3.3.3 спецификации [XML].
4.8 Элементы скриптов и стилей
В XHTML элементы скриптов и стилей объявляются как элементы с содержимым #PCDATA. В результате < и & будут обрабатываться как начало разметки, а такие объекты как &lt; и &amp; будут распознаваться процессором XML как ссылки на объекты < и & соответственно. Разбиение на строки содержимого элементов скриптов и стилей в разделе CDATA позволит избежать развертывания этих объектов.
<script>
<![CDATA[
... незакодированное содержимое скрипта ...
]]>
</script>
Разделы CDATA распознаются процессором XML и представляются в в виде узлов в объектной модели документа, см. раздел 1.3 Рекомендации DOM уровня 1 [DOM].
В качестве альтернативы можно использовать внешний скрипт или документы стилей.
4.9 Исключения SGML
SGML дает авторам DTD возможность запрещения содержания некоторых элементов в каком-либо другом. Такие запреты (называемые "исключениями") в XML невозможны.
Например, HTML 4 Strict DTD (строгое определение типа документа) запрещает вложение элементов 'a' друг в друга. Такие запреты невозможны в XML. Несмотря на то, что такие запреты не могут быть определены в DTD, определенные элементы не должны вкладываться. Список таких элементов и элементов, которые не должны вкладываться в них, приведен в нормативном приложении&#160;Б.
4.10 Элементы с атрибутами 'id' и 'name'
В HTML 4 атрибут name определен для элементов a, applet, form, frame, iframe, img и map. Кроме того, в HTML 4 введен атрибут id. Оба эти атрибута разработаны как идентификаторы фрагментов.
В XML идентификаторы фрагментов имеют тип ID, и один элемент может иметь только один атрибут типа ID. Поэтому в XHTML 1.0 атрибут id определен как тип ID. Чтобы гарантировать, что документы XHTML 1.0 являются правильно структурированными документами XML, в документах XHTML 1.0 при определении идентификаторов фрагментов ДОЛЖЕН использоваться атрибут id, даже в элементах, которые исторически имеют атрибут name. Информацию об обеспечении обратной совместимости таких якорей при обслуживании документов XHTML с типом устройства text/html см. в HTML Compatibility Guidelines.
Обратите внимание, что в XHTML 1.0 атрибут name этих элементов формально считается нежелательным и будет удален из последующих версий XHTML.
5. Вопросы совместимости
Хотя к документам XHTML 1.0 не предъявляется требование совместимости с существующими пользовательскими агентами, на практике оно достаточно легко реализуемо. Основные принципы создания совместимых документов можно найти в приложении&#160;C.
5.1 Типы устройств Интернет
С момента публикации настоящей рекомендации общая рекомендованная отметка типа MIME для приложений на базе XML должна еще быть разрешена.
Однако документы XHTML, в которых соблюдаются принципы, изложенные в in приложении В, "Принципы совместимости с HTML", могут помечаться с помощью типа устройства Интернет "text/html", поскольку они совместимы с большей частью браузеров HTML. Настоящий документ не дает рекомендаций относительно пометки типа MIME других документов XHTML.
6. Направления развития
Спецификация XHTML 1.0 закладывает основу семейства типов документов, которые будут расширениями и подмножествами XHTML, для поддержания широкого диапазона новых устройств и приложений путем определения модулей и механизма объединения этих модулей. Такой механизм позволит унифицировать способы расширения XHTML 1.0 и использования его подмножеств путем определения новых модулей.
6.1 Модуляризация HTML
По мере перемещения XHTML с традиционных пользовательских агентов на рабочем столе на другие платформы становится ясно, что не все элементы XHTML будут необходимы на всех платформах. Например, в наладонниках или сотовых телефонах может поддерживаться только некоторое подмножество элементов XHTML.
Процесс модуляризации разбивает XHTML на ряд более мелких подмножеств элементов. Затем, если требования изменятся, эти элементы можно перекомбинировать иным образом.
Модули будут определены в другом документе W3C.
6.2 Подмножества и расширяемость
Модуляризация дает следующие преимущества:
Она предоставляет формальный механизм выделения подмножеств XHTML.
Она предоставляет формальный механизм расширения XHTML.
Она упрощает преобразование типов документов.
Она способствует повторному использованию модулей в новых типах документов.
6.3 Профили документов
В профиле документа определяется синтаксис и семантика набора документов. Соответствие профилю документа обеспечивает основу гарантии совместимости. В профиле документа определяются возможности, необходимые для обработки документа этого типа, например, какие могут использоваться форматы изображений, уровни скриптов, поддержка таблиц стилей и т.д.
Для разработчиков продуктов они обеспечивают возможность определения стандартных профилей различными группами по необходимости.
Для авторов профили устраняют необходимость написания нескольких различных версий документов для различных клиентов.
Для групп специальностей, например, химиков, врачей или математиков можно строить специальные профили со стандартными элементами HTML плюс группы элементов, необходимых для этих конкретных специальностей.
Приложение А. DTD
Данное приложение является нормативным.
Данные DTD и наборы объектов составляют нормативную часть настоящей спецификации. Полный набор
3 2/3 1
Интернет-магазин Алёнка