Семантика паттернов
Семантика паттернов
Остановимся подробнее на вопросе — что же означает "соответствие узла некоторому паттерну".
Прежде всего, заметим, что любой паттерн является также и XPath-выражением. Тогда строгое определение соответствия узла паттерну можно дать следующим образом.
Узел X соответствует паттерну P тогда и только тогда, когда существует такой узел Y, принадлежащий оси ancestor-or-self узла X, что множество, получаемое в результате вычисления выражения P в контексте узла Y будет содержать узел X.
Пример
Рассмотрим это определение на примере паттерна body//а. Строго говоря, узел будет соответствовать этому паттерну, если во множестве его предков (плюс сам узел) найдется такой узел, что множество body//а, вычисленное в его контексте, будет содержать проверяемый узел. На практике первые два элемента а приведенного ниже документа соответствуют этому паттерну, потому что существует элемент html, содержащий элемент body, потомками которого эти элементы а являются.
Листинг 6.2
<html>
<body>
<a>
<!-- Соответствует паттерну body//a -->
</a>
<p>
<a>
<!-- Соответствует паттерну body//a -->
</a>
</p>
</body>
<а>
<!-- Не соответствует паттерну body//а -->
</а>
</html>
Существует также и более простое определение соответствия. Узел X соответствует паттерну P тогда и только тогда, когда X принадлежит множеству //P. В приведенном выше примере паттерну body//а соответствуют все узлы множества //body//а.
Эти определения эквивалентны. На практике следует пользоваться тем, которое кажется более понятным.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
5. Семантика
5. Семантика HTML не дает нам огромного количества элементов для работы. Тот ассортимент, что у нас есть, скорее похож на ассортимент магазинчика на углу, а не гипермаркета.У нас есть абзацы, списки и заголовки, но нет событий, репортажей и рецептов. HTML дает нам элемент,
Волшебство сеомантики, или Семантика в SEO
Волшебство сеомантики, или Семантика в SEO Даже тот, кого оптимизация затрагивала хотя бы по касательной, знаком с термином «семантическое ядро», а о профессионалах и говорить нечего. Однако с годами это удачное словосочетание закаменело, из него, как из карстовой породы,
Семантика вызова
Семантика вызова Вызов локальной процедуры однозначно приводит к ее выполнению, после чего управление возвращается в головную программу. Иначе дело обстоит при вызове удаленной процедуры. Невозможно установить, когда конкретно будет выполняться процедура, будет ли она
Семантика сигналов POSIX
Семантика сигналов POSIX Сведем воедино следующие моменты, относящиеся к обработке сигналов в системе, совместимой с POSIX.? Однажды установленный обработчик сигналов остается установленным (в более ранних системах обработчик сигналов удалялся каждый раз по
Семантика параметров
Семантика параметров До этого мы имели дело с синтаксисом передачи параметров и получили механизм синтаксического анализа для его обработки. Сейчас мы должны рассмотреть семантику, т.е. действия, которые должны быть предприняты когда мы столкнемся с параметрами. Это
16.6. Семантика вызовов
16.6. Семантика вызовов В листинге 15.24 мы привели пример клиента интерфейса дверей, повторно отсылавшего запрос на сервер при прерывании вызова door_call перехватываемым сигналом. Затем мы показали, что при этом процедура сервера вызывается дважды, а не однократно. Потом мы
4.1. Синтаксис и семантика
4.1. Синтаксис и семантика Прежде чем двигаться дальше, введем базовые определения. Языком мы будем называть множество строк (в большинстве случаев это будет бесконечное множество). Каждое выражение (в некоторых источниках вместо "выражение" употребляются термины
1.2. Базовый синтаксис и семантика Ruby
1.2. Базовый синтаксис и семантика Ruby Выше мы отметили, что Ruby — настоящий динамический объектно-ориентированный язык.Прежде чем переходить к обзору синтаксиса и семантики, упомянем некоторые другие его особенности.Ruby — прагматичный (agile) язык. Он пластичен и поощряет
18.5.2. Специальная семантика инициализации
18.5.2. Специальная семантика инициализации Наследование, в котором присутствует один или несколько виртуальных базовых классов, требует специальной семантики инициализации. Взгляните еще раз на реализации Bear и Raccoon в предыдущем разделе. Видите ли вы, какая проблема
Глава 2 Синтаксис и семантика Пролог-программ
Глава 2 Синтаксис и семантика Пролог-программ В данной главе дается систематическое изложение синтаксиса и семантики основных понятий Пролога, а также вводятся структурные объекты данных. Рассматриваются следующие темы:• простые объекты данных (атомы, числа,
Семантика использования псевдонимов
Семантика использования псевдонимов Неприятным последствием применения псевдонимов (и статических, и динамических) является воздействие операций на сущности, даже не упоминаемые в операциях.Модель вычислений без псевдонимов обладает приятным свойством: приведенный
Инварианты класса и семантика ссылок
Инварианты класса и семантика ссылок ОО-модель, разрабатываемая до сих пор, включала два частично не связанных аспекта, оба из которых полезны:[x]. Понятие инварианта класса, введенное в этой лекции.[x]. Гибкая модель периода выполнения, детально рассмотренная в начальных
Фиксированная семантика компонентов copy, clone и equality
Фиксированная семантика компонентов copy, clone и equality Чаще всего замороженные (frozen) компоненты применяются в операциях общего назначения, подобных тем, что входили в состав класса GENERAL. Так, есть две версии базовой процедуры копирования:copy, frozen standard_copy (other: ...) is-- скопировать