Я пытаюсь сформировать запрос xml, который имеет некоторые атрибуты. Атрибуты также имеют некоторое пространство имен. Может кто-нибудь помочь мне с правильным синтаксисом сформировать правильный xml запрос.
например
Sample xml <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="http://www.w3.org/2001/XMLSchema" <soapenv:Header/> <soapenv:Body> <Request> <soapenv:age ns1:type="ns2:string">1234</soapenv:age> </Request> </soapenv:Body> </soapenv:Envelope> dataweave %dw 1.0 %output application/xml { ns1#age @(ns1#type: "ns2#string"): "1234" }
%dw 1.0 %output application/xml encoding="utf-8" %namespace soapenv http://schemas.xmlsoap.org/soap/envelope/ %namespace ns1 http://www.w3.org/2001/XMLSchema-instance %namespace ns2 http://www.w3.org/2001/XMLSchema --- soapenv#Envelope: { soapenv#Header : { soapenv#Body: { Request: { soapenv#age @(ns1#type: "ns2#string"): "1234" } } } }
Выход:
<?xml version='1.0' encoding='utf-8'?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <soapenv:Body> <Request> <soapenv:age xmlns:ns1="http://www.w3.org/2001/XMLSchema-instance" ns1:type="ns2#string">1234</soapenv:age> </Request> </soapenv:Body> </soapenv:Header> </soapenv:Envelope>
Обратите внимание, что ns2 не используется преобразованием, поэтому он не будет излучаться на выходе. Если вам нужно, чтобы он появился, вам нужно добавить фиктивный атрибут к некоторому элементу с ns2 в качестве пространства имен (пример @(ns2#dummy:'').
@(ns2#dummy:'')