Читать книги » Книги » Компьютеры и Интернет » Программирование » Алексей Валиков - Технология XSLT

Алексей Валиков - Технология XSLT

Читать книгу Алексей Валиков - Технология XSLT, Алексей Валиков . Жанр: Программирование.
Алексей Валиков - Технология XSLT
Название: Технология XSLT
ISBN: нет данных
Год: -
Дата добавления: 3 июль 2019
Количество просмотров: 199
(18+) Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту для удаления материала.
Читать онлайн

Технология XSLT читать книгу онлайн

Технология XSLT - читать онлайн , автор Алексей Валиков
Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.Для начинающих и профессиональных программистов
1 ... 80 81 82 83 84 ... 115 ВПЕРЕД
Перейти на страницу:

format-number(123456789.0123,'0000,000,00') → '1,23,45,67,89'

Дробная часть числа, представленная нетерминалом NFFraction, начинается символом-разделителем целой и дробной части NFFractionDelim (по умолчанию "."), продолжается последовательностью символов обязательных позиций цифр NFReqDigit и заканчивается последовательностью символов необязательных позиций NFOptDigit:

[NF 6] NFFraction ::= NFFractionDelim NFReqDigit* NFOptDigit*

Примеры

format-number(1234.567,'#.00') → '1234.57'

format-number(1234.567,'#.00#') → '1234.567'

format-number(1234.567,'#.0000') → '1234.5670'

Продукция NFChar, использующаяся при определении префикса (NFPrefix) и суффикса (NFSuffix), может содержать любые неформатирующие символы:

[NF 7] NFChar ::= (Char - NFSymbol)

К специальным форматирующим символам относятся следующие:

□ символ обязательной позиции цифры (по умолчанию "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 символов, следующих за ним. Символ нуля распознается в образце форматирования и используется при выводе строкового представления числа;

□ 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". В том случае, если процессор поддерживает нестандартный метод вывода, его реализация полностью зависит от производителя.

1 ... 80 81 82 83 84 ... 115 ВПЕРЕД
Перейти на страницу:
Комментарии (0)