Processing a scheduled flight is not a trivial thing. First, the incoming message should be validated against the XSD Schema definition. Then a number of constraints that cannot be expressed in an XSD have to be checked. Subsequently, some of the values provided in the request message have to be verified against a list of allowable values. These values may also have to be converted to a different domain. This was the situation in Chapter 7 – where we dealt with the challenges in a Service Bus pipeline – and it is again the situation now as we will use a BPEL component to implement the desired logic.
In order to provide our consumers with as complete a list of problems as possible with their request for a scheduled flight, we do not want to immediately abort processing upon the first issue we run into. Instead, we compile the results from each of the three steps into a list of processing results. If no issues were encountered, we can proceed to the next phase of the BPEL process: enrichment. If however one or more issues were found during XSD validation, constraint checking or domain value checking and mapping, we will not continue to this next stage but instead return a response that contains all the issues that were discovered.
In this section we will implement the three validation stages as well as the mechanism for collecting all issues.
Carsten Wiesbaum on the Essentri Blog – Accessing DVM values in Oracle SOA Suite XPath extension functions