• grouping-separator
(необязательный). Определяет символ, разделяющий группы разрядов. По умолчанию «,».Устанавливается в символ;
• infinity
(необязательный). Задает строку, обозначающую положительную бесконечность. По умолчанию «Infinity» (бесконечность). Устанавливается в строку;
• minus-sign
(необязательный). Определяет символ, представляющий знак минуса. По умолчанию «-». Устанавливается в символ;
• NaN
(необязательный). Определяет строку, представляющую значение «Not a Number» (не число). По умолчанию «NaN». Устанавливается в строку;
• percent
(необязательный). Определяет символ, представляющий знак процента. По умолчанию «%». Устанавливается в символ;
• per-mille
(необязательный). Определяет символ, представляющий знак промилле, то есть тысячных долей. По умолчанию «‰». Устанавливается в символ;
• zero-digit
(необязательный). Определяет символ для использования в форматирующих строках для указания лидирующего или завершающего нуля. По умолчанию «0». Устанавливается в символ;
• digit
(необязательный). Определяет символ для использования в форматирующих строках для указания цифры. По умолчанию «0». Устанавливается в символ;
• pattern-separator
(необязательный). Определяет символ, разделяющий образцы для положительных и отрицательных чисел. По умолчанию «;». Устанавливается в символ.
Этот элемент — верхнего уровня, и он всегда пуст. При помощи этого элемента можно устанавливать форматирующие символы для функции format-number
. Элемент xsl:decimal-format
, у которого не установлен атрибут
name, становится десятичным форматом по умолчанию. Наличие более одного элемента xsl:decimal-format
по умолчанию или нескольких элементов xsl:decimal-format
с одним и тем же именем является ошибкой. В следующем примере я форматирую числа в planets.xml
при помощи европейского формата числа, а именно — я использую запятую вместо десятичной точки для разделения целой и дробной частей, и точку вместо запятой для разделения групп разрядов. Для этого мне нужно только задать новое форматирование при помощи и затем применить его в format-number
:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Formatted Planets Table
The Formatted Planets Table
|
|
|
|
Вот результирующий документ:
The Formatted Planets Table
The Formatted Planets Table
Name |
Mass |
Radius |
Day |
Mercury |
0,055 (Earth = 1) |
1,516 miles |
58,65 days |
Venus |
0,815 (Earth = 1) |
3,716 miles |
116,75 days |
Earth |
1 (Earth = 1) |
2,107 miles |
1 days |
Этот документ показан на рис. 8.3.
Рис. 8.3.Задание десятичных форматов
Вот и все — теперь вы можете задавать параметры форматирования для функции format-number
.
Новые функции в XSLT 2.0 и XPath 2.0
В XSLT 2.0 и XPath 2.0 планируется включить весьма много функций. В частности, для XSLT 2.0 внесены в план следующие положения:
• должны быть включены функции, которые могут работать с QName
, для того, чтобы можно было применить объявления пространств имен из области видимости;
• должны быть добавлены функции форматирования даты для поддержки схемы XML;
• должна быть включена функция для преобразования относительных идентификаторов URI в абсолютные;
• должны быть включены функции, упрощающие группировку. В XSLT 2.0 должно быть возможно группировать узлы на основе их строковых значений.
В XPath 2.0 в отношении функций планируются следующие изменения:
• должен быть расширен набор агрегирующих функций — например, включены функции минимума и максимума;
• для наборов узлов должны быть реализованы функции пересечения и разности;
• должна быть включена поддержка дополнительных строковых функций, таких как функции для замены строк, заполнения символами и преобразований регистров в строках;
• должны быть включены агрегирующие функции для работы с коллекциями такими как наборы узлов;
• должны быть определены функции для работы со стандартными типами схемы XML.
На этом мы заканчиваем рассмотрение функций XSLT и XPath, применяемых при преобразованиях. В главе 9 мы изучим переменные, параметры и другие специальные темы.
Глава 9
Именованные шаблоны, параметры и переменные
В этой главе рассматривается ряд специальных возможностей XSLT, а именно шаблоны, параметры таблиц стилей и переменные. Все эти темы связаны друг с другом: параметры используются в именованных шаблонах, а переменные и параметры — это практически одно и то же, они различаются только способом создания.
Читать дальше