XHTML

Материал из свободной русской энциклопедии «Традиция»
Перейти к: навигация, поиск

XHTML — Расширяемый язык разметки гипертекстов (Extensible Hypertext Markup Language) это язык разметки, который имеет те же возможности разметки что и HTML, однако с более строгими требованиями к семантике. Как HTML, так и XHTML являются применением SGML, однако XHTML относится к более ужесточенному подмножеству, переходному к XML. XHTML 1.0 одобрен в качестве рекомендации W3C 26 января 2000 года.

Общее представление[править]

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

Использование XHTML в сочетании с CSS позволяет отделить оформление документа от его содержимого.

Отличия переходного (transitional) XHTML от HTML незначительны и ставят за цель лишь приведение его в соответствие с XML:

  • все тэги были правильно построенными;
  • все тэги должны записываться строчными буквами;
  • все атрибуты, включая численные, должны быть заключены в кавычки.
  • все элементы должны быть закрыты, включая те которые не имеют закрывающего тега (закрываются добавлением слэша в конце начального тэга).
  • Минимизация атрибутов (к примеру <option selected> или <td nowrap>) также воспрещена. Детальнее об отличиях можно узнать из XHTML спецификации W3C.

Пример XHTML-документа[править]

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="ru" lang="ru">
  <head>
    <meta name="author" content="$Author: tsatur $"></meta>
    <meta name="Last-Modified" content="$Date: 2005/03/25 17:19:18 $"></meta>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></meta>
    <meta http-equiv="Content-Language" content="ru"></meta>
    <link rel="stylesheet" type="text/css" href="../css/cisprint.css"></link>
    <title>Заказные ИнформСистемы</title>
  </head>
  <body>
  <p>
     Компания <b>ООО &#xAB;Заказные ИнформСистемы&#xBB;</b> образована в 1996 году.
     <br/>Специализация: проектирование и создание учётно-аналитических 
		программных комплексов для предприятий различных сфер деятельности.
  </p>
  <h3>Миссия</h3>
  <p><b>Наше кредо: система для клиента, а не клиент для системы.</b></p>
  <p>Вместе с заказчиком мы шаг за шагом укрепляем его конкурентные преимущества, 
     создаем основу для его роста и развития</p>

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

Ниже приведены основные утвержденные версии XHTML, и соответствующие декларации DTD, которые необходимо включать в начало документа (после стандартного XML-заголовка с указанием кодировки, см. #Пример XHTML-документа) для корректной валидации:

XHTML 1.0 Transitional (Переходный)
предназначен для легкой миграции от HTML3.2 или для тех кто использует инлайн-фрэймы.

<code-xml>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"      
                        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

</code-xml>

XHTML 1.0 Strict (Строгий)
отделяет содержание от оформления (которое теперь переносится в CSS), многие атрибуты (такие как например bgcolor, align) более не поддерживаются, их поведение можно задавать только через таблицу стилей.

<code-xml>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"    
                       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

</code-xml>

XHTML 1.0 Frameset (Фрэймовый)
используется если необходимо разделить окно браузера на несколько фрэймов.

<code-xml>

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"        
                            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

</code-xml>

XHTML 1.1
авторы могут импортировать дополнительные свойства в их разметку.

<code-xml>

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
                            "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

</code-xml>

Сейчас идет работа над спецификацией XHTML 2.0, который находится в состоянии «Working Draft».

Валидация XHTML документов[править]

Валидным (то есть отвечающим всем правилам) XHTML документом считается документ удовлетворяющий спецификации. В идеале, все браузеры должны следовать веб-стандартам и в соответствии с ними валидные документы должны отображаться во всех браузерах под всеми платформами. Валидация XHTML документа рекомендована даже несмотря на то, что она не гарантирует кросс-браузерной совместимости. Документ может быть проверен на соответствие спецификации в Службе Валидации Разметки W3C ([1]).

Самыми распространенными ошибками в XHTML являются:

  • Незакрытые элементы (XHTML, в отличие от HTML, требует закрытия всех элементов)
  • Отсутствие альтернативных текстов для изображений (достигающийся применением атрибута alt, который помогает сделать документы доступнее для устройств которые не в состоянии отображать изображения или предназначенных для слепых).
  • Присутствие текста непосредственно в <body> документа.
  • Вложение блочных элементов внутрь инлайновых.
  • Пренебрежение заключения значений атрибутов в кавычки.
  • Неправильное вложение элементов.
  • Неправильное использование SGML-обьектов (entity), например & вместо &amp;.
  • Написание тэгов и/или атрибутов прописными буквами.

Для валидации также можно использовать локальные (не веб-службы) программы и утилиты.

Например, можно использовать утилиту onsgmls от проекта OpenJade, предназначенную для валидации произвольных SGML-документов, которая честно (без малейших «зашивок» в коде) проверяет предоставленный XHTML-документ на соответствие DTD-файлу.

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

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

Валидаторы[править]


По крайней мере часть этого текста взята с ресурса http://lib.custis.ru/ под лицензией GDFL.Список авторов доступен на этом ресурсе в статье под тем же названием.