大家好,我正在尝试在 wso2 MI 中创建有效负载,并且已经编写了代码,因此对于下面提到的代码:
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns:chan="http://www.tibco.com/ChangeSubOfferingAPI/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<chan:ChangeSubOfferingRqsAPI>
<Header>
<Username>$1</Username>
</Header>
<Body>
<SerialNo>$2</SerialNo>
</Body>
</chan:ChangeSubOfferingRqsAPI>
</soapenv:Body>
</soapenv:Envelope>
</format>
<args>
<arg evaluator="xml" expression="$ctx:userName"/>
<arg evaluator="xml" expression="$ctx:password"/>
</args>
</payloadFactory>
我得到这个有效负载:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:chan="http://www.tibco.com/ChangeSubOfferingAPI/">
<soapenv:Body>
<chan:ChangeSubOfferingRqsAPI>
<Header xmlns="http://ws.apache.org/ns/synapse">
<Username>abcd</Username>
</Header>
<Body xmlns="http://ws.apache.org/ns/synapse">
<SerialNo>100000000</SerialNo>
</Body>
</chan:ChangeSubOfferingRqsAPI>
</soapenv:Body>
</soapenv:Envelope>
任何人都可以帮助我理解如何更改有效负载工厂以便从 Header 和 Body 标记中删除 xmlns 的指南吗?就像而不是“”,我希望它是“”,仅适用于 Body 标签。任何支持都会很棒。
谢谢
您需要向您的有效负载添加一个空命名空间,例如
xmlns=""
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns="" xmlns:chan="http://www.tibco.com/ChangeSubOfferingAPI/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<chan:ChangeSubOfferingRqsAPI>
<Header>
<Username>$1</Username>
</Header>
<Body>
<SerialNo>$2</SerialNo>
</Body>
</chan:ChangeSubOfferingRqsAPI>
</soapenv:Body>
</soapenv:Envelope>
</format>
<args>
<arg evaluator="xml" expression="$ctx:userName"/>
<arg evaluator="xml" expression="$ctx:password"/>
</args>
</payloadFactory>