`

EMF模型解析的策略分析(转)

阅读更多
今天看到两种使用EMF解析.xml为EMF模型的策略:
 一种是通过如下代码:

IFileEditorInput modelFile = (IFileEditorInput)getEditorInput();
URI resourceURI = URI.createPlatformResourceURI(modelFile.getFile().getFullPath().toString());;
resource = editingDomain.getResourceSet().getResource(resourceURI, true ); 上面这种方式会引用一个AdapterFactoryEditingDomain类,但我们基于模型做编辑器时,有时并不需要用这个类,例如GEF,它具有自身的EditorDomain。

另外一种方式是使用EMF模型自动生成的Process,该类一般在模型的Util包下面,引用代码如下:
IFileEditorInput modelFile = (IFileEditorInput)getEditorInput();
XMLProcessor processor = new DesignXMLProcessor();
resource = processor.load(new InputSource(new InputStreamReader(modelFile.getFile().getContents(), "GBK")), null);

  其实,对于EMF而言,上面两种解释方式,归根到底都需要EMF获得 业务模型相关的解析器,对于第一种方式,EMF是如何获取到业务模型的解析器呢?主要是通过扩展的方式,扩展定义在模型的plugin.xml中,代码片断如下图所示:
<extension point="org.eclipse.emf.ecore.extension_parser">
<parser
type="design"
class="com.neusoft.report.design.util.DesignResourceFactoryImpl" />
</extension>
这样,解析.xml文件时,EMF从ResourceFactory注册中,根据相应的type,获取解析器(DesignResourceFactoryImpl),完成解析。

 

分享到:
评论

相关推荐

    EMF读取XML

    - EMF模型是面向对象的,它定义了数据结构和业务规则,可以看作是XML数据的抽象表示。 - XML是一种标记语言,用于存储和传输结构化数据,它与EMF模型之间的映射使得XML数据能够被EMF理解和处理。 2. **创建EMF...

    EMF模型文件对比/比较(emf.compare)

    - 如何解析和加载EMF模型文件。 - 如何启动和使用比较视图,理解差异的表示方式。 - 如何处理和合并模型文件的冲突。 - 如何通过API扩展EMF.compare的功能,例如自定义比较策略。 - 在实际项目中,如何结合GWT、...

    eclipse插件开发EMF api 文档

    9. **扩展和定制**:EMF允许开发者通过继承和实现接口来扩展其功能,如自定义类型系统、解析器和序列化策略等。 10. **与其他Eclipse组件集成**:EMF与Eclipse的其他组件如PDE(Plug-in Development Environment)...

    EMF XSD SDK

    6. **Persistence and Transformation**:EMF支持多种持久化策略,如Eclipse的Native XML存储,以及数据转换工具,如XSLT,方便数据在不同格式间转换。 在实际开发中,EMF XSD SDK可以帮助开发者快速构建基于XML的...

    EMF的JMerger使用

    在实际应用中,JMerger不仅可以用于EMF模型的合并,还可以与其他版本控制系统(如Git)集成,为源代码级别的模型与代码同步提供支持。这在大型软件项目中非常有用,因为模型和代码往往需要同步更新。 为了使用...

    直流电机模型.zip

    《直流电机模型解析及其在MATLAB SIMULINK中的应用》 直流电机作为电力驱动系统中的重要组成部分,广泛应用于工业、交通、航空航天等多个领域。本文将深入探讨直流电机的工作原理,并结合MATLAB SIMULINK环境,解析...

    GMF实例解析(PDF版)

    因此,结合EMF(Eclipse Modeling Framework)构建后台模型成为了一种常见策略,然而EMF与GEF的整合并非易事。 在此背景下,GMF(Graphical Modeling Framework)应运而生,作为GEF和EMF的进一步封装,它提供了一个...

    行业资料-电子功用-共直流母线开绕组永磁同步电机转子位置辨识方法的说明分析.rar

    无传感器方法则依赖于电机自身的电气参数变化来推算转子位置,包括基于反电动势(Back EMF)、磁通检测、谐波分析等多种策略。 反电动势法是无传感器辨识中常用的一种。当电机运行时,定子绕组会产生与转子速度和...

    pmsm.pi.zip_motor_pmsm_永磁同步电机_永磁同步电机PIsimulink仿真模型

    永磁同步电机模型通常包括电机的电气和机械动态方程,如电磁转矩计算、反电动势(EMF)模型等。然后,将PI控制器模块与电机模型连接,输入为电机的速度或位置误差,输出为电压指令。比例部分直接与误差成比例输出,...

    GEF_User_Guide_中文翻译

    11. **插件集成**:在Eclipse环境中,GEF创建的编辑器可以与其他Eclipse插件无缝集成,如与EMF模型浏览器或调试器的集成。 12. **自定义编辑策略**:通过编写自定义编辑策略,开发者可以扩展GEF的基本功能,以满足...

    电子功用-检测永磁同步电机转子磁极初始位置的方法和系统

    这些技术包括基于暂态电压、谐波分析或基于模型的算法,通过分析电机运行时的电气参数来估计转子位置。 5. **基于混沌理论的方法**:混沌理论在电机控制领域有独特应用,通过分析电机运行过程中的非线性特性,可以...

    org.eclipse.gmf.rar

    5. **动态加载和解析**:RAR支持在运行时动态加载和解析资源,这使得应用程序可以根据需要加载不同的模型和图形资源,提高了程序的灵活性和可扩展性。 6. **自定义行为**:开发者可以通过扩展RAR,实现特定的业务...

    软件开发工具模拟试卷答案可用.pdf

    解析:使用EMF构建应用程序的第一步通常是定义模型元素,这将生成对应的Java类和API,随后可以基于这些模型元素创建编辑器和其他UI组件。 20. 描述某一业务处理系统信息来源、存储、处理和去向的全面情况,通常...

    无刷无感电机控制器原理图

    2. 开环和闭环控制:在启动和低速运行时,由于Back EMF较小,可能需要采用开环控制策略,如六步换向法(也称为梯形换向或星三角换相)。随着速度增加,Back EMF增大,可以切换到闭环控制,通过反馈电流和速度信息来...

    AN1083 MCLV_BLDCsensorless_BLDC_SENSORLESS_Sensorless_back_BLDCE

    标题“AN1083 MCLV_BLDCsensorless_BLDC_SENSORLESS_Sensorless_back_BLDCE”涉及的是一款无传感器BLDC(无刷直流电机)控制技术,结合了反电动势(Back-EMF)滤波策略。该技术主要用于提高电机驱动系统的效率和性能...

    xtext基础入门说明资料

    这部分介绍了如何处理Xtext模型的一些基本方法,包括加载资源、使用EMF模型、解析树等。 **2.3 编写代码生成器** **2.3.1 Xpand和MWE** Xtext支持使用Xpand和Modeling Workflow Engine (MWE)来进行代码生成。这两...

    高频信号注入无速度传感器永磁同步电机控制系统_缪学进.pdf

    该技术的基本原理是通过向电机定子绕组中注入特定频率的微小电流信号,然后分析电机反电动势(Back EMF)或电磁力的变化来推断电机的速度和位置信息。这种方法的优势在于无需额外的硬件设备,降低了系统成本,同时...

Global site tag (gtag.js) - Google Analytics