最近三个月做的流程定义工具(2)

定义流程图描述信息文件格式:ProcessModle.xlst

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
 <xsl:output method="xml" indent="yes"/>
 <xsl:template match="mxGraphModel">

 </xsl:template>
 <xsl:template match="mxGraphModel">
  <ProcessModel keyvalue="">
   <!--流程基本信息-->
   <Processs>
    <Attributes>
     <ProcessGUID></ProcessGUID>
     <ProcessKindGUID></ProcessKindGUID>
     <ProcessKindName></ProcessKindName>
     <ProcessName></ProcessName>
     <IsActive></IsActive>
     <WatchMembers></WatchMembers>
     <WatchMembersName></WatchMembersName>
     <Description></Description>
     <BusinessType></BusinessType>
     <BusinessURL></BusinessURL>
     <ReportURL></ReportURL>
     <ProcessQueryDomain></ProcessQueryDomain>
     <ProcessGrap></ProcessGrap>
     <StationGUID></StationGUID>
    </Attributes>
   </Processs>
   <!--步骤信息-->
   <Steps>
    <xsl:for-each select="root/Shape|root/Rect|root/Roundrect">
     <Step>
      <Attributes>
       <StepGUID>
       </StepGUID>
       <NextStepGUID>
       </NextStepGUID>
       <StepName>
        <xsl:value-of select="@label"/>
       </StepName>
       <StepID>
        <xsl:value-of select="@id"/>

       </StepID>
       <StepType>
        <xsl:choose>
         <xsl:when  test="@label='开始'">0</xsl:when>
         <xsl:when  test="@label='结束'">3</xsl:when>
         <xsl:otherwise>
          <xsl:for-each select="mxCell/mxGeometry">
           <xsl:value-of select="@StepType"></xsl:value-of>
          </xsl:for-each>
         </xsl:otherwise>
        </xsl:choose>
       </StepType>

       <IsMulti>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@IsMulti"></xsl:value-of>
        </xsl:for-each>
       </IsMulti>
       <ProcessGUID/>
       <IsCanRollBack>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@IsCanRollBack"></xsl:value-of>
        </xsl:for-each>
       </IsCanRollBack>
       <IsCanCancel>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@IsCanCancel"></xsl:value-of>
        </xsl:for-each>
       </IsCanCancel>
       <IsCanAssign>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@IsCanAssign"></xsl:value-of>
        </xsl:for-each>
       </IsCanAssign>
       <IsCanRevolution>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@IsCanRevolution"></xsl:value-of>
        </xsl:for-each>
       </IsCanRevolution>
       <IsCanClose>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@IsCanClose"></xsl:value-of>
        </xsl:for-each>
       </IsCanClose>
       <Description>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@Description"></xsl:value-of>
        </xsl:for-each>
       </Description>
       <DispBusinessDomain>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@DispBusinessDomain"></xsl:value-of>
        </xsl:for-each>
       </DispBusinessDomain>
       <EditBusinessDomain>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@EditBusinessDomain"></xsl:value-of>
        </xsl:for-each>
       </EditBusinessDomain>
       <AuditorNameCC>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@AuditorNameCC"></xsl:value-of>
        </xsl:for-each>
       </AuditorNameCC>
       <AuditorNameCCGUID>
        <xsl:for-each select="mxCell/mxGeometry">
         <xsl:value-of select="@AuditorNameCCGUID"></xsl:value-of>
        </xsl:for-each>
       </AuditorNameCCGUID>
      </Attributes>
      <Brands>
       <Band>
        <Attributes>
         <BandGUID></BandGUID>
         <ProcessGUID>
          <xsl:for-each select="mxCell/mxGeometry">
           <xsl:value-of select="@y"></xsl:value-of>
          </xsl:for-each>
         </ProcessGUID>
         <StepGUID>
          <xsl:value-of select="Shape|Rect/mxCell/mxGeometry[@x]"></xsl:value-of>
         </StepGUID>
         <AuditorName>
          <xsl:for-each select="mxCell/mxGeometry">
           <xsl:value-of select="@AuditorName"></xsl:value-of>
          </xsl:for-each>
         </AuditorName>
         <AuditorGUID>
          <xsl:for-each select="mxCell/mxGeometry">
           <xsl:value-of select="@AuditorGUID"></xsl:value-of>
          </xsl:for-each>
         </AuditorGUID>
         <AuditorType>
          <xsl:for-each select="mxCell/mxGeometry">
           <xsl:value-of select="@AuditorType"></xsl:value-of>
          </xsl:for-each>
         </AuditorType>
        </Attributes>
       </Band>
      </Brands>
     </Step>
    </xsl:for-each>
   </Steps>
   <!--步骤关系信息-->
   <Connectors>
    <xsl:for-each select="root/Connector">
     <Relation>
      <Attributes>
       <StepGUID>
        <xsl:for-each select="mxCell">
         <xsl:value-of select="@source"></xsl:value-of>
        </xsl:for-each>
       </StepGUID>
       <NextStepGUID>
        <xsl:for-each select="mxCell">
         <xsl:value-of select="@target"></xsl:value-of>
        </xsl:for-each>
       </NextStepGUID>
       <Expression/>
       <IsActive/>
       <ProcessGUID/>
       <ExpressionStru/>
       <RelationGUID/>
       <Position/>
      </Attributes>
     </Relation>
    </xsl:for-each>
   </Connectors>
  </ProcessModel>
 </xsl:template>
 <xsl:template match="@* | node()">
  <xsl:copy>
   <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
 </xsl:template>
</xsl:stylesheet>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值