关于osworkflow的osworkflow.dtd

 

0.workflow标记:

Osworkflow流程定义xml文件的最外层结构:

<!ELEMENT workflow (meta*, registers?, trigger-functions?, global-conditions?, initial-actions, global-actions?, common-actions?, steps, splits?, joins?)>

1.action标记:

1.1 id属性:要求在整个流程定义文件内都是全局唯一的,而不仅仅是在包含它的steps标记中唯一。

1.2 name属性:action名称。

1.3 auto属性:当流程进入包含该action的step时,所有的条件(conditions)和约束(restrictions)都满足时action将自动执行。注意:在一个step内,每次的工作流变迁最多只有一个auto的action有效,当多个action同时满足上面条件时,在流程定义xml文件中,第一个匹配到的action将会自动执行。

1.4 finished属性:标示该action是否是终极action。一个终极action将使当前所有的steps结束并转移到历史表中,整个流程实例状态将被改为COMPLETED。

<!ELEMENT action (meta*, restrict-to? , validators?, pre-functions?, results, post-functions?)>

<!ATTLIST action

id CDATA #REQUIRED

name CDATA #REQUIRED

   view CDATA #IMPLIED

   auto (TRUE | FALSE | true | false) #IMPLIED

   finish (TRUE | FALSE | true | false) #IMPLIED

>

2.common-action标记

一个公共(共享)的action

<!ELEMENT common-action (#PCDATA)>

<!ATTLIST common-action

id CDATA #REQUIRED

>

3.actions标记

一组common-action标记(0个或多个)或action标记(0个或多个),注意:必须有两者之一,否则非法。用在step标记中。

<!ELEMENT actions (common-action*, action*)>

4.arg标记:

标示一个函数的参数,参数的值将被解析,例如,如果变量foo值为”bar”,则”test ${foo}”将会被解析为”test bar”。该标记作为function的子标记。

<!ELEMENT arg (#PCDATA)>

<!ATTLIST arg

name CDATA #REQUIRED

>

5.conditions标记:

包含了一个或多个condition或嵌套conditions标记,用来标示AND和OR逻辑

该标记用在join、restrict-to、result标记中。

<!ELEMENT conditions (conditions | condition)*>

<!ATTLIST conditions

type (AND | OR) #IMPLIED

>

6.condition标记:

该标记的属性包括type,id,negate,name,主要用到的属性为type,表示condition的类型,一般的取值为class或beanshell。

<!ELEMENT condition (arg*)>

<!ATTLIST condition

type CDATA #REQUIRED

  id CDATA #IMPLIED

  negate CDATA #IMPLIED

  name CDATA #IMPLIED

>

7.external-permissions标记:

工作流外部的一组许可,但是与工作流的实体相关。

在step标记中使用。

<!ELEMENT external-permissions (permission+)>

8.function标记:

function表示一个OSWorkflow中自动执行的函数代码块。

可以的属性包括type,id,name。常用的属性为type,可能的取值有class,beanshell。

<!ELEMENT function (arg*)>

<!ATTLIST function

type CDATA #REQUIRED

  id CDATA #IMPLIED

  name CDATA #IMPLIED

>

9. global-actions标记:

定义一系列的全局action,可以在任何step中执行。

使用在workflow标记中。

<!ELEMENT global-actions (action+)>

10.initial-actions标记:

在定义工作流实例状态前的一些初始化action。

使用在workflow标记中

<!ELEMENT initial-actions (action+)>

11.common-actions标记:

一组公用(共享)的action,可以被包含在任何step中,此时只需要声明一个带有id属性,但是没有body的action标记。

<!ELEMENT common-actions (action+)>

12.join标记:

表示两个或两个以上当前状态转变为一个新的状态。join的unconditional-result只能是一个step,而不能是另一个join或split。join只有当conditions为true时才会发生。

<!ELEMENT join (conditions, unconditional-result)>

<!ATTLIST join

id CDATA #REQUIRED

>

13.joins标记

一系列的join

用在wokflow标记中

<!ELEMENT joins (join*)>

14.meta标记

workflow,step,action的一些静态的元属性,用在workflow,step,action中。

<!ELEMENT meta (#PCDATA)>

<!ATTLIST meta

name CDATA #REQUIRED

>

15.permission标记:

一个外部许可,用在external-permissions标记中。

<!ELEMENT permission (restrict-to)>

<!ATTLIST permission

name CDATA #REQUIRED

  id CDATA #IMPLIED

>

16.post-functions标记:

一组可以工作流实例状态变迁后执行的function,用在action,result,unconditional-result标记中。

<!ELEMENT post-functions (function+)>

 

17.pre-functions标记:

一组可以工作流实例状态变迁后执行的function,用在action,result,unconditional-result标记中。

<!ELEMENT pre-functions (function+)>

 

18.register标记:(看代码时好好研究,看怎么用)

一个可以在所有的function和validator作用域内容纳一个变量的类,用在registers标记中。

<!ELEMENT register (arg*)>

<!ATTLIST register

type CDATA #REQUIRED

variable-name CDATA #REQUIRED

  id CDATA #IMPLIED

>

19.registers标记:

一组register标记,用在workflow标记中。

<!ELEMENT registers (register+)>

 

20.restrict-to标记:

一个对action和permission的约束,用在action和permission标记中。

<!ELEMENT restrict-to (conditions?)>

 

21.result标记:

表示一个条件结果,只有党conditions为true时,这个条件结果才会发生。用在results标记中。

<!ELEMENT result (conditions, validators?, pre-functions?, post-functions?)>

<!ATTLIST result

old-status CDATA #REQUIRED

status CDATA #IMPLIED

step CDATA #IMPLIED

owner CDATA #IMPLIED

split CDATA #IMPLIED

   join CDATA #IMPLIED

  due-date CDATA #IMPLIED

  id CDATA #IMPLIED

  display-name CDATA #IMPLIED

>

 

22.results标记:

一组条件结果(result)的集合和一个无条件结果(unconditional-result),用在action标记中。

<!ELEMENT results (result*, unconditional-result)>

 

23.split标记:

一个状态转变为一个或多个状态,所有的无条件结果都是step,而不是其它的split或join,用在splits标记中。

<!ELEMENT split (unconditional-result+)>

<!ATTLIST split

id CDATA #REQUIRED

>

24.splits标记:

一组split标记,用在workflow标记中。

<!ELEMENT splits (split+)>

 

25.step标记:

一个workflow的steps中只有一个唯一的step,用在steps标记中。

<!ELEMENT step (meta*, pre-functions?, external-permissions?, actions?, post-functions?)>

<!ATTLIST step

id CDATA #REQUIRED

name CDATA #REQUIRED

>

 

26.steps标记:

用在workflow标记中,一组step。

<!ELEMENT steps (step+)>

 

27.unconditional-result标记:

当所有的有条件结果(result)都不满足时,则会执行无条件结果(unconditional-result)。

<!ELEMENT unconditional-result (validators?, pre-functions?, post-functions?)>

<!ATTLIST unconditional-result

old-status CDATA #REQUIRED

status CDATA #IMPLIED

step CDATA #IMPLIED

owner CDATA #IMPLIED

split CDATA #IMPLIED

join CDATA #IMPLIED

  due-date CDATA #IMPLIED

  id CDATA #IMPLIED

  display-name CDATA #IMPLIED

>

 

28.trigger-function标记:

一个有唯一Id,并且可以被外部任务调度程序调用的function。用在trigger-functions中。

<!ELEMENT trigger-function (function)>

<!ATTLIST trigger-function

id CDATA #REQUIRED

>

 

29.trigger-functions标记:

一组trigger-function,用在workflow标记中。

<!ELEMENT trigger-functions (trigger-function+)>

 

30.validator标记:

一个用来验证用户输入的类(class)或脚本(script)。用在validators标记中。

<!ELEMENT validator (arg*)>

<!ATTLIST validator

type CDATA #REQUIRED

  name CDATA #IMPLIED

  id CDATA #IMPLIED

>

31.validators标记:

一组validator标记,用在workflow标记中。用在action, initial-step, result, unconditional-result标记中。

<!ELEMENT validators (validator+)>

 

32.global-conditions标记:

一组conditions,会被每一个action检查,用在workflow标记中。

<!ELEMENT global-conditions (conditions?)>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值