К специальным форматирующим символам относятся следующие:
□ символ обязательной позиции цифры (по умолчанию "
0
");
□ символ необязательной позиции цифры (по умолчанию "
#
");
□ символ-разделитель образцов форматирования для положительного и отрицательного числа (по умолчанию "
;
");
□ символ-разделитель целой и дробной части (по умолчанию "
.
");
□ символ процента (по умолчанию "
%
").
Перечислим их продукции:
[NF 8] NFSymbol ::= NFReqDigit
| NFOptDigit
| NFSubpatternDelim
| NFFractionDelim
| NFGroupDelim
| NFPercent
[NF 9] NFReqDigit ::= '0'
[NF 10] NFOptDigit ::= '#'
[NF 11] NFSubpatternDelim ::= ';'
[NF 12] NFFractionDelim ::= '.'
[NF 13] NFGroupDelim ::= ','
[NF 14] NFPercent ::= '%'
Синтаксические правила, которые мы привели выше, пока не являются стандартными. Они корректно передают синтаксис образца форматирования, но являются более строгими, чем определения в документации языка Java.
Элемент xsl:decimal-format
Синтаксис элемента задан конструкцией вида:
<xsl:decimal-format
name="имя"
decimal-separator="символ"
grouping-separator="символ"
infinity="строка"
minus-sign="символ"
NaN="строка"
percent="символ"
per-mille="символ"
zero-digit="символ"
digit="символ"
pattern-sераrator="символ"/>
XSLT
позволяет изменять специальные символы, влияющие на форматирование строки. Именованный набор таких символов и некоторых других указаний называется десятичным форматом и определяется элементом
xsl:decimal-format
. От атрибутов этого элемента зависит, как будут обрабатываться символы образца форматирования и как число будет отображаться на выходе:
Атрибут
name
элемента
xsl:decimal-format
задает расширенное имя десятичного формата. Если имя не указано, это означает, что элемент
xsl:decimal-format
определяет десятичный формат по умолчанию.
Остальные атрибуты контролируют интерпретацию форматирующего образца и вывод строкового представления числа следующим образом:
□
decimal-separator
— задает символ, разделяющий целую и дробную части числа. Значением этого атрибута по умолчанию является символ "
.
", с Unicode-кодом
#x2e
. Атрибут
decimal-separator
рассматривается как специальный символ образца форматирования. Кроме того, он будет использован как разделяющий символ при выводе;
□
grouping-separator
— задает символ, группирующий цифры в целой части записи числа. Такие символы используются, например, для группировки тысяч ("
1,234,567.89
"). Значением по умолчанию является символ "
,
", код
#x2c
.
grouping-separator
рассматривается как специальный символ образца форматирования. Помимо этого, он будет использован как разделяющий символ групп цифр при выводе числа;
□
percent
— задает символ процента. Значением по умолчанию является символ "
%
", код
#x25
. Этот символ будет распознаваться в образце форматирования и использоваться при выводе;
□
per-mille
— задает символ промилле. Значением по умолчанию является символ "
‰
", код
#х2030
. Символ промилле распознается в образце форматирования и используется в строковом представлении числа;
□
zero-digit
— задает символ нуля. Значением по умолчанию является символ "
0
", код
#x30;
. В качестве цифр при отображении числа будут использоваться символ нуля и 9 символов, следующих за ним. Символ нуля распознается в образце форматирования и используется при выводе строкового представления числа;