首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SAAJ中处理SAAJ /原始xml访问中的名称空间前缀

在SAAJ中处理SAAJ /原始xml访问中的名称空间前缀
EN

Stack Overflow用户
提问于 2009-10-21 22:41:14
回答 1查看 1.3K关注 0票数 1

我的基于SAAJ的客户端生成以下XML并将其发送到.NET web服务:

代码语言:javascript
复制
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<AuthenticationHeader xmlns="http://www.w3.org/2001/XMLSchema-instance">
<Password xmlns="http://schemas.datacontract.org/2004/07/">temp123</Password>
<UserName xmlns="http://schemas.datacontract.org/2004/07/">temp321</UserName>
</AuthenticationHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetTracks xmlns="http://tempuri.org/">
  <TrackName>baby</TrackName><ArtistID>0</ArtistID><AlbumID>0</AlbumID><Start>0</Start><Count> 20</Count>
</GetTracks></SOAP-ENV:Body></SOAP-ENV:Envelope>

我遇到的问题是,对于AuthenticationHeader元素,我必须定义一个前缀,但不应该将其附加到开头。这正是我需要生成的,这样才不会从web服务中得到错误:

代码语言:javascript
复制
<AuthenticationHeader xmlns:i="http://www.w3.org/2001/XMLSchema-instance">

而如果我在名称创建过程中生成一个前缀,它会自动添加到xmlns属性之后和元素的最开始处。

我试图查看整个javax.xml.soap包,但找不到任何可以帮助我解决此问题的方法。您能给我一个提示,告诉我生成这样的xml应该往哪个方向走吗?

顺便说一句,我想知道这是否是web服务拒绝合法xml的有效行为?这种解释行为的动机是什么?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-21 22:58:43

Java SOAP API通常假定它们与之对话的服务符合规范,因此细粒度前缀控制之类的东西不会通过API公开,因为应该没有理由关心它。

在以前的类似情况下,我经常不得不手动构造SOAP DOM对象,这非常痛苦。

最近,我有相当好的运气让Spring WebServices生成我想要的东西。它抽象了SAAJ API,同时仍然提供了钩子,以便在XML级别使用DOM。我建议你试一试,看看你能想出什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1601294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档