Home >Backend Development >XML/RSS Tutorial >XML Schema-SOAP Introduction

XML Schema-SOAP Introduction

黄舟
黄舟Original
2017-03-14 16:14:211569browse

SimpleObject Access Protocol (Simple Object Access Protocol, SOAP) is actually a Web service technology, but the client and server in Web services The data exchange format between them is implemented through the flexible XML schema. The main advantage of Web services is the level of interoperability between clients and servers for exchanging information and data over the network. The SOAP standard uses .
The main advantage of Web services is the level of interoperability between clients and servers for exchanging information and data over the network. The SOAP standard uses XML to structure data in an architecture-neutral format, defining
data types and information. For
programming languages ​​, you only need to provide the data type and the function name that needs to be called on the remote server. The SOAP library converts information and formatting written in the host language into an XML-formatted message, including the function being called and the parameters provided. You can understand the structure of SOAP through the example of
W3C. When the remote SOAP function GetEnd<a href="http://www.php.cn/wiki/1048.html" target="_blank">orsingBoarder()</a> is called, the caller on the client generates the XML message shown in Listing 1. Listing 1. Calling the remote SOAP function GetEndorsingBoarder()
               

<SOAP-ENV:Envelope

  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

  <SOAP-ENV:Body>

    <m:GetEndorsingBoarder xmlns:m="http://namespaces.snowboard-info.com">

      <manufacturer>K2</manufacturer>

      <model>Fatbob</model>

    </m:GetEndorsingBoarder>

  </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

The entire message sent by the SOAP client is placed in the SOAP envelope. The contents of the envelope are the details of the message.

The called function is obviously
GetEndorsingBoarder, which includes two parameters: manufacturer and model. It can be seen that it converts the local string that may be binary encoded into an XML string. Because XML is platform independent, hosts using SOAP systems can exchange messages without the need for complex binary encoding and decoding. The server returns the response via another XML-encoded SOAP envelope, this time the return value of the
function. The response format for a SOAP request is the same as the function, except that Response is appended to the envelope content, as shown in Listing 2.
List 2. Response to SOAP request
           

 <SOAP-ENV:Envelope

  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

  <SOAP-ENV:Body>

    <m:GetEndorsingBoarderResponse xmlns:m="http://namespaces.snowboard-info.com">

      <endorsingBoarder>Chris Englesmann</endorsingBoarder>

    </m:GetEndorsingBoarderResponse>

  </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Usually there is no need to write the SOAP message yourself, the SOAP library will automatically generate it. But the structure and simplicity of the SOAP envelope shows that sharing information using the SOAP standard is simple.

SOAP greatly simplifies the work of exchanging messages and calling remote functions. The Remote Procedure Call (RPC) standard requires complex methods to handle the serialization of binary data, and sending more structured messages requires detailed declarations and bidirectional messages. Convert.
With SOAP, XML serialization greatly reduces this complexity, making cross-platform, cross-language integration and data exchange simpler.                                                                                              

The above is the detailed content of XML Schema-SOAP Introduction. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn