|
Construct
|
Description
|
Message
|
Comments
|
|
<receive partnerLink="ncname"
portType="qname"? operation="ncname"
variable="ncname"?
createInstance="yes|no"?
messageExchange="ncname"?
Standard-attributes>
|
1.
validate
if partnerLink exists.
2.
validate
if portType exists.
3.
validate
if operation exists under the portType.
4.
validate
if variable exists.
5.
Validate to ensure that at lest one
receive is available in flow which has createInstance
attribute value set to “yes”.
6.
Validate to ensure that there is at
lest one receive is available in process which has createInstance
attribute value set to “yes”.
|
|
Done
Done
Done
Done
|
|
<reply partnerLink="ncname"
portType="qname"? operation="ncname"
variable="ncname"?
faultName="qname"?
messageExchange="ncname"?
standard-attributes>
|
1.
validate if partnerLink exists
2.
validate if portType exists
3.
validate if operation exists under
the portType
4.
validate
if variable exists.
5.
Validate if faultName
specified exists in wsdl operation of given portType.
|
|
Done
Done
Done
Done
|
|
<invoke partnerLink="ncname"
portType="qname"? operation="ncname"
inputVariable="ncname"? outputVariable="ncname"?
standard-attributes>
|
1.
validate
if partnerLink exists.
2.
validate
if portType exists.
3.
validate
if operation exists under the portType.
4.
validate
if input and output variable exists.
|
|
Done
Done
Done
Done
|
|
<pick>
<onMessage partnerLink="ncname" portType="qname"?
operation="ncname"
variable="ncname"?
messageExchange="ncname"? >+
<pick>
|
1.
validate if partnerLink exists
2.
validate if portType exists
3.
validate if operation exists under
the portType
4.
validate if variable exists
|
|
|
|
<throw faultName="qname" faultVariable="ncname"? standard-attributes>
standard-elements
</throw>
|
Ensure that faulVariable exist.
|
|
|
|
<validate variables="ncname-list"
standard-attributes>
standard-elements
</validate>
|
Validate to ensure that list of space seperated
variables are available in enclosing scope or process.
|
|
|
|
<variables>?
<variable name="ncname" messageType="qname"?
type="qname"?
element="qname"?/>+
</variables>
|
1.
Ensure that variable names are unique
inside variables.
2.
Ensure that variable name does not
contain “.” (dot), since dot is used to
separate a variable name with a message part.
|
|
Done
|
|
<variables>
<variable name="ncname" messageType="qname"?
type="qname"? element="qname"?/>+
</variables>
|
1.
validate if exactly one of messageType/element/type is specified
2.
validate
if specified messageType exists.
3.
validate
if specified element exists.
4.
validate
if specified type exists.
|
|
Done
Done
|
|
<partnerLinks>
<partnerLink name="ncname" partnerLinkType="qname"
myRole="ncname"? partnerRole="ncname"?>+
</partnerLink>
</partnerLinks>
|
1.
Validate to ensure that all the
partnerLink inside partnerLinks have
unique names.
|
|
Done
|
|
<partnerLink name="ncname" partnerLinkType="qname"
myRole="ncname"? partnerRole="ncname"?>+
</partnerLink>
|
1.
Validate to ensure that at lest one
of myRole or partnerRole
is specified.
2.
Validate to ensure that partnerLinkType exists in the wsdl document.
3.
Validate to ensure that specified myRole or partnerRole
exists as a role in the partnerLinkType
defined in wsdl document.
|
|
Done
Done
|
|
<catch faultName="qname"? faultVariable="ncname"?
faultMessageType="qname"?
faultElement="qname"?>*
|
1.
Validate to ensure that faultName specified exist in either bpel (if local bpel
fault declared using throw) or exist
in the
wsdl defined operation in the enclosing invoke or the activity where
this catch is specified.
2.
The
faultName may reflect a purely internal custom fault in a process, or
the faultName may be missing.In such cases, the faultVariable, which is
local to the fault handler and declared by its occurrence in the catch
element, will not have a defined type. To avoid this possibility
faultVariable MUST only be used if either the faultMessageType or
faultElement attributes, but not both, accompany it. faultMessageType
and faultElement MUST NOT be used unless accompanied by faultVariable
3.
Validate to ensure if faultMessageType is specified then it exists in
an imported wsdl document.
4.
Validate to emsure
if faultElement is specified then it
exists in an imported wsdl/xsd.
|
|
|
|
<from variable="ncname" part="ncname"?/>
|
1.
Validate to ensure that <from>
variable exists.
2.
Validate to ensure that <from>
part exists.
|
|
|
|
<from partnerLink="ncname" endpointReference="myRole|partnerRole"/>
|
Validate to ensure that <from> partnerLink exists.
|
|
|
|
<from variable="ncname"
property="qname"/>
|
1.
Validate to ensure that <from>
variable exists.
2.
Validate to ensure that <from>
property exists.
|
|
|
|
<from expressionLanguage="anyURI"?>expression</from>
|
1.
Validate to ensure that expression
text can be parsed by the expression model
for
given expressionLanguage.
(In the absence of queryLanguage default to default query model
which is xpath1.0)
|
|
|
|
<from> <literal> ... literal value ...
</literal> </from>
|
1.
Validate to ensure if type of the
literal is specified using inline xsi:type then literal value should of that
type. (lets say type is string and there is an element
definition
under <literal> then its an error.)
2.
Literal return value should be either
EII or TII
|
|
|
|
<to variable="ncname" part="ncname"?/>
|
1.
Validate to ensure that <to>
variable exists.
2.
Validate to ensure that <to>
part exists.
|
|
|
|
<to partnerLink="ncname"/>
|
Validate to ensure that <to> partnerLink exists.
|
|
|
|
<to variable="ncname" property="qname"/>
|
1.
Validate to ensure that <to>
variable exist.
2.
Validate to ensure that <to>
property exists.
|
|
|
|
<to queryLanguage="anyURI"?>… query … </to>
|
1.
Validate to ensure that query text
can be parsed by the query model
for
given queryLanguage.
(In the absence of queryLanguage default to default query model
which is xpath1.0)
|
|
|
|
<correlationSets>
<correlationSet name="ncname" properties="qname-list"/>
</correlationSets>
|
1.Validate
to ensure that all the correlationSet
inside a correlationSets have unique names.
|
|
Done
|
|
<correlationSet name="ncname" properties="qname-list"/>
|
1.
Validate to ensure that all the
properties
defined
in a correlationSet exists.
2.
Validate to ensure that for each properties specified there exist a propertyAlias.
|
|
Done
|
|
<correlation set="ncname"
initiate="yes|join|no"?
pattern="request|response|request-response"/>+
|
1.
validate
if a duplicate correlation inside all activities which can have
correlation (receive/reply/invoke etc) try to initiate it again. This
should be a warning.
Ex:
<receive createInstance="yes">
<correlations>
<correlation set="cSet1" initiate="yes"/>
<correlation set="cSet1" initiate="yes"/>
<correlation set="cSet1" initiate="yes"/>
</correlations>
</receive>
2.
validate
if a correlation is initiated and then same is being not initiated.
Ex:
<receive >
<correlations>
<correlation set="cSet1" initiate="yes"/>
<correlation set="cSet1" initiate="no"/>
</correlations>
</receive>
3.
If the receive is the first activity
(and not in a flow) and the create instance is yes, if there is any
correlation that has initiate values other than "join" or "yes", it is
a FATAL error.
4.
Fatal error if Inside flow a receive
has
createInstance
attribute value “yes” and a correlation inside receive has initialed
attribute value “no”.
Ex:
<flow>
<receive createInstance=”yes”>
<correlation set="cSet1" initiate="no"/>
</receive>
4. Validate that the same correlation Set is not being referred to
twice in the <correlations> tag. Example:
<receive createInstance="yes">
<correlations>
<correlation set="cSet1" initiate="yes"/>
<correlation set="cSet1" initiate="yes"/>
</correlations>
</receive>
|
|
Done
|