SlideShare a Scribd company logo
SOAP
SOAP is a simple XML-based protocol to let
applications exchange information over HTTP.
In our SOAP tutorial, you will learn what SOAP is,
and how it uses XML to exchange information
between applications.
SOAP is a simple XML-based protocol to let
applications exchange information over HTTP.
Or more simply: SOAP is a protocol for accessing a
Web Service.
What You Should Already Know
Before you study SOAP you should have a basic
understanding of XML and XML Namespaces
What is SOAP?
 SOAP stands for Simple Object Access Protocol
 SOAP is a communication protocol
 SOAP is for communication between
applications
 SOAP is a format for sending messages
 SOAP communicates via Internet
 SOAP is platform independent
 SOAP is language independent
 SOAP is based on XML
 SOAP is simple and extensible
 SOAP allows you to get around firewalls
 SOAP is a W3C recommendation
Why SOAP?
It is important for application development to allow
Internet communication between programs.
Today's applications communicate using Remote
Procedure Calls (RPC) between objects like DCOM
and CORBA, but HTTP was not designed for this.
RPC represents a compatibility and security
problem; firewalls and proxy servers will normally
block this kind of traffic.
A better way to communicate between applications
is over HTTP, because HTTP is supported by all
Internet browsers and servers. SOAP was created
to accomplish this.
SOAP provides a way to communicate between
applications running on different operating
systems, with different technologies and
programming languages.
SOAP Building Blocks
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:
Syntax Rules
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
Skeleton SOAP Message
<? Xml version="1.0"?>
<soap: Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12
/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
The SOAP Envelope element is the root element of
a SOAP message.
The xmlns:soap Namespace
Notice the xmlns:soap namespace in the example
above. It should always have the value of:
"http://www.w3.org/2001/12/soap-envelope".
The namespace defines the Envelope as a SOAP
Envelope.
If a different namespace is used, the application
generates an error and discards the message.
The encodingStyle Attribute
The encodingStyle attribute is used to define the
data types used in the document. This attribute
may appear on any SOAP element, and applies to
the element's contents and all child elements.
A SOAP message has no default encoding.
Syntax
soap:encodingStyle="URI"
Example
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12
/soap-encoding">
...
Message information goes here
...
</soap:Envelope>
SOAP Header Element
The SOAP Header element contains header
information.
The SOAP Header Element
The optional SOAP Header 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.
Note: All immediate child elements of the Header
element must be namespace-qualified.
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12
/soap-encoding">
<soap:Header>
<m:Trans
xmlns:m="http://www.w3schools.com/transaction
/"
soap:mustUnderstand="1">234
</m:Trans>
</soap:Header>
...
...
</soap:Envelope
SOAP Body Element
The SOAP Body element contains the actual SOAP
message.
The SOAP Body Element
The required SOAP Body element contains the
actual SOAP message intended for the ultimate
endpoint of the message.
Immediate child elements of the SOAP Body
element may be namespace-qualified.
Example
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12
/soap-encoding">
<soap:Body>
<m:GetPrice
xmlns:m="http://www.w3schools.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>
</soap:Envelope>
The example above requests the price of apples.
Note that the m:GetPrice and the Item elements
above are application-specific elements. They are
not a part of the SOAP namespace.
A SOAP response could look something like this:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12
/soap-encoding">
<soap:Body>
<m:GetPriceResponse
xmlns:m="http://www.w3schools.com/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse>
</soap:Body>
</soap:Envelope>
SOAP Fault Element
The SOAP Fault element holds errors and status
information for a SOAP message.
The SOAP Fault Element
The optional SOAP Fault element is 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 SOAP Fault element has the following sub
elements:
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
SOAP Fault Codes
The faultcode values defined below must be used
in the faultcode element 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
A SOAP Example
In the example below, a GetStockPrice request is
sent to a server. The request has a StockName
parameter, and a Price parameter that will be
returned in the response. The namespace for the
function is defined in
"http://www.example.org/stock".
A SOAP request:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-
8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12
/soap-encoding">
<soap:Body
xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
The SOAP response:
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-
8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-
envelope"
soap:encodingStyle="http://www.w3.org/2001/12
/soap-encoding">
<soap:Body
xmlns:m="http://www.example.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>

More Related Content

PPTX
PDF
PDF
Open APIs: What's Hot, What's Not?
PPTX
Phalcon 2 High Performance APIs - DevWeekPOA 2015
PDF
Application Note APLX-LMW-0403: Interfacing the Apache Web ...
PPTX
Flask vs. Django
Open APIs: What's Hot, What's Not?
Phalcon 2 High Performance APIs - DevWeekPOA 2015
Application Note APLX-LMW-0403: Interfacing the Apache Web ...
Flask vs. Django

What's hot (6)

PPTX
Build restful ap is with python and flask
PPS
Etech2005
PDF
Symfony 4: A new way to develop applications #phpsrb
PPTX
ASP.NET WEB API Training
PDF
Serverless and Kubernetes Workshop on IBM Cloud
PDF
Installing php 7.4 Nginx Laravel 7.x on Centos 8
Build restful ap is with python and flask
Etech2005
Symfony 4: A new way to develop applications #phpsrb
ASP.NET WEB API Training
Serverless and Kubernetes Workshop on IBM Cloud
Installing php 7.4 Nginx Laravel 7.x on Centos 8
Ad

Viewers also liked (17)

PDF
Brannum deeds in logan co, ky part 2
PPT
La investigaci n_cualitativa
PPTX
Forefront ile Kontrol Sizde Bolum 2 (Forefront Güvenlik Ürün ailesi ve for Ex...
PDF
keyspeech
DOC
SFC HOTIN'S BIO
PPTX
Example
PPTX
Discovery Styleguide V2
PDF
Brannum eguity case part 2
DOC
Cv nitin v. vasudeo v4
PPTX
Revolucion industrial
PDF
Maxaudience - 700 Clients Served
PPTX
Update Agro Farming project presentation
PPTX
Mapa mental
PPTX
Implantación de una PMO
PPT
Diagnostico molecular-del-cancer
PDF
Introducción a la Gestión de Portafolios
PDF
Mobile в e-commerce проектах
Brannum deeds in logan co, ky part 2
La investigaci n_cualitativa
Forefront ile Kontrol Sizde Bolum 2 (Forefront Güvenlik Ürün ailesi ve for Ex...
keyspeech
SFC HOTIN'S BIO
Example
Discovery Styleguide V2
Brannum eguity case part 2
Cv nitin v. vasudeo v4
Revolucion industrial
Maxaudience - 700 Clients Served
Update Agro Farming project presentation
Mapa mental
Implantación de una PMO
Diagnostico molecular-del-cancer
Introducción a la Gestión de Portafolios
Mobile в e-commerce проектах
Ad

Similar to Soap.doc (20)

PPTX
Soap vs rest
PPT
SOAP Overview
PPTX
Introduction to WebServices
PPTX
WebServices introduction
PPTX
Simple Object Access Protocol
PDF
Introduction to SOAP
PPTX
Web-Services!.pptx
PPTX
Introduction to WebServices
PPTX
Mule Webservices
PPTX
WebServices Basic Overview
PPTX
WebServices Basic Overview
PDF
Java Web Services [2/5]: Introduction to SOAP
ODP
SCDJWS 2. Soap
PDF
Exchange of data over internet using web service(e.g., soap and rest) in SAS ...
PPTX
Soap xp-wg
PPT
Intro to web services
DOCX
fffSeminar
PPTX
SOAP by luv
KEY
CSG 2012
PDF
Lecture 3 soap
Soap vs rest
SOAP Overview
Introduction to WebServices
WebServices introduction
Simple Object Access Protocol
Introduction to SOAP
Web-Services!.pptx
Introduction to WebServices
Mule Webservices
WebServices Basic Overview
WebServices Basic Overview
Java Web Services [2/5]: Introduction to SOAP
SCDJWS 2. Soap
Exchange of data over internet using web service(e.g., soap and rest) in SAS ...
Soap xp-wg
Intro to web services
fffSeminar
SOAP by luv
CSG 2012
Lecture 3 soap

More from xavier john (20)

PPT
Unix day4 v1.3
PPT
Unix day3 v1.3
PPT
Unix day2 v1.3
TXT
Interview questions
DOCX
Xavier async callback_fault
DOCX
Custom faultpolicies
DOCX
All adapterscommonproperties
DOCX
Custom faultpolicies
DOCX
Oracle business rules
DOCX
Soa installation
PPT
DOCX
Webservices
DOCX
While.doc
DOCX
Xml material
DOC
DOC
X query
PPSX
Xsd basics
DOC
DOC
DOCX
All adapterscommonproperties
Unix day4 v1.3
Unix day3 v1.3
Unix day2 v1.3
Interview questions
Xavier async callback_fault
Custom faultpolicies
All adapterscommonproperties
Custom faultpolicies
Oracle business rules
Soa installation
Webservices
While.doc
Xml material
X query
Xsd basics
All adapterscommonproperties

Recently uploaded (20)

PDF
System and Network Administration Chapter 2
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
history of c programming in notes for students .pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
System and Network Administraation Chapter 3
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
AI in Product Development-omnex systems
PPT
Introduction Database Management System for Course Database
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
L1 - Introduction to python Backend.pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
medical staffing services at VALiNTRY
System and Network Administration Chapter 2
Upgrade and Innovation Strategies for SAP ERP Customers
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Internet Downloader Manager (IDM) Crack 6.42 Build 41
history of c programming in notes for students .pptx
CHAPTER 2 - PM Management and IT Context
System and Network Administraation Chapter 3
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
AI in Product Development-omnex systems
Introduction Database Management System for Course Database
Wondershare Filmora 15 Crack With Activation Key [2025
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
ISO 45001 Occupational Health and Safety Management System
L1 - Introduction to python Backend.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
medical staffing services at VALiNTRY

Soap.doc