N
N
Nikolay Baranenko2016-10-27 12:18:15
Java
Nikolay Baranenko, 2016-10-27 12:18:15

Why are attribute values ​​not translated in SOAP request?

Hello.
I have an example SOAP request

<?xml version="1.0" encoding="UTF-8" ?>
         <SOAP:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <SOAP:Body>
         <GetParameter xmlns="http://examples/2001">
     <request>
         <MonCode xmlns="http://newsite/mon">Latency</MonCode>
     <TimeFrom xmlns="http://newsite/mon">2016-10-26T11:00</TimeFrom>
     <TimeTo xmlns="http://newsite/mon">2016-10-26T12:00</TimeTo>
         </request>
     </GetParameter>
         </SOAP:Body>
         </SOAP:Envelope>

I form a SOAP request in JAVA, using the SAAJ API the
following code
MessageFactory messageFactory = MessageFactory.newInstance();
    SOAPMessage message = messageFactory.createMessage();
    SOAPPart soapPart = message.getSOAPPart();
    SOAPEnvelope envelope = soapPart.getEnvelope();
    envelope.addNamespaceDeclaration("xsd", "http://www.w3.org/2001/XMLSchema");
    envelope.addNamespaceDeclaration("xsi", "http://www.w3.org/2001/XMLSchema-instance");
    envelope.addNamespaceDeclaration("soap", "http://schemas.xmlsoap.org/soap/envelop/");

    SOAPBody body = message.getSOAPBody();
    SOAPElement bodyElement = body.addChildElement("GetParameter");
    bodyElement.setAttribute("xmlns", "http://examples/2001");
    bodyElement = body.addChildElement("request");
    SOAPElement paramsElement = bodyElement.addChildElement("MonCode");
    paramsElement.setAttribute("xmlns", "http://newsite/mon");
    paramsElement.addTextNode("Latency");
    paramsElement = bodyElement.addChildElement("TimeFrom");
    paramsElement.setAttribute("xmlns", "http://newsite/mon");
    paramsElement.addTextNode("2016-10-26T11:00");
    paramsElement = bodyElement.addChildElement("TimeTo");
    paramsElement.setAttribute("xmlns", "http://newsite/mon");
    paramsElement.addTextNode("2016-10-26T12:00");

as a result I receive such a SOAP request
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Header/>
  <SOAP-ENV:Body>
    <GetParameter xmlns=""/>
    <request>
      <MonCode xmlns="">Latency</MonCode>
      <TimeFrom xmlns="">2016-10-26T11:00</TimeFrom>
      <TimeTo xmlns="">2016-10-26T12:00</TimeTo>
    </request>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

All is well, BUT the values ​​of the " examples/2001 " " newsite/mon " attributes are disappearing somewhere.
What is my mistake and how to solve this problem?

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question