В чем разница между HTML и XHTML? Синтаксис XHTML

13.2. Отличие XHTML от HTML

Основным отличием документа XHTML от HTML 4.01 является жесткое требование к корректности документа с точки зрения стандартов языка XML. На протяжении истории развития языка HTML сложился подход, при котором допускались многочисленные вольности и отступления от стандартов языка, объявленных W3C, а браузеры различных производителей пытались компенсировать эти вольности, угадывая и корректируя HTML-код с целью его адекватного воспроизведения. Все это отменяется в языке XHTML, если следовать строгим наборам XHTML DTD, а переходные наборы XHTML DTD служат лишь на период перехода от старого к новому: от HTML к XHTML.

Значения атрибутов должны быть в кавычках

В языке HTML значения атрибутов должны быть заключены в кавычки, только если в значение входят пробелы или специальные символы. Но в языке XHTML это недопустимо: все значения должны заключаться в кавычки. Например, в теге , входящем в документ HTML, допустимо написать следующее:

Однако в языке XHTML это считается ошибкой. Следует писать так:

Хотя это и кажется избыточным, но выполнение такого правила обязательно.

Необходимо наличие закрывающего тега

В стандарте языка HTML 4.01 допускается пропуск закрывающего тега, если программа, которая будет обрабатывать соответствующий документ, сможет «догадаться» о его наличии. Поэтому вполне допустимо опускать закрывающие теги

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

Это первый абзац

Конечно, такое требование сильно загромождает код, однако устраняет какие-либо двусмысленности в разметке документа, поскольку позволяет точно идентифицировать любой элемент кода.

То же самое касается и пустых элементов. Каждый тег такого элемента должен иметь как открывающий, так и закрывающий тег, например тег обрыва строки теперь должен писаться так:

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

Необходимо корректно вкладывать элементы друг в друга

Это требование стандарта XHTML не отличается от требований HTML. Каждый элемент, вложенный в другой элемент, должен быть закрыт завершающим тегом, лежащим внутри содержащего его элемента. Например, в данном примере элемент для задания курсивного текста включает тег полужирного начертания:

…форматируемый текст…

Этот пример корректен. Однако если мы напишем так:

…форматируемый текст…

то нарушим требования HTML. Тем не менее эти и им подобные требования не всегда выполнялись разработчиками, и «добрые» браузеры обычно корректировали такие нарушения кода. Однако стандарт XHTML запрещает подобные нарушения. Кроме того, XHTML запрещает следующие вложения:

Тег не может содержать теги ;

Тег не может содержать теги , , , , , , , , ;

Тег не может содержать другой тег ;

Тег не может содержать другие теги ;

Тег Не может содержать теги , , , , , .

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

Назначение имен тегов и атрибутов зависит от регистра

В документах HTML имена тегов и атрибутов не зависят от регистра символов, так что, например, запись

,
или
означает один и тот же тег таблицы. Однако в XHTML это разные теги. То же самое касается имен атрибутов: записи типа width или WiDtZ в XHTML уже не означают имя атрибута, задающего ширину, например, ячейки таблицы или рисунка.

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

Требуется явно задавать значения атрибутов

В документах XHTML всем атрибутам следует присваивать значения, даже если по стандарту HTML это не требуется. Например, в тегах списков ,

    часто используется атрибут compact, приводящий к уменьшению расстояния между буквами в тексте списков. Если этот атрибут включен в тег, например
      , то текст в списке будет отображаться более компактно. Однако в XHTML такая запись запрещена и вам придется написать так:
        . В табл. 13.1 приведены атрибуты, которым в языке XHTML следует задавать значения, совпадающие с их названием.

        Таблица 13.1. Значения атрибутов XHTML, для которых HTML не требовал значений

        Включение сценариев и специальных символов в документы XHTML

        В документы HTML сценарии встраиваются с помощью комментариев, то есть коды сценариев помещаются внутрь объявлений комментария:

        …Код сценария JavaScript или таблицы CSS….

        В них же помещают объявления таблиц CSS, что позволяет избежать конфликтов, если браузер не поддерживает эти средства. Однако браузеры XML не воспринимают содержимое комментариев и требуют использования таких конструкций, содержащих тег CDATA языка XML:

        …код сценария JavaScript...

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

        Все специальные символы в документы XHTML следует записывать с помощью ссылок, то есть вместо записи следует написать

        На заметку, чтобы не забыть о различии между HTML и XHTML .

        И так, HTML и XHTML - это особые форматы разметки веб-страниц которые “понимает” браузер.

        Далее немного теории о HTML и XHTML и список некоторых различий между ними…

        HTML (от англ. HyperText Markup Language - “язык разметки гипертекста”) - стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.
        HTML является приложением («частным случаем») SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879. XHTML же является приложением XML.

        HTML - это теговый язык разметки документов. Любой документ на языке HTML представляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками - тегами. Элементы могут быть пустыми, то есть не содержащими никакого текста и других данных (например, тег перевода строки
        ). В этом случае обычно не указывается закрывающий тег. Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их свойства.

        Каждый HTML-документ, отвечающий спецификации HTML какой-либо версии, должен начинаться со строки объявления версии HTML .
        Если эта строка не указана, то добиться корректного отображения документа в браузере становится труднее.

        XHTML (англ. Extensible Hypertext Markup Language - Расширяемый язык разметки гипертекста) - язык разметки веб-страниц, по возможностям сопоставимый с HTML, созданный на базе XML. Как и HTML, XHTML соответствует спецификации SGML, поскольку XML является её подмножеством. Вариант XHTML 1.1 одобрен в качестве Рекомендации Консорциума Всемирной паутины (W3C) 31 мая 2001 года.

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

        Различия между XHTML и HTML
        - Все элементы должны быть закрыты. Теги, которые не имеют закрывающего тега
        (например, или
        ) должны иметь на конце / (например,
        ).

        Булевы атрибуты записываются в развёрнутой форме. Например, следует писать или .

        Имена тегов и атрибутов должны быть записаны строчными буквами (например, alt="" /> вместо ).

        XHTML гораздо строже относится к ошибкам в коде; < и & везде, даже в URL,
        должны замещаться < и & соответственно. По рекомендации W3C браузеры,
        встретив ошибку в XHTML, должны сообщить о ней и не обрабатывать документ. Для
        HTML браузеры должны были попытаться понять, что хотел сказать автор.
        - Кодировкой по умолчанию является UTF-8 (в отличие от HTML, где кодировкой по
        умолчанию является ISO 8859-1).

        Для XHTML страниц рекомендуется задавать MIME-тип - application/xhtml+xml, но
        это не является обязательным, более того - браузер Internet Explorer 8 и младшие
        версии, не смогут обрабатывать страницу, поэтому с XHTML 1.0 традиционно
        используется MIME-тип для HTML - text/html.

        Также стандарт рекомендует указание перед
        DTD, но это не обязательно, более того - браузер Internet Explorer воспринимает
        такое указание (как и любой другой текст перед ), как признак того,
        что данную страницу необходимо отображать в режиме обратной совместимости, а не
        согласно стандарту. Существует три типа документов XHTML: strict, transitional и
        frameset. Наиболее употребительной и универсальной из версий XHTML является
        переходная (англ. transitional), поскольку она позволяет использовать iframe
        (включение содержимого одной веб-страницы в другую) и атрибут target у ссылок
        (для указания того, например, что ссылке необходимо открываться в новом окне).
        Фреймовая версия (англ. frameset) представляет собой расширенный вариант
        transitional, добавляя к нему, как следует из названия, возможность установки
        frameset вместо body. DTD строгой версии XHTML (англ. strict) не содержит многих
        тегов и атрибутов, описанных в DTD transitional, и признанных устаревшими.

        Спасибо http://ru.wikipedia.org/

        При выборе DOCTYPE необходимо чётко определиться, какой из двух стандартов выбрать: HTML или XHTML . И для облегчения Вашего выбора я решил разобрать разницу между HTML и XHTML .

        Главное отличие между HTML и XHTML в том, что XHTML основан на синтаксисе XML . А, следовательно, он более строгий, и в нём нельзя допускать тех вольностей, которые можно допустить в HTML .

        А теперь по пунктам разберём особенности синтаксиса XHTML :

        1. Каждый тег должен закрываться

        Парные теги должны закрываться и в HTML тоже, но все мы знаем, что в HTML существует множество одиночных тегов (например, ), и мы смело могли написать таким образом:

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

        Разница только в слеше перед второй угловой скобкой.

        2. Все спецсимволы должны быть заменены на сущности

        То есть нельзя писать вот так: "& ", нужно писать этот символ только сущностью, то есть "& ". В HTML подобного правила не существует.

        3. Все значения атрибутов должны быть в кавычках.

        Все мы с Вами знаем, что в HTML можно написать вот так:

        То есть у нас значение атрибута "width " находится без кавычек. В XHTML это недопустимо, и там надо писать вот так:

        4. Все теги и атрибуты должны писаться в нижнем регистре.

        Скажу честно, я никогда не понимал, зачем люди пишут теги в верхнем регистре. На мой взгляд, это уродует код, и возникает ощущение, что его писали не отжимая "CAPSLOCK ". Но если в HTML - это дело вкуса, то в XHTML - это правило: писать только в нижнем регистре.

        Как видите, разница только в синтаксисе. Есть также и другие мелкие различия, но мы о них говорить не будем. Другими словами, единственное преимущество XHTML - это более лёгкий парсинг документа . А также XHTML очень подходит любителям "чистого" кода. Больше никаких преимуществ нет. Все браузеры корректно отображают и HTML , и XHTML . Причём зачастую браузеры XHTML обрабатывают как HTML , поэтому для внешнего вида серьёзных различий в HTML и XHTML точно не будет.

        Я для себя выбрал XHTML , потому что я очень люблю, когда код "чистый" и когда он легко разбирается на составные части (парсинг ). Да, и вообще я привык к строгому синтаксису других языков, например, Java, поэтому всё равно я буду писать максимально валидно. А что выберите Вы - решать только Вам, а об отличиях HTML и XHTML Вы уже знаете.

        13.2. Отличие XHTML от HTML

        Основным отличием документа XHTML от HTML 4.01 является жесткое требование к корректности документа с точки зрения стандартов языка XML. На протяжении истории развития языка HTML сложился подход, при котором допускались многочисленные вольности и отступления от стандартов языка, объявленных W3C, а браузеры различных производителей пытались компенсировать эти вольности, угадывая и корректируя HTML-код с целью его адекватного воспроизведения. Все это отменяется в языке XHTML, если следовать строгим наборам XHTML DTD, а переходные наборы XHTML DTD служат лишь на период перехода от старого к новому: от HTML к XHTML.

        Из книги Руководство по стандартной библиотеке шаблонов (STL) автора Ли Менг

        Отличие (Mismatch) template ‹class InputIterator1, class InputIterator2›pair‹InputIterator1, InputIterator2› mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2);template ‹class InputIterator1, class InputIterator2, class BinaryPredicate›pair‹InputIterator1, InputIterator2› mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate binary_pred);mismatch возвращает пару итераторов i и j

        Из книги Office 2007. Мультимедийный курс автора Мединов Олег

        Отличие Microsoft Office 2007 от предыдущих версий Несмотря на сохранение концептуальной преемственности с предыдущими версиями, пакет Office 2007 является качественно новым продуктом, значительно облегчающим труд пользователей и отвечающим требованиям сегодняшнего дня.Первое, что

        Из книги Создание шаблонов Joomla автора Автор неизвестен

        HTML/XHTML, CSS, XML Аббревиатуры HTML/XHTML, CSS и XML – это Интернет технологии применяемые Joomla! Данные технологии стандартизированы консорциумом W3C (World Wide Web

        Из книги XSLT автора Хольцнер Стивен

        HTML/XHTML WWW (World Wide Web или Всемирная паутина) основана на HTML. HTML – это не язык программирования. HTML является языком описания и форматирования текста. Текст при этом состоит из различных структур: заголовков, списков, частей, выделенных жирным или наклонным шрифтом, таблиц и т.д.

        Из книги Основы программирования на JavaScript автора Кан Марк

        Преобразования из XML в XHTML Хотя во многих книгах рассматриваются исключительно преобразования из XML в HTML, правда состоит в том, что консорциум W3C этому не очень-то рад. Консорциум пытался сместить акцент с HTML (который они первоначально стандартизировали) на свою новую

        Из книги Бесплатные разговоры через Интернет автора Фрузоров Сергей

        Глава 6 Преобразование в XML, HTML, XHTML, RTF Предположим, web-узел вашей компании использует основанное на XML программное обеспечение фирмы Commerce One, в котором для безопасной коммуникации через Интернет применяется Java Message Service (JMS). Ваша деятельность была настолько успешной, что вы

        Из книги HTML5 для веб-дизайнеров автора Джереми Кит

        Вывод в формате XHTML W3C представил XHTML как последователя HTML, но ни в XSLT 1.0, ни в рабочем проекте XSLT 1.1 нет никакой специальной поддержки для преобразований из XML в XHTML. Предполагается, что надлежащая поддержка будет включена в XSLT 2.0. Тем не менее, при помощи процессоров XSLT все

        Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь Из книги автора

        Главное отличие Gizmo от Skype Программа голосового общения через Интернет Gizmo (дословно переводится как Штуковина) очень уж похожа на Skype. Легче перечислить, чем она отличается от всемирно известной и безумно популярной системы голосового общения, которую успели скачать и

        Из книги автора

        XHTML 1: HTML по правилам XML Следующая после HTML 4.01 версия языка называлась XHTML 1.0. «X» означало «экстремальный», и каждый веб-разработчик, когда начинал произносить название языка, был строго обязан скрещивать руки в форме буквы «Х».Ладно, на самом деле нет. «X» значило eXtensible,

        Из книги автора

        XHTML 2: терпению пришел конец Если бы персонаж Дастина Хоффмана в фильме «Выпускник» был веб-разработчиком, W3C сказал бы ему одно слово, ровно одно: XML.С точки зрения W3C разработка HTML закончилась на версии 4. Они начали работать над XHTML 2, который был спроектирован так, чтобы

        Из книги автора

        XHTML умер: да здравствует синтаксис XHTML Туман неразберихи начал рассеиваться в 2009 году. W3C объявил, что договор на XHTML 2 не будет продлеваться. Формат был мертвым уже несколько лет, и это объявление стало только официальным свидетельством о смерти.Как ни странно, смерть XHTML 2

        Из книги автора

        Глава 13 Язык XHTML 13.1. Структура XHTML-документов13.2. Отличие XHTML от HTML13.3. Проблемы использования XHTMLИтак, в предыдущих главах книги вы изучили возможности HTML 4.01 и теперь готовы разрабатывать веб-страницы, основанные на этом языке гипертекстовой разметки. Язык HTML версии 4.01 в

        Из книги автора

        13.1. Структура XHTML-документов Чтобы XHTML-документ полностью отвечал требованиям строгих правил XHTML DTD, ему нужно указать, какой набор XML DTD был использован при его создании, версию применяемого языка XML, а также пространство имен документа. Вся эта информация помещается в

        Из книги автора

        Включение сценариев и специальных символов в документы XHTML В документы HTML сценарии встраиваются с помощью комментариев, то есть коды сценариев помещаются внутрь объявлений комментария:В них же помещают объявления таблиц CSS, что

        Из книги автора

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



        Есть вопросы?

        Сообщить об опечатке

        Текст, который будет отправлен нашим редакторам: