Старые веяния - XHTML

Автор статьи: Сергей Лисин ©
Сайт Автора: cvacubo.com
E-mail Автора: sergey@lisin.nnov.ru
Дата публикации: 26.06.2005

XHTML появился давно. Это нужно понять сразу. Первая спецификация вышла еще в 1999 году. Одной из причин появления XHTML стала глобальная неподготовленость производителей софта к технологии XML. Если взглянуть на последние спецификации W3C, такие как XSL, XML, XHTML и CSS3, то мы увидим, что соавторами большинства из них стали специалисты Microsoft. Во многом благодаря этому, MSIE является практически единственным браузером полностью соответствующим этим спецификациям. С другой стороны, есди мы зайдем на W3C.org и отскроллим страницу вниз то видны три кнопки на одной из которых явственно написанно "XHTML 1.0". И просмотреть этот сайт можно в любом браузере, начиная с lynx. Сказать то же самое про XML, в некоторых экзотических его разновидностях, например VRML, нельзя.

Почему XHTML более доступен? Он использует пространство имен практически идентичное с HTML 4.01 и, таким образом, большая часть DTD уже "зашита" в браузере. DTD (Document Type Definition) критически важен для XML-документов. Если он недоступен, или не указан, то браузер не сможет правильно интерпретировать код. Не указав

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

в начале HTML-документа мы не увидим никакой разницы. Это происходит потому что этот самый loose.dtd, как уже писалось выше "зашит" в самом броузере. Как следствие скачивать его откуда-то не требуется. Другой вопрос XML. Пространство имен этого языка очень велико и определяется именно DTD написанным специально для конкретной его разновидности. Например DTD для WML находится по адресу:

  "http://www.wapforum.org/DTD/wml_1.1.xml"

а для RSS:

  http://purl.org/rss/1.0/

И для браузера во время разбора соответствующего XML-кода эти документы должны быть доступны. Находться они могут и не по указазанным адресам, но в таком случае это должно быть отображенно в коде. Но вернемся к XHTML. В принципе, большой необходимости переписывать ваш HTML-код под XHTML, скорее всего нет. Большого преимущества, или дополнительных возможностей, это вам не даст, а код увеличит. Честно говоря я не знаю зачем это нужно. Но раз язык есть значит есть и причины по которым он был создан. Я не думаю что вы будете писать свой DTD-файл из модулей XHTML 1.1 потому что если вы можете работать с DTD документами то читать дальше вам уже не имеет смысла. Преимущество XHTML module в том что пространство имен может быть сокращенно до того списка который вы используете на сайте. Так, например, если у вас нет списков, то этот модуль можно выкинуть и, тем самым, уменьшить количество загружаемой в браузер информации. Но не думаю что это вам потребуется. Впрочем если все таки решили переписывать код на XHTML то усвойте следующие моменты:

  • В начале кода ОБЯЗАТЕЛЬНО должно присутствовать обьявление типа документа. В случае с XHTML оно обычно выглядит так:

     <?xml version="1.0" encoding="utf-8" standalone="no" ?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    

    Обратите внимание на encoding="utf-8".

  • Все значения атрибутов должны заключаться в кавычки ("). Вложение тегов должно соблюдаться полностью.

  • Сервер, на котором хостится ваш сайт, должен правильно выдавать документы с расширением .xhtml. На большинстве бесплатных хостингов это не так. Поскольку возможная кодировка только ISO-8859-5 то сервер не должен ее перекодировать, иначе документ будет выдан иероглифами.

  • Аттрибут ID не может повторяться дважды с одним и тем же значением.

  • Все пустые теги BR, HR, IMG, INPUT, META и т.д. должны перед закрывающей кавычкой содержать слэш. То есть
    должен писаться так, а не иначе.

  • Документ должен полностью соответствовать требованиям HTML 4.01 Strict. Так, например, элемент TD не может содержать аттрибут width. Для описания этого надо использовать конструкцию вида style="width: VALUE". Кстати NN4 это поддерживает. То же требование предъявляется к элементу IMG. Полный список нежелательных атрибутов вы найдете в спецификации HTML 4.01, доступной в архиве на этом сайте. Там же вы можете скачать спецификации XHTML.

  • После написания кода проверить его вы сможете на http://validator.w3.org/