Переменной называется изменяемое значение в памяти, доступ к которому осуществляется по имени. Имя требуется для идентификации и последующего использования того значения, которое оно представляет. Конкретные возможности переменной зависят от тега LXP.
В LXP также реализована особая разновидность структуры данных, называемая объектом. Объект LXP обычно используется для логического объединения нескольких взаимосвязанных переменных под общим именем. Конкретная переменная, к которой вы обращаетесь в объекте LXP, определяется либо уточняющим числовым или текстовым индексом в квадратных скобках (например, ехапр1е[0]), либо именем переменной через точку (например, for.count).
Концепция объектов LXP напоминает программные концепции массивов и объектов в традиционных языках программирования, хотя объекты LXP устроены гораздо проще. В сущности, различия между переменными и объектами сводятся к простому синтаксису ссылок на значения. Ссылка на переменную представляет собой простое имя (например, my_value), а ссылка на объект состоит из имени и уточнения (например, my_va1ue[0], my_value[l] или my_value.s1ze).
С точки зрения программиста переменные и объекты имеют глобальную область видимости. Это означает, что после присваивания значения переменная или объект становятся доступными во всем документе, а также во вложенных документах.
Правила формирования имен
Имена переменных LXP состоят из следующих символов:
Полные имена объектов LXP состоят из следующих символов:
Хотя для индексации больше характерны числа — поскольку они используются и массивах CGI (см. подраздел «Массивы CGI» в этом разделе), в квадратных скобках за именем объекта могут следовать любые допустимые символы (например, pseudo_array [example]).
В процессе лексического разбора атрибутов тега LXP некоторые специальные символы интерпретируются как признак подстановки значения переменной прямо в имя или значение атрибута (дополнительная информация приведена в разделе «Лексический разбор тегов»). К числу этих символов относится знак $ для переменных и знак @ для объектов.
Обязательно поймите очень важное обстоятельство: хотя специальные символы иногда применяются для подстановки значений переменных в атрибуты тегов, они не являются частью значения переменной и не заменяют литеральное имя переменной или объекта в других контекстах.