Содержание
- Как можно проверить корректность разметки в документе?
- Почему вы не всегда используете термин «пользовательский агент» («user agent») вместо «браузер»?
- Для чего нужно использовать именные пространства (namespace) в XHTML?
- Почему документы XHTML 1.0 не стоит отправлять как text/html?
- Какие браузеры принимают тип данных application/xhtml+xml?
- Принимает ли Microsoft Internet Explorer тип application/xhtml+xml?
Как можно проверить корректность разметки в моем документе?
W3C предоставляет для этого валидатор: http://validator.w3.org/. Браузер Amaya сообщает, верен ли код отображаемых документов.
Почему вы не всегда используете термин «пользовательский агент» («user agent») вместо «браузер»?
В то время как браузеры являются важными пользователями HTML и XHTML,
существует много других программ и систем, которые используют (X)HTML
документы. Поисковые машины, например, считывают документы, хотя и не
относятся к браузерам. Используя термин «пользовательский агент», мы
стараемся подчеркнуть разницу.
Например, сделав запрос поисковику Google, в результатах поиска вместе со ссылкой можно увидеть текст «веб-страница использует фреймы, но ваш браузер не поддерживает их»;
некоторые люди игнорируют такие ссылки. Создатели таких сайтов не
представляют себе, что контент требуется не одним лишь браузерам, и что
элемент <noframes> должен содержать более предусмотрительный текст, не выглядящий столь глупо в глазах людей, использующих поиск.
Для чего нужно использовать именные пространства (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 за подробностями.
Принимает ли Microsoft Internet Explorer тип application/xhtml+xml?
Нет, но есть уловка, которая позволит передавать XHTML1.0 для Internet Explorer в качестве application/xml.
Добавьте в начало документа выделенную ниже строку:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
файл copy.xsl должен содержать такой код:
<stylesheet version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="/">
<copy-of select="."/>
</template>
</stylesheet>
Файл должен содержаться на том же сайте, с которого передается документ.
Вы передаете документ как XML, он проходит обработку, в итоге браузер считает, что получен text/html;
таким образом, пользуясь приведенным советом, вы должны учитывать все
правила, которые требуются для обеспечения совместимости XHTML 1.0 с
браузерами HTML.
Документ будет работать для браузеров, которые принимают XHTML 1.0 как application/xml.