*** SOAP is a messaging protocol. Messages (requests and responses) are **XML documents over HTTP**. **The XML contract is defined by the [[What WSDL is | WSDL]]** (Web Services Description Language). It provides a set of rules to define the messages, bindings, operations, and location of the service. The XML used in SOAP can become extremely complex. For this reason, it’s best to use SOAP with a framework like [JAX-WS](https://www.baeldung.com/jax-ws) or Spring *** **References**: - [Creating a SOAP Web Service with Spring](https://www.baeldung.com/spring-boot-soap-web-service)