Syntax Analysis for BPEL 2.0 Compiled by reviewing Chapters 1-8 of working draft specification Number Element Description Section 1 <variable> 8.1 2 <catch> 3 <onEvent> 4 <onEvent> 5 <onEvent> 6 <fromPart> 7 <receive> 8 <receive> 9 <receive> 10 <receive> 11 <fromPart> 12 <fromPart> 13 <reply> 14 <reply> @messageType, @type, and @element are mutually exclusive @faultMessageType and @faultElement are mutually exclusive @messageType and @element are mutually exclusive @variable and <fromPart> are mutually exclusive @messageExchange must reference a messageExchange value that is in scope, resolving to associated scope first and then anscestor scopes If used within an <onEvent> the variable referenced by @toVariable is implicity declared within the associated scope. It is an error to have an explicit declaration of a variable with the same name within the associated scope. @partnerLink must reference a partnerLink in scope @variable must reference a variable in scope @messageExchange must reference a messageExchange value in scope @variable and <fromPart> are mutually exclusive @part must reference a valid message part in the WSDL message for the operation @toVariable must reference a variable within scope @partnerLink must reference a partnerLink in scope @variable must reference a Static Analysis 12.4 12.5.1 12.5.1 12.5.1 12.5.1 10.4 SA-47 15 <reply> 16 <reply> 17 <toPart> 18 <toPart> 19 <invoke> 20 <invoke> 21 <invoke> 22 <invoke> 23 <invoke> 24 <invoke> 25 <validate> 26 <forEach> 27 <onMessage> 28 <onMessage> 29 <onMessage> 30 <onMessage> 31 <correlation> 32 <compensateScope> variable in scope @variable and <toPart> are mutually exclusive @messageExchange must reference a messageExchange value in scope @part must reference a valid message part in the WSDL message for the operation @fromVariable must reference a variable in scope @partnerLink must reference a partnerLink in scope @inputVariable must reference a variable in scope @outputVariable must reference a variable in scope @inputVariable and <toPart> are mutually exclusive @outputVariable and <fromPart> are mutually exclusive @outputVariable and <fromPart> are only allowed for request-response MEP @variables must contain list of variables in scope A variable with the same name as @counterName is implicitly declared within the associated scope. It is an error to have a variable explicitly declared with the same name. @partnerLink must reference a partnerLink in scope @variable must reference a variable in scope @messageExchange must reference a messageExchange in scope @variable and <fromPart> are mutually exclusive @set must reference a correlation set in scope must be nested within compensationHandler, 10.4 10.4 SA-34 10.3 SA-31 10.3 SA-31 normative change? 11.5 5.2 33 <compensate> 34 <rethrow> 35 <target> 36 <source> 37 <import> 38 <import> 39 <partnerLinkType> /<role> 40 <partnerLink> 41 <propertyAlias> 42 <from> 43 <from> 44 <from> 45 <from> 46 <to> 47 <to> faultHandler or terminationHandler must be nested within compensationHandler, faultHandler, terminationHandler must be nested within faultHandler @linkName must reference a link in scope @linkName must reference a link in scope If @namespace is specified then the imported definitions must be in that namespace If @namespace is not specified then the imported definitions must not contain a targetNamespace If there are two roles defined for a partnerLinkType then they must have unique @name values. @myRole and @partnerRole must resolve to role names defined for the partnerLinkType @messageType + @part, @type, @element are mutually exclusive @part must reference a part defined for the WSDL message referenced by the @variable @variable must reference a variable in scope The partnerLink referenced by @partnerLink must be in scope The partnerLink referenced by @partnerLink must provide the role referenced by @endpointReference @variable must reference a variable in scope @part must reference a part defined for the WSDL message referenced by @variable 5.2 5.2 5.3 5.3 5.4 48 <to> 49 <to> @partnerLink must reference a partnerLink in scope @partnerLink must reference a partnerLink that provides the partnerRole