<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    [轉(zhuǎn)] XPDL parser

    轉(zhuǎn)自:http://blog.csdn.net/windsails/archive/2005/03/03/309851.aspx

    XPDL作為一種由WfMC提出來的比較規(guī)范的工作流描述語言,很好的解決了工作流的定義的問題,也就是WfMC提出的工作流參考模

    型中的接口一,此外,對于工作流的核心而言,如何解釋XPDL也是關(guān)鍵。

    JaWE是目前公認(rèn)的比較好的基于Java編寫的圖形化工作流定義工具,它使用的描述語言正是XPDL。如果你自己想做個簡單的工作

    流處理引擎,了解和解釋XPDL是關(guān)鍵的第一步,既然有了JaWE這個這么好的工具,而且它還是開源的,那么為什么不也利用它的

    函數(shù)庫來解釋XPDL呢?

    JaWE是一個開源的項(xiàng)目,最新的版本可以在http://jawe.objectweb.org下載。

    如果你只是利用它作為XPDL的解釋器的話,只需要以下的Java庫文件:
    jawexpdl.jar

    它同時需要幾個運(yùn)行庫:
    xercesImpl.jar
    xml-apis.jar
    jawelan.jar (如果不涉及中文的描述,可以不要)

    另外如果想直接用JaWE的一些現(xiàn)成的圖形化工具庫,則需要jawe.jar

    下面是個簡單的代碼例子;

    package org.aas.readXPDL;

    import org.enhydra.jawe.xml.*;
    import org.enhydra.jawe.xml.elements.*;
    import java.util.*;

    /**
     * @author Jonathan
     * @version v0.1
     * Main: TODO To declare the description of this type
     */
    public class Main {

        public static void main(String[] args) {
            XMLInterfaceForJDK13 xml = new XMLInterfaceForJDK13();
            String strFilename = "XXX.xpdl";
            int i = 0;
            XMLElement subElement = null;
            if (xml.doesPackageFileExists(strFilename))
            {
                System.out.println("OK!!!");         
                org.enhydra.jawe.xml.elements.Package pkg = xml.openPackage(strFilename,false);
                // pkg = xml.getPackageByFilename(strFilename);
                // System.out.println("Version:" + pkg.getVersion());
                System.out.println("ElementCount:" + pkg.getElementsCount());
                System.out.println("Is made by JaWE:" + pkg.isMadeByJaWE());
                System.out.println("Package to string:" + pkg.toString());
                System.out.println("ID:" + xml.getIDFromFile(strFilename));
                System.out.println("Current Version:" + pkg.getCurrentVersion());
                System.out.println("Package ID:" + pkg.get("Id"));
                System.out.println("package Name:" + pkg.get("Name"));
               
                // 讀取頭信息
                System.out.println(" --- 頭信息 ---");
                PackageHeader pkgh = (PackageHeader)pkg.get("PackageHeader");
                System.out.println("Header ElementCount:" + pkgh.getElementsCount());
                List pkghList = pkgh.getChildElements();
                for (i=0;i<pkghList.size();i++)
                {
                    subElement = (XMLElement)pkghList.get(i);
                    Object value = subElement.toValue();
                        System.out.println("No." + i + " : " + subElement.toName()
                           + "[" + subElement.toLabel() + "]  "
                           + value);                        
                }
               
                // 獲取WorkflowProcesses
                WorkflowProcesses wfps = (WorkflowProcesses)pkg.get("WorkflowProcesses");
                System.out.println("WorkflowProcesses Number: " + wfps.size());
                Collection wfpList = wfps.toCollection();
                Iterator itor = wfpList.iterator();
                while(itor.hasNext())
                {
                    WorkflowProcess wfp = (WorkflowProcess)itor.next();               
                    System.out.println(wfp.get("Name"));
                    System.out.println(wfp.get("Id"));
                }
                xml.closeAllPackages();
            }
            else
                System.out.println("Error when open the file!");
        }
    }

    熟悉XML操作的朋友一定覺得很簡單吧?
    XPDL的各個元模型元素在JaWE中都定義成了對象,可直接使用,十分方便。

    posted on 2008-03-24 19:43 hijackwust 閱讀(1414) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(6)

    隨筆檔案(57)

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 午夜老司机免费视频| 亚洲熟妇无码av另类vr影视| 国产成人精品123区免费视频| 三年片在线观看免费观看大全一 | 成人自慰女黄网站免费大全 | 久久精品女人天堂AV免费观看| a毛片免费全部在线播放**| 麻豆91免费视频| 亚洲jizzjizz少妇| 亚洲男人天堂2022| 亚洲区精品久久一区二区三区| 亚洲AV综合色区无码一区爱AV| 亚洲欧洲中文日韩av乱码| 四虎影视在线永久免费看黄| 国产美女在线精品免费观看| 又大又硬又爽又粗又快的视频免费| 日本一道本不卡免费| a级毛片在线视频免费观看| 国产乱妇高清无乱码免费| 人禽伦免费交视频播放| 美女被免费网站在线视频免费| 亚洲国产欧美日韩精品一区二区三区 | 精品亚洲永久免费精品| 久久亚洲国产成人影院网站 | 亚洲爆乳少妇无码激情| 中文字幕在线观看亚洲日韩| 亚洲乱码一区av春药高潮| 亚洲国产成a人v在线| 精品日韩99亚洲的在线发布| 亚洲人成电影院在线观看| 亚洲冬月枫中文字幕在线看| 亚洲人成电影青青在线播放| 99999久久久久久亚洲| 亚洲中文字幕久久精品无码A| 中文字幕无码精品亚洲资源网久久| 亚洲福利电影一区二区?| 91亚洲国产成人久久精品| 国产精品亚洲综合五月天| 最新亚洲精品国偷自产在线| 在线视频亚洲一区| yy一级毛片免费视频|