XHTML
Последний выпуск | |
---|---|
Тип формата | |
Стандарт(ы) |
[www.w3.org/TR/2000/REC-xhtml1-20000126/ 1.0 (Recommendation)], |
XHTML (англ. extensible hypertext markup language — расширяемый язык гипертекстовой разметки) — семейство языков разметки веб-страниц на основе XML, повторяющих и расширяющих возможности HTML 4. Спецификации XHTML 1.0 и XHTML 1.1 являются рекомендациями консорциума Всемирной паутины. Развитие XHTML остановлено; новые версии XHTML не выпускаются; рекомендуется использовать HTML.
Главное отличие XHTML от HTML заключается в обработке документа. Документы XHTML обрабатываются своим модулем (парсером) аналогично документам XML. В процессе этой обработки ошибки, допущенные разработчиками, не исправляются.
XHTML соответствует спецификации SGML, поскольку XML является её подмножеством. HTML обладает множеством особенностей в процессе обработки и фактически перестал относиться к семейству SGML, что и закреплено в черновике спецификации HTML 5.
Браузер выбирает парсер для обработки документа на основании заголовка content-type, полученного от сервера:
- HTML — text/html
- XHTML — application/xhtml+xml
- Для локального просмотра на клиенте выбор основывается на расширении файла[уточнить].
- В Internet Explorer вплоть до 8-й версии парсер обработки XHTML-документов отсутствует.
Декларация DOCTYPE может не оказывать никакого влияния на определение парсера для обработки (зависит от используемого браузера).
Содержание
Различия между XHTML и HTML
Согласно синтаксису XHTML:
- все элементы должны быть закрыты. Теги, которые не имеют закрывающего тега (например,
<img>
или<br>
), должны иметь на конце/
(например,<br />
); - логические атрибуты записываются в развёрнутой форме. Например, следует писать
<option selected="selected">
или<td nowrap="nowrap">
; - имена тегов и атрибутов должны быть записаны строчными буквами (например,
<img alt="" />
вместо<IMG 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
.
Существует три типа документов XHTML: strict, transitional и frameset.
Наиболее употребительной и универсальной из версий XHTML является переходная (англ. transitional), поскольку она позволяет использовать iframe
(включение содержимого одной веб-страницы в другую) и атрибут target
у ссылок (для указания того, например, что ссылке необходимо открываться в новом окне). Фреймовая версия (англ. frameset) представляет собой расширенный вариант transitional и добавляет к нему, как следует из названия, возможность установки frameset
вместо body
. DTD ((англ. document type definition) определение типа документа) строгой версии XHTML (англ. strict) не содержит многих тегов и атрибутов, описанных в DTD transitional и признанных устаревшими.
Версии XHTML
XHTML 1.0
Спецификация XHTML 1.0 одобрена в качестве рекомендации консорциума Всемирной паутины 26 января 2000 года. 1 августа 2002 года была опубликована вторая редакция спецификации.
XHTML 1.0 определяет три типа документов (по аналогии с HTML 4):
- XHTML-1.0-Strict: тип, исключающий использование всех элементов и атрибутов, задающих графическое отображение (например, элемент
font
или атрибутbgcolor
). Это наиболее предпочтительный тип документов. - XHTML-1.0-Transitional: тип, допускающий использование элементов и атрибутов, задающих графическое отображение. Указанные элементы рекомендуется использовать только при необходимости, например, для облегчения миграции документов c HTML 3.2 на XHTML.
- XHTML-1.0-Frameset: тип, добавляющий к возможностям XHTML-1.0-Transitional использование фреймов.
XHTML 1.1
- XHTML 1.1 Модульный (англ. module-based): авторы могут импортировать дополнительные свойства в их разметку.
XHTML Basic и XHTML MP
- XHTML Основной (англ. basic): специальная облегчённая версия XHTML для устройств, которые не могут использовать полный набор элементов XHTML — в основном используется в миниатюрных устройствах, таких как мобильные телефоны. Подразумевается, что он заменит WML и C-HTML.
- XHTML мобильного профиля (англ. mobile profile): основанный на XHTML Basic, добавляет специфические элементы для мобильных телефонов.
XHTML 2.0
XHTML 2.0 является последней версией XHTML. Эта версия не достигла статуса рекомендации: деятельность рабочей группы XHTML 2.0 была прекращена в конце 2010 года, а все ресурсы перенесены в рабочую группу HTML 5[1]. Достигнутые результаты работы над XHTML 2.0 были опубликованы 16 декабря 2010 года в виде отчёта рабочей группы (англ. working group note).
Валидация XHTML документов
Валидным (то есть отвечающим всем правилам) XHTML-документом считается документ, удовлетворяющий спецификации. В идеале, все браузеры должны следовать веб-стандартам и, в соответствии с ними, валидные документы должны отображаться во всех браузерах на всех платформах. Валидация XHTML-документа рекомендована даже несмотря на то, что она не гарантирует кросс-браузерности. Соответствие документа спецификации может быть проверено на сайте [validator.w3.org/ validator.w3.org]. При валидации будут обнаружены ошибки в XHTML-разметке; валидатор разъяснит суть ошибок.
Валидный документ должен содержать определение типа документа (DTD). DTD должен быть расположен до всех других элементов документа. Вот наиболее распространённые типы DTD для XHTML:
- XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- XHTML 1.0 Mobile
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "www.wapforum.org/DTD/xhtml-mobile10.dtd">
- XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Пространство имён тегов xhtml должно быть обозначено в корневом теге как «www.w3.org/1999/xhtml»[2]
Самыми распространёнными ошибками в XHTML-разметке являются:
- незакрытые элементы (XHTML, в отличие от HTML, требует закрытия всех элементов, в том числе не имеющих закрывающего тега, как, например,
<br />
); - отсутствие альтернативных текстов для изображений (достигающихся применением атрибута
alt
, который помогает сделать документы доступнее для устройств, которые не в состоянии отображать изображения, или предназначенных для слабовидящих людей); - присутствие текста непосредственно в теге
<body>
документа (должен быть объявлен блочный элемент, внутрь которого следует помещать содержимое); - вложение блочных элементов внутрь внутристрочных (inline) (например, блочные элементы
<div>
или<p>
не могут быть вложены внутрь инлайновых элементов<a>
,<span>
,<em>
и так далее); - пренебрежение заключением значений атрибутов в кавычки (
<a href=example.com/>
вместо<a href="example.com/">
); - неправильное вложение элементов (конструкции вида
<strong><em> </strong></em>
); - неправильное использование ссылок-мнемоник (например,
&
вместо&
); - написание тегов и/или атрибутов прописными буквами (
<DIV STYLE="…">
вместо<div style="...">
); - задание в теге
<!DOCTYPE …>
относительного пути к DTD-файлу ("DTD/xhtml11.dtd"
вместо"www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
).
Этот список не полный и содержит самые частодопускаемые ошибки при составлении XHTML-документов.
Валидный XHTML-документ можно снабжать специальным баннером W3C, подтверждающим валидность XHTML-разметки.
См. также
Напишите отзыв о статье "XHTML"
Примечания
Литература
- Эрик Фримен, Элизабет Фримен. Изучаем HTML, XHTML и CSS = Head First HTML with CSS & XHTML. — СПб.: «Питер», 2012. — 656 с. — ISBN 978-5-459-01060-2.
- Эд Титтел, Джефф Ноубл. HTML, XHTML и CSS для чайников, 7-е издание = HTML, XHTML & CSS For Dummies, 7th Edition. — М.: «Диалектика», 2011. — 400 с. — ISBN 978-5-8459-1752-2.
- Стивен Шафер. HTML, XHTML и CSS. Библия пользователя, 5-е издание = HTML, XHTML, and CSS Bible, 5th Edition. — М.: «Диалектика», 2010. — 656 с. — ISBN 978-5-8459-1676-1.
Ссылки
- [www.w3.org/MarkUp/ Официальная страница языков разметки на сайте W3C] (англ.)
- [www.w3.org/TR/xhtml1/ XHTML 1.0. Рекомендация W3C.] (англ.)
- [www.w3.org/TR/xhtml11/ XHTML 1.1. Рекомендация W3C.] (англ.)
- [www.w3.org/TR/xhtml-basic/ XHTML Basic 1.1. Рекомендация W3C.] (англ.)
- [www.w3.org/TR/xhtml2/ XHTML 2.0. Отчет рабочей группы.] (англ.)
- [www.wisdomweb.ru/HTML/xhome.php XHTML учебник с примерами и упражнениями] (рус.)
- [www.w3.org/2005/11/Translations/Query?titleMatch=XHTML&lang=ru&search1=Submit XHTML Basic. Перевод рекомендации W3C на русский язык.]
- [site.nic.ru/content/blogcategory/54/190/ Введение в XHTML] (рус.)
- [hixie.ch/advocacy/xhtml Sending XHTML as text/html Considered Harmful] (англ.)
- Валидаторы
- [validator.w3.org/ Онлайн-валидатор HTML, XHTML, MathML, SVG, SMIL] (англ.)
- [tidy.sourceforge.net/ Валидатор-корректор HTML Tidy] (англ.)
- [www.htmlvalidator.com/ CSE HTML Validator] (англ.)
|
|
|
Отрывок, характеризующий XHTML
– Я…Испуганное, бледное лицо Телянина начало дрожать всеми мускулами; глаза всё так же бегали, но где то внизу, не поднимаясь до лица Ростова, и послышались всхлипыванья.
– Граф!… не губите молодого человека… вот эти несчастные деньги, возьмите их… – Он бросил их на стол. – У меня отец старик, мать!…
Ростов взял деньги, избегая взгляда Телянина, и, не говоря ни слова, пошел из комнаты. Но у двери он остановился и вернулся назад. – Боже мой, – сказал он со слезами на глазах, – как вы могли это сделать?
– Граф, – сказал Телянин, приближаясь к юнкеру.
– Не трогайте меня, – проговорил Ростов, отстраняясь. – Ежели вам нужда, возьмите эти деньги. – Он швырнул ему кошелек и выбежал из трактира.
Вечером того же дня на квартире Денисова шел оживленный разговор офицеров эскадрона.
– А я говорю вам, Ростов, что вам надо извиниться перед полковым командиром, – говорил, обращаясь к пунцово красному, взволнованному Ростову, высокий штаб ротмистр, с седеющими волосами, огромными усами и крупными чертами морщинистого лица.
Штаб ротмистр Кирстен был два раза разжалован в солдаты зa дела чести и два раза выслуживался.
– Я никому не позволю себе говорить, что я лгу! – вскрикнул Ростов. – Он сказал мне, что я лгу, а я сказал ему, что он лжет. Так с тем и останется. На дежурство может меня назначать хоть каждый день и под арест сажать, а извиняться меня никто не заставит, потому что ежели он, как полковой командир, считает недостойным себя дать мне удовлетворение, так…
– Да вы постойте, батюшка; вы послушайте меня, – перебил штаб ротмистр своим басистым голосом, спокойно разглаживая свои длинные усы. – Вы при других офицерах говорите полковому командиру, что офицер украл…
– Я не виноват, что разговор зашел при других офицерах. Может быть, не надо было говорить при них, да я не дипломат. Я затем в гусары и пошел, думал, что здесь не нужно тонкостей, а он мне говорит, что я лгу… так пусть даст мне удовлетворение…
– Это всё хорошо, никто не думает, что вы трус, да не в том дело. Спросите у Денисова, похоже это на что нибудь, чтобы юнкер требовал удовлетворения у полкового командира?
Денисов, закусив ус, с мрачным видом слушал разговор, видимо не желая вступаться в него. На вопрос штаб ротмистра он отрицательно покачал головой.
– Вы при офицерах говорите полковому командиру про эту пакость, – продолжал штаб ротмистр. – Богданыч (Богданычем называли полкового командира) вас осадил.
– Не осадил, а сказал, что я неправду говорю.
– Ну да, и вы наговорили ему глупостей, и надо извиниться.
– Ни за что! – крикнул Ростов.
– Не думал я этого от вас, – серьезно и строго сказал штаб ротмистр. – Вы не хотите извиниться, а вы, батюшка, не только перед ним, а перед всем полком, перед всеми нами, вы кругом виноваты. А вот как: кабы вы подумали да посоветовались, как обойтись с этим делом, а то вы прямо, да при офицерах, и бухнули. Что теперь делать полковому командиру? Надо отдать под суд офицера и замарать весь полк? Из за одного негодяя весь полк осрамить? Так, что ли, по вашему? А по нашему, не так. И Богданыч молодец, он вам сказал, что вы неправду говорите. Неприятно, да что делать, батюшка, сами наскочили. А теперь, как дело хотят замять, так вы из за фанаберии какой то не хотите извиниться, а хотите всё рассказать. Вам обидно, что вы подежурите, да что вам извиниться перед старым и честным офицером! Какой бы там ни был Богданыч, а всё честный и храбрый, старый полковник, так вам обидно; а замарать полк вам ничего? – Голос штаб ротмистра начинал дрожать. – Вы, батюшка, в полку без году неделя; нынче здесь, завтра перешли куда в адъютантики; вам наплевать, что говорить будут: «между павлоградскими офицерами воры!» А нам не всё равно. Так, что ли, Денисов? Не всё равно?
Денисов всё молчал и не шевелился, изредка взглядывая своими блестящими, черными глазами на Ростова.
– Вам своя фанаберия дорога, извиниться не хочется, – продолжал штаб ротмистр, – а нам, старикам, как мы выросли, да и умереть, Бог даст, приведется в полку, так нам честь полка дорога, и Богданыч это знает. Ох, как дорога, батюшка! А это нехорошо, нехорошо! Там обижайтесь или нет, а я всегда правду матку скажу. Нехорошо!
И штаб ротмистр встал и отвернулся от Ростова.
– Пг'авда, чог'т возьми! – закричал, вскакивая, Денисов. – Ну, Г'остов! Ну!
Ростов, краснея и бледнея, смотрел то на одного, то на другого офицера.
– Нет, господа, нет… вы не думайте… я очень понимаю, вы напрасно обо мне думаете так… я… для меня… я за честь полка.да что? это на деле я покажу, и для меня честь знамени…ну, всё равно, правда, я виноват!.. – Слезы стояли у него в глазах. – Я виноват, кругом виноват!… Ну, что вам еще?…
– Вот это так, граф, – поворачиваясь, крикнул штаб ротмистр, ударяя его большою рукою по плечу.
– Я тебе говог'ю, – закричал Денисов, – он малый славный.
– Так то лучше, граф, – повторил штаб ротмистр, как будто за его признание начиная величать его титулом. – Подите и извинитесь, ваше сиятельство, да с.
– Господа, всё сделаю, никто от меня слова не услышит, – умоляющим голосом проговорил Ростов, – но извиняться не могу, ей Богу, не могу, как хотите! Как я буду извиняться, точно маленький, прощенья просить?
Денисов засмеялся.
– Вам же хуже. Богданыч злопамятен, поплатитесь за упрямство, – сказал Кирстен.
– Ей Богу, не упрямство! Я не могу вам описать, какое чувство, не могу…
– Ну, ваша воля, – сказал штаб ротмистр. – Что ж, мерзавец то этот куда делся? – спросил он у Денисова.
– Сказался больным, завтг'а велено пг'иказом исключить, – проговорил Денисов.
– Это болезнь, иначе нельзя объяснить, – сказал штаб ротмистр.
– Уж там болезнь не болезнь, а не попадайся он мне на глаза – убью! – кровожадно прокричал Денисов.
В комнату вошел Жерков.
– Ты как? – обратились вдруг офицеры к вошедшему.
– Поход, господа. Мак в плен сдался и с армией, совсем.
– Врешь!
– Сам видел.
– Как? Мака живого видел? с руками, с ногами?
– Поход! Поход! Дать ему бутылку за такую новость. Ты как же сюда попал?
– Опять в полк выслали, за чорта, за Мака. Австрийской генерал пожаловался. Я его поздравил с приездом Мака…Ты что, Ростов, точно из бани?
– Тут, брат, у нас, такая каша второй день.
Вошел полковой адъютант и подтвердил известие, привезенное Жерковым. На завтра велено было выступать.
– Поход, господа!
– Ну, и слава Богу, засиделись.
Кутузов отступил к Вене, уничтожая за собой мосты на реках Инне (в Браунау) и Трауне (в Линце). 23 го октября .русские войска переходили реку Энс. Русские обозы, артиллерия и колонны войск в середине дня тянулись через город Энс, по сю и по ту сторону моста.
День был теплый, осенний и дождливый. Пространная перспектива, раскрывавшаяся с возвышения, где стояли русские батареи, защищавшие мост, то вдруг затягивалась кисейным занавесом косого дождя, то вдруг расширялась, и при свете солнца далеко и ясно становились видны предметы, точно покрытые лаком. Виднелся городок под ногами с своими белыми домами и красными крышами, собором и мостом, по обеим сторонам которого, толпясь, лилися массы русских войск. Виднелись на повороте Дуная суда, и остров, и замок с парком, окруженный водами впадения Энса в Дунай, виднелся левый скалистый и покрытый сосновым лесом берег Дуная с таинственною далью зеленых вершин и голубеющими ущельями. Виднелись башни монастыря, выдававшегося из за соснового, казавшегося нетронутым, дикого леса; далеко впереди на горе, по ту сторону Энса, виднелись разъезды неприятеля.
Между орудиями, на высоте, стояли спереди начальник ариергарда генерал с свитским офицером, рассматривая в трубу местность. Несколько позади сидел на хоботе орудия Несвицкий, посланный от главнокомандующего к ариергарду.
Казак, сопутствовавший Несвицкому, подал сумочку и фляжку, и Несвицкий угощал офицеров пирожками и настоящим доппелькюмелем. Офицеры радостно окружали его, кто на коленах, кто сидя по турецки на мокрой траве.
– Да, не дурак был этот австрийский князь, что тут замок выстроил. Славное место. Что же вы не едите, господа? – говорил Несвицкий.
– Покорно благодарю, князь, – отвечал один из офицеров, с удовольствием разговаривая с таким важным штабным чиновником. – Прекрасное место. Мы мимо самого парка проходили, двух оленей видели, и дом какой чудесный!
– Посмотрите, князь, – сказал другой, которому очень хотелось взять еще пирожок, но совестно было, и который поэтому притворялся, что он оглядывает местность, – посмотрите ка, уж забрались туда наши пехотные. Вон там, на лужку, за деревней, трое тащут что то. .Они проберут этот дворец, – сказал он с видимым одобрением.
– И то, и то, – сказал Несвицкий. – Нет, а чего бы я желал, – прибавил он, прожевывая пирожок в своем красивом влажном рте, – так это вон туда забраться.
Он указывал на монастырь с башнями, видневшийся на горе. Он улыбнулся, глаза его сузились и засветились.
– А ведь хорошо бы, господа!
Офицеры засмеялись.
– Хоть бы попугать этих монашенок. Итальянки, говорят, есть молоденькие. Право, пять лет жизни отдал бы!
– Им ведь и скучно, – смеясь, сказал офицер, который был посмелее.
Между тем свитский офицер, стоявший впереди, указывал что то генералу; генерал смотрел в зрительную трубку.
– Ну, так и есть, так и есть, – сердито сказал генерал, опуская трубку от глаз и пожимая плечами, – так и есть, станут бить по переправе. И что они там мешкают?
На той стороне простым глазом виден был неприятель и его батарея, из которой показался молочно белый дымок. Вслед за дымком раздался дальний выстрел, и видно было, как наши войска заспешили на переправе.