Welcome

首页 / 软件开发 / Silverlight / 使用silverlight构建一个工作流设计器(三)

使用silverlight构建一个工作流设计器(三)2009-11-09 cnblogs chegan

最新版本在线演示:http://219.153.66.61/wf

新功能调查:系统到这里已经具备一个设计器的雏形了,当然还有很多需要完善的功能,如果您在这方面有经验,请提出您的宝贵意见,也可以留下您想要实现的功能,在后续版本中,我们将考虑您的意见,非常感谢:)

本文继续前文的内容,主要讲述与导入xm,导出xm,xml存储有关的一些内容。包含以下部分:

设计一个流程图的xml描述文件

将流程图导出为xm

根据xml文件呈现流程图

在完成以上内容后,进一步深入思考,既然可以将流程的当前状态保存为xm,那么在每次流程改变的时候将当前状态保存到内存中,在需要的时候再从内存中还原,就可以实现word里面的 撤销 与 前进 的功能了,所以功能就加多了两个。

撤销

前进

在进一步,如果将内存保存的xml对象集合按照一定的频率自动播放,是不是就是一个动画了,呵呵,我们可以用这个来做一个简单的动画片了。

四、xml存取

4.1 xml内容

就是将流程图保存为xml文件,以及根据xml文件还原流程图的功能。首先来看一下xml文件的格式。Xml文件用来描述流程的,在本文中,流程的布局信息主要有几个方面:

流程的属性信息。例如流程名称等

活动和规则的属性信息,例如活动名称等

活动和规则的位置信息

活动和规则的关联信息

我们设计出一个可以完全描述上面内容的xml文件即可,下面给出这个xml描述的一个实现。

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<WorkFlow ID="" Name="" Description="">

<Activitys>

<Activity ActivityID="" ActivityName="" PositionX="" PositionY="" ZIndex="">

</Activity>

</Activitys>

<Rules>

<Rule RuleID="" RuleName="" BeginActivityID="" EndActivityID="" BeginPointX="" BeginPointY="" EndPointX="" EndPointY="" ZIndex="">

</Rule>

</Rules>

</WorkFlow>

上面的内容不用多讲了,大家看名字应该可以猜的出来。

我们还可以使用xsd.exe工具(.netframework sdk里面带有)生成对应的workflow.xsd文件,在根据.xsd文件生成Class,这个class就是操作这个xml文件的,.net真是太方便了。(这里就先不这么做了,而直接使用LINQ To Xml来操作上面的xml文件)

如果您不了解xml相关的一些技术,可以参考

http://www.w3schools.com/xm/default.asp或者http://www.w3schoo.com.cn/(中文版)