Many times you may want to provide functionality for your application that works at a low level with XML messages. This commonly occurs through functionality referred to as Handlers or Interceptors. Handlers/Interceptors are useful for:
Performing authentication based on Headers
Processing custom headers
Transforming a message (i.e. via XSLT or GZip)
Redirecting a message
Getting access to the raw I/O or XML stream