EXML - 基于EMF的XML工具

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

内容简介:最近做一个项目,又用到了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. 更多请点击连接。

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

查看所有标签

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

小米之道

小米之道

(美)克莱•舍基 / 张琪 / 浙江人民出版社 / 2017-10-1 / 49.90元

共享经济、自媒体预言者,“互联网先知”克莱·舍基,继《认知盈余》《人人时代》后,聚焦风口上的小米。资深科技商业观察家金错刀、润米咨询创始人刘润作序推荐。附多篇雷军内部讲话,详细解读成功完成“筑底”后小米的全新商业模式 纵观中国互联网发展史,可以明显发现,本土互联网企业的崛起,几乎都是先引入国外商业模式,然后通过强化本土化特点来构筑自己的壁垒。在这种背景下,小米是名副其实的新物种,它走的是相反......一起来看看 《小米之道》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具