Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / HTML / Не для новичков /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


XHTML: язык HTML как XML-приложение - Программирование от RIN.RU
XHTML: язык HTML как XML-приложение




Введение в XHTML


В январе 2000 г. W3C опубликовал рекомендацию XHTML 1.0 по переформулировке спецификации HTML 4 как XML-приложения. Язык XML будет нами подробно рассмотрен в этом разделе; здесь же приводится только резюме упомянутой рекомендации. В сравнении с HTML 4, XHTML обладает следующими преимуществами:



  • XHTML-документы соответствуют стандарту XML, и, следовательно, они могут просматриваться, редактироваться и проверяться на синтаксическую правильность стандартными средствами поддержки языка XML.


  • XHTML-документы могут отображаться как существующими обозревателями HTML-документов, так и новыми обозревателями, поддерживающими стандарт XHTML.


  • XHTML-документы могут обращаться к сценариям и аплетам, основанным на объектной модели документов (DOM).





С практической точки зрения преимущества XHTML таковы:





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


  • Постоянно возникают все новые способы и средства доступа к Сети: карманные компьютеры и телевизионные приставки, сотовые телефоны и пейджеры. По некоторым оценкам, к 2002 г. 75% просмотра Веб-страниц будет осуществляться с помощью этих альтернативных средств. XHTML был разработан с ориентацией на обобщенный обозреватель, который в сочетании с механизмами словарей метаданных должен обеспечить оптимальное преобразование содержимого документа при его отображении, с тем, чтобы, в конце концов, перейти к разработке таких документов, которые будут адекватно отображаться любым обозревателем, поддерживающим стандарт XHTML.





По мнению создателей языка HTML, он, несмотря на его ошеломляющий успех, за прошедшее десятилетие полностью исчерпал себя и превратился в труднообозримого монстра, поддержка которого из-за чрезмерно разросшегося набора тегов становится все более затруднительной. По этой причине история HTML заканчивается его четвертой версией; HTML 5 никогда создан не будет - точнее говоря, таковым можно считать XHTML 1.0, который начинает новую эпоху языков для Веб-документов, основанную на едином протоязыке XML, обеспечивающем своим приложениям расширяемость и переносимость.




Структура XHTML-документа


XHTML-документ имеет следующую структуру:



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Заголовок документа</title>
</head>
<body>
...
</body>
</html>




Из этого примера видно, что XHML-документ состоит из следующих компонент:



  • Декларация XML-документа (первая строка примера). Эта строка не является обязательной согласно стандарту XML, но W3C рекомендует всегда включать ее в начало XHTML-документа. Если же кодировка символов документа отлична от UTF-8 или UTF-16, то XML-декларация становится обязательной и должна содержать название кодировки символов в атрибуте encoding.


  • Декларация типа документа (вторая строка примера). Эта декларация является обязательной и может принимать одно из трех значений, которые соответствуют трем декларациям типов HTML-документов:





  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "DTD/xhtml1-strict.dtd">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "DTD/xhtml1-transitional.dtd">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
    "DTD/xhtml1-frameset.dtd">





  • Корневой элемент документа (остальные строки примера). Этим элементом является html с обязательным атрибутом xmlns, задающим пространство имен XHTML-документа. Значением xmlns должна быть строка "http://www.w3.org/1999/xhtml". Кроме  того, для задания языка документа должны использоваться и атрибут lang, и атрибут xml:lang, как показано в примере.




Отличия от HTML


Поскольку XHTML-документы являются XML-приложениями, на их синтаксис накладывается ряд дополнительных ограничений, которые выражаются в том, что XHTML-документы должны быть правильно оформлены в понимании стандарта XML. Это означает, что:



  • Каждый элемент должен иметь конечный тег, даже если стандарт HTML говорит, что он не обязателен. Если элемент не имеет конечного тега и содержимого, то его начальный тег должен оканчиваться на />, например <br />, <hr />, <img src="picture.jpg" alt="рисунок" />. Пробел перед дробной чертой не обязателен, но рекомендуется для совместимости с сегодняшними Веб-обозревателями.


  • Элементы должны либо следовать друг за другом, либо быть вложены один в другой, как это было рекомендовано в этом пункте, хотя до сих пор Веб-обозреватели либерально относились к неправильному вложению элементов друг в друга.


  • Названия элементов и атрибутов HTML должны писаться строчными буквами, т. к. язык XML различает регистры, и в нем <body> и <BODY> - это различные теги.


  • Значения атрибутов всегда должны заключаться в кавычки (ср. пункт). Не допускается краткая запись атрибутов вида <option selected>. Атрибут всегда должен иметь значение, в данном случае: <option selected="selected">.


  • Значения атрибутов нормализуются согласно стандарту XML. Это означает, что из них удаляются начальные и конечные пробелы, а каждая последовательность пробелов внутри значения атрибутов (включая разрывы строк) заменяется на один символ пробела.


  • Если элементы style или script содержат специальные символы, то их содержимое следует заключать в маркированную секцию CDATA, иначе процессор XML преобразует специальные символы в их эквиваленты до обработки обозревателем соответствующей таблицы стилей или сценария:



    <script>
    <![CDATA[
    <em>:содержимое сценария:</em>
    ]]>
    </script>





    Кроме того, процессор XML удаляет все комментарии из текста документа. Поэтому исторически сложившая практика "прятать" содержимое таблиц стилей и сценариев внутри комментариев не работает в XHTML. Единственный способ избежать их предварительной обработки процессором XML состоит в использовании внешних таблиц стилей и сценариев.


  • Атрибут name элементов a, form, frame, iframe, img и map объявлен в XHTML морально устаревшим; вместо него должен использоваться атрибут id. Более того, всюду в XHTML-документах для создания закладок следует пользоваться атрибутом id, например: <a id="myid">:</a>.





a name="ref1114">Обеспечение совместимости


Для того, чтобы XHTML-документ правильно отображался Веб-обозревателями, рекомендуется соблюдать следующие правила:



  • Поскольку XML-приложения пока не имеют зарегистрированного типа MIME, для XHTML-документов следует использовать тип "text/html" в метаописателе <META http-equiv="Content-Type" content="text/html; charset=windows-1251" />. Для задания кодировки символов документа следует указывать и этот метаописатель, и XML-декларацию <?xml version="1.0" encoding="WINDOWS-1251"?>. Помните, что XML-декларация имеет приоритет перед HTML-декларацией кодировки символов.


  • Для задания языка элемента должны использоваться и атрибут lang, и атрибут xml:lang, причем атрибут xml:lang имеет приоритет.


  • Если значение атрибута содержит символ амперсанта "&", то его следует заменить на соответствующий специальный символ &. Например, если атрибут href элемента указывает на CGI-сценарий, принимающий параметры, то он должен записываться как http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user, а не http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.





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



  • Названия элементов и атрибутов CSS должны писаться строчными буквами.


  • Если ваша таблица стилей содержит свойства для элемента tbody, то таблицы в XHTML-документе должны явно содержать этот элемент (HTML добавляет его по умолчанию, а XML нет).


  • Обращайте внимание на те случаи, когда стандарт CSS по-разному определяет правила разбора свойств для HTML-документов и для XML-документов.





 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь