我正在使用JAXB编组肥皂请求。它正在工作,但生成的XML不包含soap:Envelope
标记。此外,该名称空间在根元素上而不是在soap:Envelope
标记中指示。 xml标签上还有一个额外的standalone
属性。如何使用JAXB的编组器实现类似于第二个XML的输出?如何在使用JAXB进行封送时包含肥皂信封标签?
目前,这里是我的编组XML看起来像:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Customer xmlns:ns="http://www.example.org/beanLevelNamespace">
<ns:id>201200001</ns:id>
<ns:name>Name</ns:name>
<ns:age>18</ns:age>
</Customer>
这里是我多么希望它看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:ns="http://www.example.org/beanLevel1Namespace" xmlns:ns1="http://www.example.org/beanLevel2Namespace">
<ns:Customer>
<ns1:id>201200001</ns:id>
<ns1:name>Name</ns:name>
<ns1:age>18</ns:age>
</ns:Customer>
</soap:Body>
</soap:Envelope>
为什么你需要在你的XML信封?另外,如果名称空间存在于根级或Envelope中,它又有什么关系? – sreehari 2012-07-11 03:50:18
@sreehari:它需要在信封里面,因为我要将它作为肥皂请求发送。关于名称空间的位置,我不确定它的位置是否重要。我在这里的示例请求中的名称空间位于信封内,因此我只是为了安全起见而遵循它。 – Arci 2012-07-11 04:04:47
为什么你不使用JAX-WS呢? – 2014-01-25 07:08:39