XSLT - Стивен Холзнер
Шрифт:
Интервал:
Закладка:
• character. Задает вставляемый символ Unicode. Устанавливается в <character>;
• color. Задает цвет переднего фона текста элемента. Устанавливается в <color> | inherit;
• column-count. Задает число столбцов в области. Устанавливается в <number> | inherit;
• column-number. Устанавливает номер столбца для ячеек таблицы. Устанавливается в <number>;
• column-width. Задает ширину такого объекта, как внешняя графика. Устанавливается в auto | scale-to-fit | <length> | <percentage> | inherit;
• float. Определяет, будет ли прямоугольник прижат влево, вправо или вообще не будет прижат. Устанавливается в before | start | end | left | right | none | inherit;
• flow-name. Задает имя потока (flow). Устанавливается в <name>;
• font. Свойство для быстрого задания одновременно свойств font-style, font-variant, font-weight, font-size, line-height и font-family. Устанавливается в [ [ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height>]? <font- family> ] | caption | icon | menu | message-box | small-caption | status-bar | inherit;
• font-family. Задает список имен семейств шрифтов и/или обобщенных имен семейств в порядке предпочтения. Устанавливается в [[ <family-name> | <generic-family> ],]* <family-name> | <generic-family>] | inherit;
• font-size. Задает размер шрифта. Устанавливается в <absolute-size> | <relative-size> | <length> | <percentage> | inherit;
• font-style. Задает стиль шрифта. Устанавливается в normal | italic | oblique | backslant | inherit;
• font-variant. Выбирает шрифты, имеющие строчные и прописные буквы (bicameral fonts). Устанавливается в normal | small-caps | inherit;
• font-weight. Задает насыщенность шрифта. Устанавливается в normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit;
• format. Формат XSLT. Устанавливается в <string>;
• grouping-separator. Разделитель групп разрядов формата XSLT. Устанавливается в <character>;
• grouping-size. Размер группы формата XSLT. Устанавливается в <number>;
• height. Задает высоту содержимого прямоугольников, создающихся элементами уровня блока и замещенными элементами. Устанавливается в <length> | <percentage> | auto | inherit;
• initial-page-number. Задает начальный номер страницы. Устанавливается в auto | auto-odd | auto-even | <number> | inherit;
• left. Определяет, насколько левый край содержимого прямоугольника (box) смещен вправо от левой границы содержащего прямоугольник блока. Устанавливается в: <length> | <percentage> | auto | inherit;
• linefeed-treatment. Определяет способ обработки символов перевода строки. Устанавливается в ignore | preserve | treat-as-space | treat-as-zero-width-space | inherit;
• line-height. Задает минимальную высоту каждого созданного встроенного прямоугольника. Устанавливается в normal | <length> | <number> | <percentage> | <space> | inherit;
• margin. Свойство для быстрого задания одновременно свойств полей margin-top, margin-right, margin-bottom и margin-left. Устанавливается в <margin-width> {1,4} | inherit;
• margin-bottom. Задает нижнее поле прямоугольника. Устанавливается в <margin-width> | inherit;
• margin-left. Задает левое поле прямоугольника. Устанавливается в <margin-width> | inherit;
• margin-right. Задает правое поле прямоугольника. Устанавливается в <margin-width> | inherit;
• margin-top. Задает верхнее поле прямоугольника. Устанавливается в <margin-width> | inherit;
• master-name. Задает или выбирает шаблон (master). Устанавливается в <name>;
• number-columns-spanned. Задает число столбцов, занимаемых ячейкой таблицы. Устанавливается в <number>;
• number-rows-spanned. Задает число строк, занимаемых ячейкой таблицы. Устанавливается в <number>;
• page-break-after. То же, что и свойство CSS2 с тем же именем. Устанавливается в auto | always | avoid | left | right | inherit;
• page-break-before. To же, что и свойство CSS2 с тем же именем. Устанавливается в auto | always | avoid | left | right | inherit;
• page-height. Задает высоту страницы. Устанавливается в auto | indefinite | <length> | inherit;
• page-width. Задает ширину страницы. Устанавливается в auto | indefinite | <length> | inherit;
• position. Задает используемую схему размещения. Устанавливается в static | relative | absolute | fixed | inherit;
• relative-position. То же, что и свойство CSS2 с тем же именем. Устанавливается в static | relative | inherit;
• right. Определяет, насколько край содержимого прямоугольника (box) смещен влево от правой границы содержащего прямоугольник блока. Устанавливается в <length> | <percentage> | auto | inherit;
• score-spaces. Определяет, следует ли применять свойство text-decoration к пробелам. Устанавливается в true | false | inherit;
• space-treatment. Определяет способ обработки пробелов и других символов-разделителей, за исключением символов перевода строки. Устанавливается в ignore | preserve | ignore-if-before-linefeed | ignore-if-after-linefeed | ignore-if-surrounding-linefeed | inherit;
• span. Определяет, нужно ли поместить объект уровня блока в текущий столбец или растянуть его на все столбцы в области. Устанавливается в none | all | inherit;
• src. Задает ссылку URI, определяющую внешний ресурс. Устанавливается в <uri-specification> | inherit;
• start-indent. Определяет расстояние от начального края прямоугольника содержимого области, содержащей блок, до начального края прямоугольника содержимого области этого блока. Устанавливается в <length> | inherit;
• starts-row. Определяет, начинает ли эта ячейка строку. Устанавливается в true | false;
• text-align. Определяет способ выравнивания встроенного содержимого блока. Устанавливается в start | center | end | justify | inside | outside | left | right | <string> | inherit;
• text-decoration. Задает параметры оформления, добавляемого тексту элемента. Устанавливается в none | [ [ underline | no-underline] || [ overline | no-overline ] || [ line-through | no-line-through ] || [ blink | no-blink ] ] | inherit;
• text-indent. Определяет выравнивание первой строки текста в блоке. Устанавливается в <length> | <percentage> | inherit;
• text-shadow. Задает разделенный запятыми список теневых эффектов, которые нужно применить к тексту элемента. Устанавливается в none | <color> || <length> <length> <length>? ,]* <color> || <length> <length> <length>?] | inherit;
• top. Определяет, насколько край содержимого смещен ниже верхнего края содержащего его блока. Устанавливается в <length> | <percentage> | auto | inherit;
• vertical-align. Определяет вертикальное расположение. Устанавливается в baseline | middle | sub | super | text-top | text-bottom [ <percentage> | <length> | top | bottom | inherit;
• visibility. Определяет, будут ли отображены генерируемые элементом прямоугольники. Устанавливается в visible | hidden | collapse | inherit;
• white-space. Определяет способ обработки символов-разделителей (white-space) внутри элемента. Устанавливается в normal | pre | nowrap | inherit;
• white-space-collapse. Задает способ обработки последовательных символов-разделителей. Устанавливается в false | true | inherit;
• width. Задает ширину содержимого прямоугольников, созданных элементами уровня блока и замененными элементами. Устанавливается в <length> | <percentage> | auto | inherit;
• wrap-option. Определяет наличие оболочки строк форматирующего объекта. Устанавливается в no-wrap | wrap | inherit.
Не все свойства применимы ко всем объектам XSL-FO. В этой и следующей главах я буду явно перечислять свойства, применимые к используемым мной объектам. Заметьте также, что пока что ни в одном процессоре XSL-FO не реализованы все эти свойства.
Мы вкратце рассмотрели структуру XSL-FO, теперь пора перейти к практике: сейчас мы подробно рассмотрим работу примера.
Форматирование документа XML
Чтобы посмотреть, как XSL-FO может форматировать данные XML, я воспользуюсь planets.xml (листинг 11.1).
Листинг 11.1. planets.xml<?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="planets.xsl"?>
<PLANETS>
<PLANET COLOR="RED">
<NAME>Mercury</NAME>
<MASS UNITS="(Earth = 1)">.0553</MASS>
<DAY UNITS="days">58.65</DAY>
<RADIUS UNITS="miles">1516</RADIUS>
<DENSITY UNITS="(Earth = 1)">.983</DENSITY>
<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->
</PLANET>
<PLANET COLOR="WHITE">
<NAME>Venus</NAME>
<MASS UNITS="(Earth = 1)">.815</MASS>
<DAY UNITS="days">116.75</DAY>
<RADIUS UNITS="miles">3716</RADIUS>
<DENSITY UNITS="(Earth = 1)">.943</DENSITY>
<DISTANCE UNITS="million miles">66.8</DISTANCE><!--B перигелии-->
</PLANET>
<PLANET COLOR="BLUE">
<NAME>Earth</NAME>
<MASS UNITS="(Earth = 1)">1</MASS>
<DAY UNITS="days">1</DAY>