1 #!/usr/bin/env python 2 # -*- coding: iso-8859-15 -*- 3 4 import libxml2dom.soap 5 6 request = """<?xml version='1.0' encoding='iso-8859-1'?> 7 <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" > 8 <env:Header> 9 <t:transaction 10 xmlns:t="http://thirdparty.example.org/transaction" 11 env:encodingStyle="http://example.com/encoding" 12 env:mustUnderstand="true" >5</t:transaction> 13 </env:Header> 14 <env:Body> 15 <m:chargeReservation 16 env:encodingStyle="http://www.w3.org/2003/05/soap-encoding" 17 xmlns:m="http://travelcompany.example.org/"> 18 <m:reservation xmlns:m="http://travelcompany.example.org/reservation"> 19 <m:code>FT35ZBQ</m:code> 20 </m:reservation> 21 <o:creditCard xmlns:o="http://mycompany.example.com/financial"> 22 <n:name xmlns:n="http://mycompany.example.com/employees"> 23 ?ke J?gvan ?yvind 24 </n:name> 25 <o:number>123456789099999</o:number> 26 <o:expiration>2005-02</o:expiration> 27 </o:creditCard> 28 </m:chargeReservation> 29 </env:Body> 30 </env:Envelope>""" 31 32 req = libxml2dom.soap.parseString(request) 33 34 response = """<?xml version='1.0' encoding='iso-8859-1'?> 35 <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" > 36 <env:Header> 37 <t:transaction 38 xmlns:t="http://thirdparty.example.org/transaction" 39 env:encodingStyle="http://example.com/encoding" 40 env:mustUnderstand="true">5</t:transaction> 41 </env:Header> 42 <env:Body> 43 <m:chargeReservationResponse 44 env:encodingStyle="http://www.w3.org/2003/05/soap-encoding" 45 xmlns:m="http://travelcompany.example.org/"> 46 <m:code>FT35ZBQ</m:code> 47 <m:viewAt> 48 http://travelcompany.example.org/reservations?code=FT35ZBQ 49 </m:viewAt> 50 </m:chargeReservationResponse> 51 </env:Body> 52 </env:Envelope>""" 53 54 resp = libxml2dom.soap.parseString(response) 55 56 response2 = """<?xml version='1.0' encoding='iso-8859-1'?> 57 <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" > 58 <env:Header> 59 <t:transaction 60 xmlns:t="http://thirdparty.example.org/transaction" 61 env:encodingStyle="http://example.com/encoding" 62 env:mustUnderstand="true">5</t:transaction> 63 </env:Header> 64 <env:Body> 65 <m:chargeReservationResponse 66 env:encodingStyle="http://www.w3.org/2003/05/soap-encoding" 67 xmlns:rpc="http://www.w3.org/2003/05/soap-rpc" 68 xmlns:m="http://travelcompany.example.org/"> 69 <rpc:result>m:status</rpc:result> 70 <m:status>confirmed</m:status> 71 <m:code>FT35ZBQ</m:code> 72 <m:viewAt> 73 http://travelcompany.example.org/reservations?code=FT35ZBQ 74 </m:viewAt> 75 </m:chargeReservationResponse> 76 </env:Body> 77 </env:Envelope>""" 78 79 resp2 = libxml2dom.soap.parseString(response2) 80 81 failed = """<?xml version='1.0' encoding='iso-8859-1'?> 82 <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 83 xmlns:rpc='http://www.w3.org/2003/05/soap-rpc'> 84 <env:Body> 85 <env:Fault> 86 <env:Code> 87 <env:Value>env:Sender</env:Value> 88 <env:Subcode> 89 <env:Value>rpc:BadArguments</env:Value> 90 </env:Subcode> 91 </env:Code> 92 <env:Reason> 93 <env:Text xml:lang="en-US">Processing error</env:Text> 94 <env:Text xml:lang="cs">Chyba zpracov?n?</env:Text> 95 </env:Reason> 96 <env:Detail> 97 <e:myFaultDetails 98 xmlns:e="http://travelcompany.example.org/faults"> 99 <e:message>Name does not match card number</e:message> 100 <e:errorcode>999</e:errorcode> 101 </e:myFaultDetails> 102 </env:Detail> 103 </env:Fault> 104 </env:Body> 105 </env:Envelope>""" 106 107 f = libxml2dom.soap.parseString(failed) 108 109 # vim: tabstop=4 expandtab shiftwidth=4