国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      生成結(jié)構(gòu)模式候選對象的方法、系統(tǒng)和程序的制作方法

      文檔序號:6379479閱讀:127來源:國知局
      專利名稱:生成結(jié)構(gòu)模式候選對象的方法、系統(tǒng)和程序的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及生成一些指向在一個結(jié)構(gòu)化文檔(structureddocument)內(nèi)的一個元(element)或一個元集(element set)的結(jié)構(gòu)模式(structure pattern)的候選對象(can didate)的方法、系統(tǒng)和程序。
      背景技術(shù)
      結(jié)構(gòu)化文檔是涉及文檔元和文檔元之間的邏輯關(guān)系(文檔邏輯結(jié)構(gòu))的文檔。結(jié)構(gòu)化文檔包括例如SGML(標(biāo)準(zhǔn)通用標(biāo)注語言)文檔和XML(可擴展標(biāo)注語言)文檔。SGML是一個由ISO(國際標(biāo)準(zhǔn)化組織)制定的標(biāo)準(zhǔn),而XML是一個由W3C(全球網(wǎng)協(xié)會)制定的標(biāo)準(zhǔn)。XML制定成可以在繼承SGML的一些功能的同時考慮基本上是因特網(wǎng)的標(biāo)準(zhǔn)文檔格式的HTML(超文本標(biāo)注語言)的一些操作上的問題。
      在這種結(jié)構(gòu)化文檔中文檔變換和處理是很重要的。例如,PDA(個人數(shù)字助理)和移動電話近來都安裝了web瀏覽器,但是這些小型的移動終端設(shè)備通常配備的是有限的顯示區(qū)和低速的通信裝置。因此,需要對臺式PC的HTML文檔進行處理,用一種遵從XML的注釋語言從中提取只是適合小型顯示屏顯示的內(nèi)容。此外,還強烈希望能在遵從HTML的瀏覽器上顯示以XML描述的內(nèi)容和很容易變換各企業(yè)之間格式不同的數(shù)據(jù)。因此,用XSLT(XSL變換)執(zhí)行將以XML描述的內(nèi)容變換成遵從HTML或PDF的顯示格式的變換或者對XML文檔的變換。XSL(可擴展頁面格式語言)是XML文檔的頁面格式語言,由對需格式化的XML文檔的結(jié)構(gòu)變換和描述需得到的格式的意義的詞匯表組成。上面提到的XSLT是實現(xiàn)結(jié)構(gòu)變換部分的技術(shù)。
      在這種對結(jié)構(gòu)化文檔的變換/處理中,需變換/處理的元由結(jié)構(gòu)模式(structure pattern)指定。結(jié)構(gòu)模式是一種指向結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)內(nèi)的元的表示,在這里所謂“結(jié)構(gòu)模式”是指一種采用一串層次指定項(hierarchy specifying item)的表示,每個層次指定項包括一個指定目標(biāo)結(jié)構(gòu)的層次/層次組的層次說明符(hierarchy specifier)和一個指定在這層內(nèi)需選擇的元/元集的元模式(elemeni pattern)。層次指定項以下簡稱為“項(item)”例如,XML結(jié)構(gòu)模式包括一種由WSC(全球網(wǎng)協(xié)會)制定的XPath(XML路徑語言)模式。在XPath內(nèi),項稱為定位步(location step)。稍后將以XPath作為結(jié)構(gòu)模式的具體例子進行詳細說明。
      然而,用結(jié)構(gòu)模式指定需處理的目標(biāo)有著以下問題。結(jié)構(gòu)模式在所討論的結(jié)構(gòu)化文檔改變時可能不指向原來的元。因此,必須在原來的結(jié)構(gòu)化文檔改變時改變結(jié)構(gòu)模式。然而,這樣的維護工作必須手動執(zhí)行,因此需要大量的勞力。如果所涉及的結(jié)構(gòu)化文檔是一個通過因特網(wǎng)接入的HTML文檔,其內(nèi)容是逐日改變的,這個問題的影響就更為顯著。
      一種現(xiàn)有的技術(shù)是給每個需指定的元一個唯一標(biāo)識符。例如,在Amaya(W3C(全球網(wǎng)協(xié)會)開發(fā)的一種Web編輯工具)中,一個元用一個ID屬性規(guī)定(見非專利文獻1Irene Vatton等七人的“Amaya內(nèi)的注釋(Annotations in Amaya)”,W3C自2002年12月起在線提供,2003年1月經(jīng)因特網(wǎng)(URLhttp//www.w3.org/Amaya/User/Annotations.html)檢索得到)。采用通過ID屬性指定一個元,文檔的改變就不會影響這個元,除非刪去這個元本身。然而,用ID指定元需要花費編輯成本,因此不是現(xiàn)實的解決方案。
      另一種現(xiàn)有技術(shù)是使結(jié)構(gòu)模式適應(yīng)在改變后文檔內(nèi)的任何改變(見非專利文獻2Thomas A.Phelps和Robert Wilensky的“強健的文檔內(nèi)定位(Robust intra-document location)”,第9屆全球網(wǎng)會議(2000年)在線提供,2003年1月14日經(jīng)因特網(wǎng)(URLhttp//www9.org/w9cdrom/312/312.html)檢索得到)。采用這種方法,對原來的元用它的名稱作為線索按照一種策略沿文檔的分層結(jié)構(gòu)進行搜索。然而,有著怎樣確定這個預(yù)定策略即怎樣規(guī)定搜索范圍或搜索次序的問題。
      可以有多種結(jié)構(gòu)模式指向一個結(jié)構(gòu)化文檔內(nèi)的一個特定元。下面將舉例對此進行說明。圖15(a)示出了一個樹形結(jié)構(gòu)化文檔的層次結(jié)構(gòu)。文檔次序,即元在文檔內(nèi)出現(xiàn)的次序為元R130、元A131、元B132、元C133和元D134。圖15(a)所示的指向元D134的一種結(jié)構(gòu)模式是相繼從父至子搜索,也就是說,一種表示為“命名為R的元的命名為A的子元的命名為B的子元的命名為D的子元”的結(jié)構(gòu)模式。在稍后要說明的XPath表示法中,這可以表示為“/child∷R[1]/child∷A[1]/child∷B[1]/child∷D [1]”(第一結(jié)構(gòu)模式)。在另一種指向元D134的結(jié)構(gòu)模式中,可以直接從元R130指定。在這種情況下,元D134是元R130的后代,可以表示為“命名為R的元的命名為D的孫元”。在XPath表示法中,這可以表示為“child∷R[1]/descendant∷D[1]”(第二結(jié)構(gòu)模式)。類似,在只跳過元B132時,可以表示為“命名為R的元的命名為A的子元的命名為D的孫元”。在XPath表示法中,這可以表示為“/child∷R[1]/child∷A[1]/descendant∷D[1]”(第三結(jié)構(gòu)模式)。
      雖然上面提到的三種結(jié)構(gòu)模式都指向元D134,但后兩種結(jié)構(gòu)模式具有對上述文檔改變的耐受性。例如,假設(shè)刪去元B132,改變文檔,結(jié)果元C133和元D134成為元A131的子元(參見圖15(b))。在這種情況下,第一結(jié)構(gòu)模式指向一個在這個文檔中不存在的元。相反,后兩種結(jié)構(gòu)模式仍然繼續(xù)指向元D134。此外,后兩種結(jié)構(gòu)模式在它們的耐受性上也是不同的。例如,具有與元D134相同的名稱的元D135添加在元R130之下,使它出現(xiàn)在元A131之前(參見圖15(c))。在這種情況下,指向元R130的命名為D的第一孫元的第二結(jié)構(gòu)模式指向新添加的元D135。相反,指向元R130的元A131的命名為D的第一孫元的第三結(jié)構(gòu)模式繼續(xù)正確地指向原來的元D134。
      這樣,上面提到的由于文檔內(nèi)作了改變而引起的問題可以通過采用一種耐久的結(jié)構(gòu)模式解決。然而,一種耐久的結(jié)構(gòu)模式不是象相繼從父至子搜索(以下稱為“固定路徑”)的結(jié)構(gòu)模式那樣簡單,而是很難建立。此外,有許多種耐久的結(jié)構(gòu)模式,因此很難選擇一種最為適合將來可能對文檔作出的改變。
      盡管有上述情況,還沒有用現(xiàn)有技術(shù)提供的建立耐久的結(jié)構(gòu)模式的編輯環(huán)境。有一些XSLT編輯系統(tǒng),包括例如excelon公司(http//www.exceloncorp.com)的“excelon Stylus”、Altova公司(http//www.xmlspy.com)的“XML Spy”、IBM公司(http//www.alphaworks.ibm.com/tech/xsleditor)的“IBM XSLEditor”等等。雖然這些編輯環(huán)境提供了一種自動產(chǎn)生XPath的功能,但是所產(chǎn)生的XPath只局限于一種簡單的相繼從父至子的固定路徑搜索。因此,為了產(chǎn)生一個耐久的結(jié)構(gòu)模式,用戶必須通過直接輸入字符串或者應(yīng)用通過菜單選擇的輔助工具編輯固定路徑。因此它難以產(chǎn)生許多種復(fù)雜的結(jié)構(gòu)模式。此外,還要求用戶具有結(jié)構(gòu)模式的詳細知識。
      在一種現(xiàn)有技術(shù)中,用戶給出一個搜索結(jié)果的例子,然后自動建立一個結(jié)構(gòu)模式,它包括根據(jù)用戶的例子得到的結(jié)構(gòu)化文檔內(nèi)的部分結(jié)構(gòu),作為搜索結(jié)果(見專利文獻1公開的未審專利申請No.7-225771)。然而,這種技術(shù)只是根據(jù)其中是否包括根據(jù)用戶的例子得到的結(jié)構(gòu)化文檔的部分結(jié)構(gòu)來確定結(jié)構(gòu)模式是否正確,它并不積極支持建立具有耐久性的結(jié)構(gòu)模式。這是因為這種技術(shù)只是旨在使甚至沒有結(jié)構(gòu)化文檔內(nèi)部結(jié)構(gòu)或結(jié)構(gòu)模式語法的知識的用戶可以容易地得到想要的結(jié)構(gòu)模式。因此,自動建立的結(jié)構(gòu)模式并不總是具有耐久性的結(jié)構(gòu)模式。此外,用戶仍然需要具有結(jié)構(gòu)模式的詳細知識,以便知道自動建立的結(jié)構(gòu)模式是否具有耐久性。
      根據(jù)結(jié)構(gòu)化文檔的內(nèi)容,可以預(yù)測將來可能會改變到某種程度的部分。因此,如果能將結(jié)構(gòu)模式的預(yù)測為將來要改變的部分指定為一個希望編輯的項,并且以一個耐久的表示補充這個部分,用戶就能迅速地從許多種結(jié)構(gòu)模式中得到只是一種適合他的用途的結(jié)構(gòu)模式。
      就這方面來說,在處理具有樹結(jié)構(gòu)的UNIX文件系統(tǒng)的用戶接口(諸如外殼)內(nèi)提供了一種補充一條文件路徑的功能。在這條UNIX文件路徑內(nèi),每個文件層次用“/”隔開,每個目錄和文件示為一個字符串。在采用bash(Bourne Again SHell)的環(huán)境下,例如通過在輸入“Ls/home/user”后接連按壓Tab鍵,在“/home/”下的目錄和文件示為“/home/user1”、“home/user2”等等,帶有自動補充的文件路徑。然而,這種補充文件路徑的功能從頂向下補充文件路徑,用戶必須搜索從作為路徑內(nèi)基點的層次至存在所需信息的層次的所有各個層次。指定路徑內(nèi)的一個特定層次和只自動補充這個層次是不可能的。
      因此,需要實現(xiàn)一種可以自動生成許多種復(fù)雜的結(jié)構(gòu)模式的系統(tǒng)。特別是,需要實現(xiàn)一種能很容易從一些生成的結(jié)構(gòu)模式中選擇一種最佳結(jié)構(gòu)模式的自動結(jié)構(gòu)模式生成系統(tǒng)。使用這種系統(tǒng),不要求用戶具有結(jié)構(gòu)模式的詳細知識,從而防止了諸如編輯錯誤和輸入錯誤之類的差錯。如果可以自動生成許多種結(jié)構(gòu)模式使用戶可以很容易從它們中選擇一種最佳的結(jié)構(gòu)模式,用戶就能處理在結(jié)構(gòu)化文檔內(nèi)所作出的各種改變,也就是說就為用戶提供了一種具有高度適應(yīng)性的系統(tǒng)。此外,還需要實現(xiàn)一種指定結(jié)構(gòu)模式內(nèi)任何一項和只將這項自動編輯入一個耐久的表示的功能。利用這種功能,用戶可以迅速得到一種適合他的用途的結(jié)構(gòu)模式而不會有從需編輯的項一直搜索到具有需指向的元的項的麻煩。

      發(fā)明內(nèi)容
      按照本發(fā)明生成的結(jié)構(gòu)模式如上所述是一種通過重復(fù)一個由一個層次說明符和一個元模式組成的層次指定項來指向結(jié)構(gòu)化文檔內(nèi)一個元或一個元集的表示。
      本發(fā)明的系統(tǒng)包括需編輯項確定裝置、結(jié)構(gòu)模式候選對象生成裝置和結(jié)構(gòu)模式候選對象表生成裝置。這種系統(tǒng)還包括一個存儲結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示狀態(tài)和指標(biāo)的存儲裝置。在為本發(fā)明的系統(tǒng)提供了一個指向用戶指定的一個結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式時,需編輯項確定裝置在這個結(jié)構(gòu)模式的這些項中確定一個需編輯項。然后,結(jié)構(gòu)模式候選對象生成裝置根據(jù)結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息用一些在不同表示內(nèi)的項代替需編輯項,生成一些結(jié)構(gòu)模式候選對象。結(jié)構(gòu)模式候選對象表生成裝置根據(jù)顯示條件和指標(biāo)對生成的一個或多個結(jié)構(gòu)模式候選對象進行排列,生成一個結(jié)構(gòu)模式候選對象表。最后,顯示結(jié)構(gòu)模式候選對象表,提供給用戶。
      本發(fā)明的另一種系統(tǒng)可以從用戶接收一個由用戶在需編輯的結(jié)構(gòu)模式的這些項中指定的希望編輯的項,將這個希望編輯的項確定為需編輯項。
      按照本發(fā)明,為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo)包括,例如一個示出在結(jié)構(gòu)化文檔內(nèi)生成的結(jié)構(gòu)模式候選對象所指向的元集與指定的結(jié)構(gòu)模式所指向的元集之間的包含關(guān)系的指標(biāo),和一個表示生成的結(jié)構(gòu)模式候選對象的特征的可數(shù)特征量。
      此外,按照本發(fā)明,結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息包括例如結(jié)構(gòu)化文檔本身和結(jié)構(gòu)化文檔的文檔類型定義。
      按照本發(fā)明,用戶只要為系統(tǒng)指定一個指向一個結(jié)構(gòu)化文檔內(nèi)的一個特定的元或元集的結(jié)構(gòu)模式就可以得到一個示出多種復(fù)雜的結(jié)構(gòu)模式的結(jié)構(gòu)模式候選對象表,從而避免了輸入的麻煩和防止了諸如輸入出錯和編輯出錯之類的差錯。結(jié)構(gòu)模式候選對象可以根據(jù)顯示條件和指標(biāo)排列,顯示為一個結(jié)構(gòu)模式候選對象表。因此,用戶可以得到選擇結(jié)構(gòu)模式的判定準(zhǔn)則而不需要有關(guān)結(jié)構(gòu)模式的專門知識,從而使選擇適合他的用途的結(jié)構(gòu)模式變得更為方便。
      此外,按照本發(fā)明,用戶可以對需編輯的結(jié)構(gòu)模式指定一個希望編輯的項。因此,可以根據(jù)需編輯的結(jié)構(gòu)化文檔的內(nèi)容預(yù)測將來可能要改變的部分,于是用戶通過將這部分指定為一個希望編輯的項可以迅速地從許多可能類型的結(jié)構(gòu)模式中得到只是一個適合他的用途的結(jié)構(gòu)模式。


      圖1(a)和1(b)為示出實現(xiàn)本發(fā)明的方法的系統(tǒng)的總體情況的示意圖,圖1(a)示出了獨立計算機實現(xiàn)的配置情況,而圖1(b)示出了計算機網(wǎng)絡(luò)實現(xiàn)的配置情況;圖2為示出本發(fā)明的結(jié)構(gòu)模式候選對象生成系統(tǒng)的例子的方框圖;圖3為示出本發(fā)明的生成一個或多個結(jié)構(gòu)模式候選對象的方法的例子的總體流程圖;圖4為示出確定一個需編輯項的方法的例子的流程圖;圖5為示出生成一個或多個結(jié)構(gòu)模式候選對象的方法的例子的流程圖;圖6為示出用結(jié)構(gòu)化文檔生成一個或多個結(jié)構(gòu)模式候選對象的方法的例子的流程圖;圖7為示出用文檔類型定義生成一個或多個結(jié)構(gòu)模式候選對象的方法的例子的流程圖;圖8(a)示出了結(jié)構(gòu)化文檔的例子,圖8(b)示出了圖8(a)的結(jié)構(gòu)化文檔的文檔類型定義,而圖8(c)示出了圖8(a)的結(jié)構(gòu)化文檔的樹結(jié)構(gòu);圖9示出了顯示結(jié)構(gòu)模式候選對象的方法的例子的流程圖;圖10示出了顯示根據(jù)示出包含關(guān)系的顯示條件和指標(biāo)生成的結(jié)構(gòu)模式候選對象表的顯示屏幕例子;圖11示出了顯示根據(jù)示出包含關(guān)系的顯示條件和指標(biāo)生成的結(jié)構(gòu)模式候選對象表的顯示屏幕例子;圖12示出了顯示根據(jù)示出作為特征量的定位步數(shù)的顯示條件和指標(biāo)生成的結(jié)構(gòu)模式候選對象表的顯示屏幕例子;圖13示出了顯示根據(jù)示出作為特征量的節(jié)點數(shù)的顯示條件和指標(biāo)生成的結(jié)構(gòu)模式候選對象表的顯示屏幕例子;圖14示出了支持選擇希望編輯的項的顯示屏幕例子;以及圖15(a)示出了結(jié)構(gòu)化文檔的樹結(jié)構(gòu),圖15(b)和15(c)各示出了結(jié)構(gòu)化文檔作了一些改變后的樹結(jié)構(gòu)。
      具體實施例方式
      下面將結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明。然而,本發(fā)明可以用種種方式實現(xiàn),并不局限于對實施例所作的說明。在整個實施例中,同樣的組成部分都用同樣的標(biāo)號標(biāo)示。
      在下面所說明的實施例中,主要說明一種方法和系統(tǒng),但是熟悉該技術(shù)領(lǐng)域的人員顯然清楚本發(fā)明除了方法和系統(tǒng)之外還可以實現(xiàn)為一種計算機可讀程序。因此,本發(fā)明可以用硬件、軟件或者軟件和硬件的組合實現(xiàn)。
      1.系統(tǒng)硬件配置圖1(a)和1(b)為示出實現(xiàn)本發(fā)明的方法的系統(tǒng)的總體情況的示意圖。本發(fā)明的系統(tǒng)可以在一個獨立計算機系統(tǒng)上或一個包括多個計算機系統(tǒng)的計算機網(wǎng)絡(luò)上實現(xiàn)。圖1(a)示出了獨立計算機實現(xiàn)的配置示意圖,而圖1(b)示出了計算機網(wǎng)絡(luò)實現(xiàn)情況。
      這個計算機系統(tǒng)包括中央處理單元1(CPU)、主存儲器2(RAM)、非易失存儲器3(ROM)等,通過總線4相互連接。諸如協(xié)處理器、圖像加速卡、超高速緩存器和I/O控制器之類的其他配備也可以連接到總線4上。外部存儲裝置5、輸入裝置6、輸出裝置7、通信控制器8等可以通過適當(dāng)?shù)慕涌谝策B接到總線4上。當(dāng)然,這個計算機系統(tǒng)可以具有通常為一個計算機系統(tǒng)裝備的其他硬件資源。
      外部存儲裝置5的典型例子是一個硬盤設(shè)備,但并不局限于此。外部存儲裝置5內(nèi)也包括磁光盤存儲器、光存儲器和諸如閃速存儲器之類的半導(dǎo)體存儲器。外部存儲器在只用來從中讀出數(shù)據(jù)或程序時還包括只供讀出數(shù)據(jù)用的諸如CD-ROM之類的只讀存儲器。
      輸入裝置6可以裝備有諸如鍵盤之類的輸入裝置和諸如鼠標(biāo)之類的指點器。輸入裝置6還包括一個語音輸入裝置。輸出裝置7的例子有CRT、液晶顯示器和等離子顯示器。
      在用多個計算機系統(tǒng)實現(xiàn)本發(fā)明時,這些計算機系統(tǒng)可以通過LAN/WAN或因特網(wǎng)相互連接,如圖1(b)所示。用來連接的通信線路可以是專用的,也可以是公用的。這些計算機系統(tǒng)包括各種類型的計算機,諸如個人計算機9、工作站10和大型計算機11之類。
      在一個有多個相互連接的計算機系統(tǒng)的計算機網(wǎng)絡(luò)內(nèi),可以將程序分布成部分程序在用戶的計算機上執(zhí)行而其他部分程序在一些遠程計算機上執(zhí)行。程序所用的數(shù)據(jù)存儲在哪個計算機處是無關(guān)緊要的。只要有關(guān)數(shù)據(jù)位置(地址)的信息已知,數(shù)據(jù)或程序可以存儲在計算機的任何位置處。網(wǎng)絡(luò)計算機之間的通信可以應(yīng)用眾所周知的通信技術(shù)。例如,可以采用諸如TCP/IP和HTTP之類的協(xié)議。存儲在每個存儲器內(nèi)的每個文件(數(shù)據(jù)或程序)的位置(地址)可以用DNS、URL等標(biāo)識。在這里所謂的因特網(wǎng)包括內(nèi)部網(wǎng)或外部網(wǎng)。在這里所謂的“接入因特網(wǎng)”也是指接入內(nèi)部網(wǎng)或外部網(wǎng)。所謂的“計算機網(wǎng)絡(luò)”包括公眾可接入的計算機網(wǎng)絡(luò)和只允許私人接入的計算機網(wǎng)絡(luò)。
      2.結(jié)構(gòu)模式候選對象生成系統(tǒng)圖2示出了這個實施例的結(jié)構(gòu)模式候選對象生成系統(tǒng)的配置示意圖。如圖2所示,本實施例的結(jié)構(gòu)模式候選對象生成系統(tǒng)包括需編輯項確定裝置20、結(jié)構(gòu)模式候選對象生成裝置21和結(jié)構(gòu)模式候選對象表生成裝置22。本實施例的結(jié)構(gòu)模式候選對象生成系統(tǒng)還包括外部存儲裝置5、輸入裝置6和輸出裝置7。
      外部存儲裝置5是一個存儲作為由用戶指定的結(jié)構(gòu)模式的基礎(chǔ)的結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息以及為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo)25的存儲裝置。在本發(fā)明中,結(jié)構(gòu)化文檔23和結(jié)構(gòu)化文檔的文檔類型定義24至少其中之一用作文檔邏輯結(jié)構(gòu)信息。在結(jié)構(gòu)化文檔23和文檔類型定義24都存在時,文檔類型定義24可以在結(jié)構(gòu)化文檔23內(nèi)描述?;蛘?,可以將文檔類型定義24作為一個獨立的文檔文件記錄,使得在結(jié)構(gòu)化文檔23內(nèi)可以引用這個文檔類型定義文件。在這種情況下,雖然在圖2中結(jié)構(gòu)化文檔23和文檔類型定義24示為存儲在同一個存儲裝置內(nèi),但是它們不是一定要存儲在同一個存儲裝置內(nèi)。顯示條件和指標(biāo)25也不一定要存儲在與存儲結(jié)構(gòu)化文檔23或文檔類型定義24的相同的存儲裝置內(nèi)。
      輸入裝置6是一個可用來指定需編輯的結(jié)構(gòu)模式和該結(jié)構(gòu)模式中的希望編輯的項的裝置。輸出裝置7是一個顯示生成的結(jié)構(gòu)模式候選對象表的裝置。
      輸入裝置6可以配備有諸如鍵盤之類的輸入裝置和諸如鼠標(biāo)之類的指點器。用戶可以用鍵盤之類輸入一個結(jié)構(gòu)模式,指定需對它進行編輯。用戶可以用鼠標(biāo)之類在輸出裝置7的屏幕上顯示的結(jié)構(gòu)化文檔上指定一個目標(biāo)元。在這種情況下,通過眾所周知的技術(shù)自動生成指向這個元的結(jié)構(gòu)模式的固定路徑表示。
      需編輯項確定裝置20的功能通過執(zhí)行存儲在上述諸如硬盤之類的外部存儲裝置5內(nèi)的程序代碼得到執(zhí)行。主要使用的是外部存儲裝置5和諸如中央處理單元1和主存儲器2之類的硬件資源。需編輯項確定裝置20具有根據(jù)用戶通過輸入裝置6的指定從給系統(tǒng)的結(jié)構(gòu)模式的一些項中確定需編輯項的功能。由于沒有對需編輯項的位置和范圍的限制,因此可以編輯構(gòu)成結(jié)構(gòu)模式的一些項的任何組合(包括只是一個項的情況)。在接收到用戶指定的希望編輯的項時,需編輯項確定裝置20將希望編輯的項確定為需編輯項。
      結(jié)構(gòu)模式候選對象生成裝置21的功能通過執(zhí)行存儲在上述諸如硬盤之類的外部存儲裝置5內(nèi)的程序代碼得到執(zhí)行。主要使用的是外部存儲裝置5和諸如中央處理單元1和主存儲器2之類的硬件資源。結(jié)構(gòu)模式候選對象生成裝置21具有通過根據(jù)至少結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息(即結(jié)構(gòu)化文檔23)和結(jié)構(gòu)化文檔的文檔類型定義24其中之一相繼用一些在不同的表示中的項代替由需編輯項確定裝置20確定的每個需編輯的項生成結(jié)構(gòu)模式候選對象的功能。因此,由結(jié)構(gòu)模式候選對象生成裝置21生成的結(jié)構(gòu)模式候選對象的數(shù)目就是在不同的表示中可代替需編輯項的項的數(shù)目。這種編輯方法稍后將詳細予以說明。
      結(jié)構(gòu)化文檔23是文檔的元用元名稱、元內(nèi)容、元屬性、屬性名稱、屬性值等構(gòu)成的文檔。結(jié)構(gòu)化文檔23包括例如XML、SGML和HTML文檔。文檔類型定義24是定義結(jié)構(gòu)化文檔23的文檔類型或語法的數(shù)據(jù),其中定義元名稱、結(jié)構(gòu)、元內(nèi)容的形式和陳述元的屬性以定義屬性名稱、屬性值形式、缺省屬性值等。文檔類型定義24例如在XML文檔的情況下包括DTD和XML模式而在SGML文檔的情況下包括DTD。
      結(jié)構(gòu)模式候選對象表生成裝置22的功能通過執(zhí)行存儲在上述諸如硬盤之類的外部存儲裝置5內(nèi)的程序代碼得到執(zhí)行。主要使用的是外部存儲裝置5和諸如中央處理單元1和主存儲器2之類的硬件資源。結(jié)構(gòu)模式候選對象表生成裝置22具有根據(jù)為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo)25對生成的結(jié)構(gòu)模式候選對象重新排序、生成結(jié)構(gòu)模式候選對象表的功能。如上所述,生成的結(jié)構(gòu)模式候選對象表在輸出裝置7上顯示,提供給用戶。
      在本申請中,以下是用作為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo)25示出生成的結(jié)構(gòu)模式候選對象所指向的一些元集與結(jié)構(gòu)化文檔23內(nèi)一個指定的結(jié)構(gòu)模式所指向的一個元集之間的包含關(guān)系的指標(biāo);和/或示出生成的結(jié)構(gòu)模式候選對象的特征的可數(shù)特征量。示出包含關(guān)系的指標(biāo)和示出特征的可數(shù)特征量稍后將詳細予以說明。
      3.生成一個或多個結(jié)構(gòu)模式候選對象的方法圖3為示出本發(fā)明的結(jié)構(gòu)模式候選對象生成系統(tǒng)的整體工作情況的流程圖。在步驟30,在由用戶指定的結(jié)構(gòu)模式的這些項中確定一個需編輯項。然后,在步驟31,通過編輯在步驟30確定的需編輯項生成一些結(jié)構(gòu)模式候選對象,以根據(jù)至少結(jié)構(gòu)化文檔23和結(jié)構(gòu)化文檔的文檔類型定義24其中之一改變成不同的表示。最后,在步驟32,根據(jù)顯示條件和指標(biāo)25排列生成的結(jié)構(gòu)模式候選對象,生成和顯示結(jié)構(gòu)模式候選對象表。下面將更詳細地對每個步驟進行說明。
      圖4為示出確定一個需編輯項的方法的例子的流程圖。在步驟40,確定對于用戶所指定的結(jié)構(gòu)模式用戶是否指定任何希望編輯的項。如果沒有指定希望編輯的項,就在步驟41確定一個需編輯項。本發(fā)明的目的是自動生成許多種復(fù)雜結(jié)構(gòu)模式,而沒有對需編輯項的位置和范圍的限制。因此,得到所指定的結(jié)構(gòu)模式各項的所有組合,它們中每個都確定為一個需編輯項??梢栽诓襟E41一次得到所有的項組合,也可以轉(zhuǎn)到圖3中的步驟31每次得到一個項組合,在處理后再回到步驟41。在指定了一個希望編輯的項時,在步驟42將它確定為需編輯項。因此,如果有根據(jù)結(jié)構(gòu)化文檔的內(nèi)容能預(yù)測到將來要改變的任何部分,通過指定一個希望編輯的項來標(biāo)識只有一個需編輯項,就可以迅速和正確地得到必要的信息。
      圖5至7示出了示出生成一個或多個結(jié)構(gòu)模式候選對象的方法的一個例子的流程圖。在圖5的步驟50,確定在外部存儲裝置5內(nèi)是否存儲有作為用戶指定的結(jié)構(gòu)模式的源的結(jié)構(gòu)化文檔23。如果存儲有結(jié)構(gòu)化文檔23,就在步驟51根據(jù)結(jié)構(gòu)化文檔23生成結(jié)構(gòu)模式候選對象。如果沒有存儲結(jié)構(gòu)化文檔23,就在步驟52確定在外部存儲裝置5內(nèi)是否存儲有結(jié)構(gòu)化文檔的文檔類型定義24。如果存儲有文檔類型定義24,就在步驟53根據(jù)文檔類型定義24生成結(jié)構(gòu)模式候選對象。如果在外部存儲裝置5內(nèi)既沒有存儲結(jié)構(gòu)化文檔23也沒有存儲文檔類型定義24,就在步驟54發(fā)現(xiàn)出錯后過程結(jié)束。在步驟51或步驟53生成結(jié)構(gòu)模式候選對象后,在步驟54確定是否還有任何未處理的需編輯項。如果還有任何需編輯項,過程返回步驟50,再重復(fù)這一系列步驟(步驟50至54)。否則,過程就結(jié)束。
      圖6為示出用結(jié)構(gòu)化文檔23生成一個或多個結(jié)構(gòu)模式候選對象的方法的一個例子的流程圖。通過將一個需編輯項用一些不同表示內(nèi)的項代替生成結(jié)構(gòu)模式候選對象。如前面所述,一個結(jié)構(gòu)模式的項包括一個層次說明符和一個元模式。因此,用一些不同表示內(nèi)的項代替一個需編輯項意味著確定這些不同表示內(nèi)的不同項的層次說明符和元模式。在以下說明中,不同表示的項簡稱為“補充候選項(candidateitem for completion)”。
      首先,根據(jù)需編輯項確定裝置20在步驟60確定的需編輯項將用戶指定的結(jié)構(gòu)模式劃分成位于需編輯項前的前項、需編輯項和位于需編輯項后的后項三個部分。然后,在步驟61,確定對于指定的結(jié)構(gòu)模式在步驟60執(zhí)行的劃分是否得到了前項。如果存在前項,過程就轉(zhuǎn)到步驟63。否則,在步驟62將前項設(shè)置為根,從而指出結(jié)構(gòu)模式的最高項已選為一個需編輯項。在步驟63,確定對于指定的結(jié)構(gòu)模式是否存在后項。如果存在,就在步驟65根據(jù)后項和結(jié)構(gòu)化文檔23確定補充候選項的元模式。如果不存在,就在步驟64提取結(jié)構(gòu)化文檔23內(nèi)存在的所有元模式,將它們各確定為一個補充候選項的元模式。如果在步驟64或65確定有多個元模式,就對于這些元模式中的每個元模式重復(fù)執(zhí)行以下所說明的步驟66至72。過程從步驟64或65進至步驟66,將有限個層次說明符中的一個層次說明符確定為一個補充候選項的層次說明符。對于所有的這些種類的層次說明符,重復(fù)執(zhí)行下面所說明的步驟67至71。在步驟67,將在步驟66確定的層次說明符與在步驟64或65確定的元模式相連接,生成一個補充候選項。在步驟68,通過依此連接前項、生成的補充候選項和后項得到的結(jié)構(gòu)模式應(yīng)用于結(jié)構(gòu)化文檔23。在步驟69,確定在作為應(yīng)用結(jié)果的結(jié)構(gòu)化文檔23內(nèi)是否存在這個結(jié)構(gòu)模式指向的元。如果確定存在,在步驟70將這個結(jié)構(gòu)模式登記為一個結(jié)構(gòu)模式候選對象。如果在結(jié)構(gòu)化文檔23內(nèi)不存在這個結(jié)構(gòu)模式指向的元,過程從步驟70轉(zhuǎn)到步驟71,確定對于所有種類的層次說明符是否執(zhí)行了66至71這一系列步驟。如果還有任何未處理的層次說明符,過程就返回步驟67。如果所有種類的層次說明符都已得到處理,就在步驟72確定對于在步驟64或65確定的所有元模式是否都已執(zhí)行了66至72這一系列步驟。如果還有任何未處理的元模式,過程就返回步驟66。否則,過程結(jié)束。
      圖7為示出用文檔類型定義24生成一個或多個結(jié)構(gòu)模式候選對象的方法的一個例子的流程圖。這個過程與用結(jié)構(gòu)化文檔23生成一個或多個結(jié)構(gòu)模式候選對象的方法的過程幾乎相同。然而在用文檔類型定義24的情況下,確定是否將生成的結(jié)構(gòu)模式登記為一個結(jié)構(gòu)模式候選對象是根據(jù)這個結(jié)構(gòu)模式按文檔類型定義24是否適當(dāng),也就是說根據(jù)生成的結(jié)構(gòu)模式是否符合文檔類型定義24定義的結(jié)構(gòu)化文檔23的文檔類型或語法(步驟88)。
      4.提供結(jié)構(gòu)模式候選對象的方法的具體例子在解釋本發(fā)明的結(jié)構(gòu)模式候選對象提供系統(tǒng)的具體的操作前,先用一些具體例子對文檔類型定義24和結(jié)構(gòu)模式進行說明。
      圖8(a)示出了一個XML文檔personnel.xml,作為在本發(fā)明中所用的結(jié)構(gòu)化文檔23的一個例子。一個XML文檔的內(nèi)容包括三個部分XML說明、文檔類型定義和XML文檔主體。XML說明是對XML版本和本文檔所用的字符代碼的描述,位于XML文檔的頂端。圖8(a)所示的personnel.xml的XML說明示出了XML建議書版本為1.0,而用來對文檔進行字符編碼的方法是UTF-8(示于personnel.xml的第一行)??梢詫⑽臋n類型定義24記錄為一個獨立的文檔文件,使得在結(jié)構(gòu)化文檔23內(nèi)可以引這個用文檔類型定義文件,如上所述。圖8(a)所示的personnel.xml在personnel.xml內(nèi)引用了文檔類型定義personnel.dtd((圖8(b))(示于personnel.xml的第二行)。XML文檔主體包括多個由標(biāo)簽分開的元(示于personnel.xml的第三至第十三行)。在一個XML文檔內(nèi),元是構(gòu)成XML文檔的邏輯結(jié)構(gòu)的基本單位,由開始標(biāo)簽、內(nèi)容和結(jié)束標(biāo)簽組成。開始標(biāo)簽是標(biāo)示一個元的開始的標(biāo)記,為一個小于符號(<)接有一個元類型名(標(biāo)簽名)和一個大于符號(>)。結(jié)束標(biāo)簽是標(biāo)示一個元的結(jié)束的標(biāo)記,為一個小于符號和斜線(</)接有一個元類型名(標(biāo)簽名)和一個大于符號(>)。內(nèi)容是開始標(biāo)簽和結(jié)束標(biāo)簽之間的主體部分,由字符數(shù)據(jù)組成。通過將一些子元插入內(nèi)容,可以建立一種嵌套結(jié)構(gòu),即分層結(jié)構(gòu)。在圖8(a)所示的personnel.xml內(nèi),一些命名為“person”的子元被插入命名為“personnel”的元的內(nèi)容,而一些命名為“name”的子元被插入命名為“person”的子元,從而建立了一個3分層結(jié)構(gòu)。整個分層結(jié)構(gòu)形成了一個樹結(jié)構(gòu)。圖8(c)示出了這個樹結(jié)構(gòu)。
      結(jié)構(gòu)模式通過重復(fù)由結(jié)構(gòu)層說明符和元模式組成的項指向形成這種樹結(jié)構(gòu)的結(jié)構(gòu)化文檔內(nèi)的元。如上所述,XML文檔內(nèi)的結(jié)構(gòu)模式是Xpath。因此,下面將舉個XPath的例子來說明表示結(jié)構(gòu)模式的具體方式。
      在Xpath中,項稱為定位步,定位步之間由分界符“/”分隔。也就是說,一個XPath包括一個以上由分界符“/”銜接分隔的定位步(以下簡稱“步”),這些是從左至右結(jié)合的。每步相繼選擇與一個上下文節(jié)點(context node,當(dāng)前正在處理的節(jié)點)有關(guān)的一組節(jié)點。(“節(jié)點”是構(gòu)成XML文檔的樹的元,嚴(yán)格來說它包括屬性、域名空間名稱、元內(nèi)字符串等。)例如,“child∷div/child∷para”選擇一個上下文節(jié)點的命名為“div”的子元的命名為“para”的子元。
      一個定位步包括一個基準(zhǔn)點(reference point)、一個節(jié)點測試(node test)和零個以上的謂詞(predicate)三個部分。它表示為由雙冒號分隔的基準(zhǔn)點和節(jié)點測試,接有由方括號包圍的零個以上的表示式?;鶞?zhǔn)點規(guī)定了定位步驟所選擇的節(jié)點與上下文節(jié)點之間的樹關(guān)系。也就是說,基準(zhǔn)點是Xpath內(nèi)的層次說明符。節(jié)點測試規(guī)定了定位步所選擇的節(jié)點的節(jié)點類型和限定名。謂詞用任何表示式更詳細地選擇一組需用定位步選擇的節(jié)點。也就是說,節(jié)點測試和謂詞是XPath內(nèi)的元模式。例如,“child∷data[2]”在上下文節(jié)點的命名為“data”的子元中選擇第二個“data”。
      在Xpath中,可以用13種基準(zhǔn)點作為結(jié)構(gòu)層說明符。下面將對每種基準(zhǔn)點進行說明。“child”基準(zhǔn)點選擇上下文節(jié)點的子節(jié)點。“parent”基準(zhǔn)點選擇上下文節(jié)點的父節(jié)點?!癲escendant”基準(zhǔn)點選擇上下文節(jié)點的后代節(jié)點。后代節(jié)點是一個子節(jié)點或一個子節(jié)點的子節(jié)點,諸如此類?!癮ncestor”基準(zhǔn)點選擇上下文節(jié)點的前代節(jié)點。前代節(jié)點是一個父節(jié)點或一個父節(jié)點的父節(jié)點,諸如此類?!癴ollowing-sibling”基準(zhǔn)點選擇上下文節(jié)點后的所有兄弟節(jié)點。“precedinging-sibling”基準(zhǔn)點選擇上下文節(jié)點前的所有兄弟節(jié)點?!癴ollowing”基準(zhǔn)點在與上下文節(jié)點相同的文檔內(nèi),以文檔次序選擇上下文節(jié)點后的所有節(jié)點,但是后代節(jié)點除外?!皃recedinging”基準(zhǔn)點在與上下文節(jié)點相同的文檔內(nèi),以文檔次序選擇上下文節(jié)點前的所有節(jié)點,但是后代節(jié)點除外?!皊elf”基準(zhǔn)點只選擇上下文節(jié)點本身?!癲escendant-or-self”基準(zhǔn)點選擇上下文節(jié)點和上下文節(jié)點的后代節(jié)點?!癮ncestor-or-self”基準(zhǔn)點選擇上下文節(jié)點和上下文節(jié)點的前代節(jié)點。“attribute”基準(zhǔn)點選擇上下文節(jié)點的屬性?!皀amespace”基準(zhǔn)點選擇上下文節(jié)點的域名空間。
      下面將結(jié)合圖8說明結(jié)構(gòu)模式候選對象提供系統(tǒng)的具體操作。圖8(a)所示的personnel.xml假設(shè)作為結(jié)構(gòu)化文檔23存儲在外部存儲裝置5內(nèi)。假設(shè)用戶指定需編輯指向圖8(c)中所示的元“name”100的結(jié)構(gòu)模式。按照上面所說明的XPath,指向元“name”100的固定路徑為“childpersonnel[1]child∷person[1]/child∷name[1]”。
      現(xiàn)在說明第一實施例,用戶將一個位于一個結(jié)構(gòu)模式內(nèi)中途的項指定為希望編輯的項。對于用戶所指定的結(jié)構(gòu)模式“/child∷personnel[1]child∷person[1]/child∷name[1]”來說,用戶再將“/child∷person[1]”指定為一個希望編輯的項。需編輯項確定裝置20將“/child∷person[1]”確定為一個需編輯項(步驟40和42)。
      然后,結(jié)構(gòu)模式候選對象生成裝置21對結(jié)構(gòu)化文檔personnel.xml是否存儲在外部存儲裝置5內(nèi)進行確認(步驟50)。在這得到確認時,結(jié)構(gòu)模式候選對象生成裝置21對結(jié)構(gòu)模式“child∷personnel[1]/child∷person[1]/child∷name[1]”進行劃分,根據(jù)從需編輯項確定裝置20接收到的需編輯項的信息將″/child∷personnel[1]”設(shè)置為前項而將“child∷name[1]”設(shè)置為后項(步驟60)。然后,由于存在后項,結(jié)構(gòu)模式候選對象生成裝置21根據(jù)后項“/child∷name[1]”和personnel.xml確定補充候選項的元模式即標(biāo)簽名(步驟63和65)。如圖8(c)所示的personnel.xml的樹結(jié)構(gòu)所示,只有“person”是具有元“name[1]”作為子元的父元。因此,生成結(jié)構(gòu)模式候選對象21的裝置確定“ person”為補充候選項的標(biāo)簽名。然后,將所確定的標(biāo)簽名“person”分別與各種分層結(jié)構(gòu)說明符即13種基準(zhǔn)點結(jié)合在一起,確定諸如”/descendant∷person”和“/ancestor∷person”之類的各個補充候選項(步驟66和67)。將通過依次連接上面提到的前項、每一個所確定的補充候選項和后項得到的結(jié)構(gòu)模式應(yīng)用于結(jié)構(gòu)化文檔personnel.xml(步驟68)。如果,作為應(yīng)用結(jié)果,在結(jié)構(gòu)化文檔personnel.xml存在由一個結(jié)構(gòu)模式指向的元,就將這個結(jié)構(gòu)模式記錄為一個結(jié)構(gòu)模式候選對象(步驟70)。以通過將標(biāo)簽名“person”與基準(zhǔn)點“descendant”相結(jié)合得到的補充候選項“/descendant∷person”為例,所產(chǎn)生的結(jié)構(gòu)模式將為“/child∷personnel[1]/descendant∷person/child∷name[1]”。這個結(jié)構(gòu)模式指向圖8(c)中所示的元“name”100至102。因此,結(jié)構(gòu)模式“/child∷personnel[1]/descendant∷person/child∷name[1]”記錄為一個結(jié)構(gòu)模式候選對象。另一方面,以通過將標(biāo)簽名“person”與基準(zhǔn)點“ancestor”相結(jié)合得到的補充候選項“/ancestor∷person”為例,所產(chǎn)生的結(jié)構(gòu)模式將為“/child∷personnel[1]/ancestor∷person/child∷name[1]”。在結(jié)構(gòu)化文檔personnel.xml內(nèi)不存在這個結(jié)構(gòu)模式指向的元。因此,結(jié)構(gòu)模式“/child∷personnel[1]/ancestor∷person/child∷name[1]”不記錄為一個結(jié)構(gòu)模式候選對象。檢查了這樣所有與13種基準(zhǔn)點的組合后,最后記錄為結(jié)構(gòu)模式候選對象的將有以下三個結(jié)構(gòu)模式/child∷personnel[1]/descendant∷person/child∷name[1]/child∷personnel[1]/descendant-or-self∷person/child∷name[1]/child∷personnel[1]/child∷person/child∷name[1]這些結(jié)構(gòu)模式都指向一個由命名為“name”的元100至102構(gòu)成的元集。
      現(xiàn)在說明第二實施例,用戶將一個結(jié)構(gòu)模式內(nèi)相繼的兩項指定為一個希望編輯的項。這是所謂的收縮情況,將兩項表示為一項。用戶將“/child;person[1]/child∷name[1]”指定為他已指定的結(jié)構(gòu)模式“/child∷personnel[1]/child∷person[1]/child∷name[1]”中的一個希望編輯的項。需編輯項確定裝置20將“/child∷person[1]/child∷name[1]”確定為一個需編輯項(步驟40和42)。
      然后,結(jié)構(gòu)模式候選對象生成裝置21對結(jié)構(gòu)化文檔personnel.xml是否存儲在外部存儲裝置5內(nèi)進行確認(步驟50)。在這得到確認時,結(jié)構(gòu)模式候選對象生成裝置21根據(jù)從需編輯項確定裝置20接收到的需編輯項的信息對結(jié)構(gòu)模式“/child∷personnel[1]/child∷person[1]/child∷name[1]進行劃分,將“/child∷personnel[1]”設(shè)置為前項(步驟60)。由于這次沒有后項,結(jié)構(gòu)模式候選對象生成裝置21從personnel.xml提取所有可能的元模式即標(biāo)簽名,將它們確定為補充候選對象項(步驟63和64)。從圖8(c)可見,所提取的標(biāo)簽名為“personnel”、“person”和“name”。確定標(biāo)簽名后執(zhí)行的步驟,即結(jié)構(gòu)模式候選對象生成裝置21對于每標(biāo)簽名執(zhí)行的步驟,與對第一實施例所說明的確定標(biāo)簽名后執(zhí)行的那些步驟相同。最后記錄為結(jié)構(gòu)模式候選對象的有以下這些結(jié)構(gòu)模式/child∷personnel[1]/child∷person/child∷personnel[1]/descendant∷person/child∷personnel[1]/descendant-or-self∷person/child∷personnel[1]/descendant∷name/child∷personnel[1]/descendant-or-self∷name/child∷personnel[1]/descendant-or-self∷personnel/child∷personnel[1]/self∷personnel/child∷personnel[1]/ancestor∷personnel以上結(jié)構(gòu)模式候選對象中,“/child∷personnel[1]/descendant∷name”和“/child∷personnel[1]/descendant-or-self∷name”之外的那些都不指向原來的結(jié)構(gòu)模式指向的元“name”100。這取決于下面要說明的顯示條件和指標(biāo)25的內(nèi)容是否為用戶提供這樣的不指向原來的元的結(jié)構(gòu)模式。
      上面說明的兩個實施例都是由用戶指定希望編輯的項的情況。在希望編輯的項不是由用戶指定時,就由一個程序進行偽選擇。也就是說,需編輯項確定裝置20將所指定的結(jié)構(gòu)模式的各項的所有組合各確定為一個需編輯項。例如,如果所指定的結(jié)構(gòu)模式是“/child∷personal[1]/child∷person[1]/child∷name[1],于是需編輯項確定裝置20得到“/child∷personnel[1]”、“/child∷person[1]”、“/child;name[1]”、“/child∷personnel[1]/child∷person[1]”和“/child∷person[1]/child∷name[1]各個組合,將它們各確定為一個需編輯項。
      5.生成和顯示結(jié)構(gòu)模式候選對象表的方法圖9為示出生成結(jié)構(gòu)模式候選對象表的方法的一個例子的流程圖。結(jié)構(gòu)模式候選對象表生成裝置22在步驟110確定在外部存儲裝置5內(nèi)是否存儲有一個示出包含關(guān)系的顯示條件和指標(biāo)。如果存儲有示出包含關(guān)系的顯示條件和指標(biāo),在步驟111根據(jù)顯示條件和指標(biāo)排列結(jié)構(gòu)模式候選對象生成裝置21記錄的結(jié)構(gòu)模式候選對象。在生成結(jié)構(gòu)模式候選對象表中需考慮的不包括不屬于顯示條件和指標(biāo)所示的任何包含關(guān)系的結(jié)構(gòu)模式候選對象。于是,在步驟112確定是否存儲有與一個特征量有關(guān)的顯示條件和指標(biāo)。如果存儲有與一個特征量有關(guān)的顯示條件和指標(biāo),在步驟113根據(jù)特征量排列結(jié)構(gòu)模式候選對象。對于在步驟111得到排列的這些結(jié)構(gòu)模式來說,將再按照特征量予以排列。在步驟114,根據(jù)所排列的結(jié)構(gòu)模式候選對象生成一個結(jié)構(gòu)模式候選對象表。如果不存在顯示條件和指標(biāo),結(jié)構(gòu)模式候選對象表生成裝置22通過只是列出所有所記錄的結(jié)構(gòu)模式候選對象生成一個結(jié)構(gòu)模式候選對象表。
      圖10至13示出了顯示結(jié)構(gòu)模式候選對象的用戶接口的例子。假設(shè)在外部存儲裝置5內(nèi)存儲有一個HTML文檔,如結(jié)構(gòu)化文檔23。圖10至13中“當(dāng)前XPath”欄120顯示用戶指定的需編輯的結(jié)構(gòu)模式。這個結(jié)構(gòu)模式的一些反相顯示的項標(biāo)示它們是用戶指定的希望編輯的項。在自動生成的結(jié)構(gòu)模式候選對象中指定希望予以顯示的結(jié)構(gòu)模式候選對象時需要使用這些圖中所示的復(fù)選框121至124。
      圖10示出了顯示結(jié)構(gòu)模式候選對象表的一個屏幕顯示例子,這個結(jié)構(gòu)模式候選對象表是根據(jù)示出結(jié)構(gòu)模式候選對象所指向的一些元集與原來的結(jié)構(gòu)模式(當(dāng)前XPath)所指向的元集之間的包含關(guān)系的顯示條件和指標(biāo)25生成的。結(jié)構(gòu)模式候選對象生成裝置21記錄的這些結(jié)構(gòu)模式候選對象根據(jù)顯示條件和指標(biāo)25分為四類。“包含當(dāng)前所選元”欄125顯示結(jié)構(gòu)模式候選對象所指向的元集包括原來的結(jié)構(gòu)模式所指向的元集這樣一些結(jié)構(gòu)模式候選對象。由于顯示區(qū)的限制可以不是顯示結(jié)構(gòu)模式候選對象的整個表示而是只顯示其中的補充候選項。圖10中示出了兩個補充候選項“/descendant∷TD”和“/descendant-or-self∷TD”。“指向與當(dāng)前所選元相同的元”欄126顯示結(jié)構(gòu)模式候選對象所指向的元集與原來的結(jié)構(gòu)模式所指向的元集相同這樣一些結(jié)構(gòu)模式候選對象。在這個實施例中,沒有這樣的結(jié)構(gòu)模式候選對象。“包含部分當(dāng)前所選元”欄127顯示結(jié)構(gòu)模式候選對象所指向的元集部分與原來的結(jié)構(gòu)模式所指向的元集相同這樣一些結(jié)構(gòu)模式候選對象。在這個實施例中,沒有這樣的結(jié)構(gòu)模式候選對象?!安话魏萎?dāng)前所選元”欄128顯示結(jié)構(gòu)模式候選對象所指向的元集根本不包含原來的結(jié)構(gòu)模式所指向的元集這樣一些結(jié)構(gòu)模式候選對象。如圖10所示,有六個結(jié)構(gòu)模式候選對象歸入這一欄。
      圖11示出了在以上所說明的圖10所示的用戶接口下指定另一個XPath為當(dāng)前XPath的例子。如圖11所示,結(jié)構(gòu)模式候選對象生成裝置21記錄的六個結(jié)構(gòu)模式候選對象歸入“指向與當(dāng)前所選元相同的元”欄126和“包括部分當(dāng)前所選元”欄127。
      按照圖10和11所示的實施例,自動生成的多個結(jié)構(gòu)模式候選對象根據(jù)示出包含關(guān)系的顯示條件和指標(biāo)排列,提供給用戶。用戶可以知道結(jié)構(gòu)模式候選對象與當(dāng)前XPath之間的關(guān)系而不需要他自己來分析這些關(guān)系。因此,用戶可以很容易根據(jù)排列情況從許多種結(jié)構(gòu)模式候選對象中選擇一種最適合目標(biāo)結(jié)構(gòu)化文檔的改變特征之類的結(jié)構(gòu)模式。
      此外,圖12示出了顯示根據(jù)與特征量有關(guān)的顯示條件和指標(biāo)生成的結(jié)構(gòu)模式候選對象表的顯示屏幕的例子。在這種情況下,特征量意味著一個示出結(jié)構(gòu)模式候選對象的特征的可數(shù)量。在圖12所示的用戶接口中,結(jié)構(gòu)模式候選對象根據(jù)作為特征量的定位步數(shù)即項數(shù)排列。項數(shù)表示了信息量。因此可以說,項數(shù)越多XPath越嚴(yán)密,項數(shù)越少XPath越模糊。因此,項數(shù)還提供了表示結(jié)構(gòu)模式候選對象的耐久性的指標(biāo)。定位步數(shù)在這里作為特征量添加給上面提到的顯示條件和指標(biāo)有助于用戶選擇結(jié)構(gòu)模式候選對象。在這個實施例中,用戶沒有指定希望編輯的項。與包含關(guān)系有關(guān)的顯示條件和指標(biāo)只指定指向與當(dāng)前XPath所指向的相同的元集的結(jié)構(gòu)模式候選對象需予以顯示。這樣的指定最好通過選取上面所說明的復(fù)選框122執(zhí)行。這樣,用戶可以只顯示必要的信息。
      圖13示出了顯示根據(jù)作為特征量的節(jié)點(元)數(shù)的顯示條件和指標(biāo)生成的結(jié)構(gòu)模式候選對象表的顯示屏幕的例子。在這個實施例中,用戶又沒有指定希望編輯的項。然而,與包含關(guān)系有關(guān)的顯示條件和指標(biāo)指定這次只是指向包含當(dāng)前XPath所指向的元集的元集的結(jié)構(gòu)模式候選對象需予以顯示。因此,顯示的結(jié)構(gòu)模式候選對象所指向的所有元集包含當(dāng)前XPath所指向的元集。每個顯示的結(jié)構(gòu)模式候選對象所指向的元的數(shù)目各不相同,因此可以說,所指向的元越多,與當(dāng)前Xpath有關(guān)的XPath越模糊。因此一個結(jié)構(gòu)模式候選對象所指向的元的數(shù)目還提供了一個表示結(jié)構(gòu)模式候選對象的耐久性。節(jié)點數(shù)在這里作為特征量添加給上面提到的顯示條件和指標(biāo)有助于用戶選擇結(jié)構(gòu)模式候選對象。
      雖然在圖12和13所示的實施例中同時使用示出包含關(guān)系的顯示條件和指標(biāo)以及與特征量有關(guān)的顯示條件和指標(biāo),但當(dāng)然只有與特征量有關(guān)的顯示條件和指標(biāo)可以使用。如圖12和13所示,由于將項/節(jié)點數(shù)與結(jié)構(gòu)模式候選對象一起顯示,因此可以提供更為友好的結(jié)構(gòu)模式候選對象提供系統(tǒng)。
      圖14示出了支持用戶選擇希望編輯的項的功能。原則上,希望編輯的項的位置和數(shù)目可以是任意的。然而,在顯示條件和指標(biāo)指定如圖14所示只有指向與當(dāng)前XPath所指向的相同的元集的結(jié)構(gòu)模式候選對象需予以顯示時,可選為希望編輯的項是有限的。因此,這個實施例根據(jù)顯示條件和指標(biāo)的規(guī)定用一個長方形的邊框包圍可選為希望編輯的項來幫助用戶選擇。
      雖然本發(fā)明的發(fā)明者上面基于本發(fā)明的實施例對本發(fā)明作了具體說明,但本發(fā)明并不局限于這些實施例,在不背離本發(fā)明的精神實質(zhì)的專利保護范圍內(nèi)各種改變都是可行的。
      雖然在這些實施例中主要對系統(tǒng)和方法作了說明,但很明顯,在上面提到的這些實施例中也揭示了錄有計算機可讀程序的媒體,因為這些系統(tǒng)和方法的功能是這計算機可讀程序?qū)崿F(xiàn)的。這樣的媒體不僅包括安裝在存儲裝置內(nèi)的諸如硬盤之類的媒體,而且還包括可從存儲裝置取出的諸如CD-ROM、DVD-ROM、閃速存儲器和軟盤之類的媒體。
      作為本文件的總結(jié),就本發(fā)明的配置揭示了以下內(nèi)容。
      (1)一種生成指向一個結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式的一個或多個候選對象的方法,所述方法包括下列步驟;準(zhǔn)備結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo);接收用戶指定的指向結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式,其中所述結(jié)構(gòu)模式由一個或多個項組成;在這一個或多個項中確定一個需編輯項;通過根據(jù)文檔邏輯結(jié)構(gòu)信息用一些在不同表示內(nèi)的項代替需編輯項生成一個或多個結(jié)構(gòu)模式候選對象;以及根據(jù)顯示條件和指標(biāo)重新排列生成的一個或多個結(jié)構(gòu)模式候選對象,生成一個結(jié)構(gòu)模式候選對象表。
      (2)在(1)中所述的生成一個或多個結(jié)構(gòu)模式候選對象的方法,其中所述確定需編輯項的步驟包括接收一個由用戶指定為對這個結(jié)構(gòu)模式希望編輯的項的步驟和將這個希望編輯的項確定為需編輯項的步驟。
      (3)在(1)或(2)中所述的生成一個或多個結(jié)構(gòu)模式候選對象的方法,其中所述顯示條件和指標(biāo)包括一個示出在結(jié)構(gòu)化文檔內(nèi)生成的一個或多個結(jié)構(gòu)模式候選對象所指向的元集與用戶指定的結(jié)構(gòu)模式所指向的元集之間的包含關(guān)系的指標(biāo)。
      (4)在任何(1)至(3)中所述的生成一個或多個結(jié)構(gòu)模式候選對象的方法,其中所述顯示條件和指標(biāo)包括一個示出生成的一個或多個結(jié)構(gòu)模式候選對象的特征的可數(shù)特征量。
      (5)在任何(1)至(4)中所述的生成一個或多個結(jié)構(gòu)模式候選對象的方法,其中所述準(zhǔn)備文檔邏輯結(jié)構(gòu)信息的步驟包括準(zhǔn)備結(jié)構(gòu)化文檔和結(jié)構(gòu)化文檔的文檔類型定義至少其中之一。
      (6)一種生成指向一個結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式的一個或多個候選對象的系統(tǒng),所述系統(tǒng)包括一個存儲結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示狀態(tài)和指標(biāo)的存儲裝置;接收用戶指定的指向結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式的裝置,其中所述結(jié)構(gòu)模式由一個或多個項組成;在這一個或多個項中確定一個需編輯項的裝置;通過根據(jù)文檔邏輯結(jié)構(gòu)信息用一些在不同表示內(nèi)的項代替需編輯項生成一個或多個結(jié)構(gòu)模式候選對象的裝置;以及根據(jù)顯示條件和指標(biāo)重新排列生成的一個或多個結(jié)構(gòu)模式候選對象、生成一個結(jié)構(gòu)模式候選對象表的裝置。
      (7)在(6)中所述的生成一個或多個結(jié)構(gòu)模式候選對象的系統(tǒng),其中所述確定需編輯項的裝置包括接收一個由用戶指定為對這個結(jié)構(gòu)模式希望編輯的項的裝置和將這個希望編輯的項確定為需編輯項的裝置。
      (8)在(6)或(7)中所述的生成一個或多個結(jié)構(gòu)模式候選對象的系統(tǒng),其中所述顯示條件和指標(biāo)包括一個示出在結(jié)構(gòu)化文檔內(nèi)生成的結(jié)構(gòu)模式候選對象所指向的元集與用戶指定的結(jié)構(gòu)模式所指向的元集之間的包含關(guān)系的指標(biāo)。
      (9)在任何(6)至(8)中所述的生成一個或多個結(jié)構(gòu)模式候選對象的系統(tǒng),其中所述顯示條件和指標(biāo)包括一個示出生成的結(jié)構(gòu)模式候選對象的特征的可數(shù)特征量。
      (10)在任何(6)至(9)中所述的生成一個或多個結(jié)構(gòu)模式候選對象的系統(tǒng),其中所述存儲裝置將結(jié)構(gòu)化文檔和結(jié)構(gòu)化文檔的文檔類型定義存儲為文檔邏輯結(jié)構(gòu)信息。
      (11)一種生成指向一個結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式的一個或多個候選對象的程序,所述程序使一個計算機執(zhí)行下列功能準(zhǔn)備結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo);接收用戶指定的指向結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式,其中所述結(jié)構(gòu)模式由一個或多個項組成;在這一個或多個項中確定一個需編輯項;通過根據(jù)文檔邏輯結(jié)構(gòu)信息用一些在不同表示內(nèi)的項代替需編輯項生成一個或多個結(jié)構(gòu)模式候選對象;以及根據(jù)顯示條件和指標(biāo)重新排列生成的一個或多個結(jié)構(gòu)模式候選對象,生成一個結(jié)構(gòu)模式候選對象表。
      (12)一種生成指向一個XML文檔內(nèi)的一個元或一個元集的XPath的一個或多個候選對象的方法,所述方法包括下列步驟準(zhǔn)備XML文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo);接收用戶指定的指向XML文檔內(nèi)的一個元或一個元集的XPath,其中所述XPath由一個或多個定位步組成;在這一個或多個定位步中確定一個需編輯的定位步;通過根據(jù)文檔邏輯結(jié)構(gòu)信息用一些不同的表示的定位步代替所確定的定位步生成一些XPath候選對象;以及根據(jù)顯示條件和指標(biāo)排列生成的一個或多個XPath候選對象,生成一個XPath候選對象表。
      權(quán)利要求
      1.一種生成指向一個結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式的一個或多個候選對象的方法,所述方法包括下列步驟準(zhǔn)備結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo);接收用戶指定的指向所述結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的所述結(jié)構(gòu)模式,其中所述結(jié)構(gòu)模式由一個或多個項組成;在這一個或多個項中確定一個需編輯項;通過根據(jù)所述文檔邏輯結(jié)構(gòu)信息用一些不同表示的項代替所述需編輯項生成一個或多個結(jié)構(gòu)模式候選對象;以及根據(jù)所述顯示條件和指標(biāo)重新排列所述生成的一個或多個結(jié)構(gòu)模式候選對象,生成一個結(jié)構(gòu)模式候選對象表。
      2.按照權(quán)利要求1所述的生成一個或多個結(jié)構(gòu)模式候選對象的方法,其中所述確定需編輯項的步驟包括接收一個由用戶指定為對所述結(jié)構(gòu)模式所希望編輯的項的步驟和將這個希望編輯的項確定為需編輯項的步驟。
      3.按照權(quán)利要求1或2所述的生成一個或多個結(jié)構(gòu)模式候選對象的方法,其中所述顯示條件和指標(biāo)包括一個示出在所述結(jié)構(gòu)化文檔內(nèi)所述生成的一個或多個結(jié)構(gòu)模式候選對象所指向的元集與用戶指定的所述結(jié)構(gòu)模式所指向的元集之間的包含關(guān)系的指標(biāo)。
      4.按照權(quán)利要求1至3任一項所述的生成一個或多個結(jié)構(gòu)模式候選對象的方法,其中所述顯示條件和指標(biāo)包括一個示出所述生成的一個或多個結(jié)構(gòu)模式候選對象的特征的可數(shù)特征量。
      5.按照權(quán)利要求1至4任一項所述的生成一個或多個結(jié)構(gòu)模式候選對象的方法,其中所述準(zhǔn)備所述文檔邏輯結(jié)構(gòu)信息的步驟包括準(zhǔn)備所述結(jié)構(gòu)化文檔和該結(jié)構(gòu)化文檔的文檔類型定義至少其中之一。
      6.一種生成指向一個結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式的一個或多個候選對象的系統(tǒng),所述系統(tǒng)包括一個存儲結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示狀態(tài)和指標(biāo)的存儲裝置;接收用戶指定的指向結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的所述結(jié)構(gòu)模式的裝置,其中所述結(jié)構(gòu)模式由一個或多個項組成;在這一個或多個項中確定一個需編輯項的裝置;通過根據(jù)所述文檔邏輯結(jié)構(gòu)信息用一些不同表示的項代替所述需編輯項生成一個或多個結(jié)構(gòu)模式候選對象的裝置;以及根據(jù)所述顯示條件和指標(biāo)重新排列所述生成的一個或多個結(jié)構(gòu)模式候選對象、生成一個結(jié)構(gòu)模式候選對象表的裝置。
      7.按照權(quán)利要求6所述的生成一個或多個結(jié)構(gòu)模式候選對象的系統(tǒng),其中所述確定需編輯項的裝置包括接收一個由用戶指定為對所述結(jié)構(gòu)模式所希望編輯的項的裝置和將所述希望編輯的項確定為需編輯項的裝置。
      8.按照權(quán)利要求6或7所述的生成一個或多個結(jié)構(gòu)模式候選對象的系統(tǒng),其中所述顯示條件和指標(biāo)包括一個示出在所述結(jié)構(gòu)化文檔內(nèi)所述生成的結(jié)構(gòu)模式候選對象所指向的元集與用戶指定的所述結(jié)構(gòu)模式所指向的元集之間的包含關(guān)系的指標(biāo)。
      9.按照權(quán)利要求6至8任一項所述的生成一個或多個結(jié)構(gòu)模式候選對象的系統(tǒng),其中所述顯示條件和指標(biāo)包括一個示出所述生成的結(jié)構(gòu)模式候選對象的特征的可數(shù)特征量。
      10.按照權(quán)利要求6至9任一項所述的生成一個或多個結(jié)構(gòu)模式候選對象的系統(tǒng),其中所述存儲裝置將所述結(jié)構(gòu)化文檔和結(jié)構(gòu)化文檔的文檔類型定義至少其中之一存儲為所述文檔邏輯結(jié)構(gòu)信息。
      11.一種生成指向一個結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式的一個或多個候選對象的程序,所述程序使一個計算機執(zhí)行下列功能準(zhǔn)備結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo);接收用戶指定的指向結(jié)構(gòu)化文檔內(nèi)的一個元或一個元集的結(jié)構(gòu)模式,其中所述結(jié)構(gòu)模式由一個或多個項組成;在這一個或多個項中確定一個需編輯項;通過根據(jù)所述文檔邏輯結(jié)構(gòu)信息用一些不同表示的項代替所述需編輯項生成一個或多個結(jié)構(gòu)模式候選對象;以及根據(jù)所述顯示條件和指標(biāo)重新排列所述生成的一個或多個結(jié)構(gòu)模式候選對象,生成一個結(jié)構(gòu)模式候選對象表。
      12.一種生成指向一個XML文檔內(nèi)的一個元或一個元集的XPath的一個或多個候選對象的方法,所述方法包括下列步驟準(zhǔn)備XML文檔的文檔邏輯結(jié)構(gòu)信息和為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo);接收用戶指定的指向所述XML文檔內(nèi)的一個元或一個元集的XPath,其中所述XPath由一個或多個定位步組成;在這一個或多個定位步中確定一個需編輯的定位步;通過根據(jù)所述文檔邏輯結(jié)構(gòu)信息用一些不同表示的定位步代替所述所確定的定位步生成一些XPath候選對象;以及根據(jù)所述顯示條件和指標(biāo)排列所述生成的一個或多個XPath候選對象,生成一個XPath候選對象表。
      全文摘要
      本發(fā)明提出了一種自動生成許多種復(fù)雜結(jié)構(gòu)模式候選對象和便于選擇適合的結(jié)構(gòu)模式的生成結(jié)構(gòu)模式候選對象的方法、系統(tǒng)和程序。在為系統(tǒng)提供了一個指向用戶指定的一個結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)內(nèi)的一個元或一個元集的結(jié)構(gòu)模式時,需編輯項確定裝置在一些組成這個結(jié)構(gòu)模式的項中確定一個需編輯項。結(jié)構(gòu)模式候選對象生成裝置根據(jù)結(jié)構(gòu)化文檔的文檔邏輯結(jié)構(gòu)信息用一些在不同表示內(nèi)的項代替需編輯項,生成結(jié)構(gòu)模式候選對象。結(jié)構(gòu)模式候選對象表生成裝置根據(jù)為用戶提供選擇準(zhǔn)則的顯示條件和指標(biāo)對生成的結(jié)構(gòu)模式候選對象進行排列,生成結(jié)構(gòu)模式候選對象表。如果為系統(tǒng)提供了用戶指定的對這個結(jié)構(gòu)模式希望編輯的項,需編輯項確定裝置就將這個希望編輯的項確定為需編輯項。
      文檔編號G06F17/21GK1519751SQ20041000126
      公開日2004年8月11日 申請日期2004年1月5日 優(yōu)先權(quán)日2003年1月30日
      發(fā)明者安部麻里, 一, 堀雅洋, 小野康一, 生, 小柳光生 申請人:國際商業(yè)機器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1