XQuery: генерировать имя переменной из строки (значение атрибута) - PullRequest
0 голосов
/ 20 марта 2020

У меня есть фреймворк, который запускает мой xquery, и он включает в себя конфигурационный файл XML, который определяет параметры, которые я могу использовать в запросе как переменные, например:

<text name="myVar" label="My Var"/>

Это означает, что пользователь будет иметь диалоговое окно с полем под названием «Моя переменная», значение которого я могу затем получить как $myVar в моем запросе. Я не знаю, как объявлена ​​переменная, и у меня нет доступа к коду XQuery, который выполняет мой запрос.

Но я хочу получить доступ к своим параметрам в общем виде c, например, go через все из них проверьте, если пусто, создайте таблицу с метками и значениями в HTML. У меня есть доступ к файлу конфигурации XML. Это означает, что мне нужно получить доступ к значению

$(/config/text/@name)

(очевидно, что выше не работает).

Как это возможно?

1 Ответ

0 голосов
/ 20 марта 2020

Ну, имена переменных, такие как $myVar, могут быть определены только статически, поэтому это не будет возможно, если вы фактически не сгенерируете исходный код вашего запроса программно из того, что вы найдете в файле конфигурации.

Я думаю, что я бы сделал здесь, чтобы передать параметры в виде карты:

declare variable $params as map(xs:string, item()*);
do-something-with($params('myVar'));

Доступ к записям на карте возможен либо статически ($params?myVar), либо динамически ($params('myVar'))

...