Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Расширяемый язык разметки гипертекста ( XHTML ) является частью семейства языков разметки XML . Он отражает или расширяет версии широко используемого языка разметки гипертекста (HTML), языка, на котором формулируются веб-страницы .

В то время как HTML до HTML5 был определен как приложение Standard Generalized Markup Language (SGML), гибкой структуры языка разметки, XHTML - это приложение XML , более ограниченного подмножества SGML. Документы XHTML имеют правильный формат и поэтому могут быть проанализированы с использованием стандартных анализаторов XML, в отличие от HTML, для которого требуется гибкий анализатор, специфичный для HTML. [1]

XHTML 1.0 стал рекомендацией Консорциума Всемирной паутины (W3C) 26 января 2000 года. XHTML 1.1 стал рекомендацией W3C 31 мая 2001 года. Стандарт, известный как XHTML5, разрабатывается как XML-адаптация спецификации HTML5. [2] [3]

Обзор [ править ]

XHTML 1.0 - это «переформулировка трех типов документов HTML 4 как приложений XML 1.0». [4] World Wide Web Consortium (W3C) также продолжает поддерживать HTML 4.01 Рекомендации и спецификации для HTML5 и XHTML5 активно развиваются. В текущем документе Рекомендации XHTML 1.0, опубликованном и исправленном до августа 2002 г., W3C прокомментировал: «Семейство XHTML - это следующий шаг в эволюции Интернета. Переходя на XHTML сегодня, разработчики контента могут войти в мир XML с все сопутствующие преимущества, сохраняя при этом уверенность в обратной и будущей совместимости своего контента ». [4]

Однако в 2005 году независимо от W3C была создана рабочая группа по технологиям веб-гипертекстовых приложений (WHATWG) для работы над продвижением обычного HTML, не основанного на XHTML. WHATWG в конечном итоге начала работу над стандартом HTML5 , который поддерживает сериализацию как XML, так и не XML , параллельно со стандартами W3C, такими как XHTML 2. В 2007 году рабочая группа HTML W3C проголосовала за официальное признание HTML5 и работу над ним в качестве следующего. -поколение стандарта HTML. [5] В 2009 году W3C допустил истечение срока действия устава Рабочей группы XHTML 2, признав, что HTML5 будет единственным стандартом HTML следующего поколения, включая сериализацию как XML, так и не-XML. [6] Из двух сериализаций W3C предлагает большинству авторов использовать синтаксис HTML, а не синтаксис XHTML. [7]

Мотивация [ править ]

XHTML был разработан, чтобы сделать HTML более расширяемым и улучшить взаимодействие с другими форматами данных. [8] Кроме того, браузеры не допускали ошибок в HTML, и большинство веб-сайтов отображалось, несмотря на технические ошибки в разметке; XHTML ввел более строгую обработку ошибок. [9] HTML 4 якобы был приложением Standard Generalized Markup Language (SGML); однако спецификация SGML была сложной, и ни веб-браузеры, ни Рекомендация HTML 4 не соответствовали ей полностью. [10] Стандарт XML, утвержденный в 1998 году, обеспечил более простой формат данных, более близкий по простоте к HTML 4. [11]При переходе на формат XML возникла надежда, что HTML станет совместимым с распространенными инструментами XML; [12] серверы и прокси-серверы смогут при необходимости преобразовывать контент для ограниченных устройств, таких как мобильные телефоны. [13] Используя пространства имен , документы XHTML могут обеспечивать расширяемость за счет включения фрагментов из других основанных на XML языков, таких как Scalable Vector Graphics и MathML . [14] Наконец, обновленная работа предоставит возможность разделить HTML на повторно используемые компоненты ( модуляризация XHTML ) и очистить неаккуратные части языка. [15]

Связь с HTML [ править ]

Между XHTML и HTML есть различные различия. Объектная модель документа (DOM) , представляет собой древовидную структуру , которая представляет собой страницу внутри в приложениях, а также XHTML и HTML - два разных способа представления , что в разметке. Оба менее выразительны, чем DOM - например, "-" может быть помещен в комментарии в DOM, но не может быть представлен в комментариях ни в XHTML, ни в HTML - и, как правило, синтаксис XML XHTML более выразителен, чем HTML (например, , произвольные пространства имен не допускаются в HTML). XHTML использует синтаксис XML, а HTML использует псевдо- SGML.синтаксис (официально SGML для HTML 4 и ниже, но никогда на практике и стандартизован отдельно от SGML в HTML5). Поскольку выражаемое содержимое DOM в синтаксисе немного отличается, есть некоторые изменения в фактическом поведении между двумя моделями. Однако различия в синтаксисе можно преодолеть, реализовав в разметке альтернативную платформу перевода.

Во-первых, есть некоторые различия в синтаксисе: [16]

  • В целом правила XML требуют, чтобы все элементы были закрыты либо отдельным закрывающим тегом, либо с использованием самозакрывающегося синтаксиса (например <br/>), в то время как синтаксис HTML разрешает открывать некоторые элементы, потому что либо они всегда пусты (например <input>), либо их конец определяться неявно (например, «упускаемость» <p>).
  • XML чувствителен к регистру для имен элементов и атрибутов , а HTML - нет.
  • Некоторые сокращенные функции в HTML опущены в XML, такие как (1) минимизация атрибутов , где значения атрибутов или их кавычки могут быть опущены (например, <option selected>или <option selected=selected>, в то время как в XML это должно быть выражено как <option selected="selected">); (2) минимизация элементов может использоваться для полного удаления элементов (например, <tbody>выведенных в таблице, если не указано); и (3) редко используемый синтаксис SGML для минимизации элементов («короткий тег»), который не реализован в большинстве браузеров. [17]
  • Существует множество других технических требований, связанных с пространствами имен и точным анализом пробелов и определенных символов и элементов. Точный синтаксический анализ HTML на практике до недавнего времени не был определен; см. спецификацию HTML5 ( [HTML5] ) для получения полной информации или рабочее резюме ( HTML или XHTML ).

Помимо синтаксических различий, есть некоторые различия в поведении, в основном возникающие из-за основных различий в сериализации. Например:

  • Поведение при ошибках синтаксического анализа отличается. Неустранимая ошибка синтаксического анализа в XML (например, неправильная структура тега) вызывает прерывание обработки документа.
  • Большая часть содержимого, требующего пространств имен, не будет работать в HTML, за исключением встроенной поддержки SVG и MathML в анализаторе HTML5 вместе с некоторыми магическими префиксами, такими как xlink.
  • Обработка JavaScript отличается в XHTML, с небольшими изменениями чувствительности к регистру в некоторых функциях и дополнительными мерами предосторожности, чтобы ограничить обработку правильно сформированным контентом. Скрипты не должны использовать метод; он недоступен для XHTML. Свойство доступно, но не вставит не-хорошо сформированное содержания. С другой стороны, его можно использовать для вставки правильно сформированного содержимого с пространством имен в XHTML.document.write()innerHTML
  • Каскадные таблицы стилей (CSS) также применяются иначе. Из-за чувствительности к регистру в XHTML все селекторы CSS становятся чувствительными к регистру для документов XHTML. [18] Некоторые свойства CSS, такие как фон, установленные для <body>элемента в HTML, «наследуются снизу вверх» в <html>элемент; это кажется [ требуется пояснение ], чтобы не относиться к XHTML. [19]

Принятие [ править ]

Сходство между HTML 4.01 и XHTML 1.0 привело к тому, что многие веб-сайты и системы управления контентом приняли первоначальную Рекомендацию W3C XHTML 1.0. Чтобы помочь авторам в переходе, W3C предоставил руководство о том, как публиковать документы XHTML 1.0 в HTML-совместимой манере и предоставлять их браузерам, не предназначенным для XHTML. [20] [21]

Такой «HTML-совместимый» контент пересылается с использованием медиа-типа HTML ( text/html), а не официального интернет-медиа-типа для XHTML ( application/xhtml+xml). Следовательно, при измерении принятия XHTML и обычного HTML важно различать, сравнивается ли это использование типа мультимедиа или фактическое содержимое документа. [22] [23]

Большинство веб-браузеров имеют зрелую поддержку [24] для всех возможных типов мультимедиа XHTML. [25] Заметным исключением является Internet Explorer версии 8 и более ранние от Microsoft ; вместо отображения application/xhtml+xmlсодержимого диалоговое окно предлагает пользователю сохранить содержимое на диск. И Internet Explorer 7 (выпущенный в 2006 г.), и Internet Explorer 8 (выпущенный в марте 2009 г.) демонстрируют такое поведение. [26] Разработчик Microsoft Крис Уилсон объяснил в 2005 году, что приоритетами IE7 были улучшенная безопасность браузера и поддержка CSS , и что правильную поддержку XHTML будет сложно внедрить в ориентированный на совместимость анализатор HTML;[27] однако Microsoft добавила поддержку истинного XHTML в IE9 . [28]

Пока поддержка не получила широкого распространения, большинство веб-разработчиков избегают использования XHTML, который не является HTML-совместимым, [29] поэтому преимущества XML, такие как пространства имен, более быстрый синтаксический анализ и меньшие размеры браузеров, не приносят пользы пользователю. [30] [31] [32]

Критика [ править ]

В начале 2000-х некоторые веб-разработчики начали задаваться вопросом, почему веб-авторы вообще сделали прыжок в разработку в XHTML. [33] [34] [35] Другие возражали, что проблемы, приписываемые использованию XHTML, в основном можно отнести к двум основным источникам: создание недействительных документов XHTML некоторыми веб-авторами и отсутствие поддержки XHTML, встроенной в Internet Explorer. 6 . [36] [37] Далее они описали преимущества веб-документов на основе XML (например, XHTML) в отношении поиска, индексации и синтаксического анализа, а также для защиты самого Интернета в будущем.

В октябре 2006 года изобретатель HTML и председатель W3C Тим Бернерс-Ли , представив крупный проект W3C по разработке новой спецификации HTML, опубликовал в своем блоге: «Попытка заставить мир перейти на XML ... Большая публика, генерирующая HTML, не сдвинулась с места ... Некоторые крупные сообщества действительно изменились и наслаждаются плодами хорошо сформированных систем ... Планируется создать совершенно новую группу HTML ». [38] В текущем рабочем проекте HTML5 говорится, что «особое внимание было уделено определению четких критериев соответствия для пользовательских агентов в попытке улучшить совместимость ... при одновременном обновлении спецификаций HTML для решения проблем, возникших в последние несколько лет». Ян Хиксон, редактор спецификации HTML5, критикующий неправильное использование XHTML в 2002 г. [33], является членом группы, разрабатывающей эту спецификацию, и указан как один из соредакторов текущего рабочего проекта. [39]

Саймон Питерс исследовал XML-совместимость мобильных браузеров [40] и пришел к выводу, что «утверждение, что XHTML потребуется для мобильных устройств, является просто мифом».

Версии XHTML [ править ]

XHTML 1.0 [ править ]

В прежние времена [ когда? ] , Википедия использовала тип и синтаксис XHTML 1.0 Transitional, хотя и не использовалась в качестве XHTML.

В декабре 1998 г. был опубликован рабочий проект W3C, озаглавленный « Переформулирование HTML в XML» . Это представило Voyager, кодовое имя нового языка разметки, основанного на HTML 4, но придерживающегося более строгих синтаксических правил XML. К февралю 1999 года название спецификации было изменено на XHTML 1.0: Extensible HyperText Markup Language , а в январе 2000 года он был официально принят как Рекомендация W3C. [41] Существует три формальных DTD для XHTML 1.0, соответствующих трем различным версиям HTML 4.01:

  • XHTML 1.0 Strict является XML-эквивалентом строгого HTML 4.01 и включает элементы и атрибуты, которые не были помечены как устаревшие в спецификации HTML 4.01. По состоянию на ноябрь 2015 года XHTML 1.0 Strict - это тип документа, используемый для домашней страницы веб- сайта Консорциума World Wide Web .
  • XHTML 1.0 Transitional является XML-эквивалентом HTML 4.01 Transitional и включает элементы представления (такие как center, fontи strike), исключенные из строгой версии.
  • XHTML 1.0 Frameset является XML-эквивалентом HTML 4.01 Frameset и позволяет определять документы набора фреймов - обычную функцию Web в конце 1990-х годов.

Второе издание XHTML 1.0 стало Рекомендацией W3C в августе 2002 года. [42]

Модуляризация XHTML [ править ]

Модуляризация предоставляет абстрактный набор компонентов, с помощью которых XHTML может быть разделен на подмножества и расширен. Эта функция призвана помочь XHTML распространить свое влияние на новые платформы, такие как мобильные устройства и телевизоры с доступом в Интернет. Первоначальный проект модуляризации XHTML стал доступен в апреле 1999 г. и достиг статуса Рекомендации в апреле 2001 г. [43]

Первыми модульными вариантами XHTML были XHTML 1.1 и XHTML Basic 1.0.

В октябре 2008 г. Модуляризация XHTML была заменена модуляризацией XHTML 1.1 , которая добавляет реализацию схемы XML . В июле 2010 года он был заменен вторым изданием [44].

XHTML 1.1: XHTML на основе модулей [ править ]

XHTML 1.1 развился из работы, связанной с начальной модуляризацией спецификации XHTML . W3C выпустил первый проект в сентябре 1999 года; Был достигнут статус Рекомендации в мае 2001 года [45] Модули объединенных в XHTML 1.1 эффективно воссоздавать XHTML 1.0 Strict, с добавлением рубиновых аннотаций элементов ( ruby, rbc, rtc, rb, rtи rp) для лучшей поддержки восточно-азиатских языков. Другие изменения включают в себя удаление nameатрибута из aи mapэлементов, а также (в первом издании языка) удаление langатрибута в пользу xml:lang.

Хотя XHTML 1.1 в значительной степени совместим с XHTML 1.0 и HTML 4, в августе 2002 года рабочая группа выпустила официальную записку, в которой рекомендовалось не передавать его с медиа-типом HTML. [46] Из-за ограниченной поддержки браузером альтернативного application/xhtml+xmlтипа носителя XHTML 1.1 оказался неспособным получить широкое распространение. В январе 2009 года было выпущено второе издание документа ( Типы носителей XHTML - Второе издание ), которое ослабило это ограничение и позволило использовать XHTML 1.1 как text/html. [47]

Второе издание XHTML 1.1 было выпущено 23 ноября 2010 года, в нем устранены различные ошибки и добавлена ​​реализация схемы XML, не включенная в исходную спецификацию. [48] (Впервые она была выпущена на короткое время 7 мая 2009 г. как «Предлагаемая отредактированная рекомендация» [49], а затем была отменена 19 мая из-за нерешенных проблем.)

XHTML Basic [ править ]

Поскольку информационным устройствам может не хватать системных ресурсов для реализации всех абстрактных модулей XHTML, W3C определил спецификацию XHTML с ограниченными возможностями под названием XHTML Basic. Он предоставляет минимальный набор функций, достаточный для наиболее распространенного создания контента. Спецификация стала рекомендацией W3C в декабре 2000 года. [50]

Из всех версий XHTML XHTML Basic 1.0 предоставляет наименьшее количество функций. С XHTML 1.1 это одна из двух первых реализаций модульного XHTML. В дополнение к базовым модулям (структура, текст, гипертекст и список) он реализует следующие абстрактные модули: базовые, базовые формы, базовые таблицы, изображение, ссылка, метаинформация, объект, таблица стилей и цель. [51] [52]

XHTML Basic 1.1 заменяет модуль базовых форм модулем форм и добавляет модули внутренних событий, презентации и сценариев. Он также поддерживает дополнительные теги и атрибуты из других модулей. Эта версия стала рекомендацией W3C 29 июля 2008 г. [53]

Текущая версия XHTML Basic - это 1.1 Second Edition (23 ноября 2010 г.), в которой язык повторно реализован на языке XML-схемы W3C . Эта версия также поддерживает langатрибут. [54]

XHTML-Print [ править ]

XHTML-Print, который стал Рекомендацией W3C в сентябре 2006 г., представляет собой специализированную версию XHTML Basic, предназначенную для документов, распечатываемых с информационных устройств на принтеры низкого уровня . [55]

Мобильный профиль XHTML [ править ]

XHTML Mobile Profile (сокращенно XHTML MP или XHTML-MP) - это сторонний вариант спецификации W3C XHTML Basic. Как и XHTML Basic, XHTML был разработан для информационных устройств с ограниченными системными ресурсами.

В октябре 2001 года компания с ограниченной ответственностью под названием Форум протокола беспроводных приложений начала адаптировать XHTML Basic для WAP 2.0 , второй основной версии протокола беспроводных приложений . WAP Forum основал свое DTD на модуляции XHTML W3C, включив те же модули, которые W3C использовал в XHTML Basic 1.0, за исключением целевого модуля. Начиная с этой основы, WAP Forum заменил модуль Basic Forms на частичную реализацию модуля Forms, добавил частичную поддержку модулей Legacy и Presentation, а также добавил полную поддержку модуля Style Attribute.

В 2002 году WAP Forum был включен в состав Open Mobile Alliance (OMA), который продолжил разработку мобильного профиля XHTML в качестве компонента своей спецификации просмотра OMA.

XHTML Mobile Profile 1.1 [ править ]

К этой версии, завершенной в 2004 году, OMA добавила частичную поддержку модуля сценариев и частичную поддержку внутренних событий. XHTML MP 1.1 является частью v2.1 Спецификации просмотра OMA (1 ноября 2002 г.). [56]

XHTML Mobile Profile 1.2 [ править ]

Эта версия, завершенная 27 февраля 2007 г., расширяет возможности XHTML MP 1.1 за счет полной поддержки модуля форм и режимов ввода текста OMA. XHTML MP 1.2 является частью v2.3 Спецификации просмотра OMA (13 марта 2007 г.). [56]

XHTML Mobile Profile 1.3 [ править ]

XHTML MP 1.3 (завершенный 23 сентября 2008 г.) использует определение типа документа XHTML Basic 1.1 , которое включает целевой модуль. События в этой версии спецификации обновляются до спецификаций DOM Level 3 (т. Е. Они не зависят от платформы и языка).

XHTML 1.2 [ править ]

Рабочая группа XHTML 2 рассмотрела вопрос о создании нового языка на основе XHTML 1.1. [57] Если бы XHTML 1.2 был создан, он включал бы WAI-ARIA и roleатрибуты для лучшей поддержки доступных веб-приложений, а также улучшенную поддержку семантической сети через RDFa . Также может присутствовать inputmodeатрибут из XHTML Basic 1.1 вместе с targetатрибутом (для определения целей кадра ). Рабочая группа XHTML2 не была уполномочена заниматься разработкой XHTML1.2. Поскольку W3C объявил о том, что не намерен обновлять XHTML2 WG, [6] и закрыл WG в декабре 2010 года, это означает, что предложение XHTML 1.2 не будет реализовано.

XHTML 2.0 [ править ]

В период с августа 2002 г. по июль 2006 г. W3C выпустил восемь рабочих проектов XHTML 2.0, новой версии XHTML, способной полностью порвать с прошлым, отказавшись от требования обратной совместимости. Это отсутствие совместимости с XHTML 1.x и HTML 4 вызвало некоторые споры в сообществе веб-разработчиков. [58] Некоторые части языка (такие как roleатрибуты и RDFa) были впоследствии выделены из спецификации и работали как отдельные модули, частично для того, чтобы облегчить переход от XHTML 1.x к XHTML 2.0. Девятый черновик XHTML 2.0 должен был появиться в 2009 году, но 2 июля 2009 года W3C решил позволить уставу Рабочей группы XHTML2 истечь к концу этого года, фактически остановив любое дальнейшее развитие проекта до стандарта. [6] Вместо этого XHTML 2.0 и связанные с ним документы были выпущены как W3C Notes в 2010 году. [59] [60]

Новые функции, которые были представлены в XHTML 2.0, включали:

  • HTML-формы должны были быть заменены XForms , спецификацией пользовательского ввода на основе XML, позволяющей правильно отображать формы для различных устройств визуализации.
  • HTML-фреймы должны были быть заменены XFrames .
  • В DOM События должны были быть заменены XML Events , которая использует XML - объектной модели документа .
  • Новый тип элемента списка, тип nlэлемента, должен был быть включен, чтобы специально обозначить список как список навигации. Это было бы полезно при создании вложенных меню, которые в настоящее время создаются с помощью самых разных средств, таких как вложенные неупорядоченные списки или вложенные списки определений.
  • Любой элемент должен был действовать как гиперссылка , например. г.`` <li href="articles.html">Articles</li>, похожий на XLink . Однако сам XLink несовместим с XHTML из-за различий в конструкции.
  • Любой элемент должен был иметь возможность ссылаться на альтернативные носители с srcатрибутом, например. г., <p src="lbridge.jpg" type="image/jpeg">London Bridge</p>то же самое, что и <object src="lbridge.jpg" type="image/jpeg"><p>London Bridge</p></object>.
  • altАтрибут imgэлемента был удален: альтернативный текст должен был быть приведен в содержании imgэлемента, так же, как objectэлемент, д. г., <img src="hms_audacious.jpg">HMS <span class="italic">Audacious</span></img>.
  • hБыл добавлен единственный элемент заголовка ( ). Уровень этих заголовков определялся глубиной вложенности. Это позволило бы использовать заголовки до бесконечности, а не ограничивать использование шестью уровнями.
  • Оставшиеся презентационные элементы i, bи tt, по- прежнему разрешены в XHTML 1.x (даже Строгое), должны были отсутствовать XHTML 2.0. Единственными оставшимися в некоторой степени презентационными элементами должны были быть supи subдля надстрочного и подстрочного индекса соответственно, потому что они имеют существенное непрезентабельное использование и требуются некоторыми языками. Вместо этого все другие теги должны были быть семантическими (например, strongдля сильного выделения ), позволяя пользовательскому агенту управлять представлением элементов через CSS (например, отображаемым полужирным шрифтом в большинстве визуальных браузеров, но, возможно, отображаемым с изменением тона в текстовом для чтения речи, более крупный + курсивный шрифт в соответствии с правилами в пользовательской таблице стилей и т. д.).
  • Добавление RDF тройной с propertyи aboutатрибуты , чтобы облегчить переход от XHTML к RDF / XML.

XHTML5 [ править ]

HTML5 развивался независимо от W3C, благодаря разрозненной группе производителей браузеров и других заинтересованных сторон, называющих себя WHATWG или Рабочей группой по технологиям веб-гипертекстовых приложений. Ключевым мотивом группы было создание платформы для динамических веб-приложений; они считали, что XHTML 2.0 слишком ориентирован на документы и не подходит для создания сайтов интернет-форумов или интернет-магазинов. [61]

HTML5 имеет как обычную text/htmlсериализацию, так и сериализацию XML, которая также известна как XHTML5 . [62] Этот язык более совместим с HTML 4 и XHTML 1.x, чем с XHTML 2.0, из-за решения сохранить существующие элементы формы HTML и модель событий. Он добавляет множество новых элементов не найдено в XHTML 1.x, однако, такие , как sectionи asideметки.

Язык XHTML5, как и HTML5, использует объявление DOCTYPE без DTD. Более того, спецификация осуждает предыдущие XHTML DTD, предлагая браузерам заменить их на одно, содержащее только определения сущностей для именованных символов во время синтаксического анализа. [62]

Семантический контент в XHTML [ править ]

XHTML + RDFa - это расширенная версия языка разметки XHTML для поддержки RDF посредством набора атрибутов и правил обработки в форме правильно сформированных XML- документов. Этот хост-язык является одним из методов, используемых для разработки содержимого семантической паутины путем встраивания богатой семантической разметки.

Действительные документы XHTML [ править ]

Документ XHTML, соответствующий спецификации XHTML, считается действительным . Валидность обеспечивает согласованность кода документа, что, в свою очередь, упрощает обработку, но не обязательно гарантирует согласованную визуализацию в браузерах. Документ можно проверить на достоверность с помощью службы проверки разметки W3C (для XHTML5 вместо этого следует использовать Validator.nu Living Validator). На практике многие программы веб-разработки обеспечивают проверку кода на основе стандартов W3C .

Корневой элемент [ править ]

Корневой элемент документа XHTML должен быть htmlи должен содержать xmlnsатрибут, чтобы связать его с пространством имен XHTML . URI пространства имен для XHTML - http://www.w3.org/1999/xhtml. В приведенном ниже примере тега дополнительно есть xml:langатрибут для идентификации документа на естественном языке :

<html  xmlns = "http://www.w3.org/1999/xhtml"  xml: lang = "ar" >

DOCTYPEs [ править ]

Для проверки документа XHTML может использоваться Объявление типа документа или DOCTYPE . DOCTYPE объявляет браузеру определение типа документа (DTD), которому соответствует документ. Объявление типа документа должно быть размещено перед корневым элементом .

Часть системного идентификатора DOCTYPE, которая в этих примерах является URL-адресом , начинающимся с http://, должна указывать только на копию DTD для использования, если валидатор не может найти ее на основе общедоступного идентификатора (другая строка в кавычках). Это не обязательно должен быть конкретный URL-адрес в этих примерах; фактически, авторам рекомендуется по возможности использовать локальные копии файлов DTD. Однако общедоступный идентификатор должен быть символьным, таким же, как в примерах.

Декларация XML [ править ]

Кодировка символов может быть указана в начале документа XHTML в декларации XML , когда документ подается с помощью application/xhtml+xml MIME типа. (Если в XML-документе отсутствует спецификация кодировки, синтаксический анализатор XML предполагает, что кодировка - UTF-8 или UTF-16 , если только кодировка не была определена протоколом более высокого уровня.)

Например:

<?xml version="1.0" encoding="UTF-8" ?>

Объявление может быть необязательно опущено, поскольку оно объявляет в качестве своей кодировки кодировку по умолчанию. Однако, если в документе вместо этого используется XML 1.1 или другая кодировка символов, объявление необходимо. Internet Explorer до версии 7 переходит в режим совместимости , если обнаруживает объявление XML в документе, который используется как text/html.

Обратная совместимость [ править ]

Документы XHTML 1.x в большинстве случаев обратно совместимы с пользовательскими агентами HTML 4 при соблюдении соответствующих рекомендаций. XHTML 1.1 по существу совместим, хотя элементы для рубиновой аннотации не являются частью спецификации HTML 4 и, таким образом, обычно игнорируются браузерами HTML 4. Более поздние модули XHTML 1.x, такие как модули для roleатрибута, RDFa и WAI-ARIA, постепенно ухудшаются аналогичным образом.

XHTML 2.0 значительно менее совместим, хотя это можно в некоторой степени смягчить за счет использования сценариев. (Это могут быть простые однострочники, такие как использование « document.createElement()» для регистрации нового элемента HTML в Internet Explorer, или полные инфраструктуры JavaScript, такие как реализация XForms FormFaces .)

Примеры [ править ]

Ниже приведены примеры XHTML 1.0 Strict с одинаковым визуальным выводом. Первый соответствует рекомендациям по совместимости с HTML в примечании к типам носителей XHTML, а второй нарушает обратную совместимость, но обеспечивает более чистую разметку. [47]

Пример 1.

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Strict // EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html  xmlns = "http : //www.w3.org/1999/xhtml "  xml: lang = " en "  lang = " en " >  <head>  <meta  http-Equiv = " Content-Type "  content = " text / html; charset = utf -8 " />  <title> Строгий пример XHTML 1.0 </title>  <script  type = " text / javascript " > // <! [CDATA [ function loadpdf () {  document.getElementById (" pdf-object "). Src знак равноhttp://www.w3.org/TR/xhtml1/xhtml1.pdf "; } //]]>  </script> </head>  <body  onload = "loadpdf ()" >  <p> Это пример строгого документа <abbr  title = "Extensible HyperText Markup Language" > XHTML </abbr> 1.0. <br  />  <img  id = "validation-icon"  src = "http://www.w3.org/Icons/valid-xhtml10"  alt = "Действительный XHTML 1.0 Strict" /> <br  />  <object  id = "pdf-объект"  name = "pdf-object"  type = "application / pdf"  data = "http: // www.w3.org/TR/xhtml1/xhtml1.pdf "  width = " 100% "  height ="500" >  </object>  </p>  </body> </html>

Пример 2.

<? xml version = "1.0" encoding = "UTF-8"?> <! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Strict // EN"  "http://www.w3.org/TR/ xhtml1 / DTD / xhtml1-strict.dtd "> <html  xmlns = " http://www.w3.org/1999/xhtml "  xml: lang = " en " >  <head>  <title> Строгий пример XHTML 1.0 </ title>  <script  type = "application / javascript" >  <! [CDATA [ function loadpdf () {  document.getElementById ("pdf-object") .src = "http://www.w3.org/TR/xhtml1/ xhtml1.pdf "; } ]]>  </script>  </head> <body  onload = "loadpdf ()" >  <p>Это пример строгого документа <abbr  title = "Extensible HyperText Markup Language" > XHTML </abbr> 1.0. <br  />  <img  id = "validation-icon"  src = "http://www.w3.org/Icons/valid-xhtml10"  alt = "Действительный XHTML 1.0 Strict" /> <br  />  <object  id = "pdf-object"  type = "application / pdf"  data = "http://www.w3.org/TR/xhtml1/xhtml1.pdf"  width = "100%"  height = "500" > </object>  < / p> </body> </html>

Заметки:

  1. Функция loadpdf на самом деле является обходным путем для Internet Explorer. Его можно заменить добавлением <param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf"/>внутри <object>.
  2. imgЭлемент не получает nameатрибут в Strict DTD XHTML 1.0 . Используйте idвместо этого.

Перекрестная совместимость XHTML и HTML [ править ]

Сериализации HTML5 и XHTML5 в значительной степени совместимы между собой, если придерживаться более строгого синтаксиса XHTML5, но в некоторых случаях XHTML не будет работать как действительный HTML5 (например, инструкции по обработке в HTML [ пояснить ] устарели , рассматриваются как комментарии и close по первому ">", тогда как они полностью разрешены в XML, рассматриваются как их собственный тип и закрываются по " ?>"). [63]

См. Также [ править ]

  • Расширяемый протокол пользовательского интерфейса
  • HTML
  • Список ссылок на символьные сущности XML и HTML

Ссылки [ править ]

  1. ^ Графф, Элиот (7 мая 2014 г.). «Разметка полиглота: надежный профиль словаря HTML5» . W3C .
  2. ^ «HTML против XHTML» . whatwg.org .
  3. ^ "Блог WHATWG" . whatwg.org .
  4. ^ a b «Спецификация XHTML 1.0, Раздел 1: Что такое XHTML?» . Консорциум World Wide Web . 2000-01-26 . Проверено 16 июня 2007 .
  5. ^ "результаты HTML 5 текст, редактор, название вопросы" . w3.org .
  6. ^ a b c «Часто задаваемые вопросы (FAQ) о будущем XHTML» . w3.org .
  7. ^ «Рабочий проект HTML5, Раздел 1.6: HTML против XHTML» . Консорциум World Wide Web . 2011-01-13 . Проверено 16 февраля 2011 .
  8. ^ "Спецификация XHTML 1.0, Раздел 1.1: Зачем нужен XHTML?" . Консорциум World Wide Web . 2000-01-26 . Проверено 16 июня 2007 .
  9. ^ Пилигрим, Марк. «Как мы сюда попали? - Погрузитесь в HTML5» . diveintohtml5.info . Проверено 11 июня 2016 .
  10. ^ Арджун Рэй (1999-10-06). «Удаление нормативной ссылки на SGML (было: ID ACTION.)» . Проверено 29 декабря 2008 . … Однако, поскольку ISO 8879 не дает приложениям возможности запрещать внутренние подмножества, из этого следует, что буква спецификации HTML [4] автоматически лишает его статуса соответствующего приложения SGML…
  11. ^ Тина Холмбо (2008-10-06). «XHTML - мифы и реальность» . Архив разработчика . Проверено 29 декабря 2008 . … Поскольку цели разработки самого XML частично отражали цели исходного HTML, было логично начать работу над формулировкой языка разметки на основе XML…
  12. Кип Хэмптон (10.01.2001). «Создание веб-утилит с использованием XML :: XPath» . XML.com . Проверено 29 декабря 2008 . … Проблема: вы хотите воспользоваться мощностью и простотой, которые могут предложить инструменты XML, но вы сталкиваетесь с сайтом, полным устаревших документов HTML. Решение: конвертируйте ваши документы в XHTML и установите Perl, чтобы работать…XML::XPath
  13. ^ Жан-Люк Давид (2004-04-14). «Разработка беспроводного контента с использованием XHTML Mobile» . XML.com . Проверено 29 декабря 2008 . … Полезная особенность XHTML состоит в том, что им можно манипулировать как XML. Шаблоны расширяемого языка таблиц стилей можно использовать для преобразования XHTML в WML или любые другие проприетарные мобильные форматы…
  14. ^ "Ускоренный курс пространств имен" . Центр разработчиков Mozilla . Проверено 29 декабря 2008 . … W3C давно поставил перед собой цель сделать возможным смешивание различных типов содержимого на основе XML в одном файле XML. Например, SVG и MathML могут быть включены непосредственно в научный документ на основе XHTML…
  15. ^ Стивен Пембертон (2004-07-21). «Часто задаваемые вопросы по HTML и XHTML» . Консорциум World Wide Web . Проверено 29 декабря 2008 . … С основанным на XML HTML другие языки XML могут включать части XHTML, а документы XHTML могут включать части других языков разметки. Мы также могли бы воспользоваться преимуществами редизайна, чтобы очистить некоторые из наиболее неаккуратных частей HTML и добавить некоторые новые необходимые функции, такие как улучшенные формы ...
  16. ^ Кларк, Джеймс (1997-12-15). «Сравнение SGML и XML» . Примечание Консорциума World Wide Web.
  17. ^ «Сокращенная разметка» . HTML 4, Приложение B: Замечания о производительности, реализации и дизайне . W3C . Проверено 30 сентября 2011 года .
  18. ^ "Чувствительность к регистру" . SitePoint Pty. Ltd . Проверено 30 сентября 2011 года .
  19. ^ Уилсон, Николас. «Различия CSS между XHTML и HTML» .
  20. ^ «Спецификация XHTML 1.0, Приложение C: Рекомендации по совместимости HTML» . Консорциум World Wide Web . 2000-01-26 . Проверено 16 июня 2007 .
  21. ^ «Типы носителей XHTML, Примечание Рабочей группы W3C» . Консорциум World Wide Web . 2002-08-01 . Проверено 12 июня 2008 .
  22. ^ [1]
  23. Грета де Гроат (2002). "Перспективы Интернета и Google: Моника Хенцингер , директор по исследованиям Google", Журнал интернет-каталогизации , Vol. 5 (1), стр. 17-28, 2002.
  24. ^ Ранние реализации (такие как Mozilla 0.7 и Opera 6.0, выпущенные в 2001 году) не отображают XHTML постепенно по мере его получения по сети, что ухудшает работу пользователя; см. FAQ для веб-авторов Mozilla . Более поздние браузеры, такие как Opera 9.0, Safari 3.0 и Firefox 3.0, не имеют этой проблемы.
  25. ^ "Тест типа носителя XHTML - результаты" . w3.org .
  26. ^ Крис Уилсон (2005-09-15). «Пролог <? Xml>, строгий режим и XHTML в IE» . Проверено 16 июня 2007 . Я также некоторое время читал комментарии в IEBlog с просьбой о поддержке MIME-типа «application / xml + xhtml» в IE. Я должен сказать, что IE7 не будет добавлять поддержку этого типа MIME - мы, конечно же, продолжим читать XHTML, когда он обслуживается как «текст / html», предполагая, что он соответствует рекомендациям по совместимости с HTML.
  27. ^ Крис Уилсон (2005-09-15). «Пролог <? Xml>, строгий режим и XHTML в IE» . Проверено 16 июня 2007 .… Если бы мы попытались поддерживать настоящий XHTML в IE 7, мы бы в конечном итоге использовали наш существующий анализатор HTML (который ориентирован на совместимость) и взломали конструкции XML. Маловероятно, что мы сможем хорошо поддерживать XHTML таким образом; в частности, мы определенно не сможем обнаружить несколько случаев ошибок здесь или там и будем молча поддерживать недопустимые случаи. Это, конечно, вызовет проблемы совместимости на основе обработки ошибок синтаксического анализатора в будущем, чего XML явно пытается избежать; мы не хотим создавать еще один беспорядок, подобный тому, который имеет текущая обработка ошибок HTML (основанная на совместимости с более ранними браузерами - вы можете винить в этом меня лично, но не IE). Я бы предпочел потратить время на правильную реализацию XHTML после IE 7, чтобы он был действительно совместим ...
  28. ^ Hachamovitch, Дин (2010-03-16). «HTML5, аппаратное ускорение: первая предварительная версия платформы IE9, доступная для разработчиков» . IEBlog в сети разработчиков Microsoft . Microsoft . Проверено 22 марта 2010 . … В настоящее время мы ищем отзывы разработчиков о нашей реализации правил синтаксического анализа HTML5, API выбора, поддержки XHTML и встроенного SVG. В рамках CSS3 мы ищем отзывы разработчиков о поддержке IE9 селекторов, пространств имен, цветов, значений, фонов и границ, а также шрифтов ...
  29. ^ «Список сайтов XHTML (X-Philes)» . Проверено 26 августа 2008 .
  30. ^ «В 2007 году 37 лидеров в области поисковой оптимизации пришли к выводу, что наличие ключевых слов в атрибуте ключевых слов практически отсутствует». Блог Sanger.nu, 9 сентября 2008 г., получено 2 августа 2011 г. Архивировано 21 февраля 2009 г., в Wayback Machine.
  31. ^ «Мета, используемая для SEO» . Архивировано 18 марта 2016 года . Проверено 18 марта 2016 года .
  32. ^ Дэнни Салливан , Как использовать метатеги HTML , Search Engine Watch , 5 декабря 2002 г.
  33. ^ а б Ян Хиксон, бывший разработчик браузера Opera и соучредитель WHATWG (2008-09-08). «Отправка XHTML в виде текста / HTML считается вредной» . Проверено 16 июня 2007 .
  34. Энн ван Кестерен, разработчик браузера Opera (13.06.2004). «XHTML - это недопустимый HTML» . Проверено 16 июня 2007 .
  35. ^ Maciej Stachowiak, разработчик браузера от Apple Safari (2006-09-20). «Понимание HTML, XML и XHTML» . Проверено 16 июня 2007 .
  36. ^ Брэд Фултс (2005-12-21). «Отправка XHTML как text / html считается вредной для чувств» . Проверено 13 сентября 2008 . У отправки XHTML в виде текста / html не так много недостатков (если таковые имеются), как утверждает [Ян Хиксон], а упомянутые выше преимущества, по моему скромному мнению, делают его достойным использования. Есть некоторые тонкие сноски и скобки [в статье Хиксона], указывающие на то, что вред относится только к авторам, которые не знают подводных камней этой практики, но очень похоже на этикетку «Не ешьте» на маленьких пакетиках с силикагелем, написанных Яном. рекомендации кажутся здравым смыслом и не заслуживают упоминания любому автору, который действительно знает, что такое XHTML и как его писать.
  37. ^ Пол Макдональд (30.06.2007). «Дело в пользу XHTML» . Проверено 13 сентября 2008 . Некоторые люди говорят, что XHTML в Интернете потерпел неудачу, но я говорю, что это наш самый большой успех в борьбе за веб-стандарты. … XHTML - это хорошая вещь для Интернета, и очень жаль, что люди пытаются опровергнуть его. Чтобы доказать это, я конкретизирую для вас миф, а затем покажу, почему XHTML - лучшее, что есть после нарезанного хлеба, когда дело касается нашей борьбы за веб-стандарты. … Итак, в заключение, отправка XHTML как text / html не причиняет сегодня никакого ущерба или вреда, если ваш XHTML действительно проверяет. И, если вы хотите, чтобы веб-стандарты становились все более и более распространенными, придерживайтесь XHTML и проверяйте свои страницы.
  38. Тим Бернерс-Ли (27.10.2006). «Изобретая HTML заново» . Архивировано из оригинала на 2007-06-09 . Проверено 16 июня 2007 . Некоторые вещи становятся яснее, если оглянуться назад на несколько лет. Необходимо постепенно развивать HTML. Попытка заставить мир переключиться на XML, включая кавычки вокруг значений атрибутов и косые черты в пустых тегах и пространствах имен сразу, не сработала. Большая публика, генерирующая HTML, не двигалась, в основном потому, что браузеры не жаловались. Некоторые крупные сообщества действительно переместились и наслаждаются плодами хорошо сформированных систем, но не все. Важно поддерживать HTML постепенно, а также продолжать переход к [] хорошо сформированному миру и наращивать силу в этом мире.
    «Планируется создать совершенно новую группу HTML. В отличие от предыдущей, эта будет уполномочена вносить дополнительные улучшения в HTML, а также параллельно с xHTML. У нее будет другой председатель и другие контакты с персоналом. Она будет работать с HTML. и xHTML вместе.Мы твердо поддерживаем эту группу многими людьми, с которыми мы разговаривали, включая разработчиков браузеров.
  39. ^ Ян Хиксон; Дэвид Хаятт (13 января 2011 г.). «HTML5: словарь и связанные API для HTML и XHTML» . Проверено 16 февраля 2011 .
  40. ^ Саймон Питерс. «Результаты мобильных тестов» . Проверено 31 октября 2009 .
  41. ^ "XHTML 1.0: Расширяемый язык разметки гипертекста, Рекомендация W3C от 26 января 2000 г." . Консорциум World Wide Web . 2000-01-26 . Проверено 19 июля 2008 .
  42. ^ «XHTML 1.0 Расширяемый язык разметки гипертекста (второе издание)» . Консорциум World Wide Web . 2002-08-01 . Проверено 19 июля 2008 .
  43. ^ "Модуляризация XHTML, Рекомендация W3C 10 апреля 2001" . Консорциум World Wide Web . 2001-04-10 . Проверено 19 июля 2008 .
  44. ^ «Модуляризация XHTML 1.1 - второе издание, рекомендация W3C от 29 июля 2010 г.» . Консорциум World Wide Web . 2010-07-29 . Проверено 31 декабря 2010 .
  45. ^ "XHTML 1.1 - XHTML на основе модулей, рекомендация W3C 31 мая 2001 г." . Консорциум World Wide Web . 2001-05-31 . Проверено 19 июля 2008 .
  46. ^ "Типы носителей XHTML, Примечание Рабочей группы W3C 1 августа 2002" . Консорциум World Wide Web . 2002-08-01 . Проверено 19 июля 2008 .
  47. ^ a b «Типы носителей XHTML - Второе издание, Примечание Рабочей группы W3C от 16 января 2009 г.» . Консорциум World Wide Web . 2009-01-16 . Проверено 28 января 2009 .Этот документ заменяет Руководство по совместимости HTML, изначально содержащееся в XHTML 1.0, Приложение C.
  48. ^ «XHTML 1.1, XHTML Basic 1.1, Рекомендации по печати XHTML пересмотрены» . АРХИВ НОВОСТЕЙ W3C: 2010 . Консорциум World Wide Web . Проверено 12 декабря 2010 года .
  49. ^ «XHTML 1.1 - XHTML на основе модулей - второе издание» . Консорциум World Wide Web . 2009-05-07 . Проверено 25 мая 2009 .
  50. ^ "XHTML Basic, Рекомендация W3C от 19 декабря 2000 г." . Консорциум World Wide Web . 2000-12-19 . Проверено 19 июля 2008 .
  51. ^ «Сравнение вкусов XHTML» . Консорциум World Wide Web . 2007-01-09 . Проверено 30 января 2013 .
  52. ^ XHTML Basic . W3.org. Проверено 17 июля 2013.
  53. ^ XHTML ™ Basic 1.1 . W3.org. Проверено 17 июля 2013.
  54. ^ «XHTML ™ Basic 1.1 - Второе издание» . w3.org .
  55. ^ «XHTML-Print, Рекомендация W3C от 20 сентября 2006 г.» . Консорциум World Wide Web . 2006-09-20 . Проверено 19 июля 2008 .
  56. ^ a b «Архив просмотра OMA» . Релизы OMA . ООО «Открытый Мобильный Альянс» 26 сентября 2011 г.
  57. ^ "[XHTML] Повестка дня: 2008-07-09" . w3.org .
  58. ^ См. Разделы XHTML 2.0, признанные вредными, и XHTML 2.0 , признанные обнадеживающими, разработчик браузера Тантек Челик, который критикует ранние проекты XHTML 2.0 за отсутствиеstyleатрибута иciteэлемента. Разработчик Daniel Glazman предлагает подобную критику , но также показывает поддержку для некоторых отстающих несовместимых измененийтакихкак решение о смещенииinsиdelэлементов.
  59. ^ «XHTML 2.0, Примечание Рабочей группы W3C от 16 декабря 2010 г.» . Консорциум World Wide Web . 2010-12-16 . Проверено 31 декабря 2010 .
  60. ^ «Документы Рабочей группы XHTML2, опубликованные в виде заметок W3C» . Консорциум World Wide Web . 2010-12-16 . Проверено 31 декабря 2010 .
  61. Ян Хиксон (22 января 2008 г.). «HTML 5, 1.1.2. Отношение к XHTML2» . Консорциум World Wide Web . Проверено 19 июля 2008 . … XHTML2… определяет новый словарь HTML с улучшенными функциями для гиперссылок, мультимедийного контента, аннотирования редактируемых документов, богатых метаданных, декларативных интерактивных форм и описания семантики человеческих литературных произведений, таких как стихи и научные статьи… Однако в нем отсутствуют элементы для выражения семантика многих недокументированных типов контента, часто встречающихся в сети. Например, сайты форумов, аукционные сайты, поисковые системы, интернет-магазины и т. Д. Не подходят под метафору документа и не охватываются XHTML2… Это спецификация направлена ​​на расширение HTML, чтобы он также подходил в этих контекстах ...
  62. ^ a b "9 Синтаксис XHTML - HTML5" . w3.org .
  63. ^ HTML против XHTML , WHATWG Wiki

Внешние ссылки [ править ]

  • Домашняя страница разметки W3C
  • Рекомендация XHTML 1.0
  • XHTML 1.1 Рекомендация
  • Примечание Рабочей группы XHTML 2.0
  • XHTML Basic
  • XHTML 1.0 Strict / 1.1 Онлайн-справочник
  • Ссылки, относящиеся к типу MIME документов XHTML:
    • Остерегайтесь XHTML
    • Отправка XHTML в виде текста / HTML считается вредной
    • Обслуживание XHTML с правильным типом MIME
    • Дорога к XHTML 2.0: типы MIME - Марк Пилигрим (19 марта 2003 г.). Включает примеры условного обслуживания application/xhtml+xmlс использованием PHP , Python и Apache (посредством перезаписи URL ).
    • Часто задаваемые вопросы для авторов Mozilla Web: Чем обработка документов application / xhtml + xml отличается от обработки документов text / html? - резюмирует режим обработки XHTML в одном веб-браузере.
  • Пустые элементы в SGML, HTML, XML и XHTML
  • Основное руководство Heptagrama по XHTML 1.0 Strict
  • Валидатор разметки W3C
  • Библиотека преобразования HTML в XHTML для .NET