EXML - 基于EMF的XML工具

栏目: 编程语言 · XML · 发布时间: 6年前

内容简介:最近做一个项目,又用到了XML的解析和保存。 Java中,对XML的解析和保存有很多种方法,也有很多好用的第三方jar包。 做Eclipse插件开发这么多年,习惯了用Eclipse中的一些插件,比如EMF在建模方面就有着很诱人的优势。 EMF中模型的存储一般都是用XML或是XMI的方式,只不过要对应响应的ecore模型。 所以,用EMF来动态的加载XML就不那么复杂了。当然了,所有的关于XML的解析和保存的处理都是在EXMLResourceImpl这个类里面完成的。熟悉XMLResource的人应该知道,

前言

最近做一个项目,又用到了XML的解析和保存。 Java中,对XML的解析和保存有很多种方法,也有很多好用的第三方jar包。 做Eclipse插件开发这么多年,习惯了用Eclipse中的一些插件,比如EMF在建模方面就有着很诱人的优势。 EMF中模型的存储一般都是用XML或是XMI的方式,只不过要对应响应的ecore模型。 所以,用EMF来动态的加载XML就不那么复杂了。

设计思路

  1. 加载:不论什么样的XML文件,都能够正确的加载,包括所有的元素,属性,文本,注释,CDATA等。
  2. 保存:以标准的XML格式来保存模型,也就是说加载前是什么内容,保存后还是什么内容。

实现方法

  1. 简单的ecore模型
    • Document
    • Element
    • Attribute
  2. 基于EMF的XMLResource。
EXMLResourceFactoryImpl fac = new EXMLResourceFactoryImpl();
EXMLResourceImpl resource = fac.createResource(URI);

当然了,所有的关于XML的解析和保存的处理都是在EXMLResourceImpl这个类里面完成的。熟悉XMLResource的人应该知道,在XMLResource中会有一个XMLSave和XMLLoad来实现具体的保存和加载,而且会通过一个XMLHelper来辅助完成。其实,实现的逻辑也很简单,就是在需要的时候将具体的XML元素与模型做个转换就可以了。

里面可能需要注意的一点是对ExtendedMetaData中mixed属性的用法,这点可以具体的参考XMLTypeDocumentRoot中Comment,Text等的实现。

特点

  1. 完整性:继承了EMF中的XMLTypeDocumentRoot,从而能够很好的加载和保存Comment,CDATA,Text以及Namespace等。
  2. 易用性:标准的EMF使用流程。
  3. 更多请点击连接。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序设计语言

程序设计语言

斯科特 / 裘宗燕 / 电子工业出版社 / 2007-6 / 99.00元

★列为全球上百所大学标准教材和首席参考书! ★图书馆必备典藏,作者Michael L.Scott 是计算机领域的著名学者,译者是北京大学的裘宗燕教授,他熟悉专业,译笔流畅,因此,这是一本难得的著、译双馨的佳作。 这是一本很有特色的教材,其核心是讨论程序设计语言的工作原理和技术。本书融合了传统的程序设计语言教科书和编译教科书的有关知识,并增加了一些有关汇编层体系结构......一起来看看 《程序设计语言》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试