英文:
SOAP - leave only parent/root namespace
问题
我有几个用于创建SOAP消息组合的xsd文件。
问题是每当构建对象时,它会导入所有继承的xmlns。我没有找到关于这个问题的任何信息。有没有什么办法只保留根xmlns?
示例:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<testRes xmlns="http://xxx/xxx/xxx/v1" xmlns:ns2="http://yyy/yyy/yyy/v1" xmlns:ns3="http://zzz/zzz/zzz/v1">
<status>B</status>
<opisBledu>Error msg...</opisBledu>
</testRes>
</S:Body>
</S:Envelope>
我需要消息是:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<testRes xmlns="http://xxx/xxx/xxx/v1">
<status>B</status>
<opisBledu>Error msg...</opisBledu>
</testRes>
</S:Body>
</S:Envelope>
需要删除S:Envelope中的xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"以及testRes中的xmlns:ns2="http://yyy/yyy/yyy/v1" xmlns:ns3="http://zzz/zzz/zzz/v1"。是否有方法可以实现这一点?
英文:
I have several xsd files which are used to create a composition of one SOAP message.
The problem is that whenever object is build it imports all inherited xmlns. I didn't found anything about this problem. Is there any way to leave only root xmlns?
Example:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<testRes xmlns="http://xxx/xxx/xxx/v1" xmlns:ns2="http://yyy/yyy/yyy/v1" xmlns:ns3="http://zzz/zzz/zzz/v1">
<status>B</status>
<opisBledu>Error msg...</opisBledu>
</testRes>
</S:Body>
</S:Envelope>
I need the message to be:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<testRes xmlns="http://xxx/xxx/xxx/v1"
<status>B</status>
<opisBledu>Error msg...</opisBledu>
</testRes>
</S:Body>
</S:Envelope>
There is need that
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" from S:Envelope
and xmlns:ns2="http://yyy/yyy/yyy/v1" xmlns:ns3="http://zzz/zzz/zzz/v1" from testRes has to be removed.
Is there any way to achieve this?
答案1
得分: 1
是的,您可以在类的注解@XmlRootElement
、@XmlElement
、@XmlType
内部,或者在package-info.java
文件中指定xmlns
。例如:
@XmlRootElement(name = "testRes", namespace = "http://xxx/xxx/xxx/v1")
public class TestRes
根据您的情况,需要删除不必要的定义。
英文:
Yes, you can specify xmlns inside annotations @XmlRootElement
@XmlElement
@XmlType
in your classes or inside package-info.java
.
For example:
@XmlRootElement (name = "testRes", namespace = "http://xxx/xxx/xxx/v1")
public class TestRes
In your case need to remove unnecessary definitions
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论