This page contains information on Remote Procedure Calls using XML
HTTP Request
GET /serverPageName HTTP/1.1
Accept: */*
Accept-Language: en
Accept-encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
<!-- REST -->
Host: http://SERVERADDRESS?PARAMETER1=VALUE&PARAMETER2=VALUE&PARAMETERn=VALUE
SOAP
POST /serverPageName HTTP/1.1
Accept: */*
Referer: CLIENTURLADDRESS
Accept-Language: en
Content-Type: application/x-www-form-urlencoded
Accept-encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Host: www.serverURL
Content-Length: NUMBER
<?xml version='1.0' encoding='UTF-8'?>
<env:Envelope xmlns:env='http://www.w3.org/2003/05/soap-envelope'>
<env:Header>
<PREFIX:ELEMENT xmlns=PREFIX:'http://www.SOAPXML/Header'
env:mustUnderstand='true|false'
env:relay='true|false'
env:role='URL' />
</env:Header>
<env:Body env:encodingStyle='http://www.w3.org/2003/05/soap-encoding'>
<!-- SOAP XML REQUEST | RESPONSE -->
<ROOT xmlns='http://www.SOAPXML/Example'>
<!-- XML content -->
</ROOT>
<!-- OR FAULT MESSAGE -->
<env:Fault>
<env:Code>
<env:Value>VersionMisMatch|MustUnderstand|Sender|Receiver|DataEncodingUnknown</env:Value>
<env:Subcode>
<env:Value>ERROR SUBCODE</env:Value>
</env:Subcode>
</env:Code>
<env:Reason>
<env:Text xml:lang='en-US'>ERROR DESCRIPTION</env:Text>
</env:Reason>
<env:Detail>
<!-- Application specific detail -->
</env:Detail>
</env:Fault>
</env:Body>
</env:Envelope>
WSDL
<?xml version='1.0'?>
<definitions name='WEBSERVICENAME'
targetNamespace='http://wwww.webservice.com/Name'
xmlns:typens='http://wwww.webservice.com/Name'
xmls:xsd='http://www.w3.org/2000/10/XMLSchema'
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
xmlns='http://schemas.xmlsoap.org/wsdl/'>
<types>
<xsd:schema xmlns=''
xmlns:xsd='http://www.w3.org/2000/10/XMLSchema'
targetNamespace='http://wwww.webservice.com/Name'>
<xsd:complexType name='SERVICEREQUESTTYPE'>
<xsd:sequence>
<xsd:element name='RequestParameter1' type='xsd:string' />
<xsd:element name='RequestParameter2' type='xsd:integer' />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name='SERVICERESPONSETYPE'>
<xsd:sequence>
<xsd:element name='ResponseParameter1' type='xsd:string' />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name='SERVICEREQUESTMESSAGE'>
<part name='SERVICEREQUEST' type='typens:SERVICEREQUESTTYPE' />
</message>
<message name='SERVICERESPONSEMESSAGE'>
<part name='SERVICERESPONSE' type='typens:SERVICERESPONSETYPE' />
</message>
<portType name='SERVICEPORTTYPE'>
<operation name='SERVICEREQUEST'>
<input message='typens:SERVICEREQUESTMESSAGE' />
<output message='typens:SERVICERESPONSEMESSAGE' />
</operation>
</portType>
<binding name='SERVICEBINDING' type='typens:SERVICEPORTTYPE'>
<soap:binding style='rpc|document' transport='http://schemas.xmlsoap.org/soap/http'/>
<operation name='SERVICEREQUEST'>
<soap:operation />
<input>
<soap:body use='encoded|literal'
encodingStyle='http://www.w3.org/2003/05/soap-encoding'
namespace='http://wwww.webservice.com/Name' />
</input>
<output>
<soap:body use='encoded|literal'
encodingStyle='http://www.w3.org/2003/05/soap-encoding'
namespace='http://wwww.webservice.com/Name' />
</output>
</binding>
<service name='SERVICE'>
<port name='SERVICEPORT' binding='typens:SERVICEBINDING'>
<soap:address location=''http://wwww.webservice.com/getService.asp' />
</port>
</service>
HTTP Response
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Min, 28 Sept 2009 08:35:00 GMT
Content-Type: text/html
Last-Modified: 28 Aug 2009 08:35:00 GMT
Content-Length: NUMBER
<!-- XML CONTENT -->
Code Examples
Manage SOAP message
function PostSOAP ()
{
var XMLDoc, xMLHTTP, sXML
sXML = "SOAP REQUEST TEXT";
<!-- sRequest="REST REQUEST URL"; -->
XMLDoc = new ActiveXObject("MSXML.DOMDocument");
XMLDoc.loadXML(sXML);
XMLHTTP = new ActiveXObject("MSXML2.XMLHTTP");
XMLHTTP.open("POST", "http://SERVERADDRESS", false);
<!-- XMLHTTP.open("GET", sRequest, false); -->
XMLHTTP.send(XMLDoc);
<!-- XMLHTTP.responseText(XMLDoc); Returns HTTP body only
XMLDoc=XMLHTTP.responseXML;
alert(XMLDoc.text);
alert(XMLDoc.XML);
<!-- MANIPULATE XMLDoc -->
sOutput = XMLDoc.selectSingleNode("//PREFIX:ELEMENT").text
document.getElementByID("NAME").innerHTML = sOutput
}
Web service client using JavaScript, MSXML and XPath
<html>
<head>
<title>Web service Client</title>
<script type='text/javascript'>
var serviceURL='WEBSERVICEURL';
var parser_ID='Msxml2.DomDocument.4.0';
var requester_ID='Msxml2.XmlHttp.4.0';
function soaprequest(PARAMETER)
{
var xmlTemplate='<soap:Envelope '
+ 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
+ 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" '
+ 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
+ '<soap:Body>'
+ '<ELEMENT1 xmlns="http://www.example.org/webservice">'
+ '<ELEMENT2 />'
+ '</ELEMENT1>'
+ '</soap:Body>'
+ '</soap:Envelope>';
var oDom = new ActiveXobject(parser_ID);
oDom.setProperty('SelectionLanguage', 'XPath');
var oHttpReq = newActiveXObject(requester_ID);
var bLoaded = oDom.loadXML(xmlTemplate);
if (bLoaded)
{
var sNamespaces="xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' "
+ "xmlsns:PREFIX='http://www.example.org/webservice'";
oDom.setProperty('SelectionNamespaces', sNamespaces);
var sXPath ='/soap:Envelope/soap:Body/PREFIX:ELEMENT1/PREFIX/ELEMENT2';
var oParameterNode = oDom.selectSingleNode(sXPath);
OParameterNode.text= PARAMETER;
oHttpReq.open('POST', serviceURL, false);
var sActionHeader = 'http://www.example.org/WSDLSoapActionAttribute';
oHttpReq.setRequestHeader('SOAPAction', sActionHeader);
OHttpReq.send(ODOm)
showRequestMessage(oDom.xml);
if (oHttpReq.status==200)
{
if (oHttpReq.responseXML)
{
showResponseMessage(oHttpReq.responseXML.xml);
oDom.load(oHttpReq.responseXML);
showResult(oDom);
}
else
{
showResponseMessage(oHttpReq.getAllResponseHeaders() + '\n'
+ oHttpReq.responseText);
}
else
{
showResponseMessage(oHttpReq.status + ": " + oHttpReq.statusText);
}
else
}
showResponseMessage(oDom.parserError.reason + '\n'
+ oDom.parseError.srcText);
}
oHttpReq = null;
oDom = null;
}
function showRequestMessage(sText)
{
var oText = document.getElementByID('request');
oText.value= sText;
}
function showResponseMessage(sText)
{
var oText = document.getElementByID('responset');
oText.value= sText;
}
function showResult(Dom)
{
var oDiv = document.getElementByID('divResult');
var sXPath='/soap:Envelope/soap:Body/PREFIX:ELEMENT3/PREFIX/ELEMENT4';
var colNodes = Dom.selectNodes(xSpath);
var iNodes = colNodes.length;
var sResult = '';
if (iNodes > 0)
{
for (var i=0; i<iNodes; i++)
{
var oResultNode = colNodes(i);
sResult=oResultNode.text);
}
else
{
sResult='No results returned';
}
oDiv.innerHTML=sResult;
}
function initiate()
{
document.getElementById('txtBoxName').focus();
}
</script>
</head>
<body onload='initiate();'>
<input type='text id='txtBoxName' size='VALUE' maxlength='VALUE'>
<input type='button' value='TEXT' onclick='soaprequest(txBoxName.value);'>
<br />
<div id='divResult'></div>
<textarea id='request'></textarea>
<textarea id='response'></textarea>
</body>
</html>






