Как построить пространство имен XML в Groovy - PullRequest
0 голосов
/ 10 января 2019

У меня есть SOAP XML, который я должен построить в Groovy. Я программист ABAP, и я не знаю, как это сделать. Кто-нибудь может мне помочь, пожалуйста! Ниже код:

<soapenv:Header>
  <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
	             xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
	<wsu:Timestamp wsu:Id="TS-' lv_timestamp_id '">
	  <wsu:Created>+lv_created+</wsu:Created>
	  <wsu:Expires>+lv_expires+</wsu:Expires>
	</wsu:Timestamp>
	<wsse:UsernameToken wsu:Id="UsernameToken-">
	  <wsse:Username>+lv_username+</wsse:Username>
	  <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">+lv_sb64password+</wsse:Password>
	  <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">+lv_b64nonce+</wsse:Nonce>
	  <wsu:Created>+lv_created+</wsu:Created>
	</wsse:UsernameToken>
   </wsse:Security>
</soapenv:Header>

1 Ответ

0 голосов
/ 10 января 2019

Вот документы: http://groovy -lang.org / processing-xml.html # _markupbuilder

Нечто подобное должно работать.

def xml = new MarkupBuilder(writer)
xml.'soapenv:Header'{
  'wsse:Security'('xmlns:wsse': 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', 'xmlns:wsu': "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd")     
    'wsu:Timestamp'('wsu:Id':"TS-' lv_timestamp_id '"){
      'wsu:Created'(lv_created)
      'wsu:Expires'(lv_expires)
    }
  }
}
...