Depending on the requirements of the Web service, you can work with SOAP headers in several different ways. Three basic use cases that a Web service might require for handling SOAP headers in a client application include:
1. Re-using a SOAP header for a response message that you must return unchanged in a subsequent request message
2. Re-using a SOAP header for a response message that you must return in a subsequent request message, but modified with additional or updated header entries
3. Building a unique SOAP header from scratch to provide as output from the request header handler
As described previously (see SOAP header object model), ABL represents a SOAP message header as:
One SOAP header object
One SOAP header-entryref object to access each SOAP header entry
One X-noderef object to access a selected SOAP header entry as a DOM subtree, thus modeling the underlying XML of the header entry for access by ABL one node at a time
Depending on the situation, you might need to work only at the level of the SOAP header object with no need to inspect the contents, or you might need to access individual SOAP header entries and their individual XML elements.
Thus, the following sections describe examples of each of the three basic use cases presented in this section that you are most likely to encounter when managing SOAP headers as part of Web service access:
Note: All of these examples are based on a fictitious Web service (HeaderExample), using code that has been run against a working version of the Web service. In the code examples, listed steps refer to the numbers in comments, such as /*2b*/ or /*9*/.