Ответы на часто задаваемые вопросы по XHTML и HTML

Зачем нужен XHTML? Не достаточно ли HTML?

HTML — возможно, самый популярный в мире язык разметки документов. С появлением XML было организовано обсуждение, нужна ли новая версия HTML в рамках XML. Участники ответили однозначно «да»: версия HTML, основанная на XML, позволит использовать элементы XHTML в других языках XML, а документы XHTML смогут использовать элементы других языков XML. Кроме того, будет возможным привести в порядок HTML, ликвидировав его самые «неопрятные» элементы и расширив его функциональность, например, улучшенной реализацией форм.

В чем преимущества XHTML перед HTML?

Если документ составляет простой XHTML 1.0 (без использования других языков разметки), то вы не заметите существенной разницы. Однако со временем доступными становятся все больше и больше инструментов, основанных на XML (таких как XSLT для преобразования документов) и вы рано или поздно заметите преимущества использования XHTML. Например, технология XForms позволит вам редактировать документы XHTML (и любые другие документы XML). Приложения Семантической Сети (Semantic Web) будут способны использовать преимущества XHTML.

Если документ содержит нечто большее, чем XHTML 1.0, например, включения языков MathML, SMIL, SVG, то преимущества налицо: вы бы не смогли использовать эти технологии с HTML.
Можно ли просто добавить объявление XML в начало существующего документа HTML? Можно ли смешивать код HTML 4.01 и XHTML?

Нет. Формат HTML не основан на XML. Чтобы интерпретировать данные как XML, вы должны внести необходимые изменения, чтобы сделать код документа верным кодом XML.

Как проще всего преобразовать документы HTML в XHTML?

Программа HTML Tidy позволяет получить XHTML из кода HTML. Браузер и веб-редактор Amaya сохраняет HTML документы в формате XHTML.

Почему разработчики браузеров так суетятся с XML? Не лучше ли для браузеров работать с HTML?

XML вводит более строгие правила обработки документов. Браузеры HTML работают с любыми входными данными, коректными и некоректными, и пытаются их интерпретировать. Схема обработки ошибок очень усложняет разработку программ, особенно если учесть, что предполагается, что реакция всех браузеров на некоректные данные должна быть одинаковой. Кроме того, это означает, что огромное число документов HTML содержат ошибки, но нормально отображаются браузерами, и авторы не подозревают о том, что код HTML некорректен. Вот почему необычайно сложно создать новый пользовательский агент, пока документы, выдаваемые за HTML, часто очень плохи.

Зачем мне беспокоиться о верности кода HTML? В моем браузере документ отображается верно.

Все браузеры способны обрабатывать верный код HTML. Но если код неверен, браузер вносит исправления; так как разные браузеры по-разному обрабатывают ошибки, это приводит к тому, что документ по-разному выглядит в разных браузерах. Браузеров существует сотни, их число постоянно растет (не только для ПК, но и для КПК, мобильных телефонов, телевизоров, принтеров и даже холодильников), протестировать документ на всех браузерах невозможно. Если ваш документ содержит ошибки и неправильно отображается в конкретном браузере, это ваша вина, но если код HTML корректен, то неверное отображение уже на совести разработчиков программы.

Как можно проверить корректность разметки в моем документе?

W3C предоставляет для этого валидатор: http://validator.w3.org/. Браузер Amaya сообщает, верен ли код отображаемых документов.

Почему вы не всегда используете термин «пользовательский агент» («user agent») вместо «браузер»?

В то время как браузеры являются важными пользователями HTML и XHTML, существует много других программ и систем, которые используют (X)HTML документы. Поисковые машины, например, считывают документы, хотя и не относятся к браузерам. Используя термин «пользовательский агент», мы стараемся подчеркнуть разницу.

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

Для чего нужно использовать именные пространства (namespace) в XHTML?

Во времена становления HTML различные группы и компании добавляли по своему желанию новые элементы и атрибуты в HTML. Это грозило путаницей с версиями HTML, не являющимися общепринятыми. XML («X» означает «расширенный», «Extensible») позволяет всем использовать элементы из различных языков, но браузер или другой пользовательский агент должен как-то определять, к какому языку относится тот или иной элемент. Для этого и требуются объявления именных пространств (namespace).

Почему документы XHTML 1.0 не стоит отправлять как text/html?

XHTML имеет формат XML; это означает, что тип данных документа XHTML должен соотноситься с XML (application/xhtml+xml, application/xml, либо text/xml). Однако XHTML 1.0 создавался таким образом, чтобы документы могли верно отображаться пользовательскими агентами HTML. Если вы последуете нескольким простым правилам, документы XHTML 1.0 будут подходить для браузеров HTML. Но так как последние работают только с типом данных text/html, вам необходимо передавать XHTML 1.0 как text/html, чтобы обеспечить совместимость с устаревшим программным обеспечением. Но знайте: документ с заголовоком text/html всегда будет обрабатываться как простой HTML, а не XHTML.

Какие браузеры принимают тип данных application/xhtml+xml?

Известные нам браузеры — все основанные на Mozilla (Mozilla, Netscape 5+, Galeon, Firefox), Opera, Amaya, Camino, Chimera, DocZilla, iCab, Safari, плюс все программное обеспечение для мобильных телефонов, работающих с WAP2. Фактически, любой современный браузер должен принимать тип данных application/xml. Обратитесь к тесту на тип данных XHTML за подробностями.

В CSS есть правила, которые относятся только к HTML. Применяются ли эти правила к XHTML?

Нет. Правила CSS, относящиеся только к HTML, применяются только к документам, переданным как text/html.

Работает ли document.write в XHTML?

Нет. Сама суть XML предполагает, что невозможно генерировать разметку скриптами, в то время как парсер еще обрабатывает разметку.

Можно добиться того же эффекта, что и document.write, но для добавления и удаления элементов нужно использовать DOM.

Почему нельзя передавать докуметы XHTML 1.1 в качестве text/html?

XHTML 1.1 представляет собой обычный XML, предназначеный только для обработки в качестве XML. XHTML 1.1 нельзя передавать браузерам HTML. Поэтому документы XHTML 1.1 обязательно должны передаваться с типом данных, относящимся к XML, таким как application/xhtml+xml.

Почему из XHTML 1.1 был ликвидирован атрибут target?

Атрибут target не ликвидировался из XHTML 1.1. XHTML 1.0 подразделяется на три разные версии: strict, transitional и frameset. Все разновидности обеспечивают такую совместимость с HTML 4.01, которую только позволяет XML. XHTML 1.1 — обновленная версия XHTML 1.0 strict, а атрибута target не было ни в одной версии HTML strict. Другие версии, transitional и frameset, не были обновлены, так как в этом нет необходимости. Если вы хотите использовать атрибут target, используйте XHTML 1.0 transitional.

Для чего используется модуляризация XHTML?

Модуляризация XHTML (Modularization) предназначена для применения разработчиками языков, основанных на XHTML, но не пользователями языков. Компании и группы часто разрабатывают собственные версии HTML и XHTML, которые не совместимы между собой. Модуляризация разделяет XHTML на модули, которые могут по отдельности использоваться при определении нового языка; так, например, любая версия языка, использующая таблицы, будет работать с единым для XHTML определением таблиц. Кроме того, модуляризация разъясняет, в каких случаях можно добавлять новые элементы, а в каких — нет.

Зачем нужен XHTML2? Не достаточно ли XHTML 1?

HTML и XHTML выполнили возложенные на них задачи, но в этих языках есть множество элементов, которые нужно улучшить. В XHTML2 особое внимание уделено улучшению возможностей структурирования, удалению элементов, которые уже есть в XML, удобству использования (usability), доступности (accessibility), интернационализации, аппаратной независимости, улучшенному механизму форм, устранению необходимости в использовании скриптования.

Почему XHTML2 не использует XLink?

XLink и XHTML имеют различные требования для использования ссылок, и эти требования не совместимы.

Почему в XHTML2 нет совместимости со старыми версиями XHTML?

Совместимость есть, но она реализована иначе, чем прежде.

Ранние версии HTML были языками для конкретной области применения (не соотносящимися с каким-то общим инструментом разметки), поэтому было важно поддерживать совместимость, так чтобы старые браузеры корректно воспринимали документы. Например, по этой причине элемент содержит данные в своем атрибуте, а не в качестве своего содержимого — так обеспечена совместимость с прежним программным обеспечением.

Однако благодаря XML и таблицам стилей, такой строгий механизм совместимости больше не нужен, так как браузер XML (на момент написания этого текста 95% браузеров принимают XML) может обрабатывать новый язык без обновления. Многие возможности XHTML 2 уже доступны в современных браузерах, не создававшихся специально для XHTML2. Многое работает, но не все: когда формы и таблицы были добавлены в HTML, людям пришлось подождать появления новых браузеров; точно так же особые элементы XHTML 2, такие как XForms и XML Events, требуют от программного обеспечения понимания их функциональности.
Почему xml:space установлен как 'preserve' для всех элементов XHTML2? Я не хочу видеть в выводе браузера дополнительные пробелы.

Атрибут xml:space связан с вводом: он требуется, чтобы контролировать, будут ли пробелы представлены в DOM (т.е. во внутренней версии документа, с которой работает браузер); это не относится к конечному отображению документов. Вывод пробельных символов устанавливается свойтвом CSS 'whitespace'. Присвойте ему значение 'pre', чтобы все пробельные символы DOM были видны при выводе; значение 'normal' скроет пробельные символы (CSS3 будет содержать более богатые средства контроля вывода).

Именно поэтому для всех элементов XHTML установлено xml:space="preserve": иначе бы свойство 'whitespace' не имело дейсивия. Таблица стилей по умолчанию устанавливает 'whitespace' значение 'normal' для всех элементов, кроме

, но вы можете это изменить в своих таблицах.

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Ответы на часто задаваемые вопросы по XHTML и HTML | | 2010-09-21 04:20:40 | | Языки разметки | | Зачем нужен XHTML? Не достаточно ли HTML?HTML — возможно, самый популярный в мире язык разметки документов. С появлением XML было организовано обсуждение, нужна ли новая версия HTML в рамках XML. | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: