Грамматика XQuery была отмечена в E-BNF. BNF - это обозначение для контекстно-свободных грамматик, которые менее ограничены, чем обычные грамматики (которые, например, описываются регулярными выражениями). Как правило, в иерархии Хомского .
невозможно преобразовать грамматику в языки
lower
Множество теоретических компьютерных наук, и никто не говорит нам наверняка, что рабочая группа XQuery не просто использовала BNF для удобства и могла бы использовать REGEX для описания грамматики.
Но давайте иметь другую точку зрения. XQuery позволяет загружать произвольный код из других модулей. Если реализация позволяет это, разрешены даже ресурсы HTTP, например. import module namespace functx = "http://www.functx.com" at "http://www.xqueryfunctions.com/xq/functx-1.0-nodoc-2007-01.xq";
(не делайте этого в вашем приложении, зеркально отразите библиотеку functx - загрузка с веб-страницы будет намного медленнее, и ребята из functx вам не понравятся). Поэтому вам нужно проанализировать (хотя бы некоторые части) вашего XQuery, чтобы даже получить весь код.
Выберите реализацию XQuery и используйте ее. Есть лотов вокруг , Apple даже включает один в NSXML .