SDO For Java 规范(四)——DataGraph

数据图(DataGraph)

数据图(DataGraph)是拥有一个更改摘要(ChangeSummary)的数据对象图的可选信封。

为了获取仅包含数据对象的数据图的同样的功能,数据对象可以使用SDO 数据图XSD进行定义。

如更改摘要章节所述,一个更改摘要可以直接使用在数据对象身上。

数据图包含以下方法:

*
返回一个根数据对象;
*
如果数据图内没有根数据对象,创建一个根数据对象;
*
返回更改摘要;
*
基于uri和类似于TypeHelper的名字查找类型;

数据图接口

public interface DataGraph extends Serializable

{

DataObject getRootObject();

DataObject createRootObject(String namespaceURI, String typeName);

DataObject createRootObject(Type type);

ChangeSummary getChangeSummary();

Type getType(String uri, String typeName);

}
创建数据图

数据图由DAS创建,DAS或者返回一个空数据图,或者返回一个包含数据对象的数据图。空数据图能够使用createRootObject()方法创建该数据图的根对象。如果在创建根数据对象时,数据图已经存在一个根数据对象,将会抛出一个IllegalStateException异常。

DAS也负责创建供数据对象和数据图使用的元数据(数据模型)。例如,一个面向XML数据的DAS能够基于XSD建立该XML文件的模型。
修改数据图

为了修改一个数据图,程序需要使用getRootObject()方法访问根数据对象。基于对根数据对象的包含内容引用的递归遍历,该树形结构内的其它数据对象都能够被访问到。
访问类型

使用getType(String uri, String typeName)方法或通过TypeHelper可以访问类型(Type)。这将返回一个含有恰当的URI和名字的类型(Type)。对于getType()方法或者所有拥有URI参数的方法而言,URI是一个如同targetNamespace这样的逻辑名。

DataGraph、 TypeHelper和 DataObject的实现负责访问包含所请求的元数据的物理资源。物理资源可能是一个本地拷贝或者是一个网络资源。

基于实现所独有的配置文件,可以提供从逻辑到物理映射的必须配置信息。

如果元数据不可用,那么将会产生一个实现所独有的异常。
SDO(Service Data Object)是一种数据访问和操作的模型,它可以在不同的应用程序之间共享数据。SDO定义了一组API,用于访问和操作数据对象。在Java中,SDO的实现称为SDO for Java。 在SDO for Java中,DataObject是SDO的核心概念之一。DataObject是一个Java对象,它可以表示任意类型的数据。SDO for Java提供了一组API,用于创建、访问和操作DataObject。 DataObject具有以下特点: 1. 动态属性:DataObject可以动态添加和删除属性,而不需要在定义时指定属性。 2. 支持继承:DataObject可以继承自其他DataObject,继承可以实现数据的重用。 3. 支持多重值:DataObject的属性可以是多重值,可以包含多个值。 4. 支持关联:DataObject可以与其他DataObject建立关联,形成一个对象图。 SDO for Java提供了一组API,用于访问和操作DataObject。例如,可以使用以下代码创建一个DataObject: ``` DataObject dataObject = dataFactory.create("uri", "typeName"); ``` 其中,dataFactory是SDO的工厂类,"uri"和"typeName"分别表示DataObject的命名空间和类型名。 创建DataObject后,可以使用以下代码设置和获取属性值: ``` dataObject.set("propertyName", propertyValue); Object value = dataObject.get("propertyName"); ``` 其中,"propertyName"表示属性名,propertyValue表示属性值。 除了设置和获取属性值外,还可以使用以下代码访问DataObject的关联: ``` DataObject relatedObject = dataObject.getDataObject("associationName"); List<DataObject> relatedObjects = dataObject.getList("associationName"); ``` 其中,"associationName"表示关联名。getDataObject方法返回与DataObject建立关联的单个DataObject,getList方法返回与DataObject建立关联的多个DataObject。 总之,DataObject是SDO for Java的核心概念之一,它提供了一种灵活、动态、可扩展的数据访问和操作模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值