相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求2014年11月6日提交的題為“systemsandmethodsfornormalizedschemacomparison(用于規(guī)范化模式對(duì)比的系統(tǒng)和方法)”的美國(guó)臨時(shí)專利申請(qǐng)序列號(hào)62/076,053的權(quán)益,所述申請(qǐng)的全部公開(kāi)內(nèi)容通過(guò)引用結(jié)合在此。
本說(shuō)明書(shū)總體上涉及用于對(duì)數(shù)據(jù)進(jìn)行對(duì)比的方法、系統(tǒng)和介質(zhì),并且更具體地涉及生成規(guī)范化模式(normalizedschema)對(duì)比文件以用于對(duì)符合相關(guān)聯(lián)的xml模式的xml文件中所允許的結(jié)構(gòu)進(jìn)行對(duì)比。
背景技術(shù):
目前,可以采用一種或多種不同的模式語(yǔ)言來(lái)創(chuàng)建可擴(kuò)展標(biāo)記語(yǔ)言(xml)模式。盡管這些模式可以對(duì)xml文檔施加相同的約束,但它們可以使用不同的語(yǔ)法(syntax)來(lái)實(shí)現(xiàn)這些約束。使用跨不同模式語(yǔ)言的不同語(yǔ)法或采用相同模式語(yǔ)言的不同語(yǔ)法使得難以利用自動(dòng)區(qū)別工具對(duì)模式進(jìn)行彼此對(duì)比。
相應(yīng)地,存在對(duì)規(guī)范化模式對(duì)比文件的需要,所述規(guī)范化模式對(duì)比文件在將來(lái)自多個(gè)xml模式的可允許xml結(jié)構(gòu)與一致性xml實(shí)例文件進(jìn)行對(duì)比時(shí)被用作自動(dòng)區(qū)別工具的參考,而不管每種xml模式中所使用的語(yǔ)法或模式語(yǔ)言如何。
技術(shù)實(shí)現(xiàn)要素:
在一個(gè)實(shí)施例中,一種生成規(guī)范化模式對(duì)比文件的方法包括通過(guò)處理設(shè)備來(lái)接收用于xml文檔的xml模式。所述xml模式包括內(nèi)容模型以及一個(gè)或多個(gè)內(nèi)模式結(jié)構(gòu),并且所述內(nèi)容模型是一致性xml實(shí)例文件內(nèi)所允許的一個(gè)或多個(gè)xml元素和xml屬性的規(guī)范。所述方法進(jìn)一步包括:由處理設(shè)備來(lái)處理所述xml模式以解析并移除所述一個(gè)或多個(gè)內(nèi)模式結(jié)構(gòu);由處理設(shè)備通過(guò)標(biāo)識(shí)一個(gè)或多個(gè)xml元素和xml屬性中的每一個(gè)的定義來(lái)確定標(biāo)準(zhǔn)化結(jié)構(gòu)以獲得多個(gè)定義;由處理設(shè)備來(lái)提供采用規(guī)范化模式對(duì)比語(yǔ)法的所述標(biāo)準(zhǔn)化結(jié)構(gòu);由處理設(shè)備按字母順序來(lái)安排所述多個(gè)定義中的每一個(gè)以獲得經(jīng)安排的多個(gè)定義;由處理設(shè)備來(lái)消除存在于所述經(jīng)安排的多個(gè)定義中的任何冗余定義;以及由處理設(shè)備來(lái)生成包含所述經(jīng)安排的多個(gè)定義的規(guī)范化模式對(duì)比文件。
在另一個(gè)實(shí)施例中,一種用于生成規(guī)范化模式對(duì)比文件的系統(tǒng)可以包括處理設(shè)備以及非瞬態(tài)處理器可讀存儲(chǔ)介質(zhì)。所述非瞬態(tài)處理器可讀存儲(chǔ)介質(zhì)包括一個(gè)或多個(gè)編程指令,當(dāng)所述一個(gè)或多個(gè)編程指令被執(zhí)行時(shí)使得所述處理設(shè)備接收用于xml文檔的xml模式。所述xml模式包括內(nèi)容模型以及一個(gè)或多個(gè)內(nèi)模式結(jié)構(gòu)。所述內(nèi)容模型是一致性xml實(shí)例文件內(nèi)所允許的一個(gè)或多個(gè)xml元素和xml屬性的規(guī)范。所述非瞬態(tài)處理器可讀存儲(chǔ)介質(zhì)進(jìn)一步包括一個(gè)或多個(gè)編程指令,所述一個(gè)或多個(gè)編程指令當(dāng)被執(zhí)行時(shí)使得處理設(shè)備處理所述xml模式以解析并移除所述一個(gè)或多個(gè)內(nèi)模式結(jié)構(gòu);通過(guò)標(biāo)識(shí)一個(gè)或多個(gè)xml元素和xml屬性中的每一個(gè)的定義來(lái)確定標(biāo)準(zhǔn)化結(jié)構(gòu)以獲得多個(gè)定義;提供采用規(guī)范化模式對(duì)比語(yǔ)法的所述標(biāo)準(zhǔn)化結(jié)構(gòu);按字母順序來(lái)安排所述多個(gè)定義中的每一個(gè)以獲得經(jīng)安排的多個(gè)定義;消除存在于所述經(jīng)安排的多個(gè)定義中的任何冗余定義;以及生成包含所述經(jīng)安排的多個(gè)定義的規(guī)范化模式對(duì)比文件。
在又另一個(gè)實(shí)施例中,一種用于生成規(guī)范化模式對(duì)比文件的非瞬態(tài)處理器可讀存儲(chǔ)介質(zhì)包括用于執(zhí)行以下進(jìn)程的一個(gè)或多個(gè)編程指令:接收用于xml文檔的xml模式。所述xml模式包括內(nèi)容模型以及一個(gè)或多個(gè)內(nèi)模式結(jié)構(gòu),并且所述內(nèi)容模型是一致性xml實(shí)例文件內(nèi)所允許的一個(gè)或多個(gè)xml元素和xml屬性的規(guī)范。所述非瞬態(tài)處理器可讀存儲(chǔ)介質(zhì)進(jìn)一步包括用于執(zhí)行以下進(jìn)程的一個(gè)或多個(gè)編程指令:處理所述xml模式以解析并移除所述一個(gè)或多個(gè)內(nèi)模式結(jié)構(gòu);通過(guò)標(biāo)識(shí)一個(gè)或多個(gè)xml元素和xml屬性中的每一個(gè)的定義來(lái)確定標(biāo)準(zhǔn)化結(jié)構(gòu)以獲得多個(gè)定義;提供采用規(guī)范化模式對(duì)比語(yǔ)法的所述標(biāo)準(zhǔn)化結(jié)構(gòu);按字母順序來(lái)安排所述多個(gè)定義中的每一個(gè)以獲得經(jīng)安排的多個(gè)定義;消除存在于所述經(jīng)安排的多個(gè)定義中的任何冗余定義;以及生成包含所述經(jīng)安排的多個(gè)定義的規(guī)范化模式對(duì)比文件。
鑒于以下具體描述結(jié)合附圖將更完整地理解由在此描述的實(shí)施例提供的這些和附加特征。
附圖說(shuō)明
附圖中闡明的實(shí)施例在本質(zhì)上是說(shuō)明性的且示例性的并且并不旨在限制由權(quán)利要求書(shū)限定的主題。當(dāng)結(jié)合以下附圖閱讀時(shí),能夠理解說(shuō)明性實(shí)施例的以下詳細(xì)描述,其中,相同的結(jié)構(gòu)用相同的參考標(biāo)號(hào)指示,并且在附圖中:
圖1a描繪了根據(jù)本文所示出和所描述的一個(gè)或多個(gè)實(shí)施例的說(shuō)明性xsd模式;
圖1b描繪了根據(jù)本文所示出和所描述的一個(gè)或多個(gè)實(shí)施例的說(shuō)明性rng模式;
圖2示意性地描繪了根據(jù)本文所示出和所描述的一個(gè)或多個(gè)實(shí)施例的針對(duì)用于規(guī)范化xml模式的系統(tǒng)的說(shuō)明性計(jì)算網(wǎng)絡(luò);
圖3示意性地描繪了來(lái)自圖2的服務(wù)器計(jì)算設(shè)備,進(jìn)一步展示了根據(jù)本文所示出和所描述的一個(gè)或多個(gè)實(shí)施例可以用于提供數(shù)據(jù)的硬件和軟件;
圖4示意性地描繪了根據(jù)本文所示出和所描述的一個(gè)或多個(gè)實(shí)施例的通過(guò)查詢用于元素和屬性的xml模式內(nèi)容模型而生成規(guī)范化模式對(duì)比文件的說(shuō)明性方法的流程圖;
圖5a描繪了根據(jù)本文所示出和所描述的一個(gè)或多個(gè)實(shí)施例的可以規(guī)范化到單個(gè)文件中的說(shuō)明性模式模塊;以及
圖5b描繪了根據(jù)本文所示出和所描述的一個(gè)或多個(gè)實(shí)施例的已經(jīng)被規(guī)范化的單個(gè)文件。
具體實(shí)施方式
本文所描述的方法、系統(tǒng)和存儲(chǔ)介質(zhì)涉及生成規(guī)范化模式對(duì)比文件,所述規(guī)范化模式對(duì)比文件可由自動(dòng)區(qū)別工具用來(lái)將如由一個(gè)或多個(gè)相關(guān)聯(lián)xml模式所定義的xml實(shí)例文件中所產(chǎn)生的可允許結(jié)構(gòu)進(jìn)行對(duì)比。無(wú)論用于每個(gè)xml模式所使用的模式語(yǔ)言如何,并且無(wú)論用在特定模式中用于結(jié)構(gòu)化xml模式的語(yǔ)法如何,都可以完成這種對(duì)比。本文所描述的方法、系統(tǒng)和存儲(chǔ)介質(zhì)被配置成用于忽視所有內(nèi)模式結(jié)構(gòu)并且僅關(guān)注由每個(gè)xml模式所定義的元素的所產(chǎn)生的定義。也就是說(shuō),本文所描述的方法、系統(tǒng)和存儲(chǔ)介質(zhì)可以用于辨別以第一種方式定義xml文檔元素的第一模式與以第二種方式定義相同xml文檔元素的第二模式是否相同。這些方法、系統(tǒng)和存儲(chǔ)介質(zhì)提供優(yōu)勢(shì),因?yàn)樗鼈儾灰髮?duì)第一和第二xml模式進(jìn)行逐行對(duì)比,逐行對(duì)比將是耗時(shí)的并且可能無(wú)法辨別由第一和第二xml模式施加的約束是相同的。
xml模式是用于表達(dá)有關(guān)xml文檔的約束的語(yǔ)言。xml是標(biāo)記語(yǔ)言,所述標(biāo)記語(yǔ)言定義用于以人可讀和機(jī)器(特別是計(jì)算設(shè)備)可讀的格式來(lái)編碼電子文檔的一組規(guī)則。如此,由于xml文檔整體上涉及編碼電子文檔以供計(jì)算機(jī)使用,因此xml文檔(并因此xml模式)必然植根于計(jì)算機(jī)和計(jì)算機(jī)技術(shù)中。也就是說(shuō),使用xml模式來(lái)編碼xml文檔將不會(huì)存在于計(jì)算機(jī)技術(shù)之外。
xml模式可以用于例如提供詞匯中元素和屬性的列表,用于將類型(例如,整數(shù)、字符串和/或類似物、或者特定定義如“襯衫_尺寸”、“玻璃_顏色”或類似物)與在文檔中找到的值進(jìn)行關(guān)聯(lián),用于約束元素和屬性可能出現(xiàn)的位置以及可能出現(xiàn)在那些元素內(nèi)部的內(nèi)容(例如,指定章節(jié)標(biāo)題出現(xiàn)在章節(jié)內(nèi)部和/或章節(jié)必須包括章節(jié)標(biāo)題,隨后是一個(gè)或多個(gè)文本段落),用于提供人可讀的和機(jī)器可處理的文檔資料,以及用于給出對(duì)一個(gè)或多個(gè)文檔的形式描述。
存在xml模式以幫助定義基于xml的語(yǔ)言,并且因此定義定制的xml數(shù)據(jù)。然而,廣泛應(yīng)用若干不同模式語(yǔ)言,如例如,文檔類型定義(dts)、relax-ng(rng)、schematron以及萬(wàn)維網(wǎng)聯(lián)盟(w3c)xsd。不同的xml模式可以描述相同的、類似的或完全不同的xml數(shù)據(jù)結(jié)構(gòu)。由于用于表示xml模式以及用于促進(jìn)其被各種其他工具和軟件使用的所有詳細(xì)語(yǔ)法,經(jīng)常很難將一種模式與另一種模式進(jìn)行對(duì)比,并且因此符合x(chóng)ml模式的(多個(gè))xml文檔中所允許的所產(chǎn)生的結(jié)構(gòu)也難以進(jìn)行對(duì)比。即使由多種模式定義的最終有效xml數(shù)據(jù)結(jié)構(gòu)相同,也可能會(huì)存在差異。例如,第一模式可以將元素z定義為包含2組子元素,組a和組b。在其它地方,xml模式可以將組a定義為包含子元素z1和子元素z2,并且組b包含子元素z3和子元素z4。相比而言,第二模式可以將元素z定義為子元素z1、子元素z2、子元素z3和子元素z4。第一模式和第二模式二者各自需要元素z以包含子元素z1、z2、z3和z4,但它們非常不同地被結(jié)構(gòu)化。
在另一個(gè)示例中,圖1a描繪了說(shuō)明性xsd模式并且圖1b描繪了說(shuō)明性rng模式。兩種模式提供對(duì)特定數(shù)據(jù)集相同的約束,但如圖1a和圖1b中所示,xml模式以不同的方式表達(dá)數(shù)據(jù)輸出。定義相同值的多種不同方式引起制造不同模式的自動(dòng)對(duì)比的困難。
圖2是說(shuō)明性計(jì)算網(wǎng)絡(luò),所述說(shuō)明性計(jì)算網(wǎng)絡(luò)描繪了根據(jù)本文所示出和所描述的實(shí)施例的用于查詢用于元素和屬性數(shù)據(jù)模型的xml內(nèi)容模型的系統(tǒng)的部件,生成了規(guī)范化xml模式對(duì)比語(yǔ)法,并且輸出用于對(duì)xml文檔進(jìn)行對(duì)比的規(guī)范化xml模式對(duì)比文檔。如圖2所展示的,計(jì)算機(jī)網(wǎng)絡(luò)200可以包括廣域網(wǎng)(wan)(如,互聯(lián)網(wǎng))、局域網(wǎng)(lan)、移動(dòng)通信網(wǎng)絡(luò)、公共服務(wù)電話網(wǎng)絡(luò)(pstn)、個(gè)人局域網(wǎng)(pan)、城域網(wǎng)(man)、虛擬專用網(wǎng)絡(luò)(vpn)和/或其他網(wǎng)絡(luò)。計(jì)算機(jī)網(wǎng)絡(luò)200通??梢员慌渲贸捎糜陔娺B接一個(gè)或多個(gè)計(jì)算設(shè)備和/或其部件。說(shuō)明性計(jì)算設(shè)備可以包括但不局限于用戶計(jì)算設(shè)備210a、服務(wù)器計(jì)算設(shè)備210b以及管理員計(jì)算設(shè)備210c。
用戶計(jì)算設(shè)備210a通常可以用作用戶與連接至計(jì)算機(jī)網(wǎng)絡(luò)200的其他部件之間的接口。因此,用戶計(jì)算設(shè)備210a可以用于執(zhí)行一個(gè)或多個(gè)面向用戶的功能,如,接收來(lái)自用戶的一個(gè)或多個(gè)輸入或者將信息提供給用戶,如本文中更詳細(xì)描述的。在一些實(shí)施例中,用戶計(jì)算設(shè)備210a可以包含一個(gè)或多個(gè)軟件程序和/或類似物以便對(duì)xml文檔進(jìn)行對(duì)比。
另外,包括在圖2中的是管理員計(jì)算設(shè)備210c。在服務(wù)器計(jì)算設(shè)備210b需要監(jiān)督、更新或校正的情況下,管理員計(jì)算設(shè)備210c可以被配置成用于提供所期望的監(jiān)督、更新、和/或校正。管理員計(jì)算設(shè)備210c還可以用于將附加數(shù)據(jù)輸入到存儲(chǔ)在服務(wù)器計(jì)算設(shè)備210b上的語(yǔ)料庫(kù)中。
服務(wù)器計(jì)算設(shè)備210b可以接收來(lái)自一個(gè)或多個(gè)源的數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)、將數(shù)據(jù)提供給一個(gè)或多個(gè)接收方(如,用戶計(jì)算設(shè)備210a)、查詢用于元素和屬性數(shù)據(jù)模型的xml模式內(nèi)容模型、生成規(guī)范化xml模式對(duì)比語(yǔ)法、并且輸出規(guī)范化xml模式對(duì)比文檔。
應(yīng)當(dāng)理解的是,雖然用戶計(jì)算設(shè)備210a和管理員計(jì)算設(shè)備210c被描繪為個(gè)人計(jì)算機(jī)并且服務(wù)器計(jì)算設(shè)備210b被描繪為服務(wù)器,但是這些是非限制性示例。更確切地,在一些實(shí)施例中,任何類型的計(jì)算設(shè)備(例如,移動(dòng)計(jì)算設(shè)備、個(gè)人計(jì)算機(jī)、服務(wù)器等)可以用于這些部件中的任何部件。另外,雖然這些計(jì)算設(shè)備中的每個(gè)計(jì)算設(shè)備在圖2中被展示為單件硬件,但是這也僅是示例。更確切地,用戶計(jì)算設(shè)備210a、服務(wù)器計(jì)算設(shè)備210b和管理員計(jì)算設(shè)備210c中的每一個(gè)可以表示多個(gè)計(jì)算機(jī)、服務(wù)器、數(shù)據(jù)庫(kù)、部件和/或類似物。
另外,應(yīng)當(dāng)理解的是,雖然本文所描繪的實(shí)施例指的是計(jì)算設(shè)備網(wǎng)絡(luò),但是本公開(kāi)不僅限于這一網(wǎng)絡(luò)。例如,在一些實(shí)施例中,可以通過(guò)單個(gè)計(jì)算設(shè)備(如,不使用網(wǎng)絡(luò)來(lái)完成本文所描述的各種處理的非聯(lián)網(wǎng)計(jì)算設(shè)備或聯(lián)網(wǎng)計(jì)算設(shè)備)來(lái)完成本文所描述的各種處理。
圖3描繪了來(lái)自圖2的服務(wù)器計(jì)算設(shè)備210b,進(jìn)一步展示了一種系統(tǒng),所述系統(tǒng)用于接收來(lái)自一個(gè)或多個(gè)源的數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)、將數(shù)據(jù)提供給一個(gè)或多個(gè)接收方、查詢用于元素和屬性數(shù)據(jù)模型的xml模式內(nèi)容模型、生成規(guī)范化xml模式對(duì)比語(yǔ)法并且輸出規(guī)范化xml模式對(duì)比文檔。另外,根據(jù)本文所示出和所描述的實(shí)施例,服務(wù)器計(jì)算設(shè)備210b可以包括一種非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),所述非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)用于查詢用于元素和屬性數(shù)據(jù)模型的xml模式內(nèi)容模型、生成規(guī)范化xml模式對(duì)比語(yǔ)法并且輸出規(guī)范化xml模式對(duì)比文檔。雖然在一些實(shí)施例中,服務(wù)器計(jì)算設(shè)備210b可以被配置為具有必要硬件、軟件、和/或固件的通用計(jì)算機(jī),但是在一些實(shí)施例中,所述服務(wù)器計(jì)算設(shè)備210b還可以被配置為用于執(zhí)行本文所描述的功能而專門設(shè)計(jì)的專用計(jì)算機(jī)。
還如圖3所展示的,服務(wù)器計(jì)算設(shè)備210b可以包括處理器330、輸入/輸出硬件340、網(wǎng)絡(luò)接口硬件350、數(shù)據(jù)存儲(chǔ)部件320(其可以存儲(chǔ)xml文檔322、xml模式324以及規(guī)范化模式對(duì)比文件326)、以及非瞬態(tài)存儲(chǔ)器部件310。存儲(chǔ)器部件310可以被配置為易失性和/或非易失性計(jì)算機(jī)可讀介質(zhì),并且如此,可以包括隨機(jī)存取存儲(chǔ)器(包括sram、dram、和/或其他類型的隨機(jī)存取存儲(chǔ)器)、閃存、寄存器、cd盤(pán)(cd)、數(shù)字通用盤(pán)(dvd)、和/或其他類型的存儲(chǔ)部件。另外,存儲(chǔ)器部件310可以被配置成用于存儲(chǔ)操作邏輯312和規(guī)范化邏輯314(作為示例,所述邏輯中的每個(gè)邏輯可以被具體化為計(jì)算機(jī)程序、固件、或硬件)。本地接口300也包括在圖3中并且可以被實(shí)現(xiàn)為總線或其他接口以便促進(jìn)在服務(wù)器計(jì)算設(shè)備210b的部件之間的通信。
處理器330可以包括被配置成用于接收和執(zhí)行指令(如,來(lái)自數(shù)據(jù)存儲(chǔ)部件320和/或存儲(chǔ)器部件310)的任何處理部件。輸入/輸出硬件340可以包括監(jiān)視器、鍵盤(pán)、鼠標(biāo)、打印機(jī)、相機(jī)、麥克風(fēng)、揚(yáng)聲器、觸摸屏、和/或用于接收、發(fā)送和/或呈現(xiàn)數(shù)據(jù)的其他設(shè)備。網(wǎng)絡(luò)接口硬件350可以包括任何有線或無(wú)線聯(lián)網(wǎng)硬件,如,調(diào)制解調(diào)器、lan端口、無(wú)線保真(wi-fi)卡、wimax卡、移動(dòng)通信硬件、和/或用于與其他網(wǎng)絡(luò)和/或設(shè)備進(jìn)行通信的其他硬件。
應(yīng)當(dāng)理解的是,數(shù)據(jù)存儲(chǔ)部件320可以在服務(wù)器計(jì)算設(shè)備210b本地和/或遠(yuǎn)離服務(wù)器計(jì)算設(shè)備而駐留并且可以被配置成用于存儲(chǔ)一條或多條數(shù)據(jù)并且提供對(duì)所述一條或多條數(shù)據(jù)的訪問(wèn)。如圖3中所展示的,數(shù)據(jù)存儲(chǔ)部件320可以存儲(chǔ)xml文檔322以及與xml文檔322相關(guān)的xml模式324,如本文中更詳細(xì)描述的。另外,數(shù)據(jù)存儲(chǔ)部件320還可以存儲(chǔ)一個(gè)或多個(gè)規(guī)范化模式對(duì)比文件326,如本文中更詳細(xì)描述的。
包括在存儲(chǔ)器部件310中的是操作邏輯312和規(guī)范化邏輯314。操作邏輯312可以包括操作系統(tǒng)和/或用于管理服務(wù)器計(jì)算設(shè)備210b的部件的其他軟件。規(guī)范化邏輯314可以被配置成用于創(chuàng)建用于規(guī)范化xml模式的模式對(duì)比文檔,如以下詳細(xì)描述的。
應(yīng)當(dāng)理解的是,圖3中所展示的部件僅是說(shuō)明性的并且不旨在限制本公開(kāi)的范圍。更具體地,雖然圖3中的部件被展示為駐留在服務(wù)器計(jì)算設(shè)備210b內(nèi),但是這是非限制性示例。在一些實(shí)施例中,所述部件中的一個(gè)或多個(gè)部件可以駐留在服務(wù)器計(jì)算設(shè)備210b外部。類似地,雖然圖3涉及服務(wù)器計(jì)算設(shè)備210b,但是其他部件(如,用戶計(jì)算設(shè)備210a和管理員計(jì)算設(shè)備210c(圖2))可以包括類似的硬件、軟件和/或固件。
圖4描繪了通過(guò)查詢用于元素和屬性的xml模式內(nèi)容模型而生成規(guī)范化模式對(duì)比文件的說(shuō)明性方法的流程圖。這種查詢通??梢员煌瓿蔀榈谝徊襟E以便創(chuàng)建可以用于對(duì)從多個(gè)xml模式到一致性xml實(shí)例文件的xml文檔結(jié)構(gòu)的意義進(jìn)行對(duì)比的文件。也就是說(shuō),相對(duì)于圖4所描述的處理可以用于理解xml文檔結(jié)構(gòu)的意義,無(wú)論哪種模式用于定義xml文檔結(jié)構(gòu)的元素和屬性。
如步驟402中所示,可以接收xml模式??梢詮膞ml模式儲(chǔ)存庫(kù)(如例如,存儲(chǔ)在數(shù)據(jù)存儲(chǔ)部件320(圖3)中的xml模式)中接收xml模式。在一些實(shí)施例中,所獲得的xml模式可以是例如有待于與一個(gè)或多個(gè)其他xml模式進(jìn)行對(duì)比的xml模式。xml模式通常可以包含內(nèi)容模型,所述內(nèi)容模型是一致性xml實(shí)例文件內(nèi)所允許的各種xml元素和xml屬性的規(guī)范,包括允許xml元素和xml屬性的相關(guān)結(jié)構(gòu)和布置,以及允許包含xml元素和xml屬性的數(shù)據(jù)類型。如以上所描述的,圖1a和圖1b提供了xml模式內(nèi)的內(nèi)容模型的說(shuō)明性示例。
在一些實(shí)施例中,xml模式可以包括多個(gè)模式模塊。模式模塊是提供各種結(jié)構(gòu)元素的定義的xml模式部件。為了生成有效對(duì)比語(yǔ)法,xml模式可以被“平坦化”為單個(gè)模式模塊,從而使得所有結(jié)構(gòu)元素都出現(xiàn)在相同的模式模塊中。因此,如步驟404中所示,如果xml模式是模塊化的(即,包含多個(gè)模塊,如,嵌套模塊),則xml模式可以在步驟406中被規(guī)范化為單個(gè)文件。如果xml模式不包括多個(gè)模塊,則可以跳過(guò)步驟406。將xml模式規(guī)范化為單個(gè)文件通??梢园▽⒋嬖谟诟鱾€(gè)模塊中的所有定義組合到單個(gè)文件中并且移除與這些模塊的包含或?qū)胂嚓P(guān)的所有語(yǔ)法。在非限制性示例中,xml模式可以包括模塊1,所述模塊1包含用于包括模塊2和模塊3的語(yǔ)法。另外,模塊2包含元素“a”的定義,并且模塊3包含元素“b”的定義。將xml模式規(guī)范化為單個(gè)文件將產(chǎn)生包含模塊1的內(nèi)容的文件,但是具有用于包括被移除的模塊2和模塊3的語(yǔ)法。另外,單個(gè)文件還包含模塊2和模塊3的內(nèi)容,所述內(nèi)容包括但不局限于元素“a”和元素“b”的定義。圖5a和圖5b中描繪了規(guī)范化xml模式的另一個(gè)非限制性示例。如圖5a中所示,第一模式模塊502和第二模式模塊504可以被規(guī)范化為單個(gè)文件506,所述單個(gè)文件在圖5b中示出。單個(gè)文件506包含第一模式模塊502和第二模式模塊504的內(nèi)容,但是省略了在第一模式模塊502到第二模式模塊504中所做的參考。
再次參照?qǐng)D4,在各個(gè)實(shí)施例中,xml模式可以包含與xml文檔的結(jié)構(gòu)有關(guān)但與對(duì)比目的無(wú)關(guān)的各種內(nèi)部結(jié)構(gòu)。例如,某些內(nèi)部結(jié)構(gòu)可以與如何安排xml模式本身有關(guān),但是與最終由xml模式指定的所產(chǎn)生的xml實(shí)例文檔結(jié)構(gòu)無(wú)關(guān)。說(shuō)明性內(nèi)部結(jié)構(gòu)包括分組、樣式(pattern)、類型以及參考。然而,應(yīng)當(dāng)理解的是,內(nèi)部結(jié)構(gòu)不局限于這些,并且可以包括其他內(nèi)部結(jié)構(gòu)。分組通??梢灾复鷛ml模式如何內(nèi)部地對(duì)數(shù)據(jù)進(jìn)行分組。樣式通常可以指代xml模式如何安排數(shù)據(jù)以便進(jìn)行訪問(wèn)。類型通??梢灾复绾卧趯蛹?jí)結(jié)構(gòu)內(nèi)將數(shù)據(jù)結(jié)構(gòu)化。參考通??梢灾复鷛ml模式如何將參考與一個(gè)或多個(gè)其他定義進(jìn)行關(guān)聯(lián)。由于內(nèi)部結(jié)構(gòu)僅與如何將xml模式結(jié)構(gòu)化有關(guān)并且與對(duì)由xml模式表示的內(nèi)容模型進(jìn)行對(duì)比的目的無(wú)關(guān),因此可以對(duì)它們進(jìn)行處理,從而使得可以在步驟408中對(duì)它們進(jìn)行解析和/或移除。對(duì)內(nèi)部結(jié)構(gòu)進(jìn)行解析和/或移除可以包括例如刪除來(lái)自文檔的內(nèi)部結(jié)構(gòu)信息并且將與內(nèi)容模式信息相關(guān)聯(lián)的相關(guān)內(nèi)容插入到參照內(nèi)部結(jié)構(gòu)信息的數(shù)據(jù)偽像中。通常應(yīng)當(dāng)理解的是,在不脫離本公開(kāi)的范圍的情況下,可以使用對(duì)內(nèi)部結(jié)構(gòu)進(jìn)行解析和/或移除的其他方法。
在步驟410中,確定標(biāo)準(zhǔn)化結(jié)構(gòu)。通常應(yīng)當(dāng)理解的是,標(biāo)準(zhǔn)化結(jié)構(gòu)定義在xml模式內(nèi)存在并被參考的每個(gè)元素,其中,每個(gè)定義包括但不局限于所定義元素的特定數(shù)據(jù)類型和其他限制和擴(kuò)展,元素屬性的數(shù)據(jù)類型和其他限制和擴(kuò)展,以及元素的子元素和文本內(nèi)容的基數(shù)、次序性和/或其他限制和擴(kuò)展。用于子元素和文本內(nèi)容的規(guī)范包括對(duì)子元素的任何所需分組以及這些分組的次序性。相應(yīng)地,確定標(biāo)準(zhǔn)化結(jié)構(gòu)包括標(biāo)識(shí)每個(gè)元素、元素的子元素和文本內(nèi)容中的每一個(gè)以及與其相關(guān)聯(lián)的定義。確定這一標(biāo)準(zhǔn)化結(jié)構(gòu)確保了一個(gè)xml模式的內(nèi)容模型內(nèi)的元素的定義包含與任何其他xml模式的內(nèi)容模型內(nèi)的元素的定義相同類型的信息。
標(biāo)準(zhǔn)化結(jié)構(gòu)的非限制性示例可以包括一種結(jié)構(gòu),所述結(jié)構(gòu)指定元素“a”包含屬性“日期”,所述屬性是數(shù)據(jù)類型xs:日期(xs:date),并且包含對(duì)元素“b”或元素“c”的選擇,隨后恰好出現(xiàn)2次元素“d”。相同的標(biāo)準(zhǔn)化結(jié)構(gòu)可以進(jìn)一步指定元素“b”是空的,元素“c”僅包含數(shù)據(jù)類型xs:整數(shù)(xs:integer)的屬性“refno(無(wú)需回復(fù))”,并且元素d僅包含數(shù)據(jù)類型xs:布爾量(xs:boolean)的屬性“replyneeded(需要回復(fù))”。
對(duì)元素或?qū)傩缘南拗苹驍U(kuò)展通常指的是如任何模式定義語(yǔ)法中所定義的元素和屬性擴(kuò)展和限制的概念,所述模式定義語(yǔ)法包括但不限于標(biāo)準(zhǔn)化語(yǔ)法,如例如,w3cxml模式定義或relaxng模式語(yǔ)言規(guī)范。在一些實(shí)施例中,標(biāo)準(zhǔn)化結(jié)構(gòu)包括限制或擴(kuò)展的類型的規(guī)范,以及用于完全描述由限制或擴(kuò)展所表示的約束所需的所有相關(guān)信息,所述限制或擴(kuò)展是針對(duì)xml模式中的元素或?qū)傩远x的。
子元素的基數(shù)指的是可能的數(shù)量乘以必須出現(xiàn)在由xml模式所定義的元素內(nèi)的特定元素,并且包括在標(biāo)準(zhǔn)化結(jié)構(gòu)中?;鶖?shù)的非限制性示例可以是標(biāo)準(zhǔn)化結(jié)構(gòu)指定元素“b”必須作為元素“a”的子元素恰好出現(xiàn)3次。
子元素的次序性指的是在由xml模式所定義的元素內(nèi)其相對(duì)于其他子元素或元素分組的定位,并且包括在標(biāo)準(zhǔn)化結(jié)構(gòu)中。也就是說(shuō),子元素的次序性可以是例如相對(duì)于xml模式中的其他元素而言的子元素的第二序列分組內(nèi)的第一子元素、第二子元素、第三子元素等等。例如,標(biāo)準(zhǔn)化結(jié)構(gòu)可以指定所定義的元素“a”內(nèi)的子元素“b”、“c”和“d”的次序性必須是“a”,接著是“b”或“c”的分組選擇,接著是“d”。
元素或?qū)傩缘臄?shù)據(jù)類型指的是那個(gè)元素或?qū)傩詢?nèi)所允許的內(nèi)容的類型。數(shù)據(jù)類型值由針對(duì)如在w3cxml模式定義語(yǔ)言中所定義的元素和屬性的所允許的數(shù)據(jù)類型所定義(http://www.w3.org/tr/xmlschema11-1/)。標(biāo)準(zhǔn)化結(jié)構(gòu)中的數(shù)據(jù)類型值的說(shuō)明性示例包括但不局限于“xs:日期”和“xs:整數(shù)”。
一旦已經(jīng)確定了標(biāo)準(zhǔn)化結(jié)構(gòu),則可以從標(biāo)準(zhǔn)化結(jié)構(gòu)中生成規(guī)范化模式對(duì)比語(yǔ)法。相應(yīng)地,在步驟412中,可以基于它們的元素和屬性定義在規(guī)范化xml模式對(duì)比語(yǔ)法中提供(表達(dá))所發(fā)現(xiàn)的數(shù)據(jù)模型。也就是說(shuō),數(shù)據(jù)模型可以被規(guī)范化,其方式使得所使用的語(yǔ)法與可以被用來(lái)對(duì)比的xml模式的所有內(nèi)容模型相同。一旦語(yǔ)法已經(jīng)被規(guī)范化,每個(gè)數(shù)據(jù)模型的元素的定義就可以在步驟414中根據(jù)它們的名稱按照字母順序進(jìn)行分類。類似地,在步驟416中,針對(duì)每個(gè)元素的屬性的定義也可以按照字母順序進(jìn)行分類。
一旦在步驟414和416中完成了字母順序分類,就可以開(kāi)始進(jìn)行清除處理,由此消除冗余偽像,如步驟418中所示。冗余偽像可以例如是某些數(shù)據(jù)模型或者其出現(xiàn)在多于一個(gè)xml模式中的元素和屬性(包括其定義)。由于其數(shù)據(jù)模型元素和/或?qū)傩允窍嗤模虼丝梢詮奈募幸瞥蛳辽僖粋€(gè),從而使得僅呈現(xiàn)其數(shù)據(jù)模型元素和/或?qū)傩缘膯蝹€(gè)列表。因此,所產(chǎn)生的文件可以在其表面上看似類似于xml模式,但通常被理解為不是xml模式。
在步驟420中,可以從規(guī)范化的分類的清潔數(shù)據(jù)模型中生成規(guī)范化模式對(duì)比文件。在步驟422中,可以保存和/或輸出規(guī)范化模式xml文件以便使用??梢詫⑺鑫募敵龅饺魏谓邮辗剑缋?,用戶計(jì)算設(shè)備210a或管理員計(jì)算設(shè)備210c(圖2)。在另一個(gè)示例中,可以將所述文件輸出至儲(chǔ)存庫(kù),如,數(shù)據(jù)存儲(chǔ)部件320(圖2)??梢猿鲇趯?duì)符合x(chóng)ml模式的xml實(shí)例文檔中所允許的結(jié)構(gòu)與符合不同xml模式的xml實(shí)例文件中所允許的結(jié)構(gòu)進(jìn)行對(duì)比的目的而使用所述文件。在一些實(shí)施例中,可以例如通過(guò)自動(dòng)區(qū)別工具(如,由一個(gè)或多個(gè)軟件模塊實(shí)現(xiàn)的工具)來(lái)完成對(duì)比。自動(dòng)區(qū)別工具通??梢允侨魏诬浖y(cè)試工具,所述軟件測(cè)試工具可以用于確定多個(gè)對(duì)象(如,xml文檔、文本文檔和/或類似物)之間的差異。為了確保自動(dòng)區(qū)別工具能夠讀取文件,可以采用合適的格式輸出所述文件。由自動(dòng)區(qū)別工具可讀的特定格式通常應(yīng)當(dāng)被識(shí)別。應(yīng)當(dāng)理解的是,對(duì)所述文件的使用不局限于本公開(kāi)中,并且可以出于任何對(duì)比目的而被使用,無(wú)論在本文中是否具體公開(kāi)了這種對(duì)比。
在一些實(shí)施例中,可以針對(duì)多個(gè)xml模式中的每一個(gè)xml模式來(lái)完成關(guān)于圖4所描述的步驟。例如,可以針對(duì)包含在數(shù)據(jù)存儲(chǔ)部件320(圖3)中的xml模式中的每一個(gè)xml模式來(lái)完成關(guān)于圖4所描述的步驟。因此,在步驟424中,可以判定是否可以處理附加xml模式。如果可以,則可以在步驟402處重復(fù)所述過(guò)程。如果不可以,則可以結(jié)束所述過(guò)程。
現(xiàn)在應(yīng)當(dāng)理解的是,本文所描述的實(shí)施例創(chuàng)建并提供文件以便在對(duì)xml模式進(jìn)行對(duì)比時(shí),特別是對(duì)符合相關(guān)聯(lián)的xml模式的xml文檔的所得到的可允許結(jié)構(gòu)進(jìn)行對(duì)比時(shí)而使用。這一文件可以被自動(dòng)區(qū)別工具和/或類似物使用以便對(duì)xml模式進(jìn)行對(duì)比并且確定xml模式之間的差異,由此節(jié)省與手動(dòng)對(duì)比相關(guān)聯(lián)的時(shí)間。此外,所述文檔可以用于對(duì)比,無(wú)論所使用的xml模式的類型、xml模式的編寫(xiě)語(yǔ)言以及xml模式本身的結(jié)構(gòu)如何。
雖然在此已經(jīng)展示和描述了特定實(shí)施例,但應(yīng)當(dāng)理解的是,在不脫離所要求保護(hù)的主題的精神和范圍的情況下,可作出各種其他變化和修改。此外,盡管在此已經(jīng)描述了所要求保護(hù)的主題的各方面,但這些方面無(wú)需以組合使用。因此,本發(fā)明旨在所附權(quán)利要求書(shū)涵蓋所有此類落入所要求保護(hù)的主題的范圍內(nèi)的變化和修改。