Модуляризация XHTML - Определение абстрактных модулей
Модуляризация XHTML - Определение абстрактных модулей
[назад] [далее] [содержание]
4. Определение абстрактных модулей
Содержание
4.1. Синтаксические соглашения
4.2. Типы содержимого
4.3. Типы атрибутов
4.4. Пример определения абстрактного модуля
4.4.1. Модуль XHTML Skiing
Данный раздел является нормативным.
Абстрактный модуль - это определение модуля XHTML с использованием простого текста и некоторых неформальных соглашений разметки. Хотя такое определение обычно бесполезно для машинной обработки типов документов, оно очень важно для людей и помогает понять, что содержится в модуле. В настоящем разделе определяется способ определения абстрактных модулей XHTML. Конформный XHTML модуль не обязательно должен содержать абстрактное определение. Однако всем разработчикам модулей XHTML настоятельно рекомендуется составлять его для упрощения работы с модулем.
4.1. Синтаксические соглашения
Абстрактные модули не определяются в формальной грамматике. Однако их определения придерживаются перечисленных ниже синтаксических соглашений. Эти соглашения аналогичны соглашениям для XML DTD и уже знакомы разработчикам 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
Авторы могут использовать распознаваемые типы ссылок. Типы перечислены вместе со своими условными интерпретациями. Значение 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
Предназначен для всех устройств.
В последующих версиях XHTML могут быть введены новые значения и могут допускаться параметризованные значения. Для упрощения введения этих значений конформные пользовательские агенты должны иметь возможность синтаксического анализа значения атрибута media следующим образом:
Значение представляет собой разделенный запятыми список. Например,
media="screen, 3d-glasses, print and resolution > 90dpi"
представляется как:
"screen"
"3d-glasses"
"print and resolution > 90dpi"
Каждый элемент отсекается ровно перед первым символом, не являющимся буквой набора US ASCII [a-zA-Z] (ISO 10646, шестнадцатеричные коды 41-5a, 61-7a), цифрой [0-9] (шестнадцатеричные коды 30-39) или символом переноса (шестнадцатеричный код 2d). В данном примере получаем:
"screen"
"3d-glasses"
"print"
Затем проводится сопоставление с набором определенных выше типов устройств без учета регистра. Элементы, соответствие которым не найдено, могут игнорироваться. В данном примере остаются screen и print.
Примечание. Таблицы стилей могут включать зависящие от устройств варианты (например, конструкция @media в CSS). В таких случаях стоит использовать "media =all".
MultiLength
Значение может иметь тип Length или быть относительной длиной. Относительная длина имеет вид "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.
[назад] [далее] [содержание]
содержание | 2 | как выглядит бетонный пол, битон приемущества
Используются технологии
uCoz