OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: RE: [wsbpel] Issue - 11 - Partial Schema Compliance


An alternative approach - if you want full up validation based on
business rules - is to call an OASIS CAM processor as a 
webservice via a WSDL definition - and get it to do the work.

It appears to me you have two forks here - 

a) Simple lightweight local validation - works for just a few fields,
     strings, numbers, enumerated lists - easy stuff that schema can 
     handle - where there is little or no variation in the structure
     of the content - can be done cheaply using schema, 
     DOM and XPath.

b) Serious structure validation - with lookups, rules, contextual
     checks, contextual structure variations, localization, and also 
     input / output rendering:

     call a CAM processor - pass it the input - indicate the CAM
     template you want - (or that can be configured as part of the
     partner profile) - and it can do full-up validation and also 
     contextual error responses - and return a new structure for
     you as output as needed, or the validated input.

See the CAM specification from the TC website.

Enjoy, DW.

Message text written by INTERNET:chris.keller@active-endpoints.com
I'd vote for the validation "only when dealing with external services".
But in addition we should add a new function like
bpws:validateVariable('x').  This could return a Boolean, which would be
true if valid and false if not (or we could have it return a new bpel
type, which gave more info on what was invalid).  In this way users can
build valid messages via assigns and then decide if and when they may
need to test the data (e.g. they can put it in a switch with a throw if
the data is invalid).  But they should never receive or send out bad
data so that validation should be mandatory.

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]