您好,登錄后才能下訂單哦!
數(shù)據(jù)圖(DataGraph)是擁有一個更改摘要(ChangeSummary)的數(shù)據(jù)對象圖的可選信封。
為了獲取僅包含數(shù)據(jù)對象的數(shù)據(jù)圖的同樣的功能,數(shù)據(jù)對象可以使用SDO 數(shù)據(jù)圖XSD進行定義。
如更改摘要章節(jié)所述,一個更改摘要可以直接使用在數(shù)據(jù)對象身上。
數(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);
}
數(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ù)圖,程序需要使用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)所獨有的異常。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。