Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Как вы оцените наш сайт?

Замечательный
Хороший
Обычный
Плохой
Отвратительный


Результаты
Другие опросы

Всего голосов: 846
Комментарии: 10


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Введение в Форматирование
 

Назад

Оглавление

В конец страницы

Вперёд

Краткое Содержание
3 Введение в Форматирование
    3.1 Концептуальная Процедура

3 Введение в Форматирование

В данном разделе поставлена цель - описание общего процесса форматирования так, чтобы этой информации было достаточно для того, чтобы читать модель области и описания объектов форматирования(ОФ) и свойства и понимать процесс очистки.

Форматирование это процесс перевода результата трансформации XSL в доступную для читателя или слушателя форму. Этот процесс проходит в несколько этапов, некоторые из которых непоследовательно связаны с другими.
Наша модель форматирования будет конструкцией дерева области, которая представляет собой упорядоченное дерево, содержащее геометрическую информацию для размещения в документе каждого глифа, фигуры и изображения вместе с информацией об ограничениях пространства и другой информацией об отображении; эта информация объединяется понятием уточнения, которые относятся к областям, чьи свойства касаются объектов форматирования, а атрибуты относятся к элемента XML.
Раздел [4 Модель Области] описывает дерево области и определяет placement-constraints/ограничения размещения по умолчанию для упакованных областей. В то же время, это абстрактная модель, которая не должна в реальности реализовываться таким способом в форматировщике, поскольку результирующая форма подчиняется подразумеваемым ограничениям. Ограничения могут конфликтовать в той точке, где невозможно удовлетворить все их требования. В этом случае реализация определяет, какое ограничение может быть смягчено и каков порядок удовлетворения остальных.

Объекты Форматирования (ОФ) это элементы дерева объектов форматирования, чьи имя - из пространства имён XSL; объект форматирования принадлежит к классу объектов форматирования и идентифицируется по своему имени элемента. Поведение каждого класса объектов форматирования описано в терминах областей, создаваемых объектом форматирования этого класса, тем, как устанавливаются уточнения областей и как области иерархически структурируются относительно областей, созданных другими объектами форматирования. Разделы [6 Объекты Форматирования] и [7 Свойства Форматирования] описывают объекты форматирования и их свойства.

Некоторые объекты форматирования имеют уровень блока, другие - инлайн-уровень (встроенные). Это относится к типам областей, которые ими генерируются и которые (типы), в свою очередь, имеют отношение к методам размещения по умолчанию. Инлайн-области (например, области глифов) объединяются в строки, а направление, в котором они упаковываются, это inline-progression-direction (направление инлайн-прогрессии).
Строки, тип блок-области, упаковываются в направлении, перпендикулярном к inline-progression-direction, называемом block-progression-direction. См. в разделе [4 Модель Области] детальное описание типов областей и направлений.

В Западных системах письма block-progression-direction  - "top-to-bottom/сверху-вниз", а inline-progression-direction - "left-to-right/слева-направо".
В данной спецификации рассматриваются также другие виды письма и вводятся термины "block" and "inline" вместо использования абсолютных обозначений типа "vertical" и "horizontal".
Также эта спецификация пытается дать relatively-specified/относительно-специфицированные направления ("before" и "after" в block-progression-direction, "start" и "end" - в inline-progression-direction) там, где это необходимо: или в дополнение, или вместо абсолютно-специфицированных направлений, таких как "top", "bottom", "left" и "right". Они интерпретируются в соответствии со значением свойства writing-mode.

Центральным в этой модели форматирования является очистка. Это компьютерный процесс, завершающий спецификацию свойств, базируясь на значениях атрибутов в результирующем дереве XML. Хотя результирующе дерево XML и дерево ОФ имеют очень похожие структуры, лучше будет представлять их как концептуально отдельные объекты.

Очистка включает:

  • передачу различных наследуемых значений свойств (неявных и со значением атрибута "inherit"),

  • вычисление выражений в спецификациях значения свойства до получения реальных значений, которые используются затем для определения значений свойств,

  • конвертацию относительных чисел в абсолютные,

  • конструирование сложных свойств из более чем одного атрибута.

Некоторые из этих операций (особенно вычисление выражений) зависят от информации о дереве области. Поэтому очистка не обязательно является последовательно упорядоченной процедурой, но может включать опережение, возвратное сканирование или сращивание с другими процессами в форматировщике.
Очистка более полно описана в разделе [5 Очистка/Разрешение Свойств].

Резюмируя, форматирование продолжается процессом конструирования дерева областей (содержащего области и их уточнения), которое удовлетворяет ограничениям, базирующимся на информации из результирующего дерева XML (содержащего узлы элементов и их атрибуты).
Концептуально - в процессе конструирования дерева объектов форматирования имеются промежуточные этапы (содержащие объекты форматирования и их свойства) и очистка; эти этапы могут послойно выполняться в ходе конструирования дерева областей.


3.1 Концептуальная процедура

Данный подраздел содержит концептуальное описание того, как работает форматирование. Эта концептуальная процедура не обязывает использовать определённые алгоритмы или структуры данных, пока результат подчиняется подразумеваемым ограничениям.

Процедура обрабатывает объекты форматирования. Каждый объект в ходе обработки может инициировать процесс обработки других объектов. Пока объекты иерархически структурированы, обработка не проводится; обработка данного объекта похожа скорее на подпрограмму, которая может передавать управление другим процессам, принимая управление вновь после завершения работы подпрограммы.
Процедура начинается установкой процесса обработки объекта форматирования fo:root.

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

Некоторые объекты форматирования (ОФ) сами не генерируют областей; вместо этого эти ОФ просто возвращают области, возвращённые им их потомками. Альтернативно, ОФ может продолжить генерировать (возвращать) области, базируясь на информации, полученной при форматировании своих собственных потомков; например, ОФ fo:page-sequence будет продолжать генерировать страницы, пока содержит поток необработанных потомков.

Области, возвращённые в ОФ fo:root, это области page-viewport-areas, и они просто размещаются как потомки корневой области дерева в том порядке, в котором они возвращаются, без геометрического упорядочивания.

Как правило порядок дерева областей параллелен порядку дерева ОФ. То есть, если один ОФ предшествует другому в пересечении depth-first дерева ОФ, и ни один не содержит другого, тогда все области, генерируемые первым, будут предшествовать все областям, генерируемым вторым, в пересечении depth-first дерева областей, если не специфицировано иное. Типичными исключениями из этого правила являются такие объекты, как side floats/боковые поплавки, before floats/до-поплавки и footnotes/сноски.

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

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

 

Назад

Оглавление

В начало страницы

Вперёд



Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать