| namespace local = "" |
| namespace inh = inherit |
| |
| start = workflow |
| |
| workflow = |
| element workflow |
| { |
| attribute name { xsd:string }, |
| attribute version { xsd:integer }, |
| node*, |
| variableHandler* |
| } |
| |
| node = |
| element node |
| { |
| attribute id { xsd:integer }, |
| attribute type { xsd:string }, |
| attribute serviceObjectClass { xsd:string }?, |
| attribute subWorkflowName { xsd:string }?, |
| ( |
| element in |
| { |
| element variable |
| { |
| attribute name { xsd:string }, |
| attribute as { xsd:string } |
| }+ |
| }, |
| element out |
| { |
| element variable |
| { |
| attribute name { xsd:string }, |
| attribute as { xsd:string } |
| }+ |
| } |
| )?, |
| attribute variable { xsd:string }?, |
| attribute operand { xsd:string }?, |
| arguments?, |
| condition+?, |
| element variable { attribute name { xsd:string }, condition?, variable? }+?, |
| outNode+? |
| } |
| |
| outNode = element outNode { attribute id { xsd:integer } } |
| |
| condition = |
| element condition |
| { |
| attribute type { xsd:string }, |
| attribute a { xsd:string }?, |
| attribute b { xsd:string }?, |
| attribute name { xsd:string }?, |
| attribute value { xsd:string }?, |
| attribute variable { xsd:string }?, |
| array?, |
| condition+?, |
| outNode?, |
| else? |
| } |
| |
| else = element else { outNode } |
| |
| variableHandler = |
| element variableHandler |
| { |
| attribute variable { xsd:string }, |
| attribute class { xsd:string } |
| } |
| |
| arguments = element arguments { variable* } |
| |
| variable = array | boolean | double | integer | null | object | \string |
| |
| array = element array { \element* } |
| |
| \element = element element { attribute key { xsd:string }, variable } |
| |
| boolean = element boolean { xsd:string } |
| |
| double = element double { xsd:double } |
| |
| integer = element integer { xsd:integer } |
| |
| null = element null { text } |
| |
| object = element object { attribute class { xsd:string }, arguments? } |
| |
| \string = element string { xsd:string } |