Расширяемый язык разметки гипертекста ( XHTML ) является частью семейства языков разметки XML , которое отражает или расширяет версии широко используемого языка разметки гипертекста (HTML), языка, на котором создаются веб-страницы .
В то время как HTML до HTML5 определялся как приложение стандартного обобщенного языка разметки (SGML), гибкой структуры языка разметки, XHTML — это приложение XML , более ограничительного подмножества SGML. Документы XHTML имеют правильный формат и поэтому могут анализироваться с помощью стандартных анализаторов XML, в отличие от HTML, для которого требуется более гибкий анализатор, специфичный для HTML. [1]
XHTML 1.0 стал рекомендацией Консорциума Всемирной паутины (W3C) 26 января 2000 года. XHTML 1.1 стал рекомендацией W3C 31 мая 2001 года. XHTML теперь называется «синтаксисом XML для HTML» [2] [3] и находится в стадии разработки . как XML-адаптация жизненного стандарта HTML. [4] [5]
XHTML 1.0 был «переформулировкой трех типов документов HTML 4 как приложений XML 1.0». [6] Консорциум Всемирной паутины (W3C) также одновременно поддерживал Рекомендацию HTML 4.01. В документе Рекомендации XHTML 1.0, опубликованном и пересмотренном в августе 2002 года, W3C отметил, что «Семейство XHTML является следующим шагом в эволюции Интернета. Перейдя на XHTML сегодня, разработчики контента могут войти в мир XML со всеми сопутствующие преимущества, сохраняя при этом уверенность в обратной и будущей совместимости своего контента». [6]
Однако в 2005 году независимо от W3C была сформирована Рабочая группа по технологиям веб-гипертекстовых приложений (WHATWG) для работы над развитием обычного HTML, не основанного на XHTML. В конечном итоге WHATWG начала работать над стандартом, который поддерживал как XML, так и не-XML сериализацию , HTML5 , параллельно со стандартами W3C, такими как XHTML 2.0. В 2007 году рабочая группа W3C по HTML проголосовала за официальное признание HTML5 и работу над ним в качестве стандарта HTML следующего поколения. [7] В 2009 году W3C разрешил истечь уставу рабочей группы XHTML 2.0, признав, что HTML5 будет единственным стандартом HTML следующего поколения, включая сериализацию как XML, так и не-XML. [8] Из двух сериализаций W3C предполагает, что большинство авторов используют синтаксис HTML, а не синтаксис XHTML. [9]
Рекомендации W3C для XHTML 1.0 и XHTML 1.1 были отменены 27 марта 2018 года [10] [11] вместе с HTML 4.0, [12] HTML 4.01, [13] и HTML5. [14]
XHTML был разработан, чтобы сделать HTML более расширяемым и улучшить совместимость с другими форматами данных. [15] Кроме того, браузеры прощали ошибки в HTML, и большинство веб-сайтов отображались, несмотря на технические ошибки в разметке; В XHTML введена более строгая обработка ошибок. [16] HTML 4 якобы был применением стандартного обобщенного языка разметки (SGML); однако спецификация SGML была сложной, и ни веб-браузеры, ни Рекомендация HTML 4 не были полностью ей совместимы. [17] Стандарт XML, одобренный в 1998 году, предусматривал более простой формат данных, более близкий по простоте к HTML 4. [18] При переходе на формат XML предполагалось, что HTML станет совместимым с распространенными инструментами XML; [19] серверы и прокси-серверы смогут при необходимости преобразовывать контент для ограниченных устройств, таких как мобильные телефоны. [20] Используя пространства имен , документы XHTML могут обеспечить расширяемость за счет включения фрагментов из других языков на основе XML, таких как масштабируемая векторная графика и MathML . [21] Наконец, возобновленная работа предоставит возможность разделить HTML на повторно используемые компоненты ( модуляризация XHTML ) и очистить неопрятные части языка. [22]
Между XHTML и HTML существуют различные различия. Объектная модель документа (DOM) — это древовидная структура, которая представляет страницу внутри приложений, а XHTML и HTML — это два разных способа представления ее в разметке. Оба они менее выразительны, чем DOM – например, «--» может быть помещен в комментарии в DOM, но не может быть представлен в комментариях ни в XHTML, ни в HTML – и, как правило, синтаксис XML XHTML более выразителен, чем HTML (для например, в HTML не допускаются произвольные пространства имен). В XHTML используется синтаксис XML, тогда как в HTML используется синтаксис псевдо- SGML (официально SGML для HTML 4 и ниже, но на практике никогда не использовался и стандартизирован в отличие от SGML в HTML5). Поскольку синтаксис выражаемого содержимого DOM немного отличается, в реальном поведении этих двух моделей есть некоторые изменения. Однако синтаксические различия можно преодолеть, внедрив в разметку альтернативную структуру перевода.
Во-первых, есть некоторые различия в синтаксисе: [23]
<br />
<input>
<p>
<option selected>
<option selected=selected>
<option selected="selected">
<tbody>
Помимо синтаксических различий, существуют некоторые поведенческие различия, в основном возникающие из-за основных различий в сериализации. Например:
xlink
.document.write()
innerHTML
<body>
<html>
Сходство между HTML 4.01 и XHTML 1.0 привело к тому, что многие веб-сайты и системы управления контентом приняли первоначальную Рекомендацию W3C XHTML 1.0. Чтобы помочь авторам в переходе, W3C предоставил рекомендации о том, как публиковать документы XHTML 1.0 в HTML-совместимом виде и предоставлять их браузерам, не предназначенным для XHTML. [27] [28]
Такое «HTML-совместимое» содержимое отправляется с использованием типа носителя HTML ( text/html
), а не официального типа носителя Интернета для XHTML ( application/xhtml+xml
). Поэтому при измерении внедрения XHTML в обычный HTML важно различать, сравнивается ли использование типа носителя или фактическое содержимое документа. [29] [30]
Большинство веб-браузеров имеют развитую поддержку [31] всех возможных типов мультимедиа XHTML. [32] Заметным исключением является Internet Explorer версии 8 и более ранних версий от Microsoft ; вместо рендеринга application/xhtml+xml
контента диалоговое окно предлагает пользователю сохранить контент на диск. Такое поведение наблюдается как в Internet Explorer 7 (выпущенном в 2006 г.), так и в Internet Explorer 8 (выпущенном в марте 2009 г.). [33] Разработчик Microsoft Крис Уилсон объяснил в 2005 году, что приоритетами IE7 являются улучшение безопасности браузера и поддержка CSS , и что правильную поддержку XHTML будет сложно внедрить в ориентированный на совместимость HTML-парсер IE; [34] однако Microsoft добавила поддержку истинного XHTML в IE9 . [35]
Пока поддержка не получила широкого распространения, большинство веб-разработчиков избегают использования XHTML, который не совместим с HTML, [36] поэтому преимущества XML, такие как пространства имен, более быстрый анализ и компактные браузеры, не приносят пользы пользователю. [37] [38] [39]
В начале 2000-х годов некоторые веб-разработчики начали задаваться вопросом, почему веб-авторы вообще сделали шаг к созданию текстов на XHTML. [40] [41] [42] Другие возражали, что проблемы, приписываемые использованию XHTML, в основном могут быть связаны с двумя основными источниками: созданием недействительных документов XHTML некоторыми веб-авторами и отсутствием поддержки XHTML, встроенной в Internet Explorer. 6 . [43] [44] Далее они описали преимущества веб-документов на основе XML (т. е. XHTML) в отношении поиска, индексирования и синтаксического анализа, а также обеспечения перспективности самой сети.
В октябре 2006 года изобретатель HTML и председатель W3C Тим Бернерс-Ли , рассказывая о крупных усилиях W3C по разработке новой спецификации HTML, опубликовал в своем блоге: «Попытка заставить мир переключиться на XML... сразу не увенчалась успехом». "Не работает. Большая публика, генерирующая HTML, не пошевелилась... Некоторые крупные сообщества действительно изменились и наслаждаются плодами хорошо сформированных систем... План состоит в том, чтобы создать совершенно новую группу HTML". [45] В текущем рабочем проекте HTML5 говорится, что «особое внимание было уделено определению четких критериев соответствия для пользовательских агентов в целях улучшения совместимости... и в то же время обновлению спецификаций HTML для решения проблем, поднятых в последние несколько лет». ." Ян Хиксон , редактор спецификации HTML5, критиковавший неправильное использование XHTML в 2002 году, [40] является членом группы, разрабатывающей эту спецификацию, и указан как один из соредакторов текущего рабочего проекта. [46]
Саймон Питерс исследовал XML-совместимость мобильных браузеров [47] и пришел к выводу, что «утверждение о том, что XHTML понадобится для мобильных устройств, является просто мифом».
В декабре 1998 года был опубликован рабочий проект W3C под названием «Переформулирование HTML в XML» . Это привело к появлению Voyager, кодового названия нового языка разметки, основанного на HTML 4, но придерживающегося более строгих синтаксических правил XML. К февралю 1999 года название спецификации изменилось на XHTML 1.0: The Extensible HyperText Markup Language , а в январе 2000 года оно было официально принято как Рекомендация W3C. [48] Для XHTML 1.0 существует три формальных определения типа документа (DTD) , соответствующие трем различным версиям HTML 4.01:
center
, font
и strike
), исключенные из строгой версии.Второе издание XHTML 1.0 стало рекомендацией W3C в августе 2002 года. [49]
Модульность обеспечивает абстрактную коллекцию компонентов, с помощью которых XHTML может быть разделен на части и расширен. Эта функция призвана помочь XHTML распространить свое влияние на новые платформы, такие как мобильные устройства и телевизоры с поддержкой Интернета. Первоначальный проект модульности XHTML стал доступен в апреле 1999 г. и достиг статуса Рекомендации в апреле 2001 г. [50]
Первыми модульными вариантами XHTML были XHTML 1.1 и XHTML Basic 1.0.
В октябре 2008 года модульность XHTML была заменена модульностью XHTML 1.1 , которая добавляет реализацию XML-схемы . В июле 2010 года оно было заменено вторым изданием. [51]
XHTML 1.1 возник в результате работы над первоначальной модульностью спецификации XHTML . W3C выпустил первый проект в сентябре 1999 года; Статус Рекомендации был достигнут в мае 2001 года. [52] Модули, объединенные в XHTML 1.1, эффективно воссоздают XHTML 1.0 Strict с добавлением элементов аннотации Rubyruby
( , rbc
, rtc
, rb
и rt
) rp
для лучшей поддержки восточноазиатских языков. Другие изменения включают удаление атрибута name
из элементов a
и map
и (в первой редакции языка) удаление атрибута lang
в пользу xml:lang
.
Хотя XHTML 1.1 в значительной степени совместим с XHTML 1.0 и HTML 4, в августе 2002 года Рабочая группа выпустила официальное примечание, в котором рекомендовалось не передавать его с медиа-типом HTML. [53] Из-за ограниченной поддержки браузерами альтернативного application/xhtml+xml
типа мультимедиа XHTML 1.1 не смог получить широкого распространения. В январе 2009 года было выпущено второе издание документа ( Типы носителей XHTML – второе издание ), ослабляющее это ограничение и позволяющее использовать XHTML 1.1 как файлы text/html
. [54]
Второе издание XHTML 1.1 было выпущено 23 ноября 2010 года, в нем устранены различные ошибки и добавлена реализация XML-схемы, не включенная в исходную спецификацию. [55] (Впервые оно было ненадолго выпущено 7 мая 2009 года как «Предлагаемая отредактированная рекомендация» [56] , а затем было отменено 19 мая из-за нерешенных проблем.)
Поскольку информационным устройствам может не хватать системных ресурсов для реализации всех абстрактных модулей XHTML, W3C определил спецификацию XHTML с ограниченными возможностями, названную XHTML Basic. Он предоставляет минимальный набор функций, достаточный для наиболее распространенной разработки контента. Спецификация стала рекомендацией W3C в декабре 2000 года. [57]
Из всех версий XHTML XHTML Basic 1.0 предоставляет наименьшее количество функций. XHTML 1.1 является одной из двух первых реализаций модульного XHTML. В дополнение к основным модулям (структура, текст, гипертекст и список) он реализует следующие абстрактные модули: «Базовые», «Базовые формы», «Базовые таблицы», «Изображение», «Ссылка», «Метаинформация», «Объект», «Таблица стилей» и «Цель». [58] [59]
XHTML Basic 1.1 заменяет модуль «Базовые формы» модулем «Формы» и добавляет модули «Внутренние события», «Презентация» и «Сценарии». Он также поддерживает дополнительные теги и атрибуты из других модулей. Эта версия стала рекомендацией W3C 29 июля 2008 г. [60]
Текущая версия XHTML Basic — 1.1 Second Edition (23 ноября 2010 г.), в которой этот язык повторно реализован на языке XML-схемы W3C . Эта версия также поддерживает lang
атрибут. [61]
XHTML-Print, который стал Рекомендацией W3C в сентябре 2006 года, представляет собой специализированную версию XHTML Basic, предназначенную для документов, печатаемых с информационных устройств на принтерах начального уровня . [62]
Мобильный профиль XHTML (сокращенно XHTML MP или XHTML-MP) — это сторонний вариант базовой спецификации XHTML W3C. Как и XHTML Basic, XHTML был разработан для информационных устройств с ограниченными системными ресурсами.
В октябре 2001 года компания с ограниченной ответственностью под названием Wireless Application Protocol Forum начала адаптацию XHTML Basic для WAP 2.0 , второй основной версии протокола беспроводных приложений . WAP Forum основал свое DTD на модуляризации XHTML W3C, включив в себя те же модули, которые W3C использовал в XHTML Basic 1.0, за исключением целевого модуля. Начиная с этой основы, WAP Forum заменил модуль Basic Forms частичной реализацией модуля Forms, добавил частичную поддержку модулей Legacy и Presentation и добавил полную поддержку модуля атрибутов стиля.
В 2002 году WAP Forum вошел в состав Open Mobile Alliance (OMA), который продолжил разработку XHTML Mobile Profile как компонента своей спецификации просмотра OMA.
В эту версию, завершенную в 2004 году, OMA добавил частичную поддержку модуля сценариев и частичную поддержку внутренних событий. XHTML MP 1.1 является частью версии 2.1 спецификации просмотра OMA (1 ноября 2002 г.). [63]
Эта версия, завершенная 27 февраля 2007 г., расширяет возможности XHTML MP 1.1 за счет полной поддержки модуля форм и режимов ввода текста OMA. XHTML MP 1.2 является частью версии 2.3 спецификации просмотра OMA (13 марта 2007 г.). [63]
XHTML MP 1.3 (завершен 23 сентября 2008 г.) использует определение типа документа XHTML Basic 1.1 , которое включает целевой модуль. События в этой версии спецификации обновлены до спецификаций DOM уровня 3 (т. е. они не зависят от платформы и языка).
Рабочая группа XHTML 2 рассматривала возможность создания нового языка на основе XHTML 1.1. [64] Если бы XHTML 1.2 был создан, он бы включал WAI-ARIA и role
атрибуты для лучшей поддержки доступных веб-приложений, а также улучшенную поддержку семантической сети через RDFa . Атрибут inputmode
из XHTML Basic 1.1 вместе с target
атрибутом (для указания целевых объектов кадра ) также может присутствовать. РГ XHTML2 не была уполномочена заниматься разработкой XHTML1.2. Поскольку W3C объявил, что не намерен перезапускать рабочую группу XHTML2 [8] и закрыл рабочую группу в декабре 2010 года, это означает, что предложение XHTML 1.2 не будет реализовано.
В период с августа 2002 г. по июль 2006 г. W3C выпустил восемь рабочих проектов XHTML 2.0, новой версии XHTML, способной полностью покончить с прошлым, отказавшись от требований обратной совместимости. Отсутствие совместимости с XHTML 1.x и HTML 4 вызвало споры в сообществе веб-разработчиков. [65] Некоторые части языка (такие как role
атрибуты и RDFa) впоследствии были выделены из спецификации и работали как отдельные модули, частично для того, чтобы сделать переход от XHTML 1.x к XHTML 2.0 более плавным. Ожидалось, что девятый проект XHTML 2.0 появится в 2009 году, но 2 июля 2009 года W3C решил истечь срок действия устава рабочей группы XHTML2 к концу того же года, что фактически остановило любую дальнейшую разработку проекта в стандарт. [8] Вместо этого XHTML 2.0 и связанные с ним документы были выпущены в виде заметок W3C в 2010 году. [66] [67]
Новые функции, представленные в XHTML 2.0, включали:
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 (даже Strict), должны были отсутствовать в XHTML 2.0. Единственными оставшимися элементами представления должны были быть sup
верхний sub
и нижний индексы соответственно, поскольку они имеют важное непрезентационное применение и требуются некоторыми языками. Вместо этого все остальные теги должны были быть семантическими (например, strong
для сильного выделения ), позволяя при этом пользовательскому агенту контролировать представление элементов через CSS (например, отображать жирным шрифтом в большинстве визуальных браузеров, но, возможно, отображать с изменениями тона в текстовом виде). чтение в речь, более крупный шрифт + курсив в соответствии с правилами в пользовательской таблице стилей и т. д.).property
и about
для облегчения преобразования из XHTML в RDF/XML.HTML5 развивался независимо от W3C благодаря свободной группе производителей браузеров и других заинтересованных сторон, называющих себя WHATWG , или Рабочая группа по технологиям веб-гипертекстовых приложений. Ключевым мотивом группы было создание платформы для динамических веб-приложений; они считали XHTML 2.0 слишком ориентированным на документы и не подходящим для создания интернет-форумов или интернет-магазинов. [68]
HTML5 имеет как обычную text/html
сериализацию, так и сериализацию XML, также известную как XHTML5 . [69] Язык более совместим с HTML 4 и XHTML 1.x, чем с XHTML 2.0, из-за решения сохранить существующие элементы формы HTML и модель событий. Однако он добавляет множество новых элементов, отсутствующих в XHTML 1.x, например теги section
и aside
.
Язык XHTML5, как и HTML5, использует объявление DOCTYPE без DTD. Кроме того, спецификация объявляет устаревшими более ранние DTD XHTML, предлагая браузерам заменить их на те, которые содержат только определения сущностей для именованных символов во время синтаксического анализа. [69]
XHTML+RDFa — это расширенная версия языка разметки XHTML для поддержки RDF посредством набора атрибутов и правил обработки в форме правильно сформированных XML- документов. Этот основной язык является одним из методов, используемых для разработки контента семантической сети путем внедрения богатой семантической разметки.
Документ XHTML, соответствующий спецификации XHTML, называется действительным . Валидность обеспечивает согласованность кода документа, что, в свою очередь, упрощает обработку, но не обязательно обеспечивает согласованное отображение браузерами. Документ можно проверить на достоверность с помощью службы проверки разметки W3C (вместо этого следует использовать Validator.nu Living Validator для XHTML5). На практике многие программы веб-разработки обеспечивают проверку кода на основе стандартов 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" >
Для проверки документа XHTML можно использовать объявление типа документа или DOCTYPE . DOCTYPE объявляет браузеру определение типа документа (DTD), которому соответствует документ. Объявление типа документа должно быть размещено перед корневым элементом .
Часть системного идентификатора DOCTYPE, которая в этих примерах представляет собой URL-адрес , начинающийся с http://
, должна указывать только на копию DTD, которую нужно использовать, если валидатор не может найти ее на основе общедоступного идентификатора (другая строка в кавычках). Это не обязательно должен быть конкретный URL-адрес, указанный в этих примерах; Фактически, авторам рекомендуется по возможности использовать локальные копии файлов DTD. Однако общедоступный идентификатор должен быть посимвольным, как в примерах.
Кодировку символов можно указать в начале документа 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 по существу совместим, хотя элементы аннотаций Ruby не являются частью спецификации 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, а второй нарушает обратную совместимость, но обеспечивает более чистую разметку. [54]
Пример 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 = "Расширяемого языка разметки гипертекста " > XHTML </abbr> 1.0 Строгий документ. <br /> <img id= "validation-icon" src= "http://www.w3.org/Icons/valid-xhtml10" alt= "Valid XHTML 1.0 Strict" /> <br /> <object id= "pdf-object" 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"coding="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 = "Расширяемого языка разметки гипертекста" > XHTML </abbr> 1.0 Strict документа . <br /> <img id= "validation-icon" src= "http://www.w3.org/Icons/valid-xhtml10" alt= "Valid 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>
Примечания:
<param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf"/>
внутри <object>
.img
не присвоен name
атрибут в XHTML 1.0 Strict DTD. Используйте id
вместо этого.Сериализации HTML5 и XHTML5 в значительной степени совместимы, если придерживаться более строгого синтаксиса XHTML5, но есть некоторые случаи, в которых XHTML не будет работать как действительный HTML5 (например, инструкции по обработке не рекомендуются в HTML [ уточнить ] , рассматриваются как комментарии и закрываются при первом ">", тогда как в XML они полностью разрешены, рассматриваются как отдельный тип и закрываются при ?>
). [70]
... Однако, поскольку ISO 8879 не дает приложениям возможности запрещать внутренние подмножества, из этого следует, что буква спецификации HTML [4] автоматически лишает его права быть соответствующим SGML-приложением...
... Поскольку цели проектирования самого XML частично отражали цели исходного HTML, было логично начать работу над созданием языка разметки на основе XML...
... Проблема: вы хотите воспользоваться мощью и простотой, которые могут предложить инструменты XML, но вы сталкиваетесь с сайтом, полным устаревших HTML-документов. Решение: конвертируйте ваши документы в XHTML, установите Perl и приступайте
к работе...
XML::XPath
... Полезной особенностью XHTML является то, что им можно манипулировать как XML. Расширяемые языковые шаблоны таблиц стилей можно использовать для преобразования XHTML в WML или любые другие собственные мобильные форматы...
... Давней целью W3C было создание возможности смешивания различных типов XML-контента в одном XML-файле. Например, SVG и MathML могут быть включены непосредственно в научный документ на основе XHTML...
... с HTML на основе XML другие языки XML могут включать биты XHTML, а документы XHTML могут включать биты других языков разметки. Мы также могли бы воспользоваться редизайном, чтобы очистить некоторые наиболее неаккуратные части HTML и добавить новые необходимые функции, например улучшенные формы...
Я также некоторое время читал комментарии в IEBlog с просьбой поддержать тип MIME «application/xml+xhtml» в IE. Я должен сказать, что IE7 не будет добавлять поддержку этого типа MIME – мы, конечно, продолжим читать XHTML, когда он используется как «text/html», предполагая, что он соответствует рекомендациям по совместимости с HTML.
... Если бы мы попытались поддержать настоящий XHTML в IE 7, нам пришлось бы использовать существующий анализатор HTML (который ориентирован на совместимость) и хакерские конструкции XML. Маловероятно, что мы сможем таким образом хорошо поддерживать XHTML; в частности, мы определенно не обнаружим несколько случаев ошибок здесь или там и будем молча поддерживать недопустимые случаи. Это, конечно, вызовет в будущем проблемы совместимости, связанные с обработкой ошибок синтаксического анализатора, которых XML явно пытается избежать; мы не хотим вызвать еще один беспорядок, подобный тому, который произошел с текущей обработкой ошибок HTML (основанный на совместимости с более ранними браузерами - вы можете лично винить в этом меня, но не IE). Я бы предпочел потратить время на правильную реализацию XHTML после IE 7 и сделать его действительно совместимым...
...В настоящее время мы ждем отзывов разработчиков о нашей реализации правил синтаксического анализа HTML5, API выбора, поддержке XHTML и встроенном SVG. В рамках CSS3 мы ждем отзывов разработчиков о поддержке IE9 селекторов, пространств имен, цветов, значений, фона и границ, а также шрифтов....
Недостатков (если таковые имеются) у отправки XHTML в виде текста/HTML не так много, как утверждает [Иэн Хиксон], а преимущества, о которых я упоминал выше, делают его достойным использования, по моему скромному мнению. Есть некоторые тонкие сноски и скобки [в статье Хиксона], указывающие на то, что вред относится только к авторам, которые не знают подводных камней этой практики, но это очень похоже на этикетку «Не ешьте» на маленьких пакетиках с силикагелем, написанную Ианом. Рекомендации кажутся здравым смыслом, и их не стоит упоминать любому автору, который действительно знает, что такое XHTML и как его писать.
Некоторые говорят, что XHTML в Интернете потерпел неудачу, но я говорю, что это наш самый большой успех в борьбе за веб-стандарты. ... Однако XHTML полезен для Интернета, и жаль, что люди пытаются выдвинуть против него аргументы. Чтобы доказать это, я раскрою вам этот миф, а затем покажу, почему XHTML — лучшая вещь после нарезанного хлеба, когда дело доходит до нашей борьбы за веб-стандарты. ... Итак, в заключение отметим, что отправка XHTML в виде текста/html сегодня не причиняет никакого ущерба или вреда, если ваш XHTML действительно проверяется. И если вы хотите, чтобы веб-стандарты становились все более и более распространенными, придерживайтесь использования XHTML и проверяйте свои страницы.
Некоторые вещи становятся яснее, если оглянуться назад на несколько лет. HTML необходимо развивать постепенно. Попытка заставить мир перейти на XML, включая кавычки вокруг значений атрибутов и косые черты в пустых тегах и пространствах имен одновременно, не сработала. Большая публика, генерирующая HTML, не сдвинулась с места, в основном потому, что браузеры не жаловались. Некоторые крупные сообщества действительно изменились и пользуются плодами хорошо сформированных систем, но не все. Важно постепенно поддерживать HTML, а также продолжать переход к хорошо сформированному миру и развивать в этом мире больше власти.
«План состоит в том, чтобы создать совершенно новую группу HTML. В отличие от предыдущей, эта будет создана для постепенного улучшения HTML, а также параллельно с XHTML. У нее будет другой председатель и контактный персонал. Она будет работать над HTML. и xHTML вместе. Мы пользуемся сильной поддержкой этой группы со стороны многих людей, с которыми мы разговаривали, включая производителей браузеров.
style
и cite
элемента. Разработчик Дэниел Глазман высказывает аналогичную критику, но также демонстрирует поддержку некоторых обратно несовместимых изменений, таких как решение удалить элементы ins
и del
.... XHTML2... определяет новый словарь HTML с улучшенными функциями для гиперссылок, мультимедийного контента, аннотирования правок документов, богатых метаданных, декларативных интерактивных форм и описания семантики человеческих литературных произведений, таких как стихи и научные статьи... Однако , в нем отсутствуют элементы для выражения семантики многих недокументированных типов контента, часто встречающихся в Интернете. Например, сайты форумов, сайты аукционов, поисковые системы, интернет-магазины и т.п. плохо подходят под метафору документа и не охватываются XHTML2... Целью
этой
спецификации является расширение HTML, чтобы он также подходил в этих контекстах. ...
application/xhtml+xml
с использованием PHP , Python и Apache (путем перезаписи URL-адресов ).