本文配套源碼
最新版本在線演示: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/(中文版)