Язык разметки гипертекста XHTML

  1. 1. Что такое XHTML?

1. Что такое XHTML?

XHTML представляет собой семейство имеющихся на данный момент и могущих появиться в будущем типов документов и модулей, являющихся копиями, подмножествами или расширениями языка HTML 4 [HTML]. Семейство типов документов XHTML базируется на XML и предназначено для работы с пользовательскими агентами на базе. Более подробную информацию об этом семействе и его эволюции можно найти в разделе "Направления развития".

XHTML 1.0 (настоящая спецификация) представляет первый тип документов семейства XHTML. В ней три типа документов HTML 4 переформируются в терминах XML 1.0 [XML]. Она предназначена для использования в качестве языка содержимого, как соответствующего XML, так и, если соблюдены некоторые простые требования, работающего в конформных пользовательских агентах HTML 4. Разработчики, переносящие свои документы в XHTML 1.0, получат следующие преимущества:

  • Документы XHTML соответствуют XML. Как таковые они без труда просматриваются, редактируются и проверяются на корректность стандартными средствами XML.
  • Документы XHTML могут работать лучше, чем они работали в существующих пользовательских агентах, соответствующих HTML 4, а также в новых пользовательских агентах, соответствующих XHTML 1.0.
  • Документы XHTML могут использовать прикладные программы (например, скрипты и апплеты), базирующиеся на HTML Document Object Model или XML Document Object Model [DOM].
  • По мере расширения семейства XHTML документы, соответствующие XHTML 1.0, будут с большей вероятностью совместимы с различными средами XHTML.

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

1.1 Что такое HTML 4?

HTML 4 [HTML] - это приложение SGML (Standard Generalized Markup Language [Стандартный обобщенный язык разметки]), соответствующее международному стандарту ISO 8879; оно считается стандартным языком публикации в World Wide Web.

SGML представляет собой язык для описания языков разметки, в частности, языков, используемых при обмене электронными документам, управлением документами и публикации документов. HTML является примером языка, определенного в SGML.

История SGML началась в середине 80-х годов; все это время язык был весьма стабилен. В основном эта стабильность обусловлена тем фактом, что этот язык одновременно богат и гибок. Такая гибкость, однако, имеет оборотную сторону - уровень сложности, делающий невозможным использование этого языка в разнообразных средах, включая World Wide Web.

HTML создавался как язык обмена научными и прочими техническими документам, пригодный для использования людьми, не являющимися специалистами в области документов. HTML успешно справлялся с проблемой сложности SGML путем определения небольшого набора структурных и семантических тегов, пригодных для создания относительно простых документов. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.

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

Поскольку многообразие программного обеспечения и платформ только увеличивается, ясно, что пригодность 'классического' языка HTML 4 для всех этих платформ достаточно ограничена.

1.3 Зачем нужен XHTML?

Преимущества перехода на XHTML 1.0 описаны выше. Вот несколько основных преимуществ:

  • Разработчики документов и создатели пользовательских агентов постоянно открывают новые способы выражения своих идей в новой разметке. В XML ввод новых элементов или атрибутов достаточно прост. Семейство XHTML разработано так, чтобы принимать расширения путем модулей и технологий XHTML для разработки новых соответствующих XHTML модулей (описанных в готовящейся спецификации Модуляризации XHTML). Модули позволят комбинировать существующие и новые наборы функций при разработке содержимого и создании новых пользовательских агентов.
  • Постоянно вводятся альтернативные методы доступа в Интернет. По некоторым оценкам, в 2002 году 75% обращений к документам в Интернет будет выполняться с альтернативных платформ. Семейство XHTML создавалось с учетом общей совместимости пользовательских агентов. С помощью нового механизма профилирования пользовательских агентов и документов серверы, прокси и пользовательские агенты смогут преобразовывать содержимое наилучшим образом. В конечном счете станет возможной разработка соответствующего XHTML содержимого, пригодного для любого соответствующего XHTML пользовательского агента.

2. Определения

2.1 Терминология

В настоящей спецификации используются следующие термины. Они расширяют определения, данные в [RFC2119] аналогично определениям ISO/IEC 9945-1:1990 [POSIX.1]:

Должен (нужно)
В настоящей спецификации слово "должен" должно интерпретироваться как обязательное требование к реализации или к строго конформным документам XHTML, в зависимости от контекста. Термин "нужно" имеет тот же смысл, что и "должен".
Зарезервировано
Значение или поведение не определено, но использование его в конформных документах или поддержка конформными пользовательскими агентами запрещены.
Может (можно)
По отношению к реализации слово "может" должно интерпретироваться как дополнительная возможность, которая не является обязательно согласно настоящей спецификации, но может присутствовать. По отношению к соответствию документа спецификации слово "может" означает, что дополнительная возможность не должна использоваться. Термин "дополнительный" имеет тот же смысл, что и "может".
Не определено
Если значение или поведение не определено, в спецификации не определяются требования переносимости этой возможности к реализации, даже в случае документа, в котором используется эта возможность. Документ, для которого в такой ситуации требуется определенное конкретное поведение, не является строго конформным документом XHTML.
Определяется реализацией (зависит от реализации)
Значение или поведение определяется реализацией (зависит от реализации), если требования к корректному построению документа определяются [и документируются] реализацией.
Поддерживается
Определенные возможности, описанные в настоящей спецификации, необязательны. Если возможность поддерживается, ее поведение соответствует спецификации.
Следует
По отношению к реализациям слово "следует" должно интерпретироваться как рекомендация, но не как требование. По отношению к документам слово "следует" должно интерпретироваться как рекомендуемый стиль программирования для документов и как требование для строго конформных документов XHTML.

2.2 Общие термины

Атрибут
Атрибут - это параметр элемента, объявленного в DTD. Тип и диапазон значений атрибута, включая возможное значение по умолчанию, определяются в DTD.
DTD
DTD, или определение типа документа, представляет собой набор объявлений XML определяющий допустимую структуру, элементы и атрибуты, которые можно использовать в документе, соответствующем DTD.
Возможности
Функциональность включает элементы, атрибуты и семантику, связанную с этими элементами и атрибутами. Говорят, что реализация, поддерживающая такую функциональность, обеспечивает необходимые возможности.
Документ
Документ - это поток данных, который, после объединения с другими потоками, на которые он ссылается, структурируется так, что содержит информацию, заключенную в элементах, упорядоченных в соответствии со связанным с документом DTD.
Пользовательский агент
Пользовательский агент - это реализация для загрузки и обработки документов XHTML.
Правильно построенный
Документ считается правильно построенным, если он структурирован в соответствии с правилами, определенными в разделе 2.1 рекомендации XML 1.0. В основном это определение устанавливает корректное вложение друг в друга элементов, имеющих начальные и конечные теги.
Представление (генерация)
Генерацией называется представление документа. Оно делается в наиболее подходящей для окружения форме (например, звуковое, визуальное, печатное).
Проверка корректности
Проверка корректности - это процесс проверки документов в соответствии с DTD, гарантирующий, что структура, использование элементов и атрибутов соответствуют определениям DTD.
Реализация
Реализация - это система, предоставляющая набор возможностей и служб, поддерживающих настоящую спецификацию.
Синтаксический разбор
Во время синтаксического разбора документ просматривается, а информация, содержащаяся в документе, фильтруется в контекст элементов, в которых она структурирована.
Элемент
Элемент - это единица структурирования документа, объявленная в DTD. Модель содержимого элемента определяется в DTD, а дополнительная семантика может определяться в описании элемента.

3. Нормативное определение XHTML 1.0

3.1 Конформность документа

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

3.1.1 Строго конформные документы

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

  1. Он должен проходить проверку корректности в соответствии с одним из трех DTD.

  2. Корневым элементом документа должен быть элемент <html>.

  3. Корневой элемент документа должен назначать пространство имен XHTML с использованием атрибута xmlns. Пространство имен для XHTML определено в http://www.w3.org/1999/xhtml.

  4. В документе до корневого элемента должно иметься объявление DOCTYPE. Открытый идентификатор, включаемый в объявление DOCTYPE, должен ссылаться на одно из трех DTD, с помощью соответствующего формального открытого идентификатора. Системный идентификатор может изменяться, отражая соглашения, принятые в локальной системе.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">

вот пример минимального документа XHTML:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> <head> <title></title> </head> <body> <p></p> </body> </html>

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

3.1.2 Использование XHTML с другими пространствами имен

Пространство имен XHTML может использоваться с другими пространствами XML в соответствии с [XMLNAMES], хотя такие документы не являются строго конформными XHTML 1.0 в соответствии с приведенным выше определением. В будущих работах W3C будут определены способы указания конформности документов, в которых используется несколько пространств имен.

в следующем примере показано, как XHTML 1.0 может использоваться с рекомендацией MathML:

XHTML 1.0 по рекомендации MathML

В следующем примере показан способ внедрения разметки XHTML 1.0 в другое пространство имен XML:

внедрения разметки XHTML 1.0 в другое пространство имен XML

3.2 Конформность пользовательских агентов

Конформный пользовательский агент должен соответствовать всем следующим критериям:

  1. Для соответствия рекомендации XML 1.0 [XML] пользовательский агент должен разбирать документ XHTML и оценивать его правильность. Если пользовательский агент выполняет проверку на правильность, он должен также проверять документы на соответствие с DTD, на которые они ссылаются, в соответствии с [XML].
  2. Если пользовательский агент поддерживает возможности, определенные в настоящей спецификации или обязательные согласно нормативной ссылке, он должен это делать в соответствии со способами, описанными в определении этой возможности.
  3. Если пользовательский агент обрабатывает документ XHTML как общий документ XML, он должен распознавать только атрибуты типа ID (например, атрибут id большинства элементов XHTML) в качестве идентификаторов фрагментов.
  4. Если пользовательский агент встречает элемент, который он не распознает, он должен с генерировать содержимое элемента.
  5. Если пользовательский агент встречает атрибут, который он не распознает, он должен проигнорировать всю спецификацию атрибута (т.е. атрибут и его значение).
  6. Если пользовательский агент встречает значение атрибута, которое он не распознает, он должен использовать значение атрибута по умолчанию.
  7. Если пользовательский агент встречает ссылку на объект (отличный от заранее определенных объектов), для которой он не обрабатывал объявления (что могло произойти, если объявление расположено во внешнем подмножестве, которое пользовательский агент не прочел), ссылка на объект должна генерироваться в виде символов (начиная с амперсанда и заканчивая точкой с запятой), составляющий ее.
  8. Во время генерации содержимого пользовательские агенты, если они встречают распознаваемые, но не генерируемые символы или ссылки на символьные объекты, должны представлять документ таким образом, чтобы пользователю было понятно, что корректная генерация была невозможна.
  9. Следующие символы определены в [XML] как пробельные:
    • пробел (&#x0020;)
    • табуляция (&#x0009;)
    • возврат каретки (&#x000D;)
    • перевод строки (&#x000A;)

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

    • перевод страницы (&#x000C;)
    • пробел нулевой ширины (&#x200B;)

    В элементах, в которых для атрибута 'xml:space' установлено значение 'preserve', пользовательский агент должен сохранять все пробельные символы (за исключением начальных и конечных пробельных символов, которые должны удаляться). В противном случае пробелы должны обрабатываться по следующим правилам:

    • Все пробельные символы, окружающие элементы блока, должны удаляться.
    • Комментарии удаляются полностью и не влияют на обработку пробелов. Один пробельный символ в начале и в конце комментария обрабатывается как два пробела.
    • Начальные и конечные пробельные символы внутри элемента блока должны быть удалены.
    • Символы перевода строки в элементе блока должны быть преобразованы в пробел (если для атрибута 'xml:space' не установлено значение 'preserve').
    • Последовательность пробельных символов должна сокращаться до одного пробела (если для атрибута 'xml:space' не установлено значение 'preserve').
    • Относительно воспроизведения, пользовательский агент должен генерировать содержимое подходящим для языка, на котором оно написано, способом. В языках, основным написанием которых является латиница, символ пробела набора ASCII обычно используется для кодирования грамматических границ слов и типографских пробелов; в языках, основное написание которых связано с алфавитом нагари (например, в санскрите, тайском и т.д.), грамматические границы между словами могут кодироваться с помощью символа пробела набора ZW, но в генерируемом выводе они обычно не представляются типографскими пробелами; в языках с арабским написанием типографские пробелы могут кодироваться с помощью символа пробела, а также с помощью символа пробела набора ZW для отделения 'внутренних' грамматических границ (то, что для русского человека выглядит в арабском языке, как одно слово, часто может быть несколькими словами, например, 'kitAbuhum' = 'kitAbu-hum' = 'книга их' == их книга); а в языках с китайским написанием традиционно не кодируются ни пробелы между словами, ни типографские пробелы.

    Пробелы в значениях атрибутов обрабатываются в соответствии с [XML].

4. Различия по сравнению с HTML 4

Поскольку XHTML является приложением XML, некоторые приемы, допустимые в языке HTML 4 [HTML], основанном на SGML, должны быть изменены.

4.1 Документы должны быть правильно построены

Правильное построение - это новое понятие, введенное в [XML]. В основном это означает, что все элементы либо должны иметь закрывающие теги, либо записываться в специальной форме (как описано ниже), и все элементы должны вкладываться друг в друга.

Хотя в SGML перекрытие недопустимо, существующие браузеры обычно не считают это ошибкой.

Правильное и не правильное построение окументов XHTML 1.0

4.2 Имена атрибутов и элементов должны быть в нижнем регистре

В документах XHTML для всех имен элементов и атрибутов HTML должен использоваться нижний регистр. Это различие обязательно, поскольку в XML регистр имеет значение - например, <li> и <LI> - различные теги.

4.3 Для непустых элементов конечные теги обязательны

В HTML 4 конечный тег некоторых элементов может опускаться; при этом закрытие элемента подразумевалось автоматически благодаря последующим тегам. Это не допускается в XHTML, построенном на основе XML. Все элементы, кроме объявленных в DTD как EMPTY, должны иметь конечный тег.

конечные теги обязательны в XHTML

4.4 Значения атрибутов должны всегда заключаться в кавычки

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

Значения атрибутов должны всегда заключаться в кавычки

4.5 Минимизация атрибутов

В XML не поддерживается минимизация атрибутов. Пары атрибут-значение должны быть записаны полностью. Такие имена атрибутов как compact и checked не могут встречаться в элементах без указания их значения.

Минимизация атрибутов

4.6 Пустые элементы

Пустые элементы должны иметь конечный тег или начальный тег должен заканчиваться угловой скобкой (/>). Например, <br/> или <hr></hr>.

Пустые элементы

4.7 Обработка пробелов в значениях атрибутов

В значениях атрибутов пользовательские агенты должны удалять начальные и конечные пробелы от значений атрибутов и отображать последовательности из одного или нескольких пробельных символов (включая перевод строки) в один пробел между словами (символ пробела кодировки ASCII для западного начертания).

4.8 Элементы скриптов и стилей

В XHTML элементы скриптов и стилей объявляются как элементы с содержимым #PCDATA. В результате < и & будут обрабатываться как начало разметки, а такие объекты как &lt; и &amp; будут распознаваться процессором XML как ссылки на объекты < и & соответственно. Разбиение на строки содержимого элементов скриптов и стилей в разделе CDATA позволит избежать развертывания этих объектов.

<script><![CDATA[... незакодированное содержимое скрипта ...]]></script>

Разделы CDATA распознаются процессором XML и представляются в виде узлов в объектной модели документа.

В качестве альтернативы можно использовать внешний скрипт или документы стилей.

4.9 Исключения SGML

SGML дает авторам DTD возможность запрещения содержания некоторых элементов в каком-либо другом. Такие запреты (называемые "исключениями") в XML невозможны.

Например, HTML 4 Strict DTD (строгое определение типа документа) запрещает вложение элементов 'a' друг в друга. Такие запреты невозможны в XML. Несмотря на то, что такие запреты не могут быть определены в DTD, определенные элементы не должны вкладываться.

4.10 Элементы с атрибутами 'id' и 'name'

В HTML 4 атрибут name определен для элементов a, applet, form, frame, iframe, img и map. Кроме того, в HTML 4 введен атрибут id. Оба эти атрибута разработаны как идентификаторы фрагментов.

В XML идентификаторы фрагментов имеют тип ID, и один элемент может иметь только один атрибут типа ID. Поэтому в XHTML 1.0 атрибут id определен как тип ID. Чтобы гарантировать, что документы XHTML 1.0 являются правильно структурированными документами XML, в документах XHTML 1.0 при определении идентификаторов фрагментов ДОЛЖЕН использоваться атрибут id, даже в элементах, которые исторически имеют атрибут name. Информацию об обеспечении обратной совместимости таких якорей при обслуживании документов XHTML с типом устройства text/html см. в приложении "Принципы совместимости с HTML".

Обратите внимание, что в XHTML 1.0 атрибут name этих элементов формально считается нежелательным и будет удален из последующих версий XHTML.

Чтобы оставить комментарий, необходимо зарегистрироваться

Комментарии

  • Комментарии не найдены

Последние новости

Как начать работать в ...

  Работайте и зарабатывайте неплохие деньги в ...

коммерческий хостинг - ...

Выбор коммерческого веб-хостинга Надежность и ...

Выбор бесплатного ...

Выбор веб-хостинга бесплатно Выбор лучшего ...

youtube html- видео в ...

 YouTube Видео в HTML странице  Самый простой ...

Поля формы html - виды ...

HTML ФОРМЫ HTML формы используются для сбора и ...

Scroll to top