XHTML, расширяемый язык разметки гипертекста, представляет собой приложение HTML, которое также является действительным документом XML, в отличие от стандартного HTML, основанного на SGML. Это язык разметки, обычно используемый для HTML-страниц, которые создаются с использованием инструмента на основе XML. НЕ используйте этот тег для Facelets. Используйте вместо этого [facelets].

XHTML (e X растяжимый H yper T ext M arkup L] ] anguage) - это приложение XML и синтаксис HTML. Этот синтаксис доступен в качестве альтернативы более распространенному синтаксису HTML, который ранее был основан на SGML. Это язык разметки, обычно используемый для HTML-страниц, которые используются в инструментах на основе XML как часть специфичной для сервера среды (MVC), такой как Facelets и ASP.NET Web Forms .

Изначально XHTML 1.0 и XHTML 1.1 были определены в отдельных спецификациях из HTML 4.01, но теперь спецификация HTML5 охватывает оба синтаксиса вместе.

Синтаксис XML имеет набор ортогональных правил, который не учитывает используемые типы элементов, тогда как синтаксис HTML имеет разные правила для разных типов элементов. Например, пустые элементы в HTML, такие как <link>, <meta>, <br> и <hr>, размечаются с использованием только начальных тегов в синтаксисе HTML, а <div>, <span>, <a> и т. Д. всегда должны иметь отдельные начальные и конечные теги. Другие теги, например <p>, <li> <td> и т. Д., Имеют специальные правила о том, когда необходимо использовать начальный и конечный теги. Напротив, в синтаксисе XHTML все элементы должны быть закрыты либо с использованием отдельных начальных и конечных тегов: например, <div> и </div> или, если они не имеют содержимого, используя сокращенную форму, например, <div /> Два синтаксиса несовместимы друг с другом, и инструменты XML не работают напрямую с документами, написанными в синтаксисе HTML.

XHTML был введен, чтобы позволить разработчикам использовать упрощение, которое приносит эта ортогональность.

XHTML часто используется в качестве основы для языков разметки на стороне сервера, так что ими можно манипулировать с помощью инструментов на основе XML. Окончательный результат этой цепочки инструментов может быть сгенерирован документами в обычном синтаксисе HTML или в синтаксисе XHTML перед отправкой в ​​браузер.

Одна распространенная путаница с XHTML связана с использованием типов документов и типов контента. Использование одного из типов документов XHTML 1 (теперь все они устарели) заставило средства проверки HTML проверять соответствие документа синтаксису XHTML, в то время как браузеры обрабатывали те же документы, что и обычный синтаксис HTML. Браузеры не используют тип документа для определения синтаксиса документа. Вместо этого они используют заголовок HTTP: content-type. Синтаксический документ XHTML должен быть предоставлен браузеру с типом содержимого XML, обычно application/xhtml+xml или application/xml. Документы с обычным синтаксисом HTML должны быть снабжены типом контента text/html. Современные валидаторы, такие как браузеры, теперь используют HTTP-заголовок типа контента, чтобы определить, какой синтаксис проверять, и для обоих синтаксисов следует использовать тип документа в форме <!DOCTYPE html>.

Для синтаксиса XML в HTML требуется следующее, которое является необязательным в обычном синтаксисе HTML:

  1. Атрибут корневого пространства имен XML, как в <html xmlns="http://www.w3.org/1999/xhtml">
  2. Элементы должны быть вложенными. например <b><i></b></i> - ошибка, которая приведет к останову синтаксического анализа
  3. Начальные и конечные теги всегда должны совпадать, либо элементы должны быть замкнуты самостоятельно. (например, используйте <input></input> или <input />, но не <input>)
  4. Имена тегов и атрибутов должны быть написаны только строчными буквами (например, используйте 'onclick , not onClick`)
  5. Значения атрибутов должны заключаться в одинарные или двойные кавычки (например, использовать class='foo' или class="foo", а не class=foo)
  6. Минимизация атрибутов запрещена (например, использовать disabled="disabled" или disabled="", а не disabled ])

Ресурсы: