4. Определение Абстрактных Модулей

Содержание

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

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

 

4.1. Соглашения по синтаксису

Абстрактные модули не определяются формальной грамматикой. Однако определения должны придерживаться следующих соглашений по синтаксису. Эти соглашения похожи на соответствующие соглашения ОТД XML и должны быть знакомы авторам ОТД XML.
Каждый отдельный синтаксический элемент может комбинироваться с другими для составления более сложных выражений, соответствующих определённой здесь алгебре.

element name/имя элемента
Если элемент включён в модель содержимого, его точное имя будет включено в список.

content set/набор содержимого
Некоторые модули определяют точные списки имён элементов, называемые наборы содержимого. Когда набор содержимого включается в модель содержимого, его имя будет включено в список.
expr ?
Разрешается 0 или 1 объект expr.
expr +
Требуется 0 или 1 объект expr.
expr *
Разрешается 0 или более объектов expr.
a , b
Необходимо выражение a, после которого следует выражение b.
a | b
Необходимо выражение a или b.
a - b
Разрешается выражение a с пропуском элементов в выражении b.

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

расширение предопределённых элементов
В некоторых случаях модуль добавляет атрибуты к элементу. В таких объектах после имени элемента следует амперсанд (&).

определение необходимых атрибутов
Если элемент требует наличия определения атрибута, то после имени этого атрибута следует звёздочка (*).

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

определение допустимых значений атрибута
Если модуль определяет допустимые значения атрибута, это выполняется путём точного указания допустимых значений (заключённых в кавычки), разделённых вертикальной чертой (|), внутри скобок после имени атрибута.
Если атрибут имеет значение по умолчанию, после этого значения следует звёздочка (*).
Если атрибут имеет фиксированное значение, после имени атрибута идёт знак равенства (=) и фиксированное значение, заключённое в кавычки.

 

4.2. Типы содержимого

Определения абстрактных модулей определяют минимальные, атомарные модели содержимого для каждого модуля. Эти минимальные модели содержимого ссылаются на элементы в самом модуле.
Они могут также ссылаться на элементы в других модулях, от которых абстрактный модуль зависит.
Наконец, модель содержимого во многих случаях требует, чтобы текст допускался как содержимое для одного или более элементов. В этих случаях символ, используемый в тексте, является PCDATA. Это  - термин, определённый в Рекомендациях XML 1.0, который относится к обработке символьных данных. Тип содержимого может также быть определён как EMPTY, что означает: элемент не имеет содержимого в своей модели минимального содержимого.

 

4.3. Типы атрибутов

В некоторых случаях необходимо определять типы значений атрибутов или точный набор допустимых значений атрибутов. Следующие типы атрибутов (определённые в Рекомендациях XML 1.0) используются в определениях абстрактных модулей:

Тип атрибута Определение
CDATA Символьные данные.
ID Идентификатор, уникальный в пределах документа.
IDREF Ссылка на идентификатор, уникальный в пределах документа.
IDREFS Список разделённых пробелами ссылок на идентификаторы, уникальные в пределах документа.
NAME Имя с теми же ограничениями на вводимые символы, что и предыдущий ID.
NMTOKEN Имя, составленное исключительно из лексем имён, как определено в  XML 1.0 [XML].
NMTOKENS Одно или более разделённых пробелами значений NMTOKEN.
PCDATA Обрабатываемые символьные данные.

В дополнение к этим предопределённым типам данных, Модуляризация XHTML определяет следующие типы данных и их семантику:

Тип данных Описание
Character Одиночный символ из [ISO10646].
Charset Набор символов, как в [RFC2045].
Charsets Список разделённых пробелами наборов символов (кодировок), как в [RFC2045].
Color

Значение атрибута типа "Color" относится к определению цвета, как специфицировано в [SRGB]. Значение цвета может быть 16-ричным числом (с префиксом из знака #) или одним из следующих 16 названий цвета. Названия цвета чувствительны к регистру.

Названия цвета и значения sRGB
Black = "#000000" Green = "#008000"
Silver = "#C0C0C0" Lime = "#00FF00"
Gray = "#808080" Olive = "#808000"
White = "#FFFFFF" Yellow = "#FFFF00"
Maroon = "#800000" Navy = "#000080"
Red = "#FF0000" Blue = "#0000FF"
Purple = "#800080" Teal = "#008080"
Fuchsia = "#FF00FF" Aqua = "#00FFFF"

Таким образом, значения цвета "#800080" и "Purple" оба относятся к пурпурному цвету.

ContentType Тип содержимого, как в [RFC2045].
ContentTypes Список разделённых запятыми типов содержимого, как в  [RFC2045].
Coords Список разделённых запятыми координат, используемых при определении областей.
Datetime Информация о дате и времени.
FPI Символьная строка, представляющая SGML Formal Public Identifier (формальный публичный идентификатор).
FrameTarget Имя фрэйма, используемого в качестве целевого для результата определённых действий.
LanguageCode Код языка, как в [RFC3066].
Length Размер. Значение может быть в пикселах или в процентах от доступного вертикального или горизонтального пространства. Таким образом, значение "50%" означает половину доступного пространства.
LinkTypes

Авторы могут использовать следующие распознаваемые типы ссылок, перечисленные здесь с их соответствующими интерпретациями.
Значение LinkTypes ссылается на список разделённых пробелами типов ссылок. Пробелы внутри типов ссылок не допускаются.

Эти типы ссылок чувствительны к регистру, т.е. "Alternate" - это то же самое, что и "alternate".

Пользовательские агенты (ПА), поисковые машины и т.п. могут интерпретировать эти типы ссылок по-разному. Например, ПА могут предоставлять доступ к связанным документам через навигационную панель.

Alternate/Альтернативный
Означает замещающие версии документа, в котором находится ссылка. При использовании вместе с атрибутом hreflang подразумевает переведённую версию документа. При использовании вместе с атрибутом media подразумевает версию, разработанную для другого носителя.

Stylesheet/Таблица стилей
Ссылается на  внешнюю таблицу стилей. См. детали в Модуле Style. Используется вместе с типом ссылки "Alternate" в переключаемых пользователем альтернативных таблицах стилей.

Start/Старт
Ссылается на первый документ в коллекции документов. Этот тип ссылки сообщает поисковым машинам, какой документ рассматривается автором в качестве стартового документа коллекции.

Next/Следующий
Ссылается на следующий документ в линеарной последовательности документов. ПА могут выбрать предзагрузку документа "next", чтобы уменьшить время предполагаемой загрузки.

Prev/Пред(ыдущий)
Ссылается на предыдущий документ в упорядоченной серии документов. Некоторые ПА также поддерживают синоним "Previous".

Contents/Содержание
Ссылается на документ, служащий в качестве оглавления. Некоторые ПА также поддерживают синоним ToC (от "Table of Contents").

Index/Индекс
 
Ссылается на документ - индекс текущего документа.

Glossary/Словарь
 
Ссылается на документ - справочник терминов, относящихся к текущему документу.

Copyright/Авторские права
Ссылается на запись об авторских правах на текущий документ.

Chapter/Глава
Ссылается на документ, служащий в качестве главы в коллекции документов.

Section/Раздел
Ссылается на документ, служащий в качестве раздела в коллекции документов.

Subsection/Подраздел
Ссылается на документ, служащий в качестве подраздела в коллекции документов.

Appendix/Приложение
Ссылается на документ, служащий в качестве приложения в коллекции документов.

Help/Помощь
Ссылается на документ, предлагающий помощь (более подробную информацию, ссылки на другие информационные ресурсы и т.д.)

Bookmark/Закладка
Ссылается на закладку. Закладка это ссылка на определённую точку в расширенном документе. Атрибут title может использоваться, например, для пометки закладки. Заметьте, что в документе может быть определено несколько закладок.
MediaDesc

Атрибут MediaDesc это список разделённых запятыми медиа-дескрипторов. Ниже дан список распознаваемых медиа-дескрипторов:

screen
Подразумевается нестраничный экран компьютера.

tty
Предназначен для носителей, использующих фиксированную символьную решётку, таких как телетайпы, терминалы или портативные устройства с ограниченными возможностями экрана.

tv
Предназначен для устройств типа телевизора (низкое разрешение, цвет, ограниченные возможности прокрутки изображения).

projection
Предназначен для проекторов.

handheld
Предназначен для миниатюрных ручных устройств (маленький экран, монохромный, растровая графика, ограниченные частотные характеристики).

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

braille
Предназначен для осязательных брайль-устройств.

aural
Предназначен для речевых синтезаторов.

all
Подходит для всех устройств.

В будущих версиях XHTML могут быть введены новые значения и могут быть разрешены параметризованные значения. Для облегчения процесса введения этих расширений соответствующие ПА обязаны быть способны разбирать значения атрибута media следующим образом:

  1. Значением является список разделённых запятыми вхождений. Например,
    media="screen, 3d-glasses, print and resolution > 90dpi"

    отображается в:

    "screen"
    "3d-glasses"
    "print and resolution > 90dpi"
  2. Каждое вхождение усекается сразу перед первым символом, не являющимся буквой US ASCII [a-zA-Z] (ISO 10646 hex 41-5a, 61-7a), цифрой [0-9] (hex 30-39) или дефисом-минусом (hex 2d). В примере это даёт:
    "screen"
    "3d-glasses"
    "print"
  3. Нечувствительный к регистру подбор выполняется затем с набором типов носителя, определённым выше. ПА могут игнорировать несовпадающие вхождения. В примере останутся screen и print.

Примечание. Таблицы стилей могут включать медиа-зависимые вариации (например, конструкция CSS @media). В таких случаях лучше будет использовать "media =all".

MultiLength Значением может быть Length или относительный размер. Относительный размер имеет форму "i*", где "i" это целое число. При распределении пространства между элементами, претендующими на это пространство, ПА выделяют сначала пикселные и процентные размеры, затем делят оставшееся свободное пространство между относительными размерами. Каждое относительное значение получает часть доступного пространства пропорционально целому числу, предшествующему "*". Значение "*" эквивалентно "1*". Таким образом, если 60 пикселов пространства доступны после того, как ПА распределил абсолютные и процентные размеры, и соперничающие относительные размеры - 1*, 2* и 3*; то 1* получит 10 пикселов, 2* получит 20 пикселов, а 3* получит 30 пикселов.
MultiLengths Список разделённых запятыми элементов типа MultiLength.
Number Одна или более цифр.
Pixels Значение - целое число, представляющее количество пикселов канвы (экрана, листа). Таким образом, значение "50" это 50 пикселов. См. нормативную информацию об определении пиксела в [CSS2].
Script

Данные скрипта могут быть содержимым элемента "script" и значением атрибутов внутренних событий. ПА обязаны не разбирать данные скрипта как разметку HTML, а обязаны, вместо этого, передавать их как данные машине скриптов.

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

Обратите внимание, что данные скрипта, являющиеся содержимым элемента, не могут содержать символьных ссылок, а данные скрипта, являющиеся значением атрибута - могут содержать их.

Shape Очертания (форма) области.
Text Произвольные текстовые данные, как правило - на человеческом языке.
URI Uniform Resource Identifier (Универсальный Идентификатор Ресурса), как в [URI].
URIs Список разделённых пробелами Uniform Resource Identifiers, как в [URI].

 

4.4. Пример определения абстрактного модуля

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

В этом разделе определён образец абстрактного модуля как пример использования преимуществ синтаксических правил, определённых выше.
Поскольку в этом примере сделана попытка использовать все определённые синтаксические элементы, он весьма сложен. Типичные определения модуля намного проще этого.
Наконец, обратите внимание, что этот модуль ссылается на коллекцию атрибутов Common. Это - коллекция, определённая в спецификации Модуляризации XHTML, включающая все базовые атрибуты, необходимые для большинства элементов.

 

4.4.1. Модуль XHTML Skiing

Модуль XHTML Skiing определяет разметку для использования при описании аспектов ski lodge (лыжного домика?? - кто знает, переведите!!). Элементы и атрибуты, определённые в этом модуле:

Элементы Атрибуты Модель минимального содержимого
resort Common, href (CDATA) description, Aspen+
lodge Common description, (Aspen - lift)+
lift Common, href description?
chalet Common, href description?
room Common, href description?
lobby Common, href description?
fireplace Common, href description?
description Common PCDATA*

Этот модуль определяет также набор содержимого Aspen с моделью минимального содержимого lodge | lift | chalet | room | lobby | fireplace.


Hosted by uCoz