專利名稱:將表狀數(shù)據(jù)變換成結(jié)構(gòu)化文檔的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到用來(lái)將表狀數(shù)據(jù)變換成結(jié)構(gòu)化文檔的系統(tǒng)及方法。
技術(shù)背景在結(jié)構(gòu)化文檔中,分級(jí)結(jié)構(gòu)(hierarchical structure)采用稱作標(biāo)簽 的字符串來(lái)表達(dá)。作為一種典型的結(jié)構(gòu)化文檔,具有可擴(kuò)展置標(biāo)語(yǔ)言 (Extensible Markup Language, XML)形式的文檔,即XML文檔,是 眾所周知的。XML的特征在于使用有意義標(biāo)簽的數(shù)據(jù)分級(jí)以及結(jié)構(gòu)的自 由可擴(kuò)展性。通常,為了對(duì)公司所用數(shù)據(jù)進(jìn)行管理使得數(shù)據(jù)可以被搜尋,使用諸 如關(guān)系數(shù)據(jù)庫(kù)(RDB)之類的數(shù)據(jù)庫(kù),并且將數(shù)據(jù)處理為表狀數(shù)據(jù),表 狀數(shù)據(jù)是通過(guò)將數(shù)據(jù)安排在表中而獲得的。然而,隨著信息技術(shù)的發(fā)展 以及要管理的數(shù)據(jù)的復(fù)雜性的增加,對(duì)XML文檔以及XML數(shù)據(jù)庫(kù)的需 求在增加,XML文檔能使數(shù)據(jù)被自由地寫入,如上面所提及的,而XML 數(shù)據(jù)庫(kù)則用于搜尋和分析XML文檔。根據(jù)這個(gè)趨勢(shì),需要有這樣的功能, 即,將例如公司所用的各種數(shù)據(jù)項(xiàng)變換成XML文檔(XML文檔數(shù)據(jù)) 并對(duì)其進(jìn)行存儲(chǔ)/管理以便隨著將來(lái)公司的成長(zhǎng)能容易地處理這些數(shù)據(jù)。為此,最近開(kāi)發(fā)出了各種數(shù)據(jù)集成工具。這些工具用于從公司的各 種數(shù)據(jù)源(例如,RDBs)收集(抽取)數(shù)據(jù)(表狀數(shù)據(jù)),并將之變換 為預(yù)設(shè)的形式(XML形式)。這些工具也用于將最后所得的XML形式 的數(shù)據(jù)存儲(chǔ)到XML數(shù)據(jù)庫(kù)中。在這些工具中,支持一種映射形式,在這 種映射形式中,原始數(shù)據(jù)項(xiàng)和變換了的數(shù)據(jù)項(xiàng)被排列在對(duì)照表中,相應(yīng) 的數(shù)據(jù)項(xiàng)通過(guò)連接它們的線而彼此聯(lián)系起來(lái)。在例如RDB中所用的表格 形式中,將每個(gè)行處理為用于映射的schema (模式)。
曰本專利申請(qǐng)KOKAI公開(kāi)No. 2005-56085 (現(xiàn)有技術(shù)文檔)公布 了一種技術(shù),將RDB中的表(表狀數(shù)據(jù))變換為結(jié)構(gòu)化文檔,以及將結(jié) 構(gòu)化文檔變換為表。在這種技術(shù)中, 一個(gè)變換定義例如根據(jù)RDB中的一 行表狀數(shù)據(jù)來(lái)描述。在將表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔(XML文檔)數(shù)據(jù) 的過(guò)程中,當(dāng)調(diào)用每個(gè)變換定義時(shí),通過(guò)發(fā)布結(jié)構(gòu)化查詢語(yǔ)言(structured query language, SQL )從RDB中獲取數(shù)據(jù),籍此,根據(jù)變換定義以數(shù) 據(jù)行為單位來(lái)執(zhí)行變換。在這種情形中,變換定義可以用嵌入結(jié)構(gòu)來(lái)描 述。在現(xiàn)有技術(shù)文檔中所描述的數(shù)據(jù)結(jié)構(gòu)變換技術(shù)(現(xiàn)有技術(shù))中,將 表狀數(shù)據(jù)的各個(gè)行與一組XML標(biāo)簽對(duì)應(yīng)。于是,7>司的每個(gè)職員的表狀 數(shù)據(jù)被變換為XML形式的數(shù)據(jù)(XML文檔),其中每個(gè)職員的數(shù)據(jù)重 復(fù)地出現(xiàn)。由數(shù)據(jù)結(jié)構(gòu)變換所獲得的XML文檔是一種平鋪直敘的文檔, 其中相同的結(jié)構(gòu)被有規(guī)則地重復(fù)。就是說(shuō),由數(shù)據(jù)結(jié)構(gòu)變換所獲得的 XML形式的數(shù)據(jù)所包含的描述類似于表狀數(shù)據(jù)中的描述,這些數(shù)據(jù)項(xiàng)只 是在形式上不同。因此,上述現(xiàn)有技術(shù)在利用XML的優(yōu)勢(shì)(即描述上的 高度靈活性)上不成功。發(fā)明內(nèi)容本發(fā)明的目標(biāo)是,將表狀數(shù)據(jù)中所含的每個(gè)重復(fù)項(xiàng)劃分成組,因此, 能使表狀數(shù)據(jù)變換為包含這樣一種結(jié)構(gòu)的結(jié)構(gòu)化文檔,在這種結(jié)構(gòu)中表 狀數(shù)據(jù)中的多個(gè)行被聚集起來(lái)。根據(jù)本發(fā)明的實(shí)施例,提供一種將按行排列的表狀數(shù)據(jù)變換成結(jié)構(gòu) 化文檔的系統(tǒng)。所述系統(tǒng)包括定義數(shù)據(jù)存儲(chǔ)單元,該單元存儲(chǔ)定義數(shù)據(jù), 該定義數(shù)據(jù)定義用來(lái)將表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔的規(guī)則,所述定義數(shù) 據(jù)包括有條件重復(fù)指定描述,該描述指定了與具有單一值的共同項(xiàng)相對(duì) 應(yīng)的部分行的重組,所述有條件重復(fù)指定描述配置有所述共同項(xiàng),作為 重復(fù)條件的屬性值,所迷定義數(shù)據(jù)還包括一個(gè)部分,在該部分中所" 狀數(shù)據(jù)被插入作為元素內(nèi)容,所述部分包括值插入指定描述,該描述指 定值的插入,所述值插入指定描述用來(lái)對(duì)應(yīng)所述表狀數(shù)據(jù)中所包含的項(xiàng) 的項(xiàng)名,所述系統(tǒng)還包括變換單元,用來(lái)根據(jù)所述定義數(shù)據(jù)將外部器件 所指明的要變換的表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔,所述變換單元變換所述 表狀數(shù)據(jù),使部分行組成一組,并在所述值插入指定描述所指定的所述 結(jié)構(gòu)化文檔的一部分中嵌入與所述值插入指定描述相對(duì)應(yīng)的所述項(xiàng)名的 值。
結(jié)合進(jìn)來(lái)并構(gòu)成說(shuō)明書的一部分的附圖顯示了本發(fā)明的實(shí)施例,并 與上面給出的總的描述以及在下面給出的實(shí)施例的詳細(xì)描述一起,用來(lái) 解釋本發(fā)明的原理。圖1是一個(gè)方框圖,顯示了根據(jù)本發(fā)明的實(shí)施例所述的包含數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換系統(tǒng)的客戶服務(wù)器系統(tǒng)的硬件配置;圖2是一個(gè)方框圖,主要顯示了圖1所示數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)的功能 配置;圖3顯示了表狀數(shù)據(jù)的例子;圖4顯示了預(yù)期通過(guò)變換圖3中的表狀數(shù)據(jù)而獲得的XML文檔 (XML結(jié)構(gòu))的例子;圖5顯示了用于將圖3中的表狀數(shù)據(jù)變換為具有圖4所示結(jié)構(gòu)的 XML文檔的定義文件的例子;圖6A和6B是流程圖,顯示了將表狀數(shù)據(jù)變換為XML文檔(XML 結(jié)構(gòu))的數(shù)據(jù)結(jié)構(gòu)變換處理的過(guò)程;圖7顯示了從圖5中的定義文件所產(chǎn)生的關(guān)鍵字列表的例子;圖8顯示了關(guān)鍵字列表、表狀數(shù)據(jù)(原始數(shù)據(jù))和排序了的表狀數(shù) 據(jù)之間的關(guān)系,用于說(shuō)明基于關(guān)鍵字列表中所含的關(guān)鍵字進(jìn)行的排序;圖9用于說(shuō)明將關(guān)鍵字列表中的關(guān)鍵字的值更新為要變換的第一行 中所包含的對(duì)應(yīng)項(xiàng)的值;圖IO用于說(shuō)明關(guān)鍵字列表中的關(guān)鍵字的值與要變換的第二行中所包 含的對(duì)應(yīng)項(xiàng)的值的比較;圖11用于說(shuō)明關(guān)鍵字列表中的關(guān)鍵字的值與要變換的笫三行中所包 含的對(duì)應(yīng)項(xiàng)的值的比較,也說(shuō)明了關(guān)鍵字列表的更新;圖12A顯示了一個(gè)狀態(tài),其中,按照?qǐng)D6A和6B中的流程圖基于項(xiàng) "部門"對(duì)圖3中的表狀數(shù)據(jù)進(jìn)行分組,將該表狀數(shù)據(jù)變換成圖4中的 XML文檔;圖12B顯示了一個(gè)狀態(tài),其中,使用現(xiàn)有技術(shù)、以行為單位將圖3 中的表狀數(shù)據(jù)變換成XML形式的數(shù)據(jù),從而獲得XML文檔;圖13顯示了表狀數(shù)據(jù)的例子,用來(lái)說(shuō)明本實(shí)施例的修正例中所用的 定義文件;圖14顯示了通過(guò)變換圖13中的表狀數(shù)據(jù)而預(yù)期獲得的XML文檔 (XML結(jié)構(gòu))的例子;以及圖15顯示了用于本實(shí)施例的修正例中的定義文件,該定義文件是用 于將圖13中的表狀數(shù)據(jù)變換為圖14中的XML文檔的例子。本發(fā)明的詳細(xì)描述下面將參考附圖描述的本發(fā)明的實(shí)施例。圖l是一個(gè)方框圖,顯示 了本發(fā)明的實(shí)施例所述的包含數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)的客戶服務(wù)器系統(tǒng)的硬 件配置。客戶服務(wù)器系統(tǒng)主要包括數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10、 XML數(shù)據(jù)庫(kù) (XMLDB)管理系統(tǒng)20、關(guān)系數(shù)據(jù)庫(kù)(RDB)管理系統(tǒng)30、客戶終端 40以及網(wǎng)絡(luò)50。數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10、 XML數(shù)據(jù)庫(kù)(XMLDB)管理 系統(tǒng)20、關(guān)系數(shù)據(jù)庫(kù)(RDB)管理系統(tǒng)30、客戶終端40通過(guò)網(wǎng)絡(luò)50彼 此連接在一起。數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10包括數(shù)據(jù)結(jié)構(gòu)變換服務(wù)器(數(shù)據(jù)結(jié)構(gòu)變換服務(wù) 器計(jì)算機(jī))ll、以及外部存儲(chǔ)器件12 (諸如硬盤驅(qū)動(dòng)器)。外部存儲(chǔ)器件 12存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)變換(表狀-結(jié)構(gòu)化文檔的變換)程序121以及定義文 件122。數(shù)據(jù)結(jié)構(gòu)變換程序121用來(lái)使數(shù)據(jù)結(jié)構(gòu)變換服務(wù)器11執(zhí)行數(shù)據(jù)結(jié)構(gòu)
變換處理(表狀-結(jié)構(gòu)化文檔的變換處理),將表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔。定義文件122為XML形式的數(shù)據(jù)(XML文檔),它定義將表狀數(shù) 據(jù)變換為結(jié)構(gòu)化文檔時(shí)所用的規(guī)則(變換規(guī)則)。在本實(shí)施例中,定義文 件122中保存的描述內(nèi)容指定與具有單一值的每個(gè)重復(fù)項(xiàng)相對(duì)應(yīng)的表狀 數(shù)據(jù)中的多行的分組。更具體地說(shuō),定義文件122中保存的描述內(nèi)容(值 插人指定描述(value insertion specifying description ))用于指定一個(gè)值 在某個(gè)部分中的插入(#入),其中,表狀數(shù)據(jù)被映射到該部分中,并且 該部分被包含在通過(guò)變換表狀數(shù)據(jù)而獲得的XML文檔(即,具有預(yù)期結(jié) 構(gòu)的XML文檔)中。定義文件122在指定重復(fù)的部分中保存的描述內(nèi)容(指定重復(fù)的描述)包括指定重復(fù)的節(jié)點(diǎn)和條件。數(shù)據(jù)結(jié)構(gòu)變換服務(wù)器 11從外部存儲(chǔ)器件12中讀出數(shù)據(jù)結(jié)構(gòu)變換程序121,并執(zhí)行之。通過(guò)執(zhí) 行數(shù)據(jù)結(jié)構(gòu)變換程序121,數(shù)據(jù)結(jié)構(gòu)變換服務(wù)器11基于定義文件122中 所包含的定義來(lái)執(zhí)行數(shù)據(jù)結(jié)構(gòu)變換處理,將表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔。 XMLDB管理系統(tǒng)20包含XMLDB管理服務(wù)器(XMLDB管理服務(wù) 器計(jì)算機(jī))21、以及外部存儲(chǔ)器件22 (諸如硬盤驅(qū)動(dòng)器)。外部存儲(chǔ)器件 22存儲(chǔ)XMLDB (XML數(shù)據(jù)庫(kù))220。 XMLDB 220存儲(chǔ)一組從外部數(shù) 據(jù)源(XML文檔數(shù)據(jù)源)收集來(lái)的XML文檔、以及一組經(jīng)數(shù)據(jù)結(jié)構(gòu)變 換服務(wù)器11變換的XML文檔。XMLDB管理服務(wù)器21執(zhí)行將XML文 檔存儲(chǔ)在XMLDB 220中的處理,并在從外部器件(例如,客戶終端40) 接收到搜尋請(qǐng)求時(shí)執(zhí)行從XMLDB 220搜尋滿足所述請(qǐng)求指定的搜尋條 件的XML文檔(或XML文檔的一部分)的處理過(guò)程。RDB管理系統(tǒng)30包括RDB管理服務(wù)器(RDB管理服務(wù)器計(jì)算機(jī)) 31、以及外部存儲(chǔ)器件32(諸如硬盤驅(qū)動(dòng)器)。外部存儲(chǔ)器件32存儲(chǔ)RDB(關(guān)系數(shù)據(jù)庫(kù))320。 RDB管理服務(wù)器31執(zhí)行將表狀數(shù)據(jù)存儲(chǔ)到RDB 320 中的處理過(guò)程,并基于來(lái)自外部器件(例如,客戶終端40)的搜尋請(qǐng)求 執(zhí)行從RDB 320搜尋滿足所述請(qǐng)求指定的搜尋條件的表狀數(shù)據(jù)的處理。圖2是一個(gè)方框圖,主要顯示了圖1所示數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10的功 能配置。數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10包含關(guān)鍵字列表產(chǎn)生單元(key listgeneration unit )101、排序單元102、行數(shù)據(jù)讀取單元103、對(duì)比單元104、 XML文檔產(chǎn)生確定單元105、模板確定單元106、關(guān)鍵字列表更新單元 107、變換單元108以及XML文檔輸出單元109。數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10 還包括定義文件存儲(chǔ)單元110、關(guān)鍵字列表存儲(chǔ)單元111、表狀數(shù)據(jù)存儲(chǔ) 單元112以及XML文檔存儲(chǔ)單元113。圖1中的數(shù)據(jù)結(jié)構(gòu)變換服務(wù)器11從外部存儲(chǔ)器件12讀出數(shù)據(jù)結(jié)構(gòu) 變換程序121并執(zhí)行該程序,從而實(shí)現(xiàn)處理單元101到109。處理單元 101到109的功能將在后面描述??梢栽谟?jì)算機(jī)可讀的記錄介質(zhì)中預(yù)先存 儲(chǔ)數(shù)據(jù)結(jié)構(gòu)變換程序121并分發(fā)之。此外,可以通過(guò)網(wǎng)絡(luò)50下載數(shù)據(jù)結(jié) 構(gòu)變換程序121到數(shù)據(jù)結(jié)構(gòu)變換服務(wù)器11中。使用存儲(chǔ)器(諸如并入數(shù) 據(jù)結(jié)構(gòu)變換服務(wù)器11的主存儲(chǔ)器)的存儲(chǔ)區(qū)(未顯示)來(lái)實(shí)現(xiàn)存儲(chǔ)單元 110到113,然后參考圖3到圖5,將描述定義文件122的具體例子。圖3顯示了 要變換的表狀數(shù)據(jù)的例子,圖4顯示了預(yù)期通過(guò)變換圖3中的表狀數(shù)據(jù) 而獲得的XML文檔(XML結(jié)構(gòu))的例子,圖5顯示了用于將圖3中的 表狀數(shù)據(jù)變換為具有圖4所示結(jié)構(gòu)的XML文檔的定義文件122的例子。當(dāng)預(yù)期的XML文檔(即,通過(guò)變換圖3所示的表狀數(shù)據(jù)而獲得的 XML文檔)如圖4那樣設(shè)計(jì)時(shí),用來(lái)將圖3中的表狀數(shù)據(jù)變換為圖4中 的XML文檔(XML結(jié)構(gòu))的定義文件122具有圖5所示的XML形式。 定義文件122包括由一對(duì)標(biāo)簽(即,開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽)括起來(lái)的、 指示元素名的部分。在這部分中,數(shù)據(jù)(項(xiàng)值,item value)被插入作為 元素的內(nèi)容。具體說(shuō),這部分中的"${item name}"作為描述(指定值的 插入的描述),用來(lái)指定值的插入。使所述描述"${item name}"對(duì)應(yīng)著 由所述描述"${item name}"所指示的表狀數(shù)據(jù)的項(xiàng)名(item name)。當(dāng) 表狀數(shù)據(jù)具有,例如,使用逗號(hào)分隔的值(comma separated value, CSV) 的形式時(shí),所述描迷"${item name}"中的項(xiàng)名根據(jù)該項(xiàng)名是否寫在表狀 數(shù)據(jù)的頂部而改變。如果該項(xiàng)名寫在頂部,那么,所述描述"S(item name}" 中的項(xiàng)名就是寫在頂部的該項(xiàng)名自身。另一方面,如果項(xiàng)名沒(méi)有寫在頂
部,那么,表狀數(shù)據(jù)中的列的編號(hào)(${0}、 ${1}、…)就被用作所述描述 "${item name}"中的項(xiàng)名。在表狀數(shù)據(jù)為RDB數(shù)據(jù)的情形中,所述描 述"${item name}"中的項(xiàng)名為列的名稱(column name )。定義文件122在其指定重復(fù)的部分中也包含描述,用于指定有條件 的重復(fù)(指定有條件重復(fù)的描述),該描述用來(lái)將重復(fù)出現(xiàn)的每一項(xiàng)的數(shù) 據(jù)劃分成一組,以用于變換。所述指定有條件重復(fù)的描述包括節(jié)點(diǎn)(指 定重復(fù)的標(biāo)簽)用來(lái)指定重復(fù)和條件(重復(fù)的條件)。在變換之后所獲得 的圖4所示的XML文檔中,包括在某個(gè)部門(section )中的多行數(shù)據(jù)(圖 3)被嵌入多個(gè)"staf歴ember"標(biāo)簽內(nèi)。嵌入每個(gè)"部門"項(xiàng)內(nèi)作為重 復(fù)條件的部分就是嵌入"sectionName"標(biāo)簽內(nèi)的元素。在這種情形中, 如圖5所示,指定重復(fù)的才示簽51 (<sysl: repeat condition- "section" >) 被^ "sectionName"標(biāo)簽52內(nèi)。指定重復(fù)的標(biāo)簽51包括上述^Hf (condition= "section")作為屬性。即,指定重復(fù)的標(biāo)簽51是一個(gè)有條 件重復(fù)指定標(biāo)簽。"condition= "section""的左端,即"condition" U 性名,而右端,即"section"為屬性值。在圖5所示的定義文件122的例子中,沒(méi)有條件的指定重復(fù)標(biāo)簽53 (即,無(wú)條件重復(fù)指定標(biāo)簽)被嵌入首個(gè)標(biāo)簽(作為根標(biāo)簽的"section" 標(biāo)簽)內(nèi)。本實(shí)施例中所用的指定重復(fù)的標(biāo)簽是定義文件122的帶有命 名空間(sysl)的重復(fù)標(biāo)簽。下面參考圖6A和6B中的流程圖,描述在數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10內(nèi)執(zhí) 行的將表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔(XML文檔)的數(shù)據(jù)結(jié)構(gòu)變換處理。 這里假設(shè)將某表狀數(shù)據(jù)變換為XML文檔的變換請(qǐng)求是從,例如,客戶終 端40發(fā)布給數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10的。這個(gè)請(qǐng)求包括指定變?cè)摀Q所用的 定義文件122的文件名以及要變換的表狀數(shù)據(jù)的信息。數(shù)據(jù)結(jié)構(gòu)變換系統(tǒng)10中的關(guān)鍵字列表產(chǎn)生單元101將文件名與包含 在變換請(qǐng)求中的文件名相同的定義文件122從外部存儲(chǔ)器件12裝載到定 義文件存儲(chǔ)單元110 (步驟SI )。在步驟SI中,關(guān)鍵字列表產(chǎn)生單元101 對(duì)裝載到定義文件存儲(chǔ)單元110中的定義文件122 (即,XML形式的定
義文件122 )進(jìn)行分析。在對(duì)定義文件122的分析期間,關(guān)鍵字列表產(chǎn)生單元101從定義文 件122從首個(gè)數(shù)據(jù)開(kāi)始順序地讀出數(shù)據(jù),并從所讀出的數(shù)據(jù)中抽:^條 件重復(fù)指定標(biāo)簽(步驟S2 )。在步驟S2中,關(guān)鍵字列表產(chǎn)生單元101將 屬性值(在圖5的定義文件122的例子中,"section"對(duì)應(yīng)著該值)加到 關(guān)鍵字列表存儲(chǔ)單元111中所存儲(chǔ)的關(guān)鍵字列表中,該屬性值指明了條 件并包含在所抽取出來(lái)的有條件重復(fù)指定標(biāo)簽中,該屬性用作關(guān)鍵字列 表項(xiàng)(關(guān)鍵字名)。通過(guò)分析定義文件122的整個(gè)數(shù)據(jù),關(guān)鍵字列表產(chǎn)生 單元101產(chǎn)生了關(guān)鍵字列表。所產(chǎn)生的關(guān)鍵字列表用于對(duì)要變換成XML文檔的表狀數(shù)據(jù)進(jìn)行排 序。關(guān)鍵字列表中的每個(gè)關(guān)鍵字由作為關(guān)鍵字項(xiàng)的關(guān)鍵字名和關(guān)鍵字值 構(gòu)成。在這個(gè)階段中,關(guān)鍵字列表中沒(méi)有關(guān)鍵字值。存儲(chǔ)在關(guān)鍵字列表 中的關(guān)鍵字(屬性值)的順序指示了基于這些關(guān)鍵字的排序的優(yōu)先順序。 假設(shè)關(guān)鍵字列表中存儲(chǔ)了 N個(gè)關(guān)鍵字(N為不小于2的整數(shù)),第i個(gè)關(guān)鍵字(i = l、 2.....N)指示了第l個(gè)關(guān)鍵字.....或第N個(gè)關(guān)鍵字。關(guān)鍵字列表中的首個(gè)關(guān)鍵字被用作第1個(gè)關(guān)鍵字,關(guān)鍵字列表中的最后 一個(gè)關(guān)鍵字被用作第N個(gè)關(guān)鍵字。產(chǎn)生了關(guān)鍵字列表之后,關(guān)鍵字列表產(chǎn)生單元101將控制傳給排序 單元102。排序單元102 >^戶終端40或RDB管理系統(tǒng)30 (即,RDB 管理系統(tǒng)30中的RDB 320)獲取要變換的表狀數(shù)據(jù),并將^儲(chǔ)在表狀 數(shù)據(jù)存儲(chǔ)單元112中(步驟S3)。為了指定表狀數(shù)據(jù),在CSV文件格式 的情形中使用文件名,在RDB文件格式的情形中使用SQL。在步驟S3 中,排序單元102基于步驟S2中所產(chǎn)生的關(guān)鍵字列表中的關(guān)鍵字的順序 (更具體地說(shuō),是用作重復(fù)條件的屬性值,即項(xiàng)值,的順序)將存儲(chǔ)在 表狀數(shù)據(jù)存儲(chǔ)單元112中的表狀數(shù)據(jù)順序排序。當(dāng)關(guān)鍵字列表中含有N個(gè)關(guān)鍵字時(shí),表狀數(shù)據(jù)按第1關(guān)鍵字、第2關(guān)鍵字.....第N關(guān)鍵字的順序存儲(chǔ)。排序之后,表狀數(shù)據(jù)被再次存儲(chǔ)在表狀數(shù)據(jù)存儲(chǔ)單元112中。在將表狀數(shù)據(jù)排序后,排序單元102將控制傳給行數(shù)據(jù)讀取單元103。 行數(shù)據(jù)讀取單元103開(kāi)始讀取處理,以行為單位、從數(shù)據(jù)的首行開(kāi)始讀 取排序了的表狀數(shù)據(jù)作為要變換的行數(shù)據(jù)(步驟S4和S5)。具體說(shuō),當(dāng) 行數(shù)據(jù)讀取單元103讀取數(shù)據(jù)的首行(第一行)作為要變換的行數(shù)據(jù)時(shí) (步驟S6 ),它將控制傳給模板確定單元106。模板確定單元106確定(抽 取)嵌入定義文件122中的首個(gè)標(biāo)簽(根標(biāo)簽)內(nèi)的元素作為模板,該 模板用于將要變換的行數(shù)據(jù)變換為XML形式(步驟S7 )。此外,當(dāng)行數(shù)據(jù)讀取單元103讀取除首行數(shù)據(jù)之外的數(shù)據(jù)(第2行 或后面行的數(shù)據(jù))作為要變換的行數(shù)據(jù)時(shí)(步驟S6 ),它將控制傳給對(duì)比 單元104。對(duì)比單元104從首個(gè)關(guān)鍵字(第一個(gè)關(guān)鍵字)開(kāi)始,將關(guān)鍵字 列表中的每個(gè)關(guān)鍵字(項(xiàng))的值與所讀出的行數(shù)據(jù)(要變換的行數(shù)據(jù)) 中所包含的對(duì)應(yīng)項(xiàng)的值進(jìn)行對(duì)比, 一直進(jìn)行該對(duì)比直到判斷出它們彼此 不同為止(步驟S8)。從比較結(jié)果中,對(duì)比單元104判斷關(guān)鍵字列表中的 首個(gè)關(guān)鍵字的值是否等于要變換的行數(shù)據(jù)中所含的對(duì)應(yīng)項(xiàng)的值(步驟 S9)。如果在步驟S9中判斷出它們彼此相等,那么,模板確定單元106執(zhí) 行步驟SIO。具體說(shuō),在步驟S10中,模板確定單元106基于關(guān)鍵字列表 中的當(dāng)前關(guān)鍵字的值與要變換的行數(shù)據(jù)中所包含的對(duì)應(yīng)項(xiàng)的值的對(duì)比結(jié) 果,確定用于將行數(shù)據(jù)變換為XML形式的模板。就是說(shuō),模板確定單元 106將嵌入定義文件122中的有條件重復(fù)指定標(biāo)簽內(nèi)的元素確定(抽取) 為模板,該標(biāo)簽指定與最后判斷為相等的關(guān)鍵字相對(duì)應(yīng)的(行數(shù)據(jù)中的) 項(xiàng)的重復(fù)。另一方面,如果在步驟S9中判斷出它們彼此不相等,那么,XML 文檔產(chǎn)生確定單元105就執(zhí)行步驟S11。具體說(shuō),在步驟S11中,XML 文檔產(chǎn)生確定單元105判斷定義文件122中的無(wú)條件重復(fù)指定標(biāo)簽是否 為根標(biāo)簽。如果判斷出定義文件122中的無(wú)條件重復(fù)指定標(biāo)簽不是根標(biāo)簽(步 驟Sll),那么,XML文檔產(chǎn)生確定單元105將控制傳給才莫板確定單元 106。模板確定單元106反過(guò)來(lái)確定(抽取)嵌入定義文件122中的無(wú)條 件重復(fù)指定標(biāo)簽內(nèi)的元素作為用于使要變換的行數(shù)據(jù)變換為XML形式 的數(shù)據(jù)的模板(步驟S12 )。相反,如果無(wú)條件重復(fù)指定標(biāo)簽是;限標(biāo)簽, 那么,XML文檔產(chǎn)生確定單元105確定使用隨后確定(抽取)的模板產(chǎn) 生新的XML文檔(XML文件)(步驟S13 )。此時(shí),模板確定單元106 將嵌入定義文件122中的無(wú)條件重復(fù)指定標(biāo)簽內(nèi)的元素確定(抽取)為 用于使要變換的行數(shù)據(jù)變換為XML形式的數(shù)據(jù)的模板(步驟S12 )。在模板確定單元106確定(抽取)了模板(步驟S7、 S10或S12 ) 之后,模板確定單元106將控制傳給關(guān)鍵字列表更新單元107。關(guān)鍵字列 表更新單元107基于要變換的行數(shù)據(jù)更新存儲(chǔ)在關(guān)鍵字列表存儲(chǔ)單元111 中的關(guān)鍵字列表(步驟S14),具體說(shuō),關(guān)鍵字列表更新單元107使用要 變換的行數(shù)據(jù)的對(duì)應(yīng)項(xiàng)的值來(lái)更新關(guān)鍵字列表中關(guān)鍵字(項(xiàng))的值(即, 關(guān)鍵字值)。在第一個(gè)循環(huán)中的步驟S14中,關(guān)鍵字列表中的關(guān)鍵字沒(méi)有 值,因此,要變換的行數(shù)據(jù)的對(duì)應(yīng)項(xiàng)的值被設(shè)置為所述關(guān)鍵字的值。在關(guān)鍵字列表更新單元107更新了關(guān)鍵字列表(步驟S14)之后,關(guān) 鍵字列表更新單元107將控制傳給變換單元108。變換單元108反過(guò)來(lái)將 要變換的行數(shù)據(jù)的指定項(xiàng)的值插入(嵌入)由模板確定單元106所確定 的^板中的值插入指定部分(步驟S15 )。作為值插入的結(jié)果(步驟S15 ), 要變換的行數(shù)據(jù)(表狀數(shù)據(jù))就被變換為XML形式的數(shù)據(jù)了。在步驟 S15中,變換單元108將XML形式的數(shù)據(jù)設(shè)置在XML文檔存儲(chǔ)單元113 所存儲(chǔ)的當(dāng)前正在產(chǎn)生的XML文檔中,其中該XML形式的數(shù)據(jù)是通過(guò) 對(duì)要變換的行數(shù)據(jù)進(jìn)行變換而得到的。執(zhí)行了步驟S15之后,變換單元108將控制傳給行數(shù)據(jù)讀取單元103。 行數(shù)據(jù)讀取單元103確定被排序了的表狀數(shù)據(jù)中的下一行數(shù)據(jù)作為在下 一個(gè)循環(huán)中要變換的行數(shù)據(jù)(步驟S16)。如果下一個(gè)行數(shù)據(jù)存在,即, 如果被排序了的表狀數(shù)據(jù)的最后一行數(shù)據(jù)還沒(méi)有被處理(步驟S4),那么, 就對(duì)所述下一個(gè)行數(shù)據(jù)執(zhí)行上述步驟S5及其后的步驟。當(dāng)所述最后的行數(shù)據(jù)被處理之后(步驟S4 ),數(shù)據(jù)結(jié)構(gòu)變換處理就完 成了。此時(shí),XML文檔存儲(chǔ)單元113中所存儲(chǔ)的XML文檔就被認(rèn)為是
基于定義文件122對(duì)表狀數(shù)據(jù)存儲(chǔ)單元112中所存儲(chǔ)的表狀數(shù)據(jù)進(jìn)行變 換而得到的XML形式的數(shù)據(jù)。該XML文檔通過(guò)XML文檔輸出單元109 發(fā)送到例如XMLDB管理系統(tǒng)20并被存儲(chǔ)在所述系統(tǒng)20的XMLDB 220 中。下面參考圖7到圖12,描述上述數(shù)據(jù)結(jié)構(gòu)變換過(guò)程的例子,其中, 利用圖5所示的定義文件122將圖3中的表狀數(shù)據(jù)變換為XML文檔。如 上所述,關(guān)鍵字列表產(chǎn)生單元101從定義文件122中抽取所有的有a 重復(fù)指定標(biāo)簽。之后,關(guān)鍵字列表產(chǎn)生單元101在關(guān)鍵字列表存儲(chǔ)單元 lll中產(chǎn)生關(guān)鍵字列表,在該關(guān)鍵字列表中,屬性值(該屬性值指明所抽 取的有條件重復(fù)指定標(biāo)簽中所包含的條件)被用作關(guān)鍵字列表的項(xiàng)(關(guān) 鍵字名)(步驟S2 )。在本實(shí)施例中,定義文件122只包含一個(gè)有條件重 復(fù)指定標(biāo)簽,即,指定重復(fù)的標(biāo)簽51 (<sysl: repeat condition- "section" >)。在這種情形中,關(guān)鍵字列表產(chǎn)生單元101將"部門"設(shè)置為關(guān)鍵字 列表中的第一個(gè)關(guān)鍵字。圖7顯示了關(guān)鍵字列表。排序單元102基于圖7的關(guān)鍵字列表中的關(guān)鍵字的順序?qū)D3中的 表狀數(shù)據(jù)進(jìn)行順序排序(步驟3)。在這種情形中,只利用所述第一個(gè)關(guān) 鍵字"部門"對(duì)表狀數(shù)據(jù)按字母順序排序。圖8顯示了關(guān)鍵字列表、表 狀數(shù)據(jù)(原始數(shù)據(jù))和排序了的表狀數(shù)據(jù)之間的關(guān)系。當(dāng)行數(shù)據(jù)讀取單元103讀取圖8所示的排序了的表狀數(shù)據(jù)的首州第 一行)數(shù)據(jù)作為要變換的數(shù)據(jù)時(shí)(步驟S5和S6),模板確定單元106確 定嵌入定義文件122中的首個(gè)標(biāo)簽(才艮標(biāo)簽)內(nèi)的元素("部門,,元素) 被設(shè)置為模板(步驟S7)。于是,關(guān)鍵字列表更新單元107將第一行數(shù)據(jù)"l(職員編號(hào))、Tanaka (名字)、銷售(部門)"所包含的部門值"sales (銷售)"設(shè)置為關(guān)鍵字 列表中的關(guān)鍵字(第一關(guān)鍵字)的值(步驟S14)。隨后,變換單元108將所述第一行數(shù)據(jù)(要變換的行數(shù)據(jù))所包含 的指定項(xiàng)的值插入由模板確定單元106當(dāng)前所確定的模板的值插入指定 部分中,即插入"部門"元素的值插入指定部分(即,"部門"元素的拷 貝)中(步驟S12),該"部門"元素是定義文件122中的首個(gè)標(biāo)簽內(nèi)所 嵌入的元素。在這種情形中,"銷售"、"1"、 "Tanaka",皮分別插入${部 門}、 ${職員編號(hào)}、 ${名字}部分中。因此,第一行數(shù)據(jù)就被變換為包含"部門"元素的XML形式的數(shù)據(jù)了。該"部門"元素包括部門元素,而 部門元素包括部門名元素和職員元素。之后,要變換的行數(shù)據(jù)被切換到排序了的表狀數(shù)據(jù)的第二行數(shù)據(jù)(步 驟S16)。排序了的表狀數(shù)據(jù)的第二行數(shù)據(jù)為"3(職員編號(hào))、Suzuki (名 字)和銷售(部門)"(參見(jiàn)圖8)。在這種情形中,關(guān)鍵字列表中的第一 個(gè)關(guān)鍵字的值"銷售"等于要變換的行數(shù)據(jù)(第二行數(shù)據(jù))中的對(duì)應(yīng)項(xiàng)"部門"的值"銷售"(步驟S8和S9)。由于此時(shí)關(guān)鍵字列表只包含第一 個(gè)關(guān)鍵字,所以,最后被確定為在值上等于所述行數(shù)據(jù)中的對(duì)應(yīng)項(xiàng)的關(guān) 鍵字就是首先被確定為相等的第一個(gè)關(guān)鍵字。因此,在圖5中的定義文 件122中,與第一個(gè)關(guān)鍵字相對(duì)應(yīng)的項(xiàng)"部門"的有條件重復(fù)指定標(biāo)簽 51內(nèi)所嵌入的元素(職員元素)被確定為模板(步驟SIO)。之后,關(guān)鍵字列表中的第1個(gè)關(guān)鍵字的值被更新為包含在第2行數(shù) 據(jù)"1 (職員編號(hào))、Taimka (名字)、銷售(部門)"中并對(duì)應(yīng)著所述第 l個(gè)關(guān)鍵字的項(xiàng)"部門,,的值"銷售,,(步驟S14)。注意,更新前的關(guān)鍵 字列表中的第l個(gè)關(guān)鍵字的值為"銷售"(參見(jiàn)圖IO),更新后的關(guān)鍵字 列表中的第l個(gè)關(guān)鍵字的值也為"銷售",即,它與更新前的值相同。隨后,第2行數(shù)據(jù)中指定項(xiàng)的值被插入由模板確定單元106當(dāng)前所 確定的模板的值插入指定部分中,即插入職員元素的值插入指定部分(即,職員元素的拷貝)中,作為定義文件122中的有條件重復(fù)指定標(biāo) 簽51 (<sysl: repeat condition= "section" >)內(nèi)所嵌入的元素(步驟S15 )。 在這種情形中,"3"和"Suzuki"被分別插入${職員編號(hào)}和${名字}部分 中。因此,笫2行數(shù)據(jù)被變換為由職員元素構(gòu)成的XML形式的數(shù)據(jù)。該 XML形式的數(shù)據(jù)(職員元素)被附加地設(shè)置在職員元素之后,作為與當(dāng) 前正在被產(chǎn)生的XML文檔中所包含的笫1行數(shù)據(jù)相對(duì)應(yīng)的XML形式的
數(shù)據(jù)。職員元素由職員編號(hào)元素和名字元素構(gòu)成。即,在本實(shí)施例中,在排序了的表狀數(shù)據(jù)中,第l行數(shù)據(jù)"1 (職員編號(hào))、Tanaka (名字)、 銷售(部門)"和第2行數(shù)據(jù)"3 (職員編號(hào))、Suzuki (名字)、銷售(部 門)"中,賦予有條件重復(fù)指定標(biāo)簽51 (<sysl: repeat condition- "section" >)的條件所指定的項(xiàng)"部門"的M是相等的,基于項(xiàng)"部門"的共同 的值"銷售",它們被組成一組。隨后,要變換的行數(shù)據(jù)被切換到第3行(最后一行)數(shù)據(jù)(步驟S16 )。 由于第3行數(shù)據(jù)為"2(職員編號(hào))、Sato(名字)、技術(shù)(部門)",所以, 關(guān)鍵字列表中的第一個(gè)關(guān)鍵字的值"銷售"不等于要變換的行數(shù)據(jù)(第3 行數(shù)據(jù))中的對(duì)應(yīng)項(xiàng)"部門"的值"技術(shù)"(步驟S8和S9),如圖11所 示。此外,定義文件122中的無(wú)條件重復(fù)指定標(biāo)簽53不是根標(biāo)簽(步驟 Sll)。在這種情形中,嵌入定義文件122中的無(wú)條件重復(fù)指定標(biāo)簽53 (<sysl: repeat>)內(nèi)的元素(部門元素)被確定為模板(步驟SIO)。如果關(guān)鍵字列表中的第一個(gè)關(guān)鍵字的值不等于要變換的行數(shù)據(jù)中的 對(duì)應(yīng)項(xiàng)的值,以及如果無(wú)條件重復(fù)指定標(biāo)簽53不是根標(biāo)簽,那么,標(biāo)簽 53就指定要變換的行數(shù)據(jù)變換成新的一組的XML文檔部分,該XML 文檔部分接續(xù)著前面一組的XML文檔部分。相反,如果不像本實(shí)施例那 樣,無(wú)條件重復(fù)指定標(biāo)簽53是一個(gè)根標(biāo)簽的話,那么標(biāo)簽53就指定行 數(shù)據(jù)變換成新的XML文檔所包含的XML文檔部分,該文檔不同于包含 了前面一組的XML文檔部分的XML文檔。之后,關(guān)鍵字列表中的第1個(gè)關(guān)鍵字的值"銷售"被更新為第3行 數(shù)據(jù)"2 (職員編號(hào))、Sato (名字)、技術(shù)(部門)"中所包含的項(xiàng)"部門" 的值"技術(shù)"(步驟S14),如圖ll所示。在步驟S15中,第3行數(shù)據(jù)所包括的指定項(xiàng)的值被插入由模板確定 單元106當(dāng)前所確定的模板的值插入指定部分中,即插入部門元素的值 插入指定部分(即,部門元素的拷貝)中,作為嵌入定義文件122中的 無(wú)M重復(fù)指定標(biāo)簽53 (<sysl: repeat>)內(nèi)的元素(步驟S15 )。在這種 情形中,"技術(shù)"、"2"和"Sato"分別被插入${部門}、 ${職員編號(hào)}和${名
字}部分中。因此,第3行數(shù)據(jù)就被變換為包含部門元素的XML形式的 數(shù)據(jù)了。這個(gè)XML形式的數(shù)據(jù)被附加地設(shè)置在當(dāng)前正在產(chǎn)生的、基于部 門"技術(shù),,將第1和第2行數(shù)據(jù)組成一組而獲得的XML形式數(shù)據(jù)的部門 元素之后。在上述的方式中,圖3所示的表狀數(shù)據(jù)被變換為圖4所示的XML文 檔。該XML文檔不同于現(xiàn)有技術(shù),而在現(xiàn)有技術(shù)中,表狀數(shù)據(jù)的每行都 被變換成一種結(jié)構(gòu)。即,在本實(shí)施例中,表狀數(shù)據(jù)被變換成一種結(jié)構(gòu)化 的文檔,該結(jié)構(gòu)化文檔所包含的結(jié)構(gòu)中,表狀數(shù)據(jù)中的多行被聚集起來(lái)。 具體說(shuō),在本實(shí)施例中,如果圖3所示的表狀數(shù)據(jù)中所包含的目標(biāo)重復(fù) 項(xiàng)(target repeated item )(由定義文件122中的有條件重復(fù)指定標(biāo)簽51 來(lái)指定),例如"部門",具有單一值,那么,基于所述項(xiàng)對(duì)表狀數(shù)據(jù)進(jìn) 行分組,籍此,表狀數(shù)據(jù)被變換成XML文檔。因此,圖3中的表狀數(shù)據(jù) 被變換成圖4中的XML文檔,該文檔所包含的結(jié)構(gòu)中多個(gè)行被組成組。 圖4中的XML文檔充分顯示了靈活的描述能力,這是XML的特點(diǎn)。圖12A顯示了一個(gè)狀態(tài),其中,圖3中的表狀數(shù)據(jù)按照?qǐng)D6A和6B 中的流程圖基于項(xiàng)"部門"被劃分成組,并被變換成圖4中的XML文檔。 圖12B顯示了一個(gè)狀態(tài),其中,圖3中的表狀數(shù)據(jù)由現(xiàn)有技術(shù)以數(shù)據(jù)的 行作為單位變換成XML形式的數(shù)據(jù),籍此獲得XML文檔。下面將筒短地描述無(wú)條件重復(fù)指定標(biāo)簽53為根標(biāo)簽的情形,該情形 與圖5中的例子不同。在這種情形中,使用嵌入定義文件122中的根標(biāo) 簽內(nèi)的元素,將排序了的表狀數(shù)據(jù)的第3行數(shù)據(jù)"2 (職員編號(hào))、Sato (名字)、技術(shù)(部門)"變換成新的XML文檔,該文檔不同于由變換第 1和第2行數(shù)據(jù)而獲得的XML文檔。[^f務(wù)正例上述實(shí)施例中所使用的定義文件122在其中只設(shè)置了一個(gè)有條件重 復(fù)指定標(biāo)簽。然而,該定義文件在其中可以設(shè)置多個(gè)按嵌套結(jié)構(gòu)排列的 有條件重復(fù)指定標(biāo)簽。參考圖13到15,將描述所述定義文件的修正例,
該修正例中包含了按嵌套結(jié)構(gòu)排列的有條件重復(fù)指定標(biāo)簽。圖13顯示了 要變換的表狀數(shù)據(jù)的例子,圖14顯示了通過(guò)變換圖13中的表狀數(shù)據(jù)而 獲得的預(yù)期的XML文檔(XML結(jié)構(gòu))的例子,而圖15顯示了用于將 圖13中的表狀數(shù)據(jù)變換為圖14中的XML文檔的定義文件222的例子。當(dāng)預(yù)期的XML文檔(通過(guò)變換圖13中的表狀數(shù)據(jù)而獲得的XML 文檔)按圖14所示設(shè)計(jì)時(shí),用來(lái)將圖13中的表狀數(shù)據(jù)變換為圖14中的 XML文檔(XML結(jié)構(gòu))的定義文件222具有圖15所示的XML形式。 在圖14的XML文檔中,與某個(gè)職員編號(hào)對(duì)應(yīng)的多行數(shù)據(jù)被重復(fù)地嵌入 "clientsSortedByDistricts (按地區(qū)來(lái)排序的客戶)"標(biāo)簽內(nèi)。基于"職員 編號(hào)"作為重復(fù)條件的要重復(fù)的部分是比clientsSortedByDistricts"標(biāo)簽 排序更低的元素。在這種情形中,在圖15中的定義文件222中,有條件 重復(fù)才旨定才示簽151 (<sysl: repeat condition- "staff member number">) 凈皮嵌入"clientsSortedByDistricts"標(biāo)簽152內(nèi)。類似地,在圖14中的XML文檔中,對(duì)應(yīng)著某個(gè)"district of responsibility (責(zé)任地區(qū))"的數(shù)據(jù)被重復(fù)地嵌入"districtOfResponsibility (責(zé)任地區(qū))"標(biāo)簽內(nèi),對(duì)應(yīng)著某個(gè)"client name (客戶名)"的數(shù)據(jù)被 重復(fù)地嵌入"clientName"標(biāo)簽內(nèi)。在圖15中的定義文件222中,有條 件重復(fù)指定標(biāo)簽 153 ( <sysl: repeat condition- " district of responsibaity,,>) #皮嵌入"districtOfResponsibility"標(biāo)簽154內(nèi)。類似地, 有^H^重復(fù)指定標(biāo)簽155 (<sysl: repeat condition- "client name">)被 嵌入"clientName"標(biāo)簽156內(nèi)。因此,在圖15中的定義文件222中,嵌套了三個(gè)有條件重復(fù)指定標(biāo) 簽151、 153和155。然而,嵌套的有條件重復(fù)指定標(biāo)簽的數(shù)目不限于三 個(gè)。即,在定義文件中可以嵌套多個(gè)有條件重復(fù)指定標(biāo)簽(包括兩個(gè)、 四個(gè)或更多的有條件重復(fù)指定標(biāo)簽)。在上述實(shí)施例及修正例中,XML文檔被假定為結(jié)構(gòu)化文檔。然而, 本發(fā)明也可以用于其它的結(jié)構(gòu)化文檔,諸如標(biāo)準(zhǔn)通用置標(biāo)語(yǔ)言(standard generalized markup language, SGML)文檔。
對(duì)那些熟悉本技術(shù)的人員來(lái)說(shuō),可以隨時(shí)發(fā)現(xiàn)其它的優(yōu)點(diǎn)和修正方 法。所以,本發(fā)明就其更廣泛的方面而言不限于這里所顯示和描述的具 體細(xì)節(jié)和有代表性的實(shí)施例。因此,在不偏離由附屬權(quán)利要求書及其等 價(jià)說(shuō)法所定義的總的發(fā)明性概念的精神或范圍的情況下,可以進(jìn)行各種 修正。
權(quán)利要求
1.一種將按行排列的表狀數(shù)據(jù)變換成結(jié)構(gòu)化文檔的系統(tǒng),其特征在于包括定義數(shù)據(jù)存儲(chǔ)單元,該單元存儲(chǔ)定義數(shù)據(jù),該定義數(shù)據(jù)定義用來(lái)將表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔的規(guī)則,所述定義數(shù)據(jù)包括有條件重復(fù)指定描述,該描述用來(lái)指定將與具有單一值的共同項(xiàng)相對(duì)應(yīng)的部分行組成組,在所述有條件重復(fù)指定描述中設(shè)置有所述共同項(xiàng),作為重復(fù)條件的屬性值,所述定義數(shù)據(jù)還包括一個(gè)部分,所述表狀數(shù)據(jù)被插入該部分作為元素內(nèi)容,所述部分包括值插入指定描述,該描述指定值的插入,所述值插入指定描述用來(lái)對(duì)應(yīng)所述表狀數(shù)據(jù)中所包含的項(xiàng)的項(xiàng)名;以及變換單元,其被配置來(lái)根據(jù)所述定義數(shù)據(jù)將外部器件所指明的要變換的表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔,所述變換單元變換所述表狀數(shù)據(jù),使所述部分行組成一組,并在所述值插入指定描述所指定的所述結(jié)構(gòu)化文檔的一部分中嵌入用來(lái)與所述值插入指定描述相對(duì)應(yīng)的所述項(xiàng)名的值。
2. 根據(jù)權(quán)利要求l所述的系統(tǒng),其特征在于 所述定義數(shù)據(jù)由具有用標(biāo)簽表達(dá)的結(jié)構(gòu)的結(jié)構(gòu)化文檔構(gòu)成; 所述有條件重復(fù)指定描述由有條件重復(fù)指定標(biāo)簽來(lái)表達(dá),所述有條件重復(fù)指定標(biāo)簽包括作為屬性名的條件和作為屬性值的項(xiàng)名;所述值插入指定描述由元素的開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽括起來(lái),所述元 素具有元素名,所述項(xiàng)名用來(lái)與設(shè)置為所述元素名的值插入指定描述相 對(duì)應(yīng)。
3. 根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于還包括 關(guān)鍵字列表產(chǎn)生單元,其被配置來(lái)通過(guò)從所述定義數(shù)據(jù)中所含的首個(gè)數(shù)據(jù)開(kāi)始分析所述定義數(shù)據(jù)而產(chǎn)生關(guān)鍵字列表,所述關(guān)鍵字列表包含 若干項(xiàng),這些項(xiàng)凈皮設(shè)置為關(guān)鍵字名,并作為由所述定義數(shù)據(jù)中所包含的 有條件重復(fù)指定標(biāo)簽所指定的條件;關(guān)鍵字列表存儲(chǔ)單元,其存儲(chǔ)所述關(guān)鍵字列表; 排序單元,按所述項(xiàng)在所述關(guān)鍵字列表中的順序?qū)λ鲆儞Q的表狀數(shù)據(jù)進(jìn)行排序;表狀數(shù)據(jù)存儲(chǔ)單元,其存儲(chǔ)所述排序了的表狀數(shù)據(jù); 行數(shù)據(jù)讀取單元,讀取所述排序了的表狀數(shù)據(jù)的每一行,作為要變換的行數(shù)據(jù);對(duì)比單元,被配置來(lái)對(duì)比所述關(guān)鍵字列表中的每一項(xiàng)的值與所述要 變換的行數(shù)據(jù)中的對(duì)應(yīng)項(xiàng)的值,從所述關(guān)鍵字列表的首項(xiàng)開(kāi)始,直到檢 測(cè)出所述關(guān)鍵字列表中某項(xiàng)的值不等于所述要變換的行數(shù)據(jù)的值為止; 以及關(guān)鍵字列表更新單元,其將所述關(guān)鍵字列表中的每一項(xiàng)的值更新為 所述要變換行數(shù)據(jù)中的對(duì)應(yīng)項(xiàng)的值,其中,當(dāng)所述對(duì)比單元判斷出所述關(guān)鍵字列表的首項(xiàng)的值等于所述 要變換行數(shù)據(jù)中的對(duì)應(yīng)項(xiàng)的值時(shí),所述變換單元根據(jù)所述定義數(shù)據(jù)中的 有條件重復(fù)指定標(biāo)簽內(nèi)所嵌入的元素,其中該元素對(duì)應(yīng)著所述關(guān)鍵字列 表中其值最后被確定為相等的某個(gè)項(xiàng),將所述要變換的行數(shù)據(jù)變換為新 的結(jié)構(gòu)化文檔部分,所述新的結(jié)構(gòu)化文檔部分是接續(xù)著所述要變換行數(shù) 據(jù)的最后變換的結(jié)構(gòu)化文檔部分的一個(gè)部分,由所述值插入指定描述所 指定的所述新的結(jié)構(gòu)化文檔部分中的 一部分被嵌入了與所述值插入指定 描述相對(duì)應(yīng)的項(xiàng)名的值。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于所述定義數(shù)據(jù)包括無(wú)條件重復(fù)指定標(biāo)簽,該標(biāo)簽中沒(méi)有用于重復(fù)的 條件;以及當(dāng)所述對(duì)比單元判斷出所述關(guān)鍵字列表中首項(xiàng)的值不等于所述要變 換行數(shù)據(jù)中的對(duì)應(yīng)項(xiàng)的值時(shí),所述變換單元根據(jù)所述定義數(shù)據(jù)中的無(wú)條 件重復(fù)指定標(biāo)簽內(nèi)所嵌入的元素,將所述要變換的行數(shù)據(jù)變換為新的一 組的結(jié)構(gòu)化文檔部分,所述新的一組的結(jié)構(gòu)化文檔部分是接續(xù)著前面一 組的結(jié)構(gòu)化文檔部分的部分,由所述值插入指定描述所指定的所述新的 一組的結(jié)構(gòu)化文檔部分中的一部分,皮嵌入了與所述值插入指定描述相對(duì)應(yīng)的項(xiàng)名的值。
5. 根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,當(dāng)所述無(wú)IHt重復(fù)指 定標(biāo)簽是提供所迷定義數(shù)據(jù)的結(jié)構(gòu)化文檔中的根標(biāo)簽時(shí),所述變換單元 根據(jù)所述定義數(shù)據(jù)中的無(wú)條件重復(fù)指定標(biāo)簽內(nèi)所嵌入的元素將所述要變 換的行數(shù)據(jù)變換為結(jié)構(gòu)化文檔部分,該部分被包括在新的結(jié)構(gòu)化文檔中, 該新的結(jié)構(gòu)化文檔不同于包含了前面的組的結(jié)構(gòu)化文檔部分的結(jié)構(gòu)化文檔。
6. 根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于 所述定義數(shù)據(jù)包含多個(gè)有條件重復(fù)指定標(biāo)簽,這些標(biāo)簽中包含了首次提及的有條件重復(fù)指定標(biāo)簽;以及所述多個(gè)有條件重復(fù)指定標(biāo)簽被設(shè)置在嵌套結(jié)構(gòu)中。
7. —種將按行排列的表狀數(shù)據(jù)變換成結(jié)構(gòu)化文檔的方法,其特征在 于包括將定義數(shù)據(jù)存儲(chǔ)到定義數(shù)據(jù)存儲(chǔ)單元,該定義數(shù)據(jù)定義將表狀數(shù)據(jù) 變換為結(jié)構(gòu)化文檔的規(guī)則,所述定義數(shù)據(jù)包括有條件重復(fù)指定描述,該 描述用來(lái)指定將與具有單一值的共同項(xiàng)相對(duì)應(yīng)的部分行的組成組,所述 有條件重復(fù)指定描述配置有所述共同項(xiàng),作為重復(fù)條件的屬性值,所述 定義數(shù)據(jù)還包括一部分,所述表狀數(shù)據(jù)被插入該部分中作為元素內(nèi)容, 所述部分包括值插入指定描述,該值插入指定描述指定值的插入,所述 值插入指定描述對(duì)應(yīng)所述表狀數(shù)據(jù)中所包含的項(xiàng)的項(xiàng)名;將外部器件所指定的要變換的表狀數(shù)據(jù)存儲(chǔ)到表狀數(shù)據(jù)存儲(chǔ)單元 中;以及換為結(jié)構(gòu)化文檔,將存儲(chǔ)在所述表狀數(shù)據(jù)存儲(chǔ)單元中的所述表狀數(shù)據(jù)變 換為所述結(jié)構(gòu)化文檔的所述變換包括,變換所述要變換的表狀數(shù)據(jù),使 部分行組成一組,并在所述值插入指定描述所指定的所述結(jié)構(gòu)化文檔的 一部分中嵌入與所述值插入指定描述相對(duì)應(yīng)的所述項(xiàng)名的值。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于 所述定義數(shù)據(jù)由具有用標(biāo)簽表達(dá)的結(jié)構(gòu)的結(jié)構(gòu)化文檔構(gòu)成; 所述有條件重復(fù)指定描述用有條件重復(fù)指定標(biāo)簽來(lái)表達(dá),所述有條件重復(fù)指定標(biāo)簽包括作為屬性名的條件和作為屬性值的項(xiàng)名;所述值插入指定描述由元素的開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽括起來(lái),所述元素具有元素名,所述項(xiàng)名與作為所述元素名而i殳置的值插入指定描述相對(duì)應(yīng)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于還包括 產(chǎn)生關(guān)鍵字列表,所述關(guān)鍵字列表包含若干項(xiàng),這些項(xiàng)被設(shè)置為關(guān) 鍵字名并用為由所述定義數(shù)據(jù)中所包含的有條件重復(fù)指定標(biāo)簽所指定的 條件,所述關(guān)鍵字列表的產(chǎn)生包括,從所述定義數(shù)據(jù)中所含的首個(gè)數(shù)據(jù) 開(kāi)始分析所述定義數(shù)據(jù),以及將所述關(guān)鍵字列表存儲(chǔ)在關(guān)鍵字列表存儲(chǔ)單元中;按所述項(xiàng)在所述關(guān)鍵字列表中的順序?qū)Υ鎯?chǔ)在所述表狀數(shù)據(jù)存儲(chǔ)單 元中的所述表狀數(shù)據(jù)進(jìn)行排序;讀取所述排序了的表狀數(shù)據(jù)的每一行作為要變換的行數(shù)據(jù);對(duì)比所述關(guān)鍵字列表中的每一項(xiàng)的值與所述要變換的行數(shù)據(jù)中的對(duì) 應(yīng)項(xiàng)的值,從所述關(guān)鍵字列表的首項(xiàng)開(kāi)始,直到檢測(cè)出所述關(guān)鍵字列表 中某項(xiàng)的值不等于所述要變換的行數(shù)據(jù)的值為止;以及將所述關(guān)鍵字列表中的每一項(xiàng)的值更新為所述要變換行數(shù)據(jù)中的對(duì) 應(yīng)項(xiàng)的值,其中,將存儲(chǔ)在所述表狀數(shù)據(jù)存儲(chǔ)單元中的所述表狀數(shù)據(jù)變換為所 述結(jié)構(gòu)化文檔的所述變換包括,當(dāng)所述對(duì)比的結(jié)果表明所述關(guān)鍵字列表 的首項(xiàng)的值等于所述要變換行數(shù)據(jù)中的對(duì)應(yīng)項(xiàng)的值時(shí),根據(jù)所述定義數(shù) 據(jù)中的有條件重復(fù)指定標(biāo)簽內(nèi)所嵌入的元素,其中該元素對(duì)應(yīng)著所述關(guān) 鍵字列表中其值最后被確定為相等的某個(gè)項(xiàng),將所迷要變換的行數(shù)據(jù)變 換為新的結(jié)構(gòu)化文檔部分,所述新的結(jié)構(gòu)化文檔部分是接續(xù)著所述要變 換行數(shù)據(jù)的最后#:變換的結(jié)構(gòu)化文檔部分的一個(gè)部分,由所述值插入指 定描述所指定的所述新的結(jié)構(gòu)化文檔部分中的一部分被嵌入了與所述值 插入指定描述相對(duì)應(yīng)的項(xiàng)名的值。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于所述定義數(shù)據(jù)包括無(wú)條件重復(fù)指定標(biāo)簽,該標(biāo)簽中沒(méi)有重復(fù)條件;以及檔的所述變換包括,當(dāng)對(duì)比的結(jié)果表明所述關(guān)鍵字列表中首項(xiàng)的值不等 于所述要變換行數(shù)據(jù)中的對(duì)應(yīng)項(xiàng)的值時(shí),根據(jù)所述定義數(shù)據(jù)中的無(wú)條件 重復(fù)指定標(biāo)簽內(nèi)所嵌入的元素,將所述要變換的行數(shù)據(jù)變換為新的 一組 的結(jié)構(gòu)化文檔部分,所述新的一組的結(jié)構(gòu)化文檔部分是接續(xù)著前面組的 結(jié)構(gòu)化文檔部分的一個(gè)部分,由所述值插入指定描述所指定的所述新的 結(jié)構(gòu)化文檔部分中的一部分孝皮嵌入了與所述值插入指定描述相對(duì)應(yīng)的項(xiàng) 名的值。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,將存儲(chǔ)在所W狀 數(shù)據(jù)存儲(chǔ)單元中的所述表狀數(shù)據(jù)變換為所述結(jié)構(gòu)化文檔的所述變換包 括,當(dāng)所述無(wú)條件重復(fù)指定標(biāo)簽是提供所述定義數(shù)據(jù)的所述結(jié)構(gòu)化文檔 中的根標(biāo)簽時(shí),根據(jù)所述定義數(shù)據(jù)中的無(wú)條件重復(fù)指定標(biāo)簽內(nèi)所嵌入的 元素將所述要變換的行數(shù)據(jù)變換為結(jié)構(gòu)化文檔部分,該結(jié)構(gòu)化文檔部分 被包括在新的結(jié)構(gòu)化文檔中,該新的結(jié)構(gòu)化文檔不同于包含了前面的組 的結(jié)構(gòu)化文檔部分的結(jié)構(gòu)化文檔。
全文摘要
定義數(shù)據(jù)存儲(chǔ)單元(110)存儲(chǔ)定義數(shù)據(jù),該定義數(shù)據(jù)定義了將表狀數(shù)據(jù)變換為結(jié)構(gòu)化文檔的規(guī)則。所述定義數(shù)據(jù)包括有條件重復(fù)指定描述,該描述指定了與具有單一值的共同項(xiàng)相對(duì)應(yīng)的部分表狀數(shù)據(jù)行的重組。所述有條件重復(fù)指定描述包括所述共同項(xiàng),作為重復(fù)條件的屬性值。所述定義數(shù)據(jù)還包括所述表狀數(shù)據(jù)被插入其中作為元素內(nèi)容的部分。所述部分包括值插入指定描述,該描述用來(lái)對(duì)應(yīng)所述表狀數(shù)據(jù)中所包含的項(xiàng)的項(xiàng)名。變換單元(108)基于所述定義數(shù)據(jù)變換表狀數(shù)據(jù),使部分行組成一組,并在所述值插入指定描述所指定的某部分中嵌入所述項(xiàng)名的值。
文檔編號(hào)G06F17/30GK101154239SQ200710163048
公開(kāi)日2008年4月2日 申請(qǐng)日期2007年9月29日 優(yōu)先權(quán)日2006年9月29日
發(fā)明者江口敦子, 酒井美由紀(jì) 申請(qǐng)人:株式會(huì)社東芝;東芝解決方案株式會(huì)社