XML (Extensible Markup Language, расширяемый язык разметки) представляет собой принципиально новый стандарт, предложенный в 2000 году создателем языка HTML — консорциумом World Wide Web Consortium (W3C). XML является новейшей технологией изготовления веб-страниц, которая в настоящее время еще находится в стадии разработки. Структура XML характеризует его не как язык разметки гипертекста, а как метаязык, который должен описывать другие языки более низкого уровня.
В свою очередь XHTML (Extensible Hypertext Markup Language, расширяемый язык разметки гипертекста) является промежуточным вариантом между XML и HTML 4.0. Именно в связи с его широким применением консорциумом W3C планируется осуществление постепенного перехода от одного стандарта к другому. Спецификация XHTML построена ппринципу обратной совместимости. Иначе говоря, владельцам веб-сайтов, созданных в соответствии с технологией HTML 4.0 или более ранних версий, не нужно будет менять форматы опубликованных в сети Интернет документов: все дополнения и расширения нового языка полностью включили в свой состав предыдущие стандарты.
XML и XHTML значительно расширили возможности HTML и позволили веб-мастерам использовать практически весь потенциал современного Интернета на 100%, в первую очередь это касается сферы электронной коммерции. Так как XHTML направлен на использование модульной архитектуры построения электронных документов, с помощью него можно создать механизм взаимодействия с каким-либо нетрадиционным для Интернета устройством, в качестве такого устройства могут использоваться факс, сотовый телефон или телевизор. Как считают аналитики, в недалеком будущем XML сможет стать главным стандартом в сети Интернет, достигнув этого путем включения в свой состав большинства других используемых в настоящее время форматов.
История появления
Начнем с языка SGML (Standard Generalized Markup Language), который является метаязыком, послужившим основой Тиму Бернерсу-Ли для создания HTML.
В ходе развития Всемирной сети как социального и технического явлений, представители W3C стали изучать перспективное развитие языков и методов, используемых в сети Интернет. С того времени появилось большое количество технологий, к которым можно отнести и Extensible Markup Language (XML).
XML, подобно языку SGML, явился метаязыком, состоящим из спецификаций и директив, используемых при создании приложений, а также подмножеств других языков. XML, подобно языку HTML, также появился из SGML, хотя и не является подмножественным языком.
XML можно воспринимать как облегченный вариант SGML для сети Интернет, более упорядоченный в сравнении с ним, содержащий ряд строгих правил SGML и одновременно обладающий гибкостью настройки для разработчиков.
Когда появились XML, HTML 4.0 с тремя DTD, а также CSS, разработчиками было продолжено исследование HTML, в результате которого обнаружилось его ограничение в установках, т.е. его рамки нельзя расширять дальше определенной точки.
Желание совместить строгость и способность к расширению побудили разработчиков из W3C обратиться к XML как к средству, влияющему на HTML. В следствие чего, HTML был переформулирован в приложение XML (а не SGML), что и явилось появлением Extensible Hypertext Markup Language (XHTML).
Цели XHTML
Ограничения HTML связывают со специфичностью его словаря, перекочевавшего в XHTML. XML представляет собой язык семантический. В HTML используются специальные теги при достижении заданной цели. В XML теги используются специфичные для всех тем в отдельности, эти теги полностью создаются авторами.
XHTML представляет собой своеобразный мост, соединяющий ограничения специфического словаря и более открытую спецификацию, в которой автор создает свои собственные DTD и может в случае необходимости изменить язык.
Особыми целями XHTML являются:
- ужесточенные правила создания веб-документов;
- предоставление веб-разработчикам расширяемости;
- поддержка большого количества постоянно появляющихся альтернативных устройств (телевизионных приставок, карманных компьютеров, пейджеров и др.), воспринимающих веб-информацию.
Отметим, что XHTML поддерживает любой браузер, способный к интерпретации HTML, так как XHTML работает с HTML-словарем.
Основное отличие заключается в жестких правилах, в том, каким образом написан язык и насколько строго соблюдены данные правила.
Преимущества использования XHTML
Язык XHTML обладает рядом преимуществ:
- документы, созданные с его помощью, более надежны;
- наличие менее сложных и изменчивых грамматических правил в сравнении с HTML, в результате чего малое количество ошибок авторов и малые потери времени на их поиски и устранение;
- он подходит не только для использования в сети Интернет, но и для распространения контентов за ее пределами;
- в связи с более строгими правилами языка он достаточно прост в изучении и использовании;
- в связи со строгостью языка малая степень различия между документами разных авторов;
- в связи с возможностями расширения наличие возможности легкого изменения объема сайта.
Версии XHTML
Многими предпочтение отдается XHTML 1.1 Strict, но данная версия менее совместима со старыми браузерами и ею используются MIME-типы, что может привести к некоторым проблемам в поведении определенных популярных браузеров.
Помимо этого, преобразование созданных с помощью старых методов сайтов в XHTML 1.1 Strict предполагает больших затрат труда и времени, чем в XHTML 1.0 Transitional. Для большинства веб-дизайнеров оптимальным вариантом может стать XHTML 1.0 Transitional.
Разработчикам были представлены наброски стандарта XHTML 2.0. Данный стандарт очень близок к идеалу, поскольку он не совместим с HTML или XHTML 1.0 и не использует некоторые привычные элементы, включая IMG.
Реакция разработчиков на появление данной версии была разная: от нескрываемого восторга до крайне осторожной.
С течением времени будет ясно, какие спецификации XHTML 2.0 станут стандартом, и будет ли он поддерживаться дизайнерами и разработчиками. В настоящее время XHTML 2.0 не поддерживается ни одним браузером.
Так же как и ни один производитель браузеров не намерен отказываться от поддержки HTML 4. Сайты, написанные на корректном HTML 4.01, будут продолжать работать годы и годы. Это же относится и к XHTML 1.
HTML или XHTML
Осуществляя выбор между этими двумя стандартами необходимо обратить внимание на следующие основные моменты:
- XHTML представляет собой текущий стандарт разметки гипертекста, заменивший HTML 4;
- является совместимым с другими продуктами на базе XML (языками, протоколами и приложениями) в отличии от HTML;
- XHTML является более последовательным, чем HTML, что способствует снижению вероятности возникновения ошибок;
- XHTML 1.0 представляет собой мост к новым версиям XHTML;
- старыми браузерами так же корректно отображается XHTML, как и HTML;
- новые браузеры охотнее работают с XHTML, поскольку им предоставляются многие функции, которые недоступны в HTML;
- XHTML хорошо работает в беспроводных устройствах, программах для чтения информации с экрана и других пользовательских устройствах, чем устраняется необходимость создания отдельных версий для беспроводных устройств и повышается доступность сайта;
- XHTML относится к семейству веб-стандартов (куда входят и CSS и W3C DOM), это дает возможность контроля внешнего вида и поведения страницы в разных платформах, браузерах и устройствах;
- использование XHTML повышает доступность сайта и способствует одинаковому отображению страниц в разных браузерах;
- при использовании XHTML можно осуществлять проверку страниц с помощью валидатора Консорциума W3C, что способствует экономии времени на тестировании и отладке и недопущению основных ошибок доступности.
Как было упомянуто выше, стандартом XHTML используются правила синтаксиса XML. Кроме того, существуют еще некоторые правила синтаксиса XHTML, отличающие его от HTML:
- необходимость наличия специальных объявлений DOCTYPE;
- использование нижнего регистра для записи всех элементов, атрибутов и значений;
- все значения атрибутов заключаются в кавычки (одинарные или двойные), но пользоваться можно только одними;
- все атрибуты должны иметь определенные значения.
Эти правила не обязательные при написании кода, однако все они отлично работают в HTML.
Одно правило XHTML все же нарушает синтаксис HTML - это применение косой черты при закрытии пустых элементов.
При использовании HTML вместо XHTML необходимо учесть только эту небольшую разницу при написании страниц.