Язык преобразований XSL


Форматирование чисел


Функция: строка format-number(число, строка, строка?)

Функция преобразует свой первый аргумент в строку, используя строку шаблона форматирования, представленную во втором аргументе, и десятичный формат, поименованый в третьем аргументе, либо десятичный формат по умолчанию, если третий аргумент отсутствует. Строка с шаблоном форматирования имеет синтаксис, определенный в JDK 1.1 для класса . Строка шаблона форматирования представлена в локализованной нотации: десятичный формат определяет, какие именно символы в шаблоне имеют специальное значение (за исключением символа кавычки, который не подлежит локализации). Шаблон формата не должен содержать символ денежной единицы (#x00A4), такая возможность была добавлена уже после первой реализации JDK 1.1. Названием десятичного формата должно быть , которое приводится к расширенному имени как описано в главе . Если в стиле отсутствует декларация десятичного формата с заданным , фиксируется ошибка.

Замечание: Разработчики не обязаны использовать именно реализацию JDK 1.1, а сам анализатор не обязательно реализовывать на Java.

Замечание: Чтобы контролировать округление чисел, в стилях могут использоваться другие функции из XPath.

<!-- Category: top-level-element -->

<xsl:decimal-format

  name = qname

  decimal-separator = char

  grouping-separator = char

  infinity = string

  minus-sign = char

  NaN = string

  percent = char



  per-mille = char

  zero-digit = char

  digit = char

  pattern-separator = char />

Элемент xsl:decimal-format декларирует десятичный формат, который управляет интерпретацией шаблона формата, используемого в функции . Если присутствует атрибут name, данный элемент декларирует именованный десятичный формат. В остальных случаях декларируется десятичный формат по умолчанию. Значением атрибута name является , которое приводится к расширенному имени как было описано в главе .
Если десятичный формат по умолчанию или десятичный формат с данным именем, декларируется несколько раз, фиксируется ошибка (даже при различном ). Это можно делать только если каждый раз для всех атрибутов декларированы одни и те же значения (принимая во внимание все значения по умолчанию).

Остальные атрибуты xsl:decimal-format соответствуют методам класса из JDK 1.1. Для каждой пары методов get/set в элементе xsl:decimal-format определен соответствующий атрибут.

Следующие атрибуты задают интерпретацию символов в шаблоне формата, а также указывают символы, которые могут появиться в результате форматирования числа:

decimal-separator задает символ, используемый как десятичная точка, по умолчанию используется символ точки (.)

grouping-separator задает символ, используемый как разделитель при группировке (например, тысяч), по умолчанию используется символ запятой (,)

percent задает символ, используемый как символ процента, по умолчанию используется символ процента (%)

per-mille задает символ, используемый как символ промилле, по умолчанию используется символ промилле из набора Unicode (#x2030)

zero-digit задает символ, используемый как цифра нуль, по умолчанию используется цифра нуль (0)



Следующие атрибуты задают интерпретацию символов в шаблоне формата:

digit задает символ, используемый в шаблоне формата для обозначения цифр, по умолчанию таковым является символ решетки (#)

pattern-separator задает символ, используемый для разделения положительной и отрицательной частей в шаблоне, по умолчанию используется символ точки с запятой (;)



Следующие атрибуты определяют символы или строки, которые могут появиться в результате форматирования числа:

infinity задает строку, используемую для обозначения бесконечности, по умолчанию используется строка Infinity

NaN задает строку, используемую для представления значения NaN, по умолчанию используется строка NaN

minus-sign задает символ, используемый по умолчанию как знак "минус", по умолчанию используется символ тире-минус (-, #x2D)




Содержание раздела