【发布时间】:2019-08-03 02:25:08
【问题描述】:
我想为包装器设置一个命名空间。但不是用别名序列化它,我需要它在包装元素本身上。
我得到的是跟随
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:my-namepsace.com/asdf">
<soapenv:Header/>
<soapenv:Body>
<urn:YVDMS_TASK>
...
</urn:YVDMS_TASK>
</soapenv:Body>
<soapenv:Envelope>
但我想要这样:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<YVDMS_TASK xmlns="urn:my-namepsace.com/asdf">
...
</YVDMS_TASK>
</soapenv:Body>
<soapenv:Envelope>
这可能吗?
【问题讨论】:
-
是的,这是可能的。我认为您正在将命名空间添加到序列化程序,而不是将 URL 添加到类。添加到序列化程序时,它会将命名空间放在根目录中,而不是放在适当的后代中。
-
“我需要它位于包装元素本身。”强烈建议处理此问题的任何内容都没有正确构建。从 XML 信息的角度来看,这两个示例是相同的。这意味着有人手工编写了一些 XML 处理代码,可能使用字符串修饰,而不是使用 设计 用于处理 XML 的工具。
-
是的。我不认为另一部分真的符合规范