Как использовать переменную с пространством имен в dataweave?

#xml-namespaces #dataweave #mulesoft #anypoint-studio

Вопрос:

Существует требование, при котором нам необходимо использовать динамические имена тегов в XML вместе с пространством имен. Я сохраняю имя tagname в переменной и пытаюсь использовать его с пространством имен.

 %dw 1.0
%output application/XML encoding= "UTF-8"
%namespace opt vision.soap.ogc
%var tag = flowVars.tag
---
{
    opt#tag : 'something'
}
 

Вывод, который я ожидаю, будет именем tagname, которое я сохранил в переменной вместе с пространством имен, однако фактический вывод просто добавляет строку «тег» с пространством имен. Есть ли способ это сделать?

Ответ №1:

Пожалуйста, попробуйте это

 %dw 1.0
%output application/XML encoding= "UTF-8"
%namespace opt vision.soap.ogc
%var tag = "a"
---
{
    opt#"$(tag)" : 'something'
}
 

Выход

 <?xml version='1.0' encoding='UTF-8'?>
<opt:a xmlns:opt="vision.soap.ogc">something</opt:a>
 

Комментарии:

1. Огромное спасибо. Какое-то время боролся за тишину.