C++ CSS HTML Java JavaScript MySQL Oracle PERL PHP SQL Unix VBScript XHTML XML Сети
Модуляризация XHTML - Определение абстрактных модулей
 

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

Содержание

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

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

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

разработчикам XML DTD. Каждый отдельный синтаксический элемент может объединяться с другими для построения более сложных выражений, конформных определенной здесь алгебре.

имя элемента
Если элемент включается в модель содержимого, должно быть указано его явное имя.
набор содержимого
В некоторых модулях определяются списки явных имен элементов, называемые наборами содержимого. Если набор содержимого включается в модель содержимого, должно быть указано его имя.
expr ?
Допустимы ноль или один экземпляр выражения expr.
expr +
Необходим как минимум один экземпляр выражения expr.
expr *
Допустимо произвольное число экземпляров выражения 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 Имя (на входящие в его состав символы накладываются те же ограничения, что и на идентификатор)
NMTOKEN Имя, состоящее только из символов имени, как определено в XML 1.0 [XML]
NMTOKENS Значения NMTOKEN, разделенные одним или несколькими пробельными символами
PCDATA Обрабатываемые символьные данные

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

Тип данных Описание
Character Один символ набора [ISO10646].
Charset Кодировка символов в соответствии с [RFC2045].
Charsets Разделенный пробелами список кодировок символов в соответствии с [RFC2045].
Color

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

Названия цветов и значения в формате 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 Строка символов, представляющая собой формальный общий идентификатор (Formal Public Identifier) SGML.
FrameTarget Имя фрейма, используемого для вывода результатов определенных действий.
LanguageCode Код языка в соответствии с [RFC3066].
Length "50%" означает половину имеющегося пространства.
LinkTypes

символы запрещены.

В типах ссылок не учитывается регистр, т.е. "Alternate" и "alternate" - одно и то же.

помощью навигационной панели.

Alternate
Определяет замещающие (альтернативные) версии документа, в котором находится ссылка. Если используется с атрибутом hreflang, указывает на переведенную версию документа. Если используется с атрибутом media, указывает на версию, предназначенную для другого устройства (или устройств).
Stylesheet
Указывает на внешнюю таблицу стилей. Подробнее см. в разделе "Модуль Style". Используется вместе с типом "Alternate" для обеспечения возможности выбора таблицы стилей пользователем.
Start
Указывает на первый документ в наборе документов. Этот тип сообщает поисковым машинам о том, какой документ считается начальной точкой набора.
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
Предназначен для всех устройств.

синтаксического анализа значения атрибута media следующим образом:

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

    представляется как:

    "screen"
    "3d-glasses"
    "print and resolution > 90dpi"
    
  2. переноса (шестнадцатеричный код 2d). В данном примере получаем:
    "screen"
    "3d-glasses"
    "print"
    
  3. Затем проводится сопоставление с набором определенных выше типов устройств без учета регистра. Элементы, соответствие которым не найдено, могут игнорироваться. В данном примере остаются screen и print.

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

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

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

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

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

Shape Форма области.
Text Произвольные текстовые данные, чаще всего предназначенные для прочтения человеком.
URI Универсальный идентификатор ресурса в соответствии с [URI].
URIs Разделенный пробелами список универсальных идентификаторов ресурсов в соответствии с [URI].

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

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

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

4.4.1. Модуль XHTML Skiing

Модуль XHTML Skiing определяет разметку, используемую при описании характеристик горнолыжного курорта. В этот модуль входят следующие элементы и атрибуты:

Элементы Атрибуты Минимальная модель содержимого
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.


Главная