Выбрать главу

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

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

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

Примеры

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

<xsclass="underline" 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∞'

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

<xsclass="underline" decimal-format name="format2" zero-digit="/"/>

Примеры функций format-number:

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

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

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

<xsclass="underline" decimal-format name="format3" zero-digit="1"/>

Примеры функций format-number:

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

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

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

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

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

Элемент xsclass="underline" output

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

<xsclass="underline" 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 = "строка"/>

Элемент верхнего уровня xsclass="underline" output позволяет указывать, каким образом должно быть выведено результирующее дерево.

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

Если в преобразовании не определен элемент xsclass="underline" output или в нем не указан атрибут method, метод преобразования выбирается по умолчанию исходя из следующих условий.

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

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

Пример

Для документа

<HTML>

 <HEAD>

  <TITLE>XSL Transformations (XSLT)</TITLE>

 </HEAD>

 <BODY>

  <H1>XSL Transformations (XSLT)<BR/>Version 1.0</H1>

 </BODY>

</HTML>

Методом вывода по умолчанию будет "html", а для документа

<BODY>

 <H1>XSL Transformations (XSLT)<BR/>Version 1.0</H1>

</BODY>

будет выбран метод вывода "xml".

Помимо главного атрибута method, элемент xsclass="underline" 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" (не выводить указание на самостоятельность);