EMF学习笔记(四)——使用EMF编程——持久化(续)

本文详细探讨了EMF的持久化框架,特别是XMLResourceImpl如何处理EMF对象的序列化和反序列化。默认情况下,仅序列化设置了的属性和引用,以节省存储。XMLResourceImpl使用SAX进行加载,而XMIResourceImpl支持XMI标准,增加了如xmi:XMI元素以处理多对象情况。XMIResource提供了使用UUIDs的选项,并在Eclipse中作为默认的持久化格式。
摘要由CSDN通过智能技术生成

持久化(Persistence)

持久化框架的概述

EMF持久化API

XML资源

  EMF针对基于XML资源的基础接口,XMLResource,扩展Resource加入了数个与持久化形式相关的方法。基础实现,XMLResourceImpl,可以用来将任一EMF 序列化为XML。它产生消耗(consume)的XML格式,以及它的性能特征,可以有很多种方式来控制
  首先讨论这个实现提供的默认序列化格式,然后是其支持的多个保存加载选项,以及元数据如何被用来自定义(customize)序列化格式,最后,讨论这个实现的一些其他特征,包括其支持的默认选项,外在的IDDOM转换。

默认序列化格式

  为了说明XMLResourceImpl的默认输出格式,我们先创建一个对象并保存,如下:

USAddress address = EPO2Factory.eINSTANCE.createUSAddress();
URI uri = URI.createPlatformResourceURI("/project/out.xml", true);
Resource resource = new XMLResourceImpl(uri);
resource.getContents().add(address);
resource.save(null);

  创建USAddress类的实例,将其加入到XML资源的内容中,然后保存资源。注意此处是显式地(explicitly)实例化XMLResourceImpl,仅仅是为了说明。在练习时,你应该总是通过ResourceSet接口创建资源。
  out.xml中生成的序列化,如下:

<?xml version="1.0" encoding="ASCII"?>
<epo2:USAddress xmlns:epo2="http://www.example.com/epo2.ecore"/>

  首先,在XML声明中指定的编码是ASCII。这是默认的,但并不是特别好的选择。最常使用的是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值