3. Определение соответствия

Этот раздел является нормативным.

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

Слова "MUST/ОБЯЗАН", "MUST NOT/НЕ ОБЯЗАН", "REQUIRED/НЕОБХОДИМ", "SHOULD/ДОЛЖЕН", "SHOULD NOT/НЕ ДОЛЖЕН", "MAY/МОЖЕТ", "RECOMMENDED/РЕКОМЕНДУЕТСЯ" И "OPTIONAL/НЕ ОБЯЗАТЕЛЕН" в этом документе интерпретируются так, как описано в [RFC2119].

 

3.1. Соответствие Основного Языка Типа Документа XHTML

Имеется возможность модифицировать существующие типы документов или определить совершенно новые типы документов, используя модули, определённые в данной спецификации, и другие модули. Такой тип документа является "XHTML Host Language Conforming", если соответствует следующим критериям:

  1. Тип документа обязан быть определён с использованием одного из методов реализации, определённого W3C. В настоящий момент они ограничены ОТД (Определение Типа Документа) XML, но XML Schema также будет вскоре доступна. Остальная часть этого раздела относится к "ОТД", хотя другие реализации также возможны.
  2. ОТД, определяющее тип документа, обязано иметь уникальный идентификатор, как определено в Правилах именования, и использовать строку "XHTML" в своей первой лексеме публичного текстового описания.
  3. ОТД, определяющее тип документа, обязано включать как минимум модули Structure, Hypertext, Text и List, определённые в данной спецификации.
  4. Для каждого определённого W3C включаемого модуля все элементы, атрибуты, типы атрибутов (в том числе и любые необходимые списки перечисляемых значений) и любые необходимые модели минимального содержимого обязаны быть включены (и, возможно, расширены) в модель типа содержимого документа.
    Если модели содержимого расширены, все элементы и атрибуты (вместе с их типами или любые необходимые списки перечисляемых значений), необходимые (REQUIRED) в оригинальной модели содержимого, обязаны остаться необходимыми.
  5. ОТД, определяющее тип документа, может определять дополнительные элементы и атрибуты. Однако это обязано происходить в его собственном пространстве имён XML [XMLNAMES].

 

3.2. Соответствие Интеграционному Набору Типа Документа XHTML

Можно также определить тип документа, базирующийся на XHTML, но не придерживаясь его структуры. Такой тип документа является "XHTML Integration Set Conforming", если соответствует следующим критериям:

  1. Тип документа обязан быть определён с использованием одного из методов реализации, определённого W3C. В настоящий момент они ограничены ОТД (Определение Типа Документа) XML, но XML Schema также будет вскоре доступна. Остальная часть этого раздела относится к "ОТД", хотя другие реализации также возможны.
  2. ОТД, определяющее тип документа, обязано иметь уникальный идентификатор, как определено в Правилах именования, и НЕ использовать строку "XHTML" в своей первой лексеме публичного текстового описания.
  3. ОТД, определяющее тип документа, обязано включать как минимум модули Hypertext, Text и List, определённые в данной спецификации.
  4. Для каждого определённого W3C включаемого модуля все элементы, атрибуты, типы атрибутов (в том числе и любые необходимые списки перечисляемых значений) и любые необходимые модели минимального содержимого обязаны быть включены (и, возможно, расширены) в модель типа содержимого документа.
    Если модели содержимого расширены, все элементы и атрибуты (вместе с их типами или любые необходимые списки перечисляемых значений), необходимые в оригинальной модели содержимого, обязаны остаться необходимыми.
  5. ОТД, определяющее тип документа, может определять дополнительные элементы и атрибуты. Однако это обязано происходить в его собственном пространстве имён XML [XMLNAMES].

 

3.3. Соответствие Модуля Семейства XHTML

Эта спецификация определяет метод определения модулей, соответствующих XHTML.
Модуль соответствует этой спецификации, если отвечает следующим критериям:

  1. Тип документа обязан быть определён с использованием одного из методов реализации, определённого W3C. В настоящий момент они ограничены ОТД (Определение Типа Документа) XML, но XML Schema также будет вскоре доступна. Остальная часть этого раздела относится к "ОТД", хотя другие реализации также возможны.
  2. ОТД, определяющее тип документа, обязано иметь уникальный идентификатор, как определено в Правилах именования.
  3. Если модуль определён с использованием ОТД XML, то он обязан изолировать имена параметров своих объектов путём использования уникальных префиксов или других подобных методов.
  4. Определение модуля обязано иметь текстовое определение, описывающее синтаксические и семантические требования элементов, атрибутов и/или моделей содержимого, которые он объявляет.
  5. Определение модуля обязано не использовать имена элементов, определённые в других определённых W3C модулях, за исключением случаев, когда модели содержимого и элементов идентичны оригинальным или расширяют их, или повторно используемые имена элементов находятся в их собственном пространстве имён (см. ниже).
  6. Элементы и атрибуты определения модуля обязаны быть частью пространства имён XML [XMLNAMES].
    Если модуль определён не W3C, а другой организацией, его пространство имён обязано НЕ быть тем же пространством имён, в котором определены другие модули W3C.

 

3.4. Соответствие Документа Семейства XHTML

Соответствующий документ семейства  XHTML является верным объектом Соответствия Основного Языка Типа Документ XHTML (XHTML Host Language Conforming Document Type).

 

3.5. Соответствие Пользовательского Агента (ПА) Семейства XHTML

Соответствующий ПА обязан удовлетворять следующим критериям (как определено в [XHTML1]):

  1. Чтобы следовать Рекомендациям XML 1.0 [XML], ПА обязан разбирать и выполнять документ XHTML правильно сформированным. Если ПА объявлен как проверяющий ПА, он обязан также проверять документы относительно их ОТД в соответствии с [XML].
  2. Если ПА объявляет о поддержке возможностей, определённых в данной спецификации или требуемых данной спецификацией через нормативные ссылки, он обязан выполнять это способами, соответствующими определениям возможностей.
  3. Когда ПА обрабатывает документ XHTML как общий (родовой) документ [XML], он должен лишь распознавать атрибуты типа ID (напр., атрибут id большинства элементов XHTML) как идентификаторы фрагмента.
  4. Если ПА обнаруживает элемент, который он не в состоянии распознать, он обязан продолжить обработку потомков этого элемента. Если содержимым является текст, то текст обязан быть представлен (выведен) пользователю.
  5. Если ПА обнаруживает атрибут, который он не в состоянии распознать, он обязан игнорировать всю спецификацию атрибута (т.е. атрибут и его значение).
  6. Если ПА обнаруживает значение атрибута, которое он не в состоянии распознать, он обязан использовать значение по умолчанию данного атрибута.
  7. Если ПА обнаруживает ссылку-мнемонику (отличную от предопределённых), для которой ПА не производит объявлений (что может случиться, если объявление находится во внешнем поднаборе, который ПА не может прочесть), то ссылка-мнемоника должна быть выведена как символы (начиная с амперсанда и заканчивая точкой с запятой), представляющие мнемонику.
  8. При выводе содержимого, ПАгенты, обнаружившие символы или мнемоники, которые ими не распознаются, но не могут быть представлены, должны отобразить документ так, чтобы пользователю было понятно, что нормальное представление невозможно.
  9. Пробел обрабатывается в соответствии со следующими правилами. Данные символы определены в [XML] как пробельные символы:

    • SPACE/пробел ( )
    • HORIZONTAL TABULATION/горизонтальная табуляция (	)
    • CARRIAGE RETURN/возврат каретки (
)
    • LINE FEED/прогон строки (
)

    Процессор XML нормализует различные системные коды конца строки в единый символ LINE FEED, который и передаётся приложению.

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

    • Все пробелы, окружающие блок элементов, должны быть удалены.
    • Комментарии полностью удаляются и не влияют на обработку пробелов. Одиночный пробельный символ с любой стороны комментария рассматривается как два пробельных символа.
    • Если атрибут 'xml:space' установлен в 'preserve', пробельные символы обязаны быть сохранены и последующие символы LINE FEED внутри блока обязаны не быть конвертированы.
    • Если атрибут 'xml:space' установлен в 'preserve', тогда:
      • Ведущие и ведомые пробелы внутри элемента блока обязаны быть удалены.
      • Символы LINE FEED обязаны быть конвертированы в один из следующих символов: SPACE, ZERO WIDTH SPACE (​) или ни в один из символов (т.е. удалены).
        Выбор результирующего символа зависит от ПА и обусловлен свойствами письма (языка) символов до и после символа LINE FEED.
      • Последовательность пробелов без символов LINE FEED обязана быть редуцирована до символа SPACE.
      • Последовательность пробельных символов с одним или более символом LINE FEED обязана быть редуцирована таким же образом до символа SPACE.

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

    Примечание (информативное): При определении того, как конвертировать символ LINE FEED, ПА должен рассмотреть следующие случаи, когда вид письма с любой стороны от LINE FEED определяет выбор замены. Символы ОБЩЕГО письма (такие как пунктуация) рассматриваются так же, как и письмо с другой стороны:

    1. Если символы до и после LINE FEED принадлежат письму, в котором символ SPACE используется как разделитель слов, то символ LINE FEED должен быть конвертирован в символ SPACE. Примерами такого письма могут служить латиница, греческое и кириллица.
    2. Если символы до и после LINE FEED принадлежат идеографическому письму или системе письма, в которой нет разделителя слов, то LINE FEED должен быть конвертирован в нулевой (пустой/никакой) символ. Примеры такого письма или системы письма - китайский, японский.
    3. Если символы до и после LINE FEED принадлежат неидеографическому письму, в котором нет разделителя слов, LINE FEED должен быть конвертирован в символ ZERO WIDTH SPACE (​) или в нулевой (пустой/никакой) символ. Примеры такого письма -тайский, кхмерский.
    4. Если условия с (1) по (3) неприменимы, то символ LINE FEED должен быть конвертирован в символ SPACE.

    Техническое сообщение Unicode [UNICODE] TR#24 (Script Names) предоставляет назначения имён скриптов всем символам.

 

3.6. Правила Именования

Типы Документа Основного Языка XHTML обязаны придерживаться соглашений строгого именования, чтобы программы и пользователи могли сразу определять отношение типов документов и XHTML. Имена типов документов, реализуемых как типы документов XML, определяются через Formal Public Identifiers (FPI/Формальные Публичные Идентификаторы). Внутри FPI поля разделяются двойным слэшем (//).
Различные поля обязаны быть скомпонованы следующим образом:

  1. Ведущее поле обязано быть "-" для обозначения приватно определённого ресурса.
  2. Второе поле обязано содержать имя организации, ответственной за поддержку именованного объекта. Для этих имён организаций не существует формальной регистрации. Каждая организация должна определять (иметь) уникальное имя. Например, имя, используемое W3C, это W3C.
  3. Третье поле содержит три конструкции: класс public text, после которого следует описание public text. Первая лексема третьего поля это класс public text, который должен придерживаться ISO 8879 Clause 10.2.2.1 Public Text Class. Только документы, соответствующие Основному Языку XHTML, должны начинать описание public text лексемой XHTML. Описание public text должно содержать строковой XHTML, если тип документа соответствует Integration Set/Интегрированному Набору. Поле обязано также содержать определённый организацией уникальный идентификатор (например, MyML 1.0). Этот идентификатор должен быть образован из уникального имени и идентификатора версии, который может обновляться по мере развития типа документа.
  4. Четвёртое поле определяет язык, на котором объект разработан (например, EN).

При использовании этих правил, имя типа документа, соответствующего Основному Языку XHTML, может быть таким
-//MyCompany//DTD XHTML MyML 1.0//EN.
Имя модуля, соответствующего семейству XHTML, может быть
-//MyCompany//ELEMENTS XHTML MyElements 1.0//EN.
Имя типа документа, соответствующего XHTML Integration Set/Интегрированному Набору, может быть
-//MyCompany//DTD Special Markup with XHTML//EN.

 

3.7.Эволюция Модулей XHTML

Каждый модуль этой спецификации получил уникальный идентификатор, который соблюдает правила именования, описанные в предыдущем разделе. Со временем модули могут развиваться. Логическое разветвление при такой эволюции может привести к тому, что некоторые аспекты модуля уже не будут более совместимыми с предыдущим определением. Чтобы иметь уверенность, что типы документов, определённые относительно модулей, определённых в данной спецификации, продолжают работать, идентификаторы, ассоциированные с изменённым модулем, должны обновляться. В особенности Formal Public Identifier и System Identifier модуля будут изменяться путём модификации идентификатора версии. Типы документов, которые "хотят" быть внедрёнными в обновлённую функциональность, должны быть таким же образом обновлены.

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

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


Электронные Книги по компьютерным программам
На правах рекламы:
Логин
Пароль
Запомнить меня