Разница между HTML и XHTML. Что такое XHTML? Ошибки в XHTML и отличия XHTML от HTML Все теги и атрибуты должны писаться в нижнем регистре

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

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

XHTML совместим с HTML при соблюдении некоторых правил, описание которых можно найти в стандарте . Это означает, что даже самые старые браузеры, которые понимают HTML, будут работать и с XHTML.

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

Отличия XHTML 1.0 от HTML. Существует несколько требований , которые разработчик обязан выполнять:
  • в начале документа должен указываться один из возможных DTD (Document Type Definition):
  • в теле XHTML-документа должны обязательно присутствовать следующие тэги: html , head , title и body ;
  • обязательно наличие атрибута xmlns в элементе html ;
  • имена тегов и атрибутов должны записываться в нижнем регистре;
  • все значения атрибутов должны заключаться в "кавычки";
  • все тэги должны закрываться; если у элемента нет закрывающего тэга, следует добавлять в его конец слеш (
    или
    — пробел для совместимости со старыми браузерами);
  • необходимо соблюдать корректную вложенность тэгов (текст — неверно; следует писать текст );
  • запрещается использовать минимизированные атрибуты (nowrap следует заменить на nowrap="nowrap" ); полный список таких атрибутов: checked , compact , declare , defer , disabled , ismap , noresize , noshade , nowrap , multiple , readonly , selected .
  • на следующие элементы налагаются ограничения по включению в них других элементов:
    • a a ;
    • form не может содержать другие элементы form ;
    • label не может содержать другие элементы label ;
    • pre не может содержать img , object , big , small , sub или sup ;
    • button не может содержать элементы input , select , textarea , label , button , form , fieldset , iframe или isindex ;
  • специальные символы в истинном значении должны заменяться на свои эквиваленты:
    • & на & ;
    • < на < ;
    • > на > .

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

  • декларация XML-документа в самом начале кода перед DTD ( );
  • следование элемента title сразу после открытия тега head ;
  • использование атрибута id вместо name (name считается устаревшим атрибутом);
  • наличие атрибута type в элементах подключаемых файлов (таблиц стилей и скриптов);
  • отказ от использования атрибута target .

Приведём минимальный код правильной XHTML-страницы:

Заголовок Содержимое документа

Если вставить этот код в файл, сохранить его как "file.html " и открыть через веб-сервер, то вся информация будет получена клиентом как >text/html*/-->

Такой синтаксис универсален. Этот код будет корректно работать и при и при .

Хорошим и самым простым решением будет подключение внешних файлов таблиц стилей и скриптов. В XHTML это делается так же как и в HTML:

При выборе 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 Вы уже знаете.

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

Язык возник из-за нескольких ограничений HTML и разнообразных способов реализации HTML. Примерно в то время, когда HTML обновился до версии 4, он начал ослабевать, при правильном использовании многими интерпретаторами HTML, компьютерными программами, которые анализируют HTML-документы на отформатированной, просматриваемой веб-странице. Поскольку появились мобильные устройства и другие платформы для просмотра веб-страниц, было необходимо лучшее решение. XML — это гораздо более строгая реализация SGML чем HTML, и в одном экземпляре могут использоваться различные пространства имён XML. Поэтому около 2000 года консорциум World Wide Web (W3C) разработал и сделал XHTML одной из своих рекомендаций для решения некоторых из этих возникающих проблем.

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

Благодаря возможности XHTML включать другие пространства имён XML в документ, его можно расширить несколькими способами, чтобы представить больше, чем просто форматирование страницы. Например, математический язык разметки (MathML) может быть включен в эти документы для отображения математических формул и обозначений. Изображения также могут быть встроены с использованием пространства имён масштабируемой векторной графики (SVG) в документе этого типа. Таким образом, XHTML также может быть включен в другой XML-документ.

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

Статья основана на оригинальном документе W3C — XHTML™ 1.1 — Module-based XHTML — Second Edition: W3C Working Draft 16 February 2007 . Он может быть изменен, но скорее всего станет заменой для существующей рекомендации — XHTML™ 1.1 — Module-based XHTML.

Строгое соответствие документов

Документы, полностью совместимые с XHTML 1.1 — должны соответствовать следующим критериям:

  • Корневым элементом документа должен быть элемент .
  • Корневой элемент документа () должен указывать на пространство имен XHTML с помощью атрибута xmlns . Указателем пространства имен для XHTML является "http://www.w3.org/1999/xhtml", то есть открывающим тегом html должна быть конструкция вида: .
  • Корневой элемент может также содержать атрибут schemaLocation . Атрибут schemaLocation для XHTML определен в виде: "http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" .
  • Должно присутствовать объявление типа документа DOCTYPE , предшествующее корневому элементу. Идентификатор, включенный в объявление DOCTYPE , должен указывать на соответствующий DTD. Этот идентификатор может выглядеть следующим образом:
  • Приведем пример документа, соответствующего XHTML 1.1:

    Virtual Library

    Moved to example.org.

    Отметим, что в этом примере, включено объявление XML. Объявление XML, подобное вышеуказанному требуется не во всех XML документах. Авторам XHTML документов крайне рекомендуется использовать объявление XML во всех своих документах. Такое объявление требуется, когда кодировка XML-документа отличается от UTF-8 или UTF-16.

    У документов XHTML 1.1 следует указывать тип содержимого документа — либо как text/html , либо application/xhtml+xml .

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

    Тип документов XHTML 1.1

    XHTML 1.1 — это полнофункциональный тип документов с развитой семантикой. Однако, он не так разнообразен в функциональном отношении как типы XHTML 1.0 Transitional или XHTML 1.0 Frameset. Начиная с версии XHTML 1.1, тип документа не содержит устаревших элементов, содержащихся в типах XHTML 1.0 или HTML 4. Несмотря на эти исключения, или возможно благодаря им, тип XHTML 1.1 является надежной базой для создания новых типов документов в будущем с полной поддержкой различными агентами пользователей.

    Тип XHTML 1.1 составлен из следующих XHTML модулей.

    Структурный модуль body, head, html, title Модуль для работы с текстом abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var Гипертекстовый модуль a Модуль списков dl, dt, dd, ol, ul, li Модуль объектов object, param Модуль различных способов представления b, big, hr, i, small, sub, sup, tt Модуль редактирования del, ins Модуль поддержки двунаправленного текста bdo Модуль форм button, fieldset, form, input, label, legend, select, optgroup, option, textarea Табличный модуль caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr Модуль изображений img Модуль карт изображений клиентской стороны area, map Модуль карт изображений стороны сервера Атрибут ismap, включенный в img Модуль внутренних событий Атрибуты событий Модуль метаинформации meta Модуль сценариев noscript, script Модуль таблиц стилей style Модуль атрибутов стилей (Устаревший) Атрибут style Модуль ссылок link Модуль базы base

    XHTML также использует модуль Ruby Annotation:

    Модуль Ruby Annotation ruby, rbc, rtc, rb, rt, rp

    Названия модулей в списке приведены согласно своим определениям в текущей версии «XHTML Modularization». Более подробная информация о модулях содержится в документе «XHTML Modularization».

    Отличия от XHTML 1.0 Strict

    XHTML 1.1 отличается от обеих технологий HTML 4 и XHTML 1.0. Наиболее значимым является устранение устаревших элементов. Вообще, существует стратегия определять язык разметки со структурно-функциональной стороны, вне зависимости от таблиц стилей, применяемых для дизайна документов.

    Отличия могут быть сформулированы следующим образом:

  • Атрибут lang заменен атрибутом xml:lang .
  • В элементах a и map , атрибут name заменен атрибутом id .
  • Коллекция элементов « Ruby » расширена.
  • Таким образом, тип XHTML 1.1 несильно отличается от XHTML 1.0 Strict, однако, эти отличия достаточно существенны и их необходимо учитывать.

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

    Определенным ограничением HTML является и то, что он относится к формальным языкам, в том смысле, что теги и их иерархическая структура жестко описаны в спецификации. Поэтому популярность набирает XML, с помощью которого можно создавать собственные теги и формировать их структуру. Разница между HTML и XML состоит не только в тегах, но и правилах написания кода. Браузер при работе с HTML «закрывает глаза» на разные мелкие огрехи и недочеты в структуре или тому, что не корректно указан атрибут. С XML такие фокусы не проходят, поэтому браузер выдаст ошибку о том, что документ неверно сформирован.

    Чтобы научить разработчиков «правильному» мышлению, изменить их стиль написания кода, а также сократить разрыв между HTML и XML, и был разработан XHTML, как промежуточный этап между ними.

    XHTML (EXtensible HyperText Markup Language, расширяемый язык разметки гипертекста) предназначен для замены HTML и считается его более строгой версией. Вообще, W3C определяет XHTML как последнюю версию HTML, которая постепенно его вытеснит. Так ли это будет обстоять на самом деле, покажет только время.

    Если рассуждать о некотором идеальном коде веб-страницы, то его можно сравнить с программой, которая не будет скомпилирована до тех пор, пока все ошибки не исправлены. Браузер выступает в роли компилятора и не отображает документ, если он не соответствует спецификации. XHTML, сохраняя все особенности HTML, вносит более строгие правила создания страниц, чтобы приблизиться к «идеальному» коду. Это позволяет делать сайты независимыми от устройства отображения и браузера. Иными словами, сайт будет корректно показываться во всех современных браузерах и платформах вроде компьютеров, смартфонов, КПК, нетбуках и др.

    На деле все обстоит более приземленно. Разработчики браузеров не могут позволить себе, чтобы их детище работало только с «правильным» кодом. А все из-за того, что большая часть сайтов в мире просто не будет отображаться в таком браузере. Виноваты в таком положении вещей и разработчики и пользователи. Первые не обеспечили должную поддержку спецификации в своих браузерах, а вторые не потрудились ей следовать.

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

    © 2024 magnetic-shop.ru
    Безопасность. Интернет. Программы. Ноутбук. Компьютеры