Published on

Published in: Education
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. SOAP – Simple Object Access Protocol Gourav Pal MSIT/12/002 Amplify Mindware- BVU-Pune
  2. 2.  SOAP Concepts Structure of SOAP message SOAP Faults Data types Passing Objects Attachments
  3. 3. What is SOAP? SOAP stands for Simple Object Access Protocol SOAP is a simple XML-based protocol to let applications exchange information over HTTP SOAP is a W3C recommendation SOAP is for communication between applications
  4. 4. What is SOAP? SOAP is a communication protocol SOAP is a format for sending messages SOAP communicates via Internet SOAP is platform independent SOAP is language independent
  5. 5.  A SOAP message is an ordinary XML document containing the following elements:  An Envelope element that identifies the XML document as a SOAP message  A Header element that contains header information  A Body element that contains call and response information  A Fault element containing errors and status information All the elements above are declared in the default namespace for the SOAP envelope: and the default namespace for SOAP encoding and data types is:
  6. 6. Here are some important syntax rules: A SOAP message MUST be encoded using XML A SOAP message MUST use the SOAP Envelope namespace A SOAP message MUST use the SOAP Encoding namespace A SOAP message must NOT contain a DTD reference A SOAP message must NOT contain XML Processing Instructions
  7. 7. <?xml version="1.0"?>< soap:Envelopexmlns:soap=""soap:encodingStyle="">< soap:Header>...< /soap:Header>< soap:Body>...<soap:Fault>...</soap:Fault>< /soap:Body>< /soap:Envelope>
  8. 8.  The SOAP Envelope element is the root element of a SOAP message The xmlns:soap namespace should always have the value of: The encodingStyle attribute is used to define the data types used in the document
  9. 9.  Optional SOAP element Contains application-specific information (like authentication, payment, etc.) about the SOAP message If the Header element is present, it must be the first child element of the Envelope element
  10. 10.  Required SOAP element Contains the actual SOAP message intended for the ultimate endpoint of the message.Let’s see how a SOAP request and response willlook like…..
  11. 11. <?xml version="1.0"?><soap:Envelopexmlns:soap=""soap:encodingStyle=""><soap:Body><m:GetPrice xmlns:m=""><m:Item>Apples</m:Item></m:GetPrice></soap:Body></soap:Envelope>Note that the m:GetPrice and the Item elements above areapplication-specific elements.
  12. 12. <?xml version="1.0"?><soap:Envelopexmlns:soap=""soap:encodingStyle=""><soap:Body><m:GetPriceResponsexmlns:m=""><m:Price>1.90</m:Price></m:GetPriceResponse></soap:Body></soap:Envelope>
  13. 13.  Optional SOAP element Used to indicate error messages If a Fault element is present, it must appear as a child element of the Body element. A Fault element can only appear once in a SOAP message.The fault element has the following subelements…..
  14. 14. Sub Element Description<faultcode> A code for identifying the fault<faultstring> A human readable explanation of the fault<faultactor> Information about who caused the fault to happen<detail> Holds application specific error information related to the Body element
  15. 15. The following faultcode values must be used in the faultcodeelement when describing faults: Error Description VersionMismatch Found an invalid namespace for the SOAP Envelope element MustUnderstand An immediate child element of the Header element, with the mustUnderstand attribute set to "1", was not understood Client The message was incorrectly formed or contained incorrect information Server There was a problem with the server so the message could not proceed
  16. 16. <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>System.Web.Services.Protocols.SoapException: Server was unable toprocess request. </faultstring> <detail /></soap:Fault>