将Eclipse图形模型(如BPMN图)序列化为XML

将Eclipse图形模型(如BPMN图)序列化为XML,eclipse,xml-serialization,xsd,eclipse-emf,eclipse-gmf,Eclipse,Xml Serialization,Xsd,Eclipse Emf,Eclipse Gmf,我正在从事一个项目,在这个项目中,我必须为java制造的专有BPM(业务流程管理)系统构建一个图形化流程建模器。我要提到的是,该软件是专有的,因为它不遵循任何国际标准,如BPEL、BPMN、XPDL,这是我可能得到的任何答案的重要信息 我打算采用的方法是使用EclipseGMF创建一个独立的RCP应用程序,类似于Bonita Studio,业务分析师将在其中以图形方式对业务流程进行建模,并将流程模型部署到web应用程序中 这个应用程序有一个类似于流程建模器的内部向导,非常简单。但该建模器具有以自

我正在从事一个项目,在这个项目中,我必须为java制造的专有BPM(业务流程管理)系统构建一个图形化流程建模器。我要提到的是,该软件是专有的,因为它不遵循任何国际标准,如BPEL、BPMN、XPDL,这是我可能得到的任何答案的重要信息

我打算采用的方法是使用EclipseGMF创建一个独立的RCP应用程序,类似于Bonita Studio,业务分析师将在其中以图形方式对业务流程进行建模,并将流程模型部署到web应用程序中

这个应用程序有一个类似于流程建模器的内部向导,非常简单。但该建模器具有以自定义、定义良好的XML格式导入和导出模型的功能,该格式也是专有的,没有国际标准

我需要的是将使用eclipse gmf rcp应用程序创建的图形模型持久化为这种自定义XML格式。通过这种方式,我可以简单地在web应用程序中调用导入函数,然后部署该过程。我还需要能够做相反的事情:在EclipseRCP中以这种XML格式打开一个自定义进程,并以图形方式显示它

所以,我需要的是:

我需要以自定义XML格式保存一个图形图表,并以该格式打开一个自定义XML文件,并将其显示为图形图表


非常感谢您的帮助

GMF使用EMF模型来存储其图表。由于EMF模型已经能够映射到XML,所以在大多数情况下,XSL样式表转换可能足以将您的模型映射到自定义XML格式,反之亦然。

Daniel,我需要将图表导出为XML,反之亦然。我会告诉你我在下面遵循的程序

GUI到XML:-使用下面代码中的模型文件将根元素作为java对象返回

注意:-假设GMF编辑器生成2个文件,一个用于模型,一个用于图表,您必须选择模型文件作为以下代码的输入

    File model_file = new File(Path_to_your_model_file);
    ResourceSet rs = new ResourceSetImpl();
    URI fileUri = URI.createFileURI(model_file.getAbsolutePath());
    Resource res = rs.getResource(fileUri, true);
    Model model = res.getContents().get(0);
ModelImpl model = (ModelImpl)ModelFactoryImpl.eINSTANCE.createModel(); // Replace Model with your model element name
在上面的直线模型中,表示ecore模型的根对象。现在,当您获得根对象时,您可以使用它来获取所有值、引用等

使用这些,您可以手动编写java代码来编写XML文件

XML到GUI:-这也很简单

使用以下代码为模型的根元素创建一个新对象

    File model_file = new File(Path_to_your_model_file);
    ResourceSet rs = new ResourceSetImpl();
    URI fileUri = URI.createFileURI(model_file.getAbsolutePath());
    Resource res = rs.getResource(fileUri, true);
    Model model = res.getContents().get(0);
ModelImpl model = (ModelImpl)ModelFactoryImpl.eINSTANCE.createModel(); // Replace Model with your model element name
您必须首先使用JAVA解析XML文件,并逐步读取所有值,并逐步将属性分配给模型对象(例如:model.setName(doc.getDocumentElement().getAttribute(“name”);ChildObjImpl childObject=(ChildObj)ModelFactoryImpl.eINSTANCE.createChildObj();

您可以创建代码支持的所有不同的必需对象,然后将它们添加到父对象(例如:model.getChildObject().add(childObject))

将XML中的所有信息添加到这些对象中后,可以使用根模型对象创建模型文件,如下所示

    ResourceSet resourceSet = new ResourceSetImpl();
    resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi",new XMIResourceFactoryImpl());
    Resource resource = resourceSet.createResource(URI.createFileURI(path_where_u_want_to_save_the_model_with_filename));
    resource.getContents().add(dd);
    resource.save(null);
上面的代码将生成模型,您可以右键单击该文件并生成图表文件


我不知道是否有更好的方法,但这个方法对我很有效。试试看,如果需要进一步帮助,请告诉我。

嘿!谢谢你的信息!你知道我在哪里可以找到关于这个的任何具体文件吗?我尝试了eclipse wili和帮助,但我找不到它。。。也许是一本书?