The BPEL Designer has a built-in BPEL code validation functionality that helps developers
create well-formed, valid and standard-compliant code. The code is checked for errors and
the user is notified if validation fails.
Validation Criteria
The Validator checks the BPEL process in accordance with the following criteria:
For conformance with the BPEL 2.0 schema.
See the Troubleshooting section of this guide for more information about using BPEL schemas different from the BPEL 2.0 specification.
For compliance with static analysis rules defined in the WS-BPEL 2.0 specification.
For broken references.
For constructs that are valid per the BPEL 2.0 specification but are not yet supported by the Sun BPEL Service Engine.
Validation Types
The BPEL Designer provides two types of validation:
Real-time validation
This type of validation is invoked automatically and does not require any explicit
actions from the user. Only the current file is checked. The validation is
performed in accordance with all the criteria mentioned above, except for validation for
conformance with the BPEL 2.0 schema.
Explicit validation
This type of validation requires that the user explicitly invoke the validation process.
All imported XSD and WSDL files are also checked. The validation is performed
in accordance with all the criteria mentioned above.
To invoke explicit validation, do one of the following:
In the Source view, right-click the source to invoke the pop-up menu and choose Validate XML (Alt-Shift-F9)
In the Design view, click the Validate XML button (Alt-Shift-F9) on the Editor toolbar.
Notifications
The user is notified about validation errors or success in the Outpur window,
in the Design view, and in the Navigator.
The Output window
The results of validation appear in the Output window if validation has been
invoked explicitly. If validation fails, the Output window contains errors and/or warnings:
If validation is successful, there are no warnings or errors in the Output
window.
The Design view
The Design view shows the results of both real-time and explicit validation in
callout windows on the diagram and the error stripe.
In the diagram, a red cross next to an element on the
diagram means that the element has not passed validation and the output contains
errors. A yellow triangle with an exclamation mark means that the element has
not passed validation and the output contains warnings. If there are both errors and
warnings, the Design view shows a red cross. If you click the
cross or the triangle, a callout window appears with a list of errors
and/or warnings:
The callout window includes messages related to validation in accordance with all the
criteria listed above. Messages related to the real-time validation are constantly updated.
In the Design view, validation results are also shown by the error
stripe, which is a strip to the right of the scroll bar that
contains red marks if some elements have not passed validation. The error stripe
represents the entire diagram, not just the portion that is currently displayed. You
can immediately see if your BPEL process contains errors without having to scroll through
the entire diagram. You can click a red mark to jump to
the element that causes problems. If no errors are detected, the small square
in the error stripe is green.
The Navigator window
The Navigator window shows the results of both real-time and explicit validation by
adding a red cross or a yellow triangle to the element's icon if
validation has failed. For example, in the screenshot below, the AirlineReserved receive
activity has not passed validation and the output contains errors.
Quick Fix
Quick Fix enables to partly automate validation errors fixing.
To use Quick Fix:
Open the Source view of the process.
Click Validate XML button on the toolbar or right-click the source and choose Validate XML (Alt-Shift-F9). In the Output window you will get the result of validation. If output contains errors or warnings, you can try to resolve them using Quick Fix.
Click the Quick Fix button on the toolbar. Quick Fix result is shown in the Quick Fix tab of the Output window. All the changes performed by Quick Fix (if any) are reflected in the window.
At the moment Quick Fix supports automatic correction of misspelled variable names.