ISBN 966-7343-29-5 К.305

УДК 531.0
ББК 22.311
  К.305

XHTML 1.0, переформулирование HTML 4 в XML 1.0
Рекомендации W3C от 26 января 2000

   W3C

XHTML 1.0:
The Extensible HyperText Markup Language
(Расширяемый Язык Гипертекстовой Разметки)

Переформулирование HTML 4 в XML 1.0

Рекомендации W3C от 26 января 2000

Внимание !

  • Официальная нормативная версия этой спецификации возможна только на английском языке и находится по адресу:    http://www.w3.org/tr/2000/REC-xhtml1-20000126
  • Данный перевод НЕ является официальным документом W3C.
  • Все Авторские Права Принадлежат W3C.
  • Данный документ может содержать ошибки перевода и опечатки.
Эта версия:
http://www.w3.org/tr/2000/REC-xhtml1-20000126;
Самая последняя версия:
http://www.w3.org/tr/xhtml1
Предыдущая версия:
http://www.w3.org/tr/1999/PR-xhtml1-19991210
 
Авторы:
См.  благодарности.

Резюме

Эта спецификация определяет XHTML 1.0, переформулирование приложений HTML 4 как ОТД (Определения Типа Документа) XML 1.0, соответствующие таким же ОТД HTML 4.
Семантика элементов и их атрибутов определена в Рекомендациях W3C для HTML 4. Эта семантика дает основу для будущего расширения XHTML. Совместимость с существующими ПА (Пользовательскими Агентами) HTML возможна при соблюдении небольшого количества руководящих указаний.

Статус этого документа

Этот раздел описывает статус документа на момент публикации.
Другие документы могут заменять этот документ.
Статус самых последних документов отслеживается на W3C.

Этот документ просмотрен Членами W3C и другими заинтересованными сторонами и утвержден Директором как Рекомендации W3C. Это постоянный документ, и он может использоваться как справочный материал или для цитирования из других документов как нормативный справочник. Роль W3C в составлении Рекомендаций заключается в том, чтобы привлечь внимание к данной спецификации и способствовать ее широкому распространению. Это увеличит функциональность и возможности Web.

Этот документ создан как часть Работы W3C над HTML. Цели HTML Working Group (только для членов) обсуждаются в хартии HTML Working Group (только для членов).

Список текущих Рекомендаций W3C и другая техническая документация находятся по адресу
http://www.w3.org/tr.

Публичная дискуссия о возможностях HTML проходит в списках рассылки
www-html@w3.org (архив).

Пожалуйста, сообщайте об ошибках, обнаруженных в этом документе, по адресам
www-html-editor@w3.org
и   a_pyramidin@yahoo.com (переводчик русской версии).

 

Содержание


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

XHTML - это семейство существующих и будущих типов и модулей документов, воспроизводящих, подразделяющих и расширяющих HTML 4 [HTML]. Семейство типов документов XHTML базируется на  XML и предназначено исключительно для работы в ПА на базе 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 - это новый шаг в эволюции Internet. Переходя в XHTML сегодня, разработчики содержимого могут войти в мир XML, используя все его преимущества, сохраняя в то же время возможности обратной и будущей совместимости.

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

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

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

SGML появился в середине 1980х и остается достаточно стабильным и по сей день. В основном эта стабильность основана на том факте, что этот язык отличается и богатством, и гибкостью. Обратной стороной такой гибкости, однако, является сложность языка, которая препятствует его адаптации к различным средам, включая World Wide Web.

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

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

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

1.2 Что такое XML?

XML это аббревиатура для Extensible Markup Language, и является акронимом Extensible Markup Language [XML].

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

Сохраняя все эти преимущества, XML убрал большинство самых сложных свойств SGML, ранее делавших создание программных средств тяжелым и затратным.

1.3 Для чего нужен XHTML?

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

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

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

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

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

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

2.2 Основные термины

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

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

3.1 Соответствие Документов

Эта версия XHTML предоставляет  определение строго оформленных документов XHTML, размеченных тегами и атрибутами из пространства имен XHTML. См. в Разделе 3.1.2 информацию об использовании XHTML с другими пространствами имен, например, о включении метаданных, выраженных в RDF, в документы XHTML.

3.1.1 Строго Соответствующие Документы

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

  1. Он должен проверяться одним из трех ОТД, находящихся в Приложении A.

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

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

  4. В документе обязано присутствовать объявление DOCTYPE, предшествующее корневому элементу.
    Публичный идентификатор, включенный в объявление DOCTYPE, обязан быть ссылкой на одно из трех ОТД, которые можно найти в Приложении A, используя соответствующий Формальный Публичный Идентификатор (Formal Public Identifier). Системный идентификатор может быть изменен, чтобы отражать локальные системные соглашения.

    <!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="en" lang="en">
  <head>
    <title>Virtual Library</title>
  </head>
  <body>
    <p>Moved to <a href="http://vlib.org/">vlib.org</a>.</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:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>A Math Example</title>
  </head>
  <body>
    <p>The following is MathML markup:</p>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply> <log/>
        <logbase>
          <cn> 3 </cn>
        </logbase>
        <ci> x </ci>
      </apply>
    </math>
  </body>
</html>

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

<?xml version="1.0" encoding="UTF-8"?>
<!-- initially, the default namespace is "books" -->
<book xmlns='urn:loc.gov:books'
    xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en">
  <title>Cheaper by the Dozen</title>
  <isbn:number>1568491379</isbn:number>
  <notes>
    <!-- make HTML the default namespace for a hypertext commentary -->
    <p xmlns='http://www.w3.org/1999/xhtml'>
        This is also available <a href="http://www.w3.org/">online</a>.
    </p>
  </notes>
</book>

3.2 Соответствие Пользовательских Агентов (ПА)

Соответствующий ПА должен отвечать всем следующим критериям:

  1. Для того, чтобы следовать Рекомендациям XML 1.0 [XML], ПА обязан разбирать и выполнять документ XHTML правильно сформированным. Если ПА заявлен как проверяющий ПА, он обязан также проверять документы на соответствие тем ОТД, на которые документы ссылаются, в соответствии с [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 обычно используется для кодирования как грамматических границ слова, так и для типографского пробела; в языках Nagari (напр., Sanskrit, Thai и т.п.), грамматические границы могут кодироваться с использованием 'пробельного' символа ZW, но обычно не отображаются таковыми в типографском выводе; арабские языки могут кодировать типографский пробел путем использования символа пробела, но могут также использовать и символ ZW для указания 'внутренних' грамматических границ (что похоже на то, как арабские слова при переводе на английский часто кодируются по-разному, напр. 'kitAbuhum' = 'kitAbu-hum' = 'book them' == their book); а языки китайской традиции письма обычно ни кодируют такие ограничители, ни используют типографические пробелы таким способом.

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

4. Отличия от HTML 4

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

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

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

Хотя перекрывание не допускается в SGML, оно допускается некоторыми браузерами.

 КОРРЕКТНО: вложенные элементы.

 <p>here is an emphasized <em>paragraph</em>.</p>

 НЕКОРРЕКТНО: перекрывающиеся элементы

 <p>here is an emphasized <em>paragraph.</p></em>

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

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

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

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

 КОРРЕКТНО: закрытые элементы

 <p>here is a paragraph.</p><p>here is another paragraph.</p>

 НЕКОРРЕКТНО: незакрытые элементы

 <p>here is a paragraph.<p>here is another paragraph.

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

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

 КОРРЕКТНО: атрибут - в кавычках

 <table rows="3">

 НЕКОРРЕКТНО: атрибут - не в кавычках

 <table rows=3>

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

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

 КОРРЕКТНО: неминимизированный атрибут

 <dl compact="compact">

 НЕКОРРЕКТНО: минимизированный атрибут

 <dl compact>

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

Пустые элементы обязаны иметь конечный тег, или стартовый тег обязан заканчиваться  />. Например, <br/> или <hr></hr>. См. в Указаниях по совместимости с HTML информацию о том, как удостовериться, что имеется обратная совместимость с ПАгентами HTML 4.

 КОРРЕКТНО: законченные пустые теги

 <br/><hr/>

 НЕКОРРЕКТНО: незаконченные пустые теги

 <br><hr>

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

ПА вырезают ведущие и ведомые пробелы из значений атрибутов и превращают последовательности из одного или более пробельных символов (включая обрывы строки) в одиночный межсловный пробел (символ пробела ASCII в западных языках). См. Раздел 3.3.3 в [XML].

4.8 Элементы Script и Style

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

<script>
 <![CDATA[
 ... unescaped script content ...
 ]]>
 </script>

Разделы CDATA  распознаются процессором XML и являются узлами в Document Object Model, см. Раздел 1.3 в Рекомендациях DOM Level 1[DOM].

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

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

SGML предоставлял создателям ОТД возможность исключать некоторые элементы как содержимое элемента. Такие запрещения (называемые "исключения") невозможны в XML.

Например, Строгое ОТД HTML 4 (Strict Dtd) запрещает вложение элемента 'a' в другой элемент 'a' на любую глубину. В XML об этом не может быть даже и речи. Хотя эти запрещения и могут отсутствовать в ОТД, определенные элементы не могут вкладываться.
Резюме по этому вопросу содержится в  Приложении B.

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. См. в Указаниях по совместимости с HTML информацию о том, как определить, что подобные якоря обратно совместимы при обработке документов XHTML как имеющих тип text/html.

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

5. Вопросы совместимости

Хотя и отсутствует требование совместимости документов XHTML 1.0 с существующими ПА, на практике это легко выполнимо. Указания по созданию совместимых документов можно найти в Приложении C.

5.1 Тип Носителя в Internet

Как и при публикации данных Рекомендаций, пометка MIME для приложений на базе XML все еще разрешена.

Однако документы XHTML, следующие указаниям Приложения C (далее, "Указания по совместимости с HTML") могут быть помечены типом носителя Internet "text/html" для обеспечения совместимости с большинством браузеров HTML. Данные Указания не содержат рекомендаций о пометках MIME для других документов XHTML.

6. Указания на будущее

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

6.1 Модуляризация HTML

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

Процесс модуляризации разделяет XHTML на серии небольших наборов элементов. Эти элементы могут затем комбинироваться в различных целях.

Такие модули будут определены в следующем документе W3C.

6.2 Подразделения и Расширяемость

Модуляризация дает несколько преимуществ:

  • Она предоставляет формальный механизм подразделения XHTML.

  • Она предоставляет формальный механизм расширения XHTML.

  • Она упрощает трансформацию документов различных типов.

  • Она помогает повторно использовать модули в документах новых типов.

6.3 Профили документа

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

Дизайнерам это дает возможность определить различные группы, чтобы выработать свой собственный стандартный профиль.

Авторам это поможет избежать необходимости писать различные версии документа для различных клиентов.

Группам специалистов, таких как химики, медики или математики, это позволит создать специальный профиль стандартных элементов HTML плюс группы элементов, приспособленных к нуждам специалистов.

Приложение А. ОТД
(Определения Типа Документа)

Это приложение является нормативным.

Эти ОТД и наборы мнемоник образуют нормативную часть данной спецификации. Полный набор файлов ОТД вместе с объявлением XML и SGML Open Catalog включен в zip-файл в данной спецификации (английская версия на сайте w3c).

A.1 Определения Типа Документа

Эти ОТД похожи на ОТД HTML 4. Это почти похоже на модуляризацию ОТД, метод конструирования ОТД, который будет разработан и который более близок к HTML 4.
(Прим перев. - У меня эти документы хорошо видны также в NC 5.0)

A.2 Наборы мнемоник

Наборы мнемоник XHTML - те же, что и в HTML 4, но модифицированы, чтобы быть верными объявлениями мнемоник XML 1.0.
Обратите внимание, что мнемоника для знака Euro currency (&euro; или &#8364; или &#x20AC;) определена в разделе спец. символов.

Приложение  B.
Запрет Использования Элементов

Это приложение является нормативным.

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

a
не может содержать другие элементы a.
pre
не может содержать элементы img, object, big, small, sub  или  sup.
button
не может содержать элементы input, select, textarea, label, button, form, fieldset, iframe  или  isindex.
label
не может содержать другие элементы label.
form
не может содержать другие элементы form.

Приложение C.
Указания по обеспечению совместимости с HTML

Это приложение является нормативным.

Это приложение резюмирует указания по дизайну для тех авторов, которые предполагают просмотр своих документов XHTML в существующих ПА HTML.

C.1 Инструкции процесса

Учтите, что инструкции процесса отображаются некоторыми ПА. К тому же, если объявление XML не включено в документ, этот документ может использовать только кодировку по умолчанию - UTF-8 или UTF-16.

C.2 Пустые Элементы

Содержат пробел перед закрывающими / и > , например, <br />, <hr />,  <img src="karen.jpg" alt="Karen" />. Используйте также минимизированный синтаксис для тегов пустых элементов, например, <br /> так как альтернативный синтаксис <br></br>, допускаемый XML, дает непредсказуемые результаты во многих существующих ПА.

C.3 Минимизация Элементов и Содержимое Пустых Элементов

Создавая пустой объект элемента, чья модель содержимого не EMPTY (например, пустой заголовок или параграф), не используйте минимизированную форму (т.е. используйте <p> </p>, а не <p />).

C.4  Внедренные Таблицы Стилей и Скрипты

Используйте внешние таблицы стилей, если в них есть символы <,   &,  ]]>,  или  --.
Используйте внешние сценарии, если в них есть символы <, &, ]]>  или  --.
Учтите, что разборщикам XML разрешено без предупреждения удалять содержимое комментариев. Таким образом, похоже на то, что принятая практика "прятания" скриптов и таблиц стилей внутри комментариев для обеспечения обратной совместимости документов, не будет работать в реализациях на базе XML.

C.5 Обрывы Строки внутри Значений Атрибутов

Исключите использование обрывов строки и множественные пробелы внутри значений атрибутов. Они некорректно обрабатываются в ПА.

C.6 Isindex

Не включайте более чем один элемент isindex в head документа. Вместо элемента isindex (который не рекомендуется) нужно использовать элемент input.

C.7  Атрибуты lang и xml:lang

Используйте оба атрибута -  lang и xml:lang - при спецификации языка элемента. Значение атрибута xml:lang имеет приоритет.

C.8 Идентификаторы Фрагмента

В XML URI [RFC2396], которые заканчиваются идентификаторами фрагмента в форме "#foo" не ссылаются на элементы с атрибутом name="foo"; они ссылаются на элементы с атрибутом, определенным типом ID, например, атрибут id в HTML 4. Многие существующие клиенты HTML не поддерживают использование атрибутов типа ID таким способом, так что идентичные значения могут быть установлены для обоих этих атрибутов, чтобы максимально гарантировать обратную и будущую совместимость (например,  <a id="foo" name="foo">...</a>).

Кроме того, поскольку набор допустимых значений атрибутов типа ID намного меньше, чем для атрибутов типа CDATA, тип атрибута name изменен на  NMTOKEN. Этот атрибут сконструирован так, что он может иметь только те же самые значения, что и тип ID, или как продукт Name в Разделе 2.5 в XML 1.0, продукт 5.
К сожалению, это ограничение не может быть выражено в ОТД XHTML 1.0. Из-за этого необходимо проявлять осторожность при конвертации существующих документов HTML. Значения этих атрибутов должны (обязаны) быть уникальными в пределах документа, корректными, и любые ссылки на эти идентификаторы фрагмента (и внутренние, и внешние [ссылки]) должны (обязаны) быть обновлены с необходимым изменением значений во время конверсии.

Наконец, обратите внимание, что XHTML 1.0 не рекомендует применение атрибута name в элементах a, applet, form, frame, iframe, img  и  map, и этот атрибут будет удален в последующих версиях XHTML.

C.9 Кодировка Символов

Для спецификации кодировки документа используйте спецификации атрибута кодировки в объявлении xml (например,  <?xml version="1.0" encoding="EUC-JP"?>) и оператора meta http-equiv (например,  <meta http-equiv="Content-type" content='text/html; charset="EUC-JP"' />). Значение атрибута кодировки инструкции процесса xml имеет приоритет.

C.10 Булевы Атрибуты

Некоторые ПА HTML не могут интерпретировать булевы атрибуты, если те появляются в своей полной (неминимизированной) форме, как этого требует XML 1.0.
Заметьте, что эта проблема не касается ПА, соответствующих HTML 4.
Включены следующие атрибуты: compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer.

C.11 Объектная Модель Документа/ОМД (Document Object Model - DOM) и XHTML

Объектная Модель Документа, уровень 1 Рекомендаций [DOM] определяет интерфейсы ОМД для XML и HTML 4. ОМД HTML 4 устанавливает, что имена атрибутов и элементов HTML вводятся в верхнем регистре. ОМД XML устанавливает, что имена атрибутов и элементов в том регистре, в котором они специфицированы. В XHTML 1.0 атрибуты и элементы специфицированы в нижнем регистре. Это очевидное различие может адресоваться двумя способами:

  1. Приложения, использующие документы XHTML, обслуживаемые как тип носителя Internet text/html в ОМД, могут использовать ОМД HTML и могут опираться на имена атрибутов и элементов, возвращаемые в верхнем регистре из этих интерфейсов.
  2. Приложения, использующие документы XHTML, обслуживаемые как типы носителя Internet text/xml или application/xml, могут также использовать ОМД XML. Элементы и атрибуты будут возвращаться в нижнем регистре.
    Также некоторые элементы XHTML могут появляться или не появляться в дереве объектов, поскольку их использование не обязательно в модели содержимого (например, элемент tbody в table). Это происходит из-за того, что некоторые элементы HTML 4 были разрешены в такой минимизированной форме, что даже оба их тега, начальный и конечный, могли отсутствовать (свойство SGML). В XML это невозможно. Вместо того, чтобы требовать от авторов документов вставлять чуждые элементы, XHTML сделал эти элементы не обязательными. Приложениям необходимо соответственно адаптироваться к этому.

C.12 Использование Амперсандов в Значениях Атрибутов

Если значение атрибута содержит амперсанд, он должен выражаться мнемоникой ("&amp;"). Например, если атрибут href элемента a ссылается на скрипт CGI, который принимает параметры, он (атрибут) должен быть выражен так:
http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user, а не так:
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
.

C.13 Каскадные Таблицы Стилей (Cascading Style Sheets/CSS) и XHTML

Каскадные Таблицы Стилей, уровень 2 Рекомендаций [CSS2], определяют свойства стиля, которые применяются к дереву разбора документов HTML или XML. Различия в разборе ведут к различным визуальным и звуковым результатам, в зависимости от используемых селекторов.
Следующие подсказки уменьшат этот эффект для тех документов, которые обрабатываются без модификации обоих типов носителя:

  1. CSS для XHTML должны использовать имена атрибутов и элементов в нижнем регистре.
  2. В таблицах элемент tbody будет обсчитываться разборщиком пользовательского агента  HTML, но не будет обсчитываться ПА XML. Следовательно, Вы всегда должны явно устанавливать элемент tbody, если на него есть ссылка в селекторе CSS.
  3. Внутри пространства имен XHTML необходимо, чтобы ПА распознавали атрибут "id" как атрибут типа ID. Таким образом, таблицы стилей должны иметь способность продолжать использование сокращенного синтаксиса селектора "#", даже если ПА не читает ОТД.
  4. Внутри пространства имен XHTML необходимо чтобы ПА распознавали атрибут "class". Таким образом, таблицы стилей должны иметь способность продолжать использование сокращенного синтаксиса селектора ".".
  5. CSS определяет различные правила соответствия для документов HTML и XML; убедитесь, что правила HTML применяются к документам XHTML, заявленным как HTML, и правила XML применяются к документам XHTML, заявленным как XML.

Приложение D. Благодарности

Это приложение является информативным.

Эта спецификация была написана при участии членов рабочей группы W3C HTML:

Steven Pemberton, CWI (HTML Working Group Chair - Председатель Рабочей Группы)
Murray Altheim, Sun Microsystems
Daniel Austin, AskJeeves (CNET: The Computer Network, в июле 1999 г.)
Frank Boumphrey, HTML Writers Guild
John Burger, Mitre
Andrew W. Donoho, IBM
Sam Dooley, IBM
Klaus Hofrichter, GMD
Philipp Hoschka, W3C
Masayasu Ishikawa, W3C
Warner ten Kate, Philips Electronics
Peter King, Phone.com
Paula Klante, JetForm
Shin'ichi Matsui, Panasonic (W3C приходящий инженер в сентябре 1999 г.)
Shane McCarron, Applied Testing and Technology (The Open Group в августе 1999 г.)
Ann Navarro, HTML Writers Guild
Zach Nies, Quark
Dave Raggett, W3C/HP (в W3C - лидер по HTML)
Patrick Schmitz, Microsoft
Sebastian Schnitzenbaumer, Stack Overflow
Peter Stark, Phone.com
Chris Wilson, Microsoft
Ted Wugofski, Gateway 2000
Dan Zigmond, WebTV Networks

Приложение E. Ссылки

Это приложение является информативным.

[CSS2]
"Cascading Style Sheets, level 2 (CSS2) Specification", B. Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 мая 1998.
Последняя версия: http://www.w3.org/tr/REC-CSS2
[DOM]
"Document Object Model (DOM) Level 1 Specification", Lauren Wood et al., 1октября 1998 г.
Последняя версия: http://www.w3.org/tr/REC-DOM-Level-1
[HTML]
"HTML 4.01 Specification", D. Raggett, A. Le Hors, I. Jacobs, 24 декабря 1999.
Последняя версия: http://www.w3.org/tr/html401
[POSIX.1]
"ISO/IEC 9945-1:1990 Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language]", Institute of Electrical and Electronics Engineers, Inc, 1990.
[RFC2046]
"RFC2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", N. Freed и N. Borenstein, ноябрь 1996.
Находится: http://www.ietf.org/rfc/rfc2046.txt. Обратите внимание, что RFC отменяет RFC1521, RFC1522 и RFC1590.
[RFC2119]
"RFC2119: Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, март 1997.
Находится:: http://www.ietf.org/rfc/rfc2119.txt
[RFC2376]
"RFC2376: XML Media Types", E. Whitehead, M. Murata, июль 1998.
Находится:: http://www.ietf.org/rfc/rfc2376.txt
[RFC2396]
"RFC2396: Uniform Resource Identifiers (URI): Generic Syntax", T. Berners-Lee, R. Fielding, L. Masinter, август 1998 г.
Этот документ обновляет RFC1738 и RFC1808.
Находится:: http://www.ietf.org/rfc/rfc2396.txt
[XML]
"Extensible Markup Language (XML) 1.0 Specification", T. Bray, J. Paoli, C. M. Sperberg-McQueen, 10 февраля 1998 г.
Последняя версия: http://www.w3.org/tr/REC-xml
[XMLNAMES]
"Namespaces in XML", T. Bray, D. Hollander, A. Layman, 14 января 1999 г.
Пространство имен XML предоставляет простой метод квалификации имен, используемых в документах XML, путем ассоциирования их с пространствами имен, идентифицированными в URI.
Последняя версия: http://www.w3.org/tr/REC-xml-names

Внимание !

  • Официальная нормативная версия этой спецификации возможна только на английском языке и находится по адресу:    http://www.w3.org/tr/2000/REC-xhtml1-20000126
  • Данный перевод НЕ является официальным документом W3C.
  • Все Авторские Права Принадлежат W3C.
  • Данный документ может содержать ошибки перевода и опечатки.



 

 

Наши ссылки на веб-страницы, можно скопировать html-код ссылки


Книги по математике и физике, программы HTML, компьютерные технологии

Документация HTML, XML, JavaScript на русском языке для разработчиков W3C

   Примечание. Удобная текстовая ссылка для форумов, блогов, цитирования материалов веб-сайта, код html можно скопировать и просто вставить в Ваши веб-страницы при цитировании материалов нашего веб-сайта. Материал носит неофициальный характер и приведен для ознакомления.