служит для форматирования чисел с преобразованием их в строки. Она применяется так:
string format-number(number, format, name?)
Функция возвращает форматируемое число в виде строки. Функции передаются число
number
, которое нужно отформатировать, строка форматирования
format
и необязательный параметр-строка
name
. Строка name — это имя
QName
, задающее формат так, как он создается элементом
<xsl:decimal-format>
(который будет рассмотрен в конце этой главы).
Форматирующая строка
format
должна соответствовать соглашениям класса Java
DecimalFormat
.
КЛАСС JAVA DECIMALFORMAT
На момент написания книги документация для класса Java DecimalFormat находится в Интернете по адресу: http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html.
Форматирующая строка (format string) состоит из следующих частей:
•
format-string:= subpattern (;subpattern)?
•
subpattern:= prefix? integer (.fraction)?suffix?
•
prefix:= [#x0..#xFFFD] - specialCharacters
•
suffix:= [#x0..#xFFFD] - specialCharacters
•
integer:= '#'* '0'* '0'
•
fraction:= '0'* '#'*
Далее показаны специальные символы (
specialCharacters
), которые можно использовать в подчиненных образцах,
subpattern
(эти символы можно изменить при помощи элемента
<xsl:decimal-format>
, который будет рассмотрен в конце этой главы):
•
0
— на этом месте всегда должна стоять цифра;
•
#
— цифра, если только это не избыточный лидирующий или завершающий
ноль;
•
.
— разделитель десятичной части;
•
,
— разделитель групп разрядов;
•
;
— разделяет форматы;
•
–
— знак минуса;
•
%
— умножить на 100 и показать как проценты;
•
‰
— умножить на 1000 и показать в тысячных частях;
•
Е
— разделяет мантиссу и экспоненциальную часть;
•
¤
— символ валюты (#xA4);
•
'
— заключает в кавычки специальные символы.
Следующий пример (листинг 8.5) демонстрирует работу функции. Я форматирую значения из