如何在响应中声明命名空间 xml
How to declare namespace in response xml
我正在 Data Weaver 中做 POC。我不确定如何在整个输出 xml 中声明命名空间 ns0:
。引用 link:https://developer.mulesoft.com/docs/dataweave(我已经看到使用命名空间 1.4.3 处理输入 xml 的示例,但我正在寻找输出 xml)。
输入Xml:
<?xml version="1.0" encoding="UTF-8"?>
<Records>
<storenumber>12</storenumber>
<calculated>false</calculated>
<subTotal>12</subTotal>
<Records>
预期输出xml:
<?xml version='1.0' eencoding="UTF-8" standalone="yes"?>
<ns0:orders
xmlns="ns2=urn:test.com:common:v1">
<ns0:order>
<ns0:StoreID>12</ns0:StoreID>
<ns0:Total>false</ns0:Total>
</ns0:order>
</ns0:orders>
DataWeaver 转换
%dw 1.0
%output application/xml
%var baseurl="ns2=urn:test.com:common:v1"
---
orders @(xmlns:baseurl): {
order: {
StoreID: payload.Records.storenumber,
Total: payload.Records.calculated
}
}
我相信 @(xmlns:baseurl)
中的转换是正确的。还有其他定义方式吗?
名称空间使用指令 %namespace <prefix> <uri>
声明
您可以使用 <prefix>#<element>
指定元素的名称空间
DataWeave 转换
%dw 1.0
%output application/xml
%namespace ns0 urn:test.com:common:v1
---
ns0#orders: {
ns0#order: {
ns0#StoreID: payload.Records.storenumber,
ns0#Total: payload.Records.calculated
}
}
输出
<?xml version='1.0' encoding='UTF-8'?>
<ns0:orders xmlns:ns0="urn:test.com:common:v1">
<ns0:order>
<ns0:StoreID>12</ns0:StoreID>
<ns0:Total>false</ns0:Total>
</ns0:order>
</ns0:orders>
我正在 Data Weaver 中做 POC。我不确定如何在整个输出 xml 中声明命名空间 ns0:
。引用 link:https://developer.mulesoft.com/docs/dataweave(我已经看到使用命名空间 1.4.3 处理输入 xml 的示例,但我正在寻找输出 xml)。
输入Xml:
<?xml version="1.0" encoding="UTF-8"?>
<Records>
<storenumber>12</storenumber>
<calculated>false</calculated>
<subTotal>12</subTotal>
<Records>
预期输出xml:
<?xml version='1.0' eencoding="UTF-8" standalone="yes"?>
<ns0:orders
xmlns="ns2=urn:test.com:common:v1">
<ns0:order>
<ns0:StoreID>12</ns0:StoreID>
<ns0:Total>false</ns0:Total>
</ns0:order>
</ns0:orders>
DataWeaver 转换
%dw 1.0
%output application/xml
%var baseurl="ns2=urn:test.com:common:v1"
---
orders @(xmlns:baseurl): {
order: {
StoreID: payload.Records.storenumber,
Total: payload.Records.calculated
}
}
我相信 @(xmlns:baseurl)
中的转换是正确的。还有其他定义方式吗?
名称空间使用指令 %namespace <prefix> <uri>
声明
您可以使用 <prefix>#<element>
DataWeave 转换
%dw 1.0
%output application/xml
%namespace ns0 urn:test.com:common:v1
---
ns0#orders: {
ns0#order: {
ns0#StoreID: payload.Records.storenumber,
ns0#Total: payload.Records.calculated
}
}
输出
<?xml version='1.0' encoding='UTF-8'?>
<ns0:orders xmlns:ns0="urn:test.com:common:v1">
<ns0:order>
<ns0:StoreID>12</ns0:StoreID>
<ns0:Total>false</ns0:Total>
</ns0:order>
</ns0:orders>