Когда я начал работать в области веб-разработки, недавно появился XHTML, и он был в моде. Я даже включил шаблоны XHTML и копию DTD в нашу корпоративную CMS, полагая, что через несколько лет общедоступное DTD будет предназначено для миллионов браузеров пользователей, пытающихся проверить код XHTML и отклонить искаженные документы.
Но теперь, в 2011 году, куда ушел XHTML?
Что такое XHTML
XHTML — это спецификация, которая определяет XML-сериализацию HTML : хотя сам HTML не является строгим языком и игнорирует большинство искаженных тегов и структур вложенности, XML гораздо более драконов. В своих первоначальных версиях, XHTML 1 и 2, XHTML представлял собой переформулировку HTML 4 для преобразования HTML-документов в действительные XML-документы, независимые от графического представления или типа носителя.
Например, XHTML осуждает или делает недействительными все теги, строго связанные с проблемами представления, например <b> (замененный на <strong>), но также <font>. В идеале документы XHTML можно просто просматривать на разных носителях, указав другой CSS.
Интересной идеей XHTML было также предоставление различных модулей через пространства имен XML. Вы можете создавать в документе различные языки разметки , в дополнение к стандартному: язык для форм , один для математических формул , один для векторной графики .
Вот пример фрагмента XHTML, включая выражение MathML.
<p>Some random text.</p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<plus/>
<apply>
<times/>
<ci>a</ci>
<apply>
<power/>
<ci>x</ci>
<cn>2</cn>
</apply>
</apply>
<apply>
<times/>
<ci>b</ci>
<ci>x</ci>
</apply>
<ci>c</ci>
</apply>
</math>
Немного многословно, но по сравнению с использованием загадочных обозначений LaTeX, которые должны быть проанализированы на стороне сервера, это не так страшно.
Вместо этого подход HTML 5 заключался в предоставлении поддержки непосредственно в единую спецификацию: элемент <input> был расширен для обеспечения удобных для пользователя форм без необходимости в дополнительных библиотеках JavaScript; <canvas> можно использовать для SVG; и так далее. DOM также можно манипулировать с помощью JavaScript, в важной части спецификации.
Другим преимуществом XHTML может быть также использование инструментов XML для веб-страниц: на каждом языке у вас есть синтаксический анализатор XML, но HTML-код сложнее найти или написать.
Проблемы
XHTML 1.0 восходит к 2000 году. Если он настолько мощный, почему он не получил широкого распространения?
Я думаю, вот почему:
XML имеет очень строгий синтаксис по отношению к производным от SGML языкам, таким как HTML. Если есть синтаксическая ошибка или отсутствует закрывающий тег или двойная кавычка атрибута хотя бы в одной строке вашего XHTML-документа, он не будет интерпретироваться браузером.
Более того, кодировка символов и доступ JavaScript к DOM более сложны в документах XHTML: попробуйте написать символ & или получить доступ к элементу без его пространства имен XHTML.
Чехол для фейсбука
Facebook включает строгий тип документа XHTML 1.0 на каждой странице. Однако он обслуживает документы с заголовком HTTP-ответа text / html, что означает, что браузер не обрабатывает содержимое как XML.
XHTML распространялся в Facebook в последние годы : в последний раз я видел его как FBML, язык, используемый для расширения возможностей приложений Facebook на стороне клиента. Теги FBML включены в пространство имен XML и интерпретируются через JavaScript для получения эффекта (не самим браузером).
Например, следующий фрагмент создает селектор друзей, конечно же, настроенный для текущего пользователя:
<form action="http://www.example.com/handler.php" id="testForm" method="post">
<fb:friend-selector uid="12345" name="uid" idname="grab_me_please" prefill_id="7906796"/>
<input type="submit" value="test" />
</form>
Вместо того чтобы прибегать к пользовательским атрибутам над стандартными тегами, как это делают многие платформы JS , этот декларативный подход добавляет пространство имен fb XHTML и делает доступным целый новый набор тегов с расширенными возможностями. И он использует хорошо документированный стандарт, такой как XHTML.
Однако Facebook в настоящее время осуждает FBML (переход на приложения на основе iframe) и проповедует просто использовать более широко принятый стандарт: HTML и CSS. Та же функция FBML теперь доступна через JavaScript SDK и несколько социальных плагинов.
XHTML5!
Когда вы подумали, что XHTML может исчезнуть, я должен сказать вам, что XHTML был разработан для соответствия спецификации HTML 5. Вы можете написать (только если вы действительно хотите, конечно) HTML 5 как допустимый XML. Однако кажется, что XHTML 5 будет пытаться поддерживать обратную совместимость с HTML, например, разрешая такие элементы, как <i> и <font> в определенных случаях использования.
Будете ли вы веб-разработчиком использовать XHTML [5] в будущем?
Ресурсы
http://xhtml.com/en/future/x-html-5-versus-xhtml-2/
http://www.w3.org/MarkUp/2004/xhtml-faq#advantages признает, что перевод документа HTML в XHTML не приведет к разнице, если вы не включите другие языки.
Статья Википедии по MathML показывает вам пример языка, который можно использовать в документе XHTML в качестве модуля.