XML - статьи



              

/A>Алгоритм вычисления выражений XPath, содержащих обратные оси - часть 2


Организация вычисления выражений языка XPath с использованием сохраняемых в контексте предков контекстного узла будет основана на специальной реализации осей языка XPath. Реализация обратных осей (таких как parent, ancestor, preceding и др.) будет обеспечиваться благодаря наличию в контексте предварительно сохраненных там узлов – предков контекстного узла. Для того, чтобы необходимые для обратных осей предки контекстного узла были сохранены в контексте, нам также потребуется специальная реализация и тех осей, которые осуществляют спуск по дереву документа . Оси, осуществляющие спуск по дереву документа (например, оси child, descendant), должны отвечать также за то, чтобы сохранять в контексте узлы, которые были пройдены в процессе спуска (и которые станут предками для контекстного узла на последующих шагах доступа). Доказанное выше утверждение гарантирует, что предки контекстного узла всегда могут быть сохранены в контексте, до того как потребуется их использование.

При оптимизации вычисления обратных осей XPath за счет хранения в контексте предков контекстного узла желательно также добиться минимальности хранимой в контексте дополнительной информации. Мы будем стремиться к тому, чтобы хранить в контексте только тех предков контекстного узла, которые действительно потребуются при дальнейшем вычислении выражения XPath, и не включать в контекст остальных предков. Утверждается, что желаемого результата можно добиться за счет статического анализа выражения XPath. Под фазой статического анализа понимается такая фаза обработки, на которой выражение XPath анализируется без учета входных данных; в отличие от следующей за ней фазы динамического вычисления, когда выражение вычисляется по отношению к конкретному XML-документу.




Содержание  Назад  Вперед