A SOAP message contains an envelope, header, body, and optional fault element. The envelope defines the start and end of the message. The header contains optional attributes for processing. The mandatory body contains the XML data being exchanged. The optional fault element provides error information if processing errors occur.