Чтение онлайн

ЖАНРЫ

Технология XSLT

Валиков Алексей Н.

Шрифт:

□ 

digit
— определяет символ, который используется в образце форматирования для определения позиции необязательного символа. Значением по умолчанию является символ "
#
". Этот символ распознается как форматирующий символ необязательной цифры. Он не включается в строковое представление числа;

□ 

pattern-separator
— определяет символ, который используется в образце форматирования для разделения положительного и отрицательного форматов числа. Он не включается в строковое представление числа. Значением этого атрибута по умолчанию является символ "
;
";

□ 

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

□ 

NaN
— задает строку, которая будет представлять не-числа. Значением по умолчанию является строка "
NaN
";

□ 

minus-sign
— задает символ, который будет использоваться для обозначения отрицательных чисел. Значением по умолчанию является символ "
", код
#x2D
.

Элемент

xsl:decimal-format
не имеет смысла без функции
format-number
. Все, на что влияют его атрибуты — это формат, который будет использоваться при преобразовании чисел в строку функцией
format-number
.

Примеры

Определение десятичного формата:

<xsl:decimal-format

 name="format1"

 decimal-separator=","

 minus-sign="N"

 grouping-separator=":"

 infinity="&#x221E;"

 NaN="not-a-number"

 percent="%"

 digit="$"

 pattern-separator="|"/>

Примеры функций

format-number
:

format-number(123456.78, '$,0000', 'format1)
'123456,7800'

format-number(-123456.78, '$,00$$', 'format1')
'N123456,78'

format-number(123456.78, '$,0000|$,0000-', 'format1')
'123456,7800'

format-number(-123456.78, '$,00001$,0000-', 'format1')
'123456,7800-'

format-number(-123456.78, '000:000:000,00$$', 'format1')
'N000:123:456,78'

format-number('zero', '000:000:000,00$$', 'format1') -> 'not-a-number'

format-number(1 div 0, '$,$', 'format1')
'∞'

format-number(-1 div 0, '$,$', 'format1')
'N∞'

Определение десятичного формата:

<xsl:decimal-format name="format2" zero-digit="/"/>

Примеры функций

format-number
:

format-number(123456789, '#', 'format2')
'012345678'

format-number(123456789, '#')
'123456780'

Определение десятичного формата:

<xsl:decimal-format name="format3" zero-digit="1"/>

Примеры

функций
format-number
:

format-number(123456789, '#', 'format3')
'23456789:'

format-number(12345.06789, '#.#####', 'format3')
'23456.1789:'

Десятичный формат, определяемый элементом

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

Контроль вывода документа

Несмотря на то, что XSLT-процессоры должны лишь только преобразовывать логические модели документов, организованные в виде деревьев, многие из них имеют также возможность выдавать результат преобразования в виде последовательности символов.

Элемент xsl:output

Синтаксис этого элемента приведен ниже:

<xsl:output

 method = "xml" | "html" | "text" | "имя"

 version = "токен"

 encoding = "строка"

 omit-xml-declaration = "yes" | "no"

 standalone = "yes" | "no"

 doctype-public = "строка"

 doctype-system = "строка"

 cdata-section-elements = "имена"

 indent = "yes" | "no"

 media-type = "строка"/>

Элемент верхнего уровня

xsl:output
позволяет указывать, каким образом должно быть выведено результирующее дерево.

Главным атрибутом элемента

xsl:output
является атрибут
method
, который определяет, какой метод должен использоваться для вывода документа. Значением этого атрибута может быть любое имя, но при этом техническая рекомендация XSLT определяет только три стандартных метода вывода —
"xml"
,
"html"
и
"text"
. В том случае, если процессор поддерживает нестандартный метод вывода, его реализация полностью зависит от производителя.

Если в преобразовании не определен элемент

xsl:output
или в нем не указан атрибут
method
, метод преобразования выбирается по умолчанию исходя из следующих условий.

□ Если корень выходящего документа имеет дочерний элемент с локальным именем "

html
" (в любом регистре символов), которому предшествуют только пробельные символы, методом вывода по умолчанию становится
"html
".

□ Во всех остальных случаях методом вывода по умолчанию является

"xml"
.

Поделиться с друзьями: