Статья основана на оригинальном документе W3C — XHTML™ 1.1 — Module-based XHTML — Second Edition: W3C Working Draft 16 February 2007 [6]. Он может быть изменен, но скорее всего станет заменой для существующей рекомендации — XHTML™ 1.1 — Module-based XHTML.
Строгое соответствие документов
Документы, полностью совместимые с XHTML 1.1 — должны соответствовать следующим критериям:
- Корневым элементом документа должен быть элемент
<html>.
- Корневой элемент документа (
<html>
) должен указывать на пространство имен XHTML с помощью атрибутаxmlns
. Указателем пространства имен для XHTML является "http://www.w3.org/1999/xhtml", то есть открывающим тегом html должна быть конструкция вида:<html xmlns="http://www.w3.org/1999/xhtml">
. - Корневой элемент может также содержать атрибут
schemaLocation
. АтрибутschemaLocation
для XHTML определен в виде:"http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd"
. - Должно присутствовать объявление типа документа
DOCTYPE
, предшествующее корневому элементу. Идентификатор, включенный в объявлениеDOCTYPE
, должен указывать на соответствующий DTD. Этот идентификатор может выглядеть следующим образом: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Приведем пример документа, соответствующего XHTML 1.1:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" xml:lang="en" > <head> <title>Virtual Library</title> </head> <body> <p>Moved to <a href="http://example.org/">example.org</a>.</p> </body> </html>
Отметим, что в этом примере, включено объявление XML. Объявление XML, подобное вышеуказанному требуется не во всех XML документах. Авторам XHTML документов крайне рекомендуется использовать объявление XML во всех своих документах. Такое объявление требуется, когда кодировка XML-документа отличается от UTF-8 или UTF-16.
У документов XHTML 1.1 следует указывать тип содержимого документа — либо как text/html
, либо application/xhtml+xml
.
Естественно агенты пользователя (например, браузеры) со своей стороны также должны учитывать эти рекомендации.
Тип документов XHTML 1.1
XHTML 1.1 — это полнофункциональный тип документов с развитой семантикой. Однако, он не так разнообразен в функциональном отношении как типы XHTML 1.0 Transitional или XHTML 1.0 Frameset. Начиная с версии XHTML 1.1, тип документа не содержит устаревших элементов, содержащихся в типах XHTML 1.0 или HTML 4. Несмотря на эти исключения, или возможно благодаря им, тип XHTML 1.1 является надежной базой для создания новых типов документов в будущем с полной поддержкой различными агентами пользователей.
Тип XHTML 1.1 составлен из следующих XHTML модулей.
- Структурный модуль
-
body, head, html, title
- Модуль для работы с текстом
-
abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
- Гипертекстовый модуль
-
a
- Модуль списков
-
dl, dt, dd, ol, ul, li
- Модуль объектов
-
object, param
- Модуль различных способов представления
-
b, big, hr, i, small, sub, sup, tt
- Модуль редактирования
-
del, ins
- Модуль поддержки двунаправленного текста
-
bdo
- Модуль форм
-
button, fieldset, form, input, label, legend, select, optgroup, option, textarea
- Табличный модуль
-
caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr
- Модуль изображений
-
img
- Модуль карт изображений клиентской стороны
-
area, map
- Модуль карт изображений стороны сервера
-
Атрибут ismap, включенный в img
- Модуль внутренних событий
-
Атрибуты событий
- Модуль метаинформации
-
meta
- Модуль сценариев
-
noscript, script
- Модуль таблиц стилей
-
style
- Модуль атрибутов стилей (Устаревший)
-
Атрибут style
- Модуль ссылок
-
link
- Модуль базы
-
base
XHTML также использует модуль Ruby Annotation:
- Модуль Ruby Annotation
-
ruby, rbc, rtc, rb, rt, rp
Названия модулей в списке приведены согласно своим определениям в текущей версии «XHTML Modularization». Более подробная информация о модулях содержится в документе «XHTML Modularization».
Отличия от XHTML 1.0 Strict
XHTML 1.1 отличается от обеих технологий HTML 4 и XHTML 1.0. Наиболее значимым является устранение устаревших элементов. Вообще, существует стратегия определять язык разметки со структурно-функциональной стороны, вне зависимости от таблиц стилей, применяемых для дизайна документов.
Отличия могут быть сформулированы следующим образом:
- Атрибут
lang
заменен атрибутомxml:lang
. - В элементах
a
иmap
, атрибутname
заменен атрибутомid
. - Коллекция элементов «
Ruby
» расширена.
Таким образом, тип XHTML 1.1 несильно отличается от XHTML 1.0 Strict, однако, эти отличия достаточно существенны и их необходимо учитывать.