溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SDO For Java 規(guī)范(四)——DataGraph

發(fā)布時間:2020-08-13 01:01:03 來源:ITPUB博客 閱讀:136 作者:94nidaye 欄目:編程語言
作者 高科技文盲[@more@]

數(shù)據(jù)圖(DataGraph

數(shù)據(jù)圖(DataGraph)是擁有一個更改摘要(ChangeSummary)的數(shù)據(jù)對象圖的可選信封。

為了獲取僅包含數(shù)據(jù)對象的數(shù)據(jù)圖的同樣的功能,數(shù)據(jù)對象可以使用SDO 數(shù)據(jù)圖XSD進行定義。

如更改摘要章節(jié)所述,一個更改摘要可以直接使用在數(shù)據(jù)對象身上。

數(shù)據(jù)圖包含以下方法:

  • 返回一個根數(shù)據(jù)對象;
  • 如果數(shù)據(jù)圖內(nèi)沒有根數(shù)據(jù)對象,創(chuàng)建一個根數(shù)據(jù)對象;
  • 返回更改摘要;
  • 基于uri和類似于TypeHelper的名字查找類型;

數(shù)據(jù)圖接口

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);

}

創(chuàng)建數(shù)據(jù)圖

數(shù)據(jù)圖由DAS創(chuàng)建,DAS或者返回一個空數(shù)據(jù)圖,或者返回一個包含數(shù)據(jù)對象的數(shù)據(jù)圖??諗?shù)據(jù)圖能夠使用createRootObject()方法創(chuàng)建該數(shù)據(jù)圖的根對象。如果在創(chuàng)建根數(shù)據(jù)對象時,數(shù)據(jù)圖已經(jīng)存在一個根數(shù)據(jù)對象,將會拋出一個IllegalStateException異常。

DAS也負責創(chuàng)建供數(shù)據(jù)對象和數(shù)據(jù)圖使用的元數(shù)據(jù)(數(shù)據(jù)模型)。例如,一個面向XML數(shù)據(jù)的DAS能夠基于XSD建立該XML文件的模型。

修改數(shù)據(jù)圖

為了修改一個數(shù)據(jù)圖,程序需要使用getRootObject()方法訪問根數(shù)據(jù)對象?;趯Ω鶖?shù)據(jù)對象的包含內(nèi)容引用的遞歸遍歷,該樹形結構內(nèi)的其它數(shù)據(jù)對象都能夠被訪問到。

訪問類型

使用getType(String uri, String typeName)方法或通過TypeHelper可以訪問類型(Type)。這將返回一個含有恰當?shù)?/span>URI和名字的類型(Type)。對于getType()方法或者所有擁有URI參數(shù)的方法而言,URI是一個如同targetNamespace這樣的邏輯名。

DataGraph TypeHelper DataObject的實現(xiàn)負責訪問包含所請求的元數(shù)據(jù)的物理資源。物理資源可能是一個本地拷貝或者是一個網(wǎng)絡資源。

基于實現(xiàn)所獨有的配置文件,可以提供從邏輯到物理映射的必須配置信息。

如果元數(shù)據(jù)不可用,那么將會產(chǎn)生一個實現(xiàn)所獨有的異常。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI