Bpmn和xml文件相互转化

本文介绍了如何通过Activiti库实现Bpmn和Xml文件的相互转化。提供了一种简便方法,即创建bpmn20.xml文件,并使用Activiti工具直接将xml内容转换为可视化的bpmn模型,简化了转化流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.activit;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

import java.io.InputStream;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;

import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.test.Deployment;
import org.junit.Before;
import org.junit.Test;

public class BpmnTest {
ProcessEngine processEngine = null;
RepositoryService repositoryService = null;
RuntimeService runtimeService = null;
TaskService taskService = null;

/**
 * 加载配置文件
 */
@Before
public void init() {
    processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
            .buildProcessEngine();
    repositoryService = processEngine.getRepositoryService();
    runtimeService = processEngine.getRuntimeService();
    taskService = processEngine.getTaskService();
}



 @Test
 @Deployment(resources="resources/diagrams/VacationRequest.bpmn")
 public void testXmltoBpmn() throws XMLStreamException{
     ProcessDefinition processDefinition =repositoryService.createProcessDefinitionQuery().processDefinitionKey("vacationRequest").singleResult();
     //获取流程资源的名称
     String sourceName = processDefinition.getResourceName();
     //获取流程资源
     InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getId(),sourceName);
     //创建转换对象
     BpmnXMLConverter converter = new BpmnXMLConverter();
     //读取xml文件
     XMLInputFactory factory = XMLInputFactory.newInstance();
     XMLStreamReader reader = factory.createXMLStreamReader(inputStream);
     //将xml文件转换成BpmnModel
     BpmnModel bpmnModel = converter.convertToBpmnModel((XMLStreamReader) reader);
     //验证bpmnModel是否为空
     assertNotNull(bpmnModel);
     org.activiti.bpmn.model.Process process = bpmnModel.getMainProcess();
     //验证转换的流程id
     assertEquals("leave",process.getId());                  
 }

}

还有一种更加简便的方法


xml 格式直接自动生成bpmn文件。
新建文件: bpmn20.xml文件结尾的 activiti模型。然后copy得到的xml文件,最后open with
用activiti专用的视图打开就可以了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值