2013-03-14 4 views
0

это то, что я хочу:SOAP - префикс без имен

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tps="http://mysite.it"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <tps:getBook> 
     <tps:id>45</tps:id> 
     </tps:Retrieve_getBook_Poi_Recordset> 
    </soapenv:Body> 
</soapenv:Envelope> 

, но это у меня есть:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tps="http://mysite.it"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <tps:getBook xmlns:tps="http://mysite.it"> 
     <tps:id xmlns:tps="http://mysite.it">45</tps:id> 
     </tps:Retrieve_getBook_Poi_Recordset> 
    </soapenv:Body> 
</soapenv:Envelope> 

Я использую javax.xml.soap * для создания мыла сообщения.. .. и я не могу найти способ вставки только префикса в тег param.

это код для создания мыла сообщения:

MessageFactory msgFactory = null; 
SOAPMessage message = null; 
msgFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); 
message = msgFactory.createMessage(); 
SOAPEnvelope messageEnvelope = message.getSOAPPart().getEnvelope(); 
SOAPBody messageBody = messageEnvelope.getBody(); 

messageEnvelope.addNamespaceDeclaration(PREFIX, getNameSpace(method)); 

SOAPElement soapMethod = messageBody.addChildElement(method, PREFIX); 
SOAPElement param = soapMethod.addChildElement("id",PREFIX); 
param.addTextNode("45"); 

, что я могу сделать, чтобы удалить только пространство имен?

+0

Опубликованный вами xml не является корректным. В любом случае, попробуйте заменить _messageBody.addChildElement (метод, PREFIX); _ с _messageBody.addChildElement (envelope.createName (метод, PREFIX, getNameSpace (метод)); _ –

+0

благодарю за вашу помощь ... mhhmh..na !. ...это то же самое -_-'.... – Ging3r

ответ

1

Для узлов элементов и атрибутов:

Node node = ...; 
String name = node.getLocalName(); 

даст вам локальную часть имени узла.

Как вы уже упоминали, вы действительно не хотите удалять информацию о пространстве имен из своего XML. Это хороший обходной путь для вашего конкретного случая, но я оставил бы информацию об именах неповрежденной.

Смежные вопросы