SOAP is extensible because it can be layered with additional functionalities. SOAP can be extended to support intermediate message processing through message handlers. SOAP supports different messaging styles and can allow messages to be passed as documents or RPCs. SOAP further provides support for accessing various data types through encoding styles. Finally, SOAP transmits messages from one point to another because it is capable of binding to various transport protocols.