Валиков Алексей Н.
Шрифт:
XPath использует десятичную систему счисления. Наборы цифр, соответствующие правилу
Число в XPath состоит из последовательности цифр, которые могут быть разделены точкой, причем точка может стоять как в начале числа (
Оператору умножения соответствует символ "
Именам переменных, которые используются в XPath, предшествует символ "
Продукция
Другая конструкция,
Имя функции в XPath может быть любым корректным XML-именем за исключением тех имен, которые используются для обозначения типов узлов. Правило
В целях удобочитаемости, в выражениях можно использовать пробельное пространство. Ему соответствует EBNF-правило
Разбор XPath-выражений
Хотя синтаксис языка XPath укладывается в тридцать с небольшим синтаксических правил, реализация интерпретатора XPath-выражений может быть довольно непростой задачей. Для того чтобы хоть как-то упростить ее, в XPath определяются так называемые токены выражения (англ. expression token). Токены — это единицы, из которых состоит выражение. Будучи сами очень простыми, они выстраиваются в более сложные конструкции, образуя, в итоге, выражения.
Примером токенов являются операторы, которым соответствуют продукции
Продукция самого токена выражения имеет вид:
При разборе XPath-выражения оно сначала разбивается на отдельные токены, а затем из них организуются более сложные структуры. При разбивке выражения на отдельные токены, следует всегда выбирать токен с самым длинным строковым представлением.
Помимо этого, для того чтобы грамматика XPath-выражений была однозначной, в спецификации языка приводятся следующие правила разбора.
□ Если текущему токену предшествует другой токен, причем этот предшествующий токен не является символом