Язык XML разделяет данные и правила их представления. Следовательно, языки стилей (style languages) XML должны трансформировать оригинальный документ XML в набор объектов визуализации, предназначенных для систем зрительного или слухового восприятия.
Визуализация документа XML может осуществляться на сервере или у клиента. Если браузер клиента - это браузер XML, то перед сервером HTTP стоит очень простая задача: ассоциировать с документом правильную таблицу стилей (документ может уже содержать ее) и отправить ее в браузер. Если же браузер клиента не является браузером XML, то перед отправкой документ нужно трансформировать в отображаемый формат. Трансформация может осуществляться на сервере или у клиента.
Серверы HTTP можно считать файловыми серверами, но в отличие от традиционных файловых серверов их функциональные возможности можно усилить с помощью нескольких расширений. Как правило, эти расширения принимают форму обработчиков сценариев. Такие наиболее популярные обработчики, как ASP, JSP, РНР или , основаны на шаблонах.
Для обработки документа XML на сервере HTTP должно быть установлено расширение, обрабатывающее такой формат. Простейшим из возможных расширений является то, которое может преобразовать файл XML в документ HTML и отправить этот документ браузеру для визуализации (например, обработчик XSLT ). Наиболее сложными расширениями являются полные репозитории XML. Cначала документ XML анализируется и преобразуется во внутреннюю структуру, а затем обработчик стилей трансформирует эту внутреннюю структуру в документ HTML с помощью шаблонов. Однако для сложных репозиториев XML такой анализ не обязателен, поскольку документ уже проанализирован и содержится во внутреннем формате; в этом случае обработчик стилей непосредственно выполняет свою функцию по отношению к этой внутренней структуре. Как правило, серверы, содержащие полный репозитории XML, имеют более высокую производительность, чем простые файловые системы. Однако производительность последних может возрастать при кэшировании документов
XML, уже преобразованных в формат HTML.
Если клиент является браузером XML, задача существенно упрощается. Фактически почти каждый сервер HTTP способен передавать ему документы XML, которые будут там визуализированы.
Этот процесс достаточно прост: сервер HTTP посылает браузеру документ XML, а браузер сканирует документ XML в поисках особой конструкции, называемой processing-instruction (команда обработки). Эта команда позволяет браузеру получить таблицу стилей, ассоциированную с этим документом XML и выполнить визуализацию последнего.
Рассмотрим две модели представления документа: визуальную и звуковую. Последняя предполагает последовательное представление объектов, поэтому звуковой браузер должен быть устройством, зависящем от времени. С другой стороны, модель зрительного представления предполагает пространственное расположение объектов, так что визуальный браузер должен зависеть от пространственных характеристик. Рассмотрим основные устройств.
Браузеры, способные визуализировать документы XML, легко доступны. Например, это Microsoft Internet Explorer 5 или выше. Он поддерживает как CSS, так и XSL.
Браузеры как и обычный лист бумаги являются субстратами процесса формирования графического изображения. Можно сказать, что оба они представляют собой в
В зависимости от уровня сложности языка стилей предлагаются две основные модели структуры:
Потоковой называется структура, в которой объекты форматирования располагаются на субстрате (странице или экране) один за другим. Если запись ведется сверху вниз и слева направо, то объекты располагаются точно так же - сверху вниз и слева направо. Например, параграфы текста размещаются вертикально друг под другом, а слова (предложения) - горизонтально. Как правило, объекты форматирования располагаются вертикально или горизонтально. Например, в CSS блоковые объекты располагаются вертикально, как параграфы, а встроенные (inline) объекты - горизонтально, как слова и предложения. Обычно при направлении письма слева направо объекты, располагаемые вертикально, содержат объекты, размещаемые горизонтально.
Фиксированной называется такая структура, в которой объекты форматирования располагаются в указанном месте на странице. В этом случае область, представляющая документ, напоминает декартово пространство, в котором все места могут быть уникально идентифицированы с помощью координат локализации. Например, язык стилей CSS позволяет располагать определенные объекты форматирования в указанном положении, причем свойства left и top означают относительное расстояние от левого и верхнего края границ контейнера. Если контейнер представляет собой документ, то фиксированное положение объекта определяется относительно левой и верхней границ документа. Если контейнер - это область, то фиксированное положение объекта определяется относительно левой и верхней границ области.
В принципе звуковая модель напоминает модель музыки. Звуки в ней организованы последовательно и имеют определенную продолжительность во времени. Но в отличие от музыки звуки являются более сложными, поскольку каждый звук в данном случае - это произносимое слово. Поэтому атомарной единицей звукового браузера является речь, означающая разговор, состоящий из последовательностей слов, разделенных тишиной. Характеристиками речи являются ее тон, высота звука, ритм и т.д.
Документы XML ассоциируются с таблицами стилей с помощью команд обработки. Этот специальный тип элемента указывает браузеру или обработчику стилей:
Например: <?xml-stylesheet href = "myStyleSheet.css" type = "text/сss" title = "CSS style" media = "screen" ?>
Элементом, связывающим документ XML с таблицей стилей, является команда обработки xml-stylesheet.
У команды обработки имеются атрибуты:
| Атрибуты | Описание |
|---|---|
href |
Локализация таблицы стилей. Его значение представляет собой URI ; но чаще всего используется просто адрес URL. |
type |
Язык таблицы стилей, выраженный как тип MIME. Например, типом языка CSS является text/css, языка DSSSL - text/dsssl, а языка XSL- text/xsl. |
media |
Целевая среда таблицы стилей. Может принимать значения screen, print, |
title |
Заголовок таблицы стилей. Обработчик таблицы стилей может показывать этот заголовок в меню. |
alternate |
Может принимать значения yes и по. Атрибут показывает обработчику, существует ли |
Большинство языков стилей основано на правилах. Каждое правило состоит из двух разделов:
Раздел сравнения образцов представляет собой выражение, позволяющее связывать с разметкой некоторое действие.
Раздел действий - это небольшая процедура или шаблон
Процесс, выполняемый на языках стилей, основанных на правилах, предполагает трансформацию оригинального документа XML в древовидную структуру, а затем по очереди узлы дерева просматриваются на предмет соответствия конкретному правилу. При обнаружении соответствия выполняется процедура. Если раздел действия представляет собой шаблон, происходит неявное обращение к правилу или процедуре, анализирующей и выводящей содержание этого шаблона, так как шаблон может содержать и другие элементы, требующие обработки процессором. Фактически весь описанный процесс представляет собой обычный процесс обработчика визуализации XML.
Этот язык напоминает команды стиля, основанные на языке HTML, и спецификацию реализовать очень просто.
Атом CSS: ячейка
Все элементы CSS содержатся в ячейках. Ячейка представляет собой прямоугольную область с определенными базовыми характеристиками, такими как margin (запас) или border (граница). Все ячейки вкладываются друг в друга, как матрешки. Некоторые ячейки содержат другие ячейки, а другие - только сами содержатся в первых. Конструкцию такого типа можно трансформировать в дерево ячеек, или прямоугольных областей. Само дерево содержится в ячейке контейнера, предназначенного либо для сплошной среды (такой, как браузеры с возможностью прокрутки экрана), либо для печатного материала (где размеры области являются фиксированными).
Поняв, что язык CSS описывает мир в виде ячеек, рассмотрим, каким образом можно связать с этими ячейками элементы XML. Ответ: с помощью правил. Правила состоят из группы свойств, связанных с одним или несколькими типами элементов. Каждое правило содержит раздел сравнения и процедурный раздел (или раздел действия). В языке CSS раздел сравнения называется также селектором, а процедурная часть - CSS основан на правилах. Взгляните на пример правила CSS:
Раздел сравнения
или селектор Процедура или свойства
Имя
{
font-family: Arial, Helvetica;
color: blue;
display: block;
padding-bottom: 0.5 px;
padding-top: 0.5 px;
}
Слева находится раздел сравнения с образцом (т.е. селектор), определяющий имя элемента. Справа содержится описание того, как эту ячейку следует отобразить (свойства).
При визуализации CSS чрезвычайно зависит от структуры документа. Часто дерево объектов форматирования идентично CSS ассоциируют имеющие специфические свойства объектов форматирования CSS с каждым элементом XML.
В языке CSS имеется два основных объекта форматирования:
Если говорить об отображаемых на экране элементах, то следует указать еще три:
Здесь можно провести сравнение с таблицей, имеющей определенные специфические характеристики: у нее могут быть заголовки, ячейки, строки и столбцы. Однако модель таких объектов не согласуется с CSS из-за различий в методах ее декларации. Так, хотя блоковые и встроенные потоковые объекты являются значениями свойства display, плавающий объект сам представляет собой свойство, которое принимает различные значения. Таким образом, синтаксис CSS отличается от визуальной модели.
Блок: значение (свойства display )
Встроенный элемент: значение (свойства display )
Таблица: значение (свойства display )
Список: свойство
Плавающий объект: свойство
Структура CSS может показаться подобной языкам С или С++, хотя все сходство состоит в том, что правила ограничиваются символами {} и что строка с каждым свойством заканчивается знаком "точка с запятой".
Таблица стилей состоит из нескольких правил. В каждом из них используется такой синтаксис:
Selector {properties}
Селектор показывает, с каким элементом следует сравнить и затем применить свойства, а свойства заключаются в фигурные скобки и используют следующий синтаксис:
Property = attribute: value;
С помощью языка стилей CSS мы связываем свойства с элементами. Селектор (часть правила CSS ), содержащий образец для сравнения, указывает на элемент или элементы, которые надо сравнить с данным правилом, а ассоциированные с этим элементом (с помощью селектора) свойства заключаются в фигурные скобки.
Любое правило CSS начинается с селектора. Селектор представляет собой выражение, определяющее сравнение с образцом, который связывает конкретный элемент XML с конкретным правилом. Когда обработчик CSS находит элемент соответствующий селектору, правило запускается. Запуск правила означает просто создание объекта визуализации, который приобретает свойства, заданные телом правила. В таблице ниже показан набор типов селектора, поддерживаемых стандартом CSS2:
| Образец | Значение |
|---|---|
* |
Соответствует любому элементу |
Е |
Соответствует любому элементу Е (любому элементу типа Е ) |
Е, F |
Соответствует любому элементу Е или элементу F |
Е F |
Соответствует любому элементу F, являющемуся потомком элемента Е |
Е > F |
Соответствует любому элементу F, являющемуся непосредственным потомком элемента Е |
Е: first-child |
Соответствует элементу Е, если Е является первым непосредственным потомком своего родителя |
E: link |
Соответствует элементу Е, если Е представляет собой исходный якорь гиперссылки, которая еще не посещалась ( : link ) или уже посещалась ( :visited ) |
Е: visited |
|
E: active |
Соответствует элементу Е при определенных действиях пользователя |
E: hover |
|
E: focus |
|
Е:lang( с) |
Соответствует элементу типа Е, если Е написан на языке с (человеческом). Каким образом определяется язык, показывает |
Е + F |
Соответствует любому элементу F, которому непосредственно Е |
E [foo] |
Соответствует любому элементу Е с заданным атрибутом foo (независимо от его значения) |
E [foo = "warning"] |
Соответствует любому элементу Е, атрибут foo которого точно равен выражению "warning" |
Е [foo ~= "warning"] |
Соответствует любому элементу Е, атрибут foo которого представляет собой список значений, разделенных пробелами, одно из которых точно равно выражению "warning" |
E [lang | = "еn"] |
Соответствует любому элементу Е, атрибут "lang" которого содержит разделенный дефисами список значений, начинающихся слева с сочетания "еn" |
E#myid |
Соответствует любому элементу Е, атрибут ID которого равен myid |
Селектор представляет собой последовательность одного или нескольких простых селекторов.
Значительно более детального соответствия можно добиться с помощью селектора ID. Он позволяет применить правило к конкретному элементу, имеющему конкретный ID.
Обычно правила CSS связываются с элементом на основе его положения в first-child позволяет найти и связать правило с первым элементом, порожденным заданным элементом:
TITLE: first-child {...}
Затем конкретное правило CSS можно связать с объектом дерева документа, не указывая явным образом его имя.
Еще одним типом интересного селектора являются <DESCRIPTION>, а затем к ней применяется
DESCRIPTION: first-line{...}
А в следующем коде со свойствами правила ассоциируется первая буква этого содержания:
DESCRIPTION: first-letter{...}
Простые селекторы можно связать цепочкой в одно селекторное выражение, но каждый простой селектор в нем отделяется символами пустого пространства, знаком > или +.
Главной особенностью документов XML является отделение данных от их представления. Таблица стилей CSS - это средство, позволяющее подготовить документ XML для показа. CSS разрешает осуществлять представление в средах нескольких типов:
| Тип среды | Описание |
|---|---|
screen |
Экранное устройство, например браузер |
print |
Устройство печати, например для печатания книг |
|
Слуховое устройство, например синтезатор речи |
Braille |
Устройство Брайля для тактильной обратной связи |
|
Устройство для выдавливания, создаваемое страничным принтером Бройля |
projection |
Устройство-проектор |
tty |
Устройство tty больше известное под названием телетайпа |
tv |
Телевизор |
Таблица стилей CSS может содержать спецификацию стилей для нескольких типов сред, например для браузеров, принтеров и речевых устройств. Каждое целевое устройство определяется конструкцией @media. Например, следующее выражение ассоциирует правила CSS с экранным устройством (обычно браузером):
@media screen { BOOKLIST {display : block;} }
Как видите, все правила, предназначенные для конкретного типа среды, содержатся в конструкции @media. Селекторы могут определять применение одних и тех же правил к нескольким элементам, но их точно так же можно использовать для нескольких типов среды:
@media screen , print { BOOKLIST { display : block;} }
Однако иногда для обеспечения модульности спецификации визуализации необходимо разделить таблицу стилей на несколько файлов, например чтобы сохранить таблицу стилей для печати в одном файле, а звуковую таблицу стилей - в другом.
Конструкция @import позволяет импортировать правила из других таблиц стилей. В документе таблицы стилей она должна предшествовать всем остальным конструкциям CSS. Сослаться на импортируемую таблицу стилей можно с помощью ее адреса URL
Конструкции @media и @import можно комбинировать в одном выражении.
В браузер Internet Explorer 5 и выше компания Microsoft добавила расширения, описывающие поведение. Они усовершенствовали возможности CSS, добавляя такие интерактивные действия, как выделение текста. Поведение можно связать с любым элементом XML. В отличие от документов DHTML документы XML, как правило, не содержат сценариев, так как это не соответствовало бы концепции отделения данных от их представления (или взаимодействия с ними). При связывании с любым элементом XML добавляется интерактивность визуализируемому документу.
CSS представляет собой простой язык стилей, который легко запомнить и использовать. Его главное преимущество - простота. Если нужно только визуализировать документ XML, не выполняя никаких трансформаций, язык CSS подойдет для этого лучше всего. Его основными недостатками являются отсутствие более сложных моделей визуализации и зависимость от структуры обрабатываемых документов XML. Значит, осуществляющее обработку приложение должно понимать язык. XML. Для получения большей независимости между структурой документа и форматом визуализации лучше воспользоваться языками XSL и DSSSL.
По сравнению с CSS расширяемый
Моделирование не является просто подготовкой документа для визуального представления в сети Web. Если необходимо использовать содержание XML для различных целей, нужно иметь возможность на основании одних исходных файлов создавать различные форматы их представления.
Язык XSL состоит из трех спецификаций:
В спецификации XSLT внимание обращено на трансформации документа XML, в спецификации XSLF - на форматирование объектов, а в - на доступ к узлам иерархической структуры XML. Обработчик XSL должен, как минимум, поддерживать часть трансформаций ( XSLT ) и .
При работе с печатными материалами документы XML можно трансформировать в объекты форматирования XSL. Затем в наиболее актуальных реализациях эти объекты преобразуются в другой формат, например PDF, в ходе отдельного процесса. Для выполнения описанных действий используется часть спецификации XSL - XSLF. Следует упомянуть, что объекты форматирования XSL трансформируются не только в формат PDF: для отображения результатов трансформации конкретные реализации могут предлагать и другие форматы, такие как ТеХ, RTF, MIF и т.д. Объекты форматирования XSLF не зависят от какой-либо реализации форматирования или визуализации. Таким образом, обработчик XSLF потенциально может трансформировать документ XML в другой формат на выходе с помощью одной таблицы стилей.
Язык XSL, как видно из его названия, является расширяемым. Это означает, что к имеющимся в языке объектам форматирования легко добавить новые объекты, что позволит избавиться от ограничения таблиц стилей CSS - фиксированного набора объектов форматирования.
Как и другие языки, основанные на правилах, документ XSL ( XSLT или XSLF ) представляет собой коллекцию правил, состоящую из раздела сравнения образцов и раздела действий. На языке XSL эти правила называются шаблонами, так что атомарным элементом таблицы стилей XSL является шаблон. Часть шаблона XSL, осуществляющая сравнение с образцом, называется выражением .
Как только выражение выбрало узел документа, оно связывается с содержанием шаблона. Так как документ XML трансформируется в дерево результата, состоящее из объектов форматирования XSL, возникает необходимость сравнить каждый элемент оригинального документа XML с конкретным шаблоном. Кроме того, при необходимости трансформировать оригинальный документ совместно используется несколько конструкций XSLT и выражений , что позволяет достичь любого узла документа XML, преобразуемого в иерархическую структуру.
Выражение дает возможность достичь любого узла документа. Конструкция XSLT позволяет установить соответствие между узлами и шаблонами, содержащими объекты форматирования XSL.
Чтобы лучше понять процесс, обратимся к внутреннему устройству обработчика XSL.
Процессор XSL создает три дерева:
XSLДля каждого шаблона в дереве, содержащем таблицу стилей, при обнаружении явной или неявной конструкции apply-template процессор находит соответствующий узел в дереве исходного документа. Обнаружив соответствие, процессор использует содержание шаблона в качестве основы для результата, записываемого в дерево на выходе. Например, если задачей является визуализация документа в браузере, шаблон может содержать конструкции HTML. Для печатных материалов на выходе будут объекты форматирования XSL, которые можно трансформировать в графические объекты с помощью устройств форматирования для печати.
Язык XML разделяет данные и правила их представления. Следовательно, языки стилей (style languages) XML должны трансформировать оригинальный документ XML в набор объектов визуализации, предназначенных для систем зрительного или слухового восприятия.
Визуализация документа XML может осуществляться на сервере или у клиента. Если браузер клиента - это браузер XML, то перед сервером HTTP стоит очень простая задача: ассоциировать с документом правильную таблицу стилей (документ может уже содержать ее) и отправить ее в браузер. Если же браузер клиента не является браузером XML, то перед отправкой документ нужно трансформировать в отображаемый формат. Трансформация может осуществляться на сервере или у клиента.
Серверы HTTP можно считать файловыми серверами, но в отличие от традиционных файловых серверов их функциональные возможности можно усилить с помощью нескольких расширений. Как правило, эти расширения принимают форму обработчиков сценариев. Такие наиболее популярные обработчики, как ASP, JSP, РНР или , основаны на шаблонах.
Для обработки документа XML на сервере HTTP должно быть установлено расширение, обрабатывающее такой формат. Простейшим из возможных расширений является то, которое может преобразовать файл XML в документ HTML и отправить этот документ браузеру для визуализации (например, обработчик XSLT ). Наиболее сложными расширениями являются полные репозитории XML. Cначала документ XML анализируется и преобразуется во внутреннюю структуру, а затем обработчик стилей трансформирует эту внутреннюю структуру в документ HTML с помощью шаблонов. Однако для сложных репозиториев XML такой анализ не обязателен, поскольку документ уже проанализирован и содержится во внутреннем формате; в этом случае обработчик стилей непосредственно выполняет свою функцию по отношению к этой внутренней структуре. Как правило, серверы, содержащие полный репозитории XML, имеют более высокую производительность, чем простые файловые системы. Однако производительность последних может возрастать при кэшировании документов
XML, уже преобразованных в формат HTML.
Если клиент является браузером XML, задача существенно упрощается. Фактически почти каждый сервер HTTP способен передавать ему документы XML, которые будут там визуализированы.
Этот процесс достаточно прост: сервер HTTP посылает браузеру документ XML, а браузер сканирует документ XML в поисках особой конструкции, называемой processing-instruction (команда обработки). Эта команда позволяет браузеру получить таблицу стилей, ассоциированную с этим документом XML и выполнить визуализацию последнего.
Рассмотрим две модели представления документа: визуальную и звуковую. Последняя предполагает последовательное представление объектов, поэтому звуковой браузер должен быть устройством, зависящем от времени. С другой стороны, модель зрительного представления предполагает пространственное расположение объектов, так что визуальный браузер должен зависеть от пространственных характеристик. Рассмотрим основные устройств.
Браузеры, способные визуализировать документы XML, легко доступны. Например, это Microsoft Internet Explorer 5 или выше. Он поддерживает как CSS, так и XSL.
Браузеры как и обычный лист бумаги являются субстратами процесса формирования графического изображения. Можно сказать, что оба они представляют собой в
В зависимости от уровня сложности языка стилей предлагаются две основные модели структуры:
Потоковой называется структура, в которой объекты форматирования располагаются на субстрате (странице или экране) один за другим. Если запись ведется сверху вниз и слева направо, то объекты располагаются точно так же - сверху вниз и слева направо. Например, параграфы текста размещаются вертикально друг под другом, а слова (предложения) - горизонтально. Как правило, объекты форматирования располагаются вертикально или горизонтально. Например, в CSS блоковые объекты располагаются вертикально, как параграфы, а встроенные (inline) объекты - горизонтально, как слова и предложения. Обычно при направлении письма слева направо объекты, располагаемые вертикально, содержат объекты, размещаемые горизонтально.
Фиксированной называется такая структура, в которой объекты форматирования располагаются в указанном месте на странице. В этом случае область, представляющая документ, напоминает декартово пространство, в котором все места могут быть уникально идентифицированы с помощью координат локализации. Например, язык стилей CSS позволяет располагать определенные объекты форматирования в указанном положении, причем свойства left и top означают относительное расстояние от левого и верхнего края границ контейнера. Если контейнер представляет собой документ, то фиксированное положение объекта определяется относительно левой и верхней границ документа. Если контейнер - это область, то фиксированное положение объекта определяется относительно левой и верхней границ области.
В принципе звуковая модель напоминает модель музыки. Звуки в ней организованы последовательно и имеют определенную продолжительность во времени. Но в отличие от музыки звуки являются более сложными, поскольку каждый звук в данном случае - это произносимое слово. Поэтому атомарной единицей звукового браузера является речь, означающая разговор, состоящий из последовательностей слов, разделенных тишиной. Характеристиками речи являются ее тон, высота звука, ритм и т.д.
Документы XML ассоциируются с таблицами стилей с помощью команд обработки. Этот специальный тип элемента указывает браузеру или обработчику стилей:
Например: <?xml-stylesheet href = "myStyleSheet.css" type = "text/сss" title = "CSS style" media = "screen" ?>
Элементом, связывающим документ XML с таблицей стилей, является команда обработки xml-stylesheet.
У команды обработки имеются атрибуты:
| Атрибуты | Описание |
|---|---|
href |
Локализация таблицы стилей. Его значение представляет собой URI ; но чаще всего используется просто адрес URL. |
type |
Язык таблицы стилей, выраженный как тип MIME. Например, типом языка CSS является text/css, языка DSSSL - text/dsssl, а языка XSL- text/xsl. |
media |
Целевая среда таблицы стилей. Может принимать значения screen, print, |
title |
Заголовок таблицы стилей. Обработчик таблицы стилей может показывать этот заголовок в меню. |
alternate |
Может принимать значения yes и по. Атрибут показывает обработчику, существует ли |
Большинство языков стилей основано на правилах. Каждое правило состоит из двух разделов:
Раздел сравнения образцов представляет собой выражение, позволяющее связывать с разметкой некоторое действие.
Раздел действий - это небольшая процедура или шаблон
Процесс, выполняемый на языках стилей, основанных на правилах, предполагает трансформацию оригинального документа XML в древовидную структуру, а затем по очереди узлы дерева просматриваются на предмет соответствия конкретному правилу. При обнаружении соответствия выполняется процедура. Если раздел действия представляет собой шаблон, происходит неявное обращение к правилу или процедуре, анализирующей и выводящей содержание этого шаблона, так как шаблон может содержать и другие элементы, требующие обработки процессором. Фактически весь описанный процесс представляет собой обычный процесс обработчика визуализации XML.
Этот язык напоминает команды стиля, основанные на языке HTML, и спецификацию реализовать очень просто.
Атом CSS: ячейка
Все элементы CSS содержатся в ячейках. Ячейка представляет собой прямоугольную область с определенными базовыми характеристиками, такими как margin (запас) или border (граница). Все ячейки вкладываются друг в друга, как матрешки. Некоторые ячейки содержат другие ячейки, а другие - только сами содержатся в первых. Конструкцию такого типа можно трансформировать в дерево ячеек, или прямоугольных областей. Само дерево содержится в ячейке контейнера, предназначенного либо для сплошной среды (такой, как браузеры с возможностью прокрутки экрана), либо для печатного материала (где размеры области являются фиксированными).
Поняв, что язык CSS описывает мир в виде ячеек, рассмотрим, каким образом можно связать с этими ячейками элементы XML. Ответ: с помощью правил. Правила состоят из группы свойств, связанных с одним или несколькими типами элементов. Каждое правило содержит раздел сравнения и процедурный раздел (или раздел действия). В языке CSS раздел сравнения называется также селектором, а процедурная часть - CSS основан на правилах. Взгляните на пример правила CSS:
Раздел сравнения
или селектор Процедура или свойства
Имя
{
font-family: Arial, Helvetica;
color: blue;
display: block;
padding-bottom: 0.5 px;
padding-top: 0.5 px;
}
Слева находится раздел сравнения с образцом (т.е. селектор), определяющий имя элемента. Справа содержится описание того, как эту ячейку следует отобразить (свойства).
При визуализации CSS чрезвычайно зависит от структуры документа. Часто дерево объектов форматирования идентично CSS ассоциируют имеющие специфические свойства объектов форматирования CSS с каждым элементом XML.
В языке CSS имеется два основных объекта форматирования:
Если говорить об отображаемых на экране элементах, то следует указать еще три:
Здесь можно провести сравнение с таблицей, имеющей определенные специфические характеристики: у нее могут быть заголовки, ячейки, строки и столбцы. Однако модель таких объектов не согласуется с CSS из-за различий в методах ее декларации. Так, хотя блоковые и встроенные потоковые объекты являются значениями свойства display, плавающий объект сам представляет собой свойство, которое принимает различные значения. Таким образом, синтаксис CSS отличается от визуальной модели.
Блок: значение (свойства display )
Встроенный элемент: значение (свойства display )
Таблица: значение (свойства display )
Список: свойство
Плавающий объект: свойство
Структура CSS может показаться подобной языкам С или С++, хотя все сходство состоит в том, что правила ограничиваются символами {} и что строка с каждым свойством заканчивается знаком "точка с запятой".
Таблица стилей состоит из нескольких правил. В каждом из них используется такой синтаксис:
Selector {properties}
Селектор показывает, с каким элементом следует сравнить и затем применить свойства, а свойства заключаются в фигурные скобки и используют следующий синтаксис:
Property = attribute: value;
С помощью языка стилей CSS мы связываем свойства с элементами. Селектор (часть правила CSS ), содержащий образец для сравнения, указывает на элемент или элементы, которые надо сравнить с данным правилом, а ассоциированные с этим элементом (с помощью селектора) свойства заключаются в фигурные скобки.
Любое правило CSS начинается с селектора. Селектор представляет собой выражение, определяющее сравнение с образцом, который связывает конкретный элемент XML с конкретным правилом. Когда обработчик CSS находит элемент соответствующий селектору, правило запускается. Запуск правила означает просто создание объекта визуализации, который приобретает свойства, заданные телом правила. В таблице ниже показан набор типов селектора, поддерживаемых стандартом CSS2:
| Образец | Значение |
|---|---|
* |
Соответствует любому элементу |
Е |
Соответствует любому элементу Е (любому элементу типа Е ) |
Е, F |
Соответствует любому элементу Е или элементу F |
Е F |
Соответствует любому элементу F, являющемуся потомком элемента Е |
Е > F |
Соответствует любому элементу F, являющемуся непосредственным потомком элемента Е |
Е: first-child |
Соответствует элементу Е, если Е является первым непосредственным потомком своего родителя |
E: link |
Соответствует элементу Е, если Е представляет собой исходный якорь гиперссылки, которая еще не посещалась ( : link ) или уже посещалась ( :visited ) |
Е: visited |
|
E: active |
Соответствует элементу Е при определенных действиях пользователя |
E: hover |
|
E: focus |
|
Е:lang( с) |
Соответствует элементу типа Е, если Е написан на языке с (человеческом). Каким образом определяется язык, показывает |
Е + F |
Соответствует любому элементу F, которому непосредственно Е |
E [foo] |
Соответствует любому элементу Е с заданным атрибутом foo (независимо от его значения) |
E [foo = "warning"] |
Соответствует любому элементу Е, атрибут foo которого точно равен выражению "warning" |
Е [foo ~= "warning"] |
Соответствует любому элементу Е, атрибут foo которого представляет собой список значений, разделенных пробелами, одно из которых точно равно выражению "warning" |
E [lang | = "еn"] |
Соответствует любому элементу Е, атрибут "lang" которого содержит разделенный дефисами список значений, начинающихся слева с сочетания "еn" |
E#myid |
Соответствует любому элементу Е, атрибут ID которого равен myid |
Селектор представляет собой последовательность одного или нескольких простых селекторов.
Значительно более детального соответствия можно добиться с помощью селектора ID. Он позволяет применить правило к конкретному элементу, имеющему конкретный ID.
Обычно правила CSS связываются с элементом на основе его положения в first-child позволяет найти и связать правило с первым элементом, порожденным заданным элементом:
TITLE: first-child {...}
Затем конкретное правило CSS можно связать с объектом дерева документа, не указывая явным образом его имя.
Еще одним типом интересного селектора являются <DESCRIPTION>, а затем к ней применяется
DESCRIPTION: first-line{...}
А в следующем коде со свойствами правила ассоциируется первая буква этого содержания:
DESCRIPTION: first-letter{...}
Простые селекторы можно связать цепочкой в одно селекторное выражение, но каждый простой селектор в нем отделяется символами пустого пространства, знаком > или +.
Главной особенностью документов XML является отделение данных от их представления. Таблица стилей CSS - это средство, позволяющее подготовить документ XML для показа. CSS разрешает осуществлять представление в средах нескольких типов:
| Тип среды | Описание |
|---|---|
screen |
Экранное устройство, например браузер |
print |
Устройство печати, например для печатания книг |
|
Слуховое устройство, например синтезатор речи |
Braille |
Устройство Брайля для тактильной обратной связи |
|
Устройство для выдавливания, создаваемое страничным принтером Бройля |
projection |
Устройство-проектор |
tty |
Устройство tty больше известное под названием телетайпа |
tv |
Телевизор |
Таблица стилей CSS может содержать спецификацию стилей для нескольких типов сред, например для браузеров, принтеров и речевых устройств. Каждое целевое устройство определяется конструкцией @media. Например, следующее выражение ассоциирует правила CSS с экранным устройством (обычно браузером):
@media screen { BOOKLIST {display : block;} }
Как видите, все правила, предназначенные для конкретного типа среды, содержатся в конструкции @media. Селекторы могут определять применение одних и тех же правил к нескольким элементам, но их точно так же можно использовать для нескольких типов среды:
@media screen , print { BOOKLIST { display : block;} }
Однако иногда для обеспечения модульности спецификации визуализации необходимо разделить таблицу стилей на несколько файлов, например чтобы сохранить таблицу стилей для печати в одном файле, а звуковую таблицу стилей - в другом.
Конструкция @import позволяет импортировать правила из других таблиц стилей. В документе таблицы стилей она должна предшествовать всем остальным конструкциям CSS. Сослаться на импортируемую таблицу стилей можно с помощью ее адреса URL
Конструкции @media и @import можно комбинировать в одном выражении.
В браузер Internet Explorer 5 и выше компания Microsoft добавила расширения, описывающие поведение. Они усовершенствовали возможности CSS, добавляя такие интерактивные действия, как выделение текста. Поведение можно связать с любым элементом XML. В отличие от документов DHTML документы XML, как правило, не содержат сценариев, так как это не соответствовало бы концепции отделения данных от их представления (или взаимодействия с ними). При связывании с любым элементом XML добавляется интерактивность визуализируемому документу.
CSS представляет собой простой язык стилей, который легко запомнить и использовать. Его главное преимущество - простота. Если нужно только визуализировать документ XML, не выполняя никаких трансформаций, язык CSS подойдет для этого лучше всего. Его основными недостатками являются отсутствие более сложных моделей визуализации и зависимость от структуры обрабатываемых документов XML. Значит, осуществляющее обработку приложение должно понимать язык. XML. Для получения большей независимости между структурой документа и форматом визуализации лучше воспользоваться языками XSL и DSSSL.
По сравнению с CSS расширяемый
Моделирование не является просто подготовкой документа для визуального представления в сети Web. Если необходимо использовать содержание XML для различных целей, нужно иметь возможность на основании одних исходных файлов создавать различные форматы их представления.
Язык XSL состоит из трех спецификаций:
В спецификации XSLT внимание обращено на трансформации документа XML, в спецификации XSLF - на форматирование объектов, а в - на доступ к узлам иерархической структуры XML. Обработчик XSL должен, как минимум, поддерживать часть трансформаций ( XSLT ) и .
При работе с печатными материалами документы XML можно трансформировать в объекты форматирования XSL. Затем в наиболее актуальных реализациях эти объекты преобразуются в другой формат, например PDF, в ходе отдельного процесса. Для выполнения описанных действий используется часть спецификации XSL - XSLF. Следует упомянуть, что объекты форматирования XSL трансформируются не только в формат PDF: для отображения результатов трансформации конкретные реализации могут предлагать и другие форматы, такие как ТеХ, RTF, MIF и т.д. Объекты форматирования XSLF не зависят от какой-либо реализации форматирования или визуализации. Таким образом, обработчик XSLF потенциально может трансформировать документ XML в другой формат на выходе с помощью одной таблицы стилей.
Язык XSL, как видно из его названия, является расширяемым. Это означает, что к имеющимся в языке объектам форматирования легко добавить новые объекты, что позволит избавиться от ограничения таблиц стилей CSS - фиксированного набора объектов форматирования.
Как и другие языки, основанные на правилах, документ XSL ( XSLT или XSLF ) представляет собой коллекцию правил, состоящую из раздела сравнения образцов и раздела действий. На языке XSL эти правила называются шаблонами, так что атомарным элементом таблицы стилей XSL является шаблон. Часть шаблона XSL, осуществляющая сравнение с образцом, называется выражением .
Как только выражение выбрало узел документа, оно связывается с содержанием шаблона. Так как документ XML трансформируется в дерево результата, состоящее из объектов форматирования XSL, возникает необходимость сравнить каждый элемент оригинального документа XML с конкретным шаблоном. Кроме того, при необходимости трансформировать оригинальный документ совместно используется несколько конструкций XSLT и выражений , что позволяет достичь любого узла документа XML, преобразуемого в иерархическую структуру.
Выражение дает возможность достичь любого узла документа. Конструкция XSLT позволяет установить соответствие между узлами и шаблонами, содержащими объекты форматирования XSL.
Чтобы лучше понять процесс, обратимся к внутреннему устройству обработчика XSL.
Процессор XSL создает три дерева:
XSLДля каждого шаблона в дереве, содержащем таблицу стилей, при обнаружении явной или неявной конструкции apply-template процессор находит соответствующий узел в дереве исходного документа. Обнаружив соответствие, процессор использует содержание шаблона в качестве основы для результата, записываемого в дерево на выходе. Например, если задачей является визуализация документа в браузере, шаблон может содержать конструкции HTML. Для печатных материалов на выходе будут объекты форматирования XSL, которые можно трансформировать в графические объекты с помощью устройств форматирования для печати.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.