Вход/Регистрация
Технология XSLT
вернуться

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

Шрифт:

Приложение 3. Краткий справочник функций XSLT и XPath

Третье приложение содержит справочную информацию о функциях базовой библиотеки языка XPath и функциях языка XSLT, которые дополняют эту библиотеку.

Приложение 4. Интернет-ресурсы, посвященные XSLT

В четвертом приложении приведен небольшой список полезных интернет-ресурсов, так или иначе связанных с XSLT. Сюда относятся списки часто задаваемых вопросов, уроки по XSLT, архивы библиотек и инструментов, официальные спецификации Консорциума W3 и так далее.

Соглашения

Расширенная форма Бэкуса-Наура

Несмотря на то, что эта книга главным образом посвящена языку XSLT, в ней также описываются расширяемый язык разметки XML и язык обращения к частям ХМL-документов, называемый XPath. Подробное и точное описание этих языков невозможно без четких определений синтаксических конструкций.

Для описания синтаксиса рассматриваемых языков мы будем использовать расширенные формы Бэкуса-Наура (РФБН, или, по-английски, Extended Backus-Naur Form, EBNF). EBNF — это современная модификация методологии, которая впервые была использована для описания языка программирования Алгол-60. За прошедшие десятилетия формы Бэкуса-Наура были доработаны множеством авторов и сейчас в расширенном виде используются для описания ряда языков программирования различной степени сложности. EBNF-нотация также широко используется в технических рекомендациях Консорциума W3, которые фактически и являются стандартами рассматриваемых нами языков.

Нотация EBNF определяет язык как набор синтаксических правил, определяющих нетерминалы (конструкции языка) через терминалы (символы языка), а также другие нетерминалы. Правило состоит из двух частей, разделенных символами "

::=
":

конструкция ::= определение конструкции

В левой части правила стоит терминал определяемой конструкции, в правой — выражение, определяющее эту конструкцию. Правила EBNF также иногда называют продукциями, и мы тоже часто будем использовать этот термин, чтобы не путать эти правила с шаблонными правилами преобразований, которые главным образом и составляют преобразования в языке XSLT.

Терминалы, которые могут быть как отдельными символами, так и их последовательностями, определяются в нотации EBNF следующим образом:

□ 

#xN
, где
N
— шестнадцатеричный код, соответствует символу Unicode с кодом
N
. Например,
#х410
соответствует символу
А
кириллического алфавита (см. раздел "Использование Unicode" главы 1).

□ 

[a-zA-z]
,
[#xN– #xN]
— соответствует символу указанного интервала. К примеру,
[a-f]
соответствует любому из символов
а
,
b
,
с
,
d
,
e
,
f
.

□ 

[abc]
,
[#xN#xN#xN]
— соответствует любому из перечисленных символов. Например,
[#х410#х411#х412]
соответствует любому из символов
А
,
Б
,
В
. Символьные интервалы и перечисления могут использоваться совместно в одних квадратных скобках.

□ 

[^a-z]
,
[^#хN– #xN]
— соответствует любому символу, кроме символов указанного интервала. К примеру,
[^#х410-#x42F]
соответствует любому символу, кроме заглавных букв русского алфавита.

□ 

[^abc]
,
[^#xN#xN#xN]
— соответствует любому, кроме перечисленных символов. Например,
[^xyz]
соответствует любому символу, кроме символов
x
, 
y
и
z
. Аналогично разрешенным интервалам и последовательностям символов, запрещенные интервалы и последовательности также могут использоваться совместно.

□ 

"строка"
— соответствует строке, которая приведена в двойных кавычках. Например,
"stylesheet"
соответствует строке
stylesheet
.

□ 

'строка'
— соответствует строке, которая приведена в одинарных кавычках. Например,
'template'
соответствует строке
template
.

Терминалы могут использоваться совместно с нетерминальными конструкциями в более сложных выражениях.

□ 

A?
означает, что выражение
A
необязательно и может быть пропущено.

□ 

A | B
соответствует либо выражению
A
, либо выражению
B
, но не им обоим одновременно (строгое "или"). Выражения такого вида называют иначе выбором.

□ 

A B
означает, что за выражением
A
следует выражение
B
. Последовательность имеет приоритет по сравнению с выбором —
A B | C D
означает последовательность выражений
A
и
B
или последовательность выражений
C
и
D
.

□ 

A - B
соответствует строке, которая соответствует выражению
A
, но не выражению
B
.

□ 

A+
означает последовательность из одного или более выражения
A
. Оператор "
+
" в EBNF старше оператора выбора,
A+ | B+
означает последовательность из одного или более выражения
A
или последовательность из одного или более выражения
B
.

  • Читать дальше
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: