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∞'
Определение десятичного формата:
Примеры функций format-number
:
format-number(123456789, '#', 'format2')
→ '012345678'
format-number(123456789, '#')
→ '123456780'
Определение десятичного формата:
Примеры функций format-number
:
format-number(123456789, '#', 'format3')
→ '23456789:'
format-number(12345.06789, '#.#####', 'format3')
→ '23456.1789:'
Десятичный формат, определяемый элементом xsl:decimal-format
, в отличие от многих других элементов не может переопределяться в преобразованиях со старшим порядком импорта. Элементы xsl:decimal-format
должны определять десятичные форматы с различными именами (за исключением тех случаев, когда значения их атрибутов полностью совпадают).
Контроль вывода документа
Несмотря на то, что XSLT-процессоры должны лишь только преобразовывать логические модели документов, организованные в виде деревьев, многие из них имеют также возможность выдавать результат преобразования в виде последовательности символов.
Синтаксис этого элемента приведен ниже:
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"
.
Пример
Для документа
XSL Transformations (XSLT)
Version 1.0
Методом вывода по умолчанию будет "html"
, а для документа
XSL Transformations (XSLT)
Version 1.0
будет выбран метод вывода "xml"
.
Помимо главного атрибута method
, элемент xsl:output
имеет следующие атрибуты:
□ version
(версия) — определяет версию языка выходящего документа;
□ indent
(индентация) — определяет, должен ли процессор добавлять пробельные символы для более наглядного форматирования документа;
□ encoding
(кодировка) — определяет, в какой кодировке должен быть выведен документ. Значение этого атрибута не зависит от регистра символов, то есть значения encoding="utf-8"
и encoding="UtF-8"
будут эквивалентны. В атрибуте encoding
можно использовать только печатаемые символы ASCII, то есть символы интервала от #x21
до #x7e
. Значением encoding
должно быть название набора символов, определенное в стандартах IANA (Internet Assigned Numbers Authority) или RFC2278. В противном случае, атрибут должен начинаться символами " x-
";
□ media-type
— определяет тип содержимого MIME выходящего документа;
□ doctype-system
— определяет системный идентификатор, который должен быть использован в декларации типа документа (DTD);
□ doctype-public
— определяет публичный идентификатор, который должен быть использован в декларации типа документа (DTD);
□ omit-xml-declaration
(пропустить декларацию XML) — определяет, нужно ли включать декларацию XML в выходящий документ или нет. Значением этого атрибута должно быть либо "yes"
(пропустить декларацию), либо "no"
(включить декларацию в выходящий документ);
□ standalone
(самостоятельный документ) — определяет, должен ли процессор выводить указание на самостоятельность документа (standalone declaration). Значением этого атрибута может быть либо "yes"
(выводить указание), либо "no"
(не выводить указание на самостоятельность);
Читать дальше