亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法

文檔序號(hào):6446199閱讀:113來源:國(guó)知局
專利名稱:可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法
技術(shù)領(lǐng)域
本發(fā)明涉及可擴(kuò)展標(biāo)記語(yǔ)言領(lǐng)域,尤指一種對(duì)可擴(kuò)展標(biāo)記語(yǔ)言文件中的各級(jí)父子關(guān)系的元素和類型進(jìn)行全局命名的可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法。
背景技術(shù)
隨著Internet的迅猛發(fā)展,XML(可擴(kuò)展標(biāo)記語(yǔ)言)作為Internet上數(shù)據(jù)表示的新標(biāo)準(zhǔn),以其具有的自描述性、靈活性、擴(kuò)展性和平臺(tái)無關(guān)性等優(yōu)勢(shì),正在被廣泛的應(yīng)用于Web上的數(shù)據(jù)傳輸和數(shù)據(jù)存儲(chǔ)過程中。
W3C(萬(wàn)維網(wǎng)聯(lián)盟,XML標(biāo)準(zhǔn)組織)推出了一系列的XML相關(guān)的技術(shù)和標(biāo)準(zhǔn),其中可以通過XPath(XML路徑表達(dá)方式標(biāo)準(zhǔn))來對(duì)某個(gè)具體的XML文件中的元素及其子元素和屬性進(jìn)行定位,支持XPath的解析器可以迅速的根據(jù)XPath分析出XML文檔中的某個(gè)具體元素。使用XPath這種處理方式時(shí)必須根據(jù)具體的XML文檔結(jié)構(gòu)來書寫其特定的路徑,如果對(duì)于大量結(jié)構(gòu)不同但又具有相似元素或類型的XML文檔,我們只能針對(duì)每個(gè)文檔使用對(duì)應(yīng)的XPath來找到這個(gè)元素,在這種情況下這種處理方式是很繁瑣的,同時(shí)效率也是很低的。
如何對(duì)XML文檔中的元素和類型進(jìn)行命名,使得能夠通過唯一名字來找到不同XML文檔中相同定義的元素,這一直是業(yè)界關(guān)注的問題,目前還沒有解決方案。

發(fā)明內(nèi)容
本發(fā)明要解決的問題是提供一種能夠?qū)ML文檔中的元素和類型進(jìn)行全局命名的可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法。
為了解決上述問題,本發(fā)明可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法的技術(shù)方案包括下述步驟10)將全局元素命名為“{element}{+目標(biāo)名稱空間+}+元素的名稱屬性值”;20)將全局復(fù)雜類型命名為“{type}{+目標(biāo)名稱空間+}+復(fù)雜類型的名稱屬性值”;30)將局部元素命名為“包含該局部元素的復(fù)雜類型的全局名字+“/”+該局部元素的名稱屬性值”;40)將局部復(fù)雜類型命名為該局部復(fù)雜類型的父元素的全局名字;50)將簡(jiǎn)單類型命名為其基礎(chǔ)類型的全局名字。
所述步驟10)前還包括下述步驟1)獲取可擴(kuò)展標(biāo)記語(yǔ)言模式文件定義的目標(biāo)名稱空間;
2)讀取模式文件中的全局元素的名稱屬性值。
所述步驟10)和步驟20)之間還包括以下步驟11)獲取可擴(kuò)展標(biāo)記語(yǔ)言模式文件定義的目標(biāo)名稱空間;12)讀取模式文件中的全局復(fù)雜類型的名稱屬性值。
所述步驟20)和步驟30)之間還包括以下步驟21)獲取包含局部元素的復(fù)雜類型的全局名字;22)讀取該局部元素的名稱屬性值。
所述步驟30)和步驟40)之間還包括步驟獲取包含局部復(fù)雜類型的父元素的全局名字。
所述步驟40)和步驟50)之間還包括以下步驟獲取簡(jiǎn)單類型的基礎(chǔ)類型的全局名字。
與現(xiàn)有技術(shù)相比,本發(fā)明可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法的有益效果由于對(duì)XML的元素和類型進(jìn)行全局命名,將全局元素命名為“{element}{+目標(biāo)名稱空間+}+元素的名稱屬性值”、將全局復(fù)雜類型命名為“{type}{+目標(biāo)名稱空間+}+復(fù)雜類型的名稱屬性值”、將局部元素命名為“包含該局部元素的復(fù)雜類型的全局名字+“/”+該局部元素的名稱屬性值”、將局部復(fù)雜類型命名為該局部類型的父元素的全局名字以及將簡(jiǎn)單類型命名為其基礎(chǔ)類型的全局名字。這樣不僅可以很快地標(biāo)識(shí)出Schema中未顯式給出名稱的匿名類型和不同類型中定義的名字可能相同的局部元素,也可以很方便的區(qū)分Schema不同的名稱空間中定義的相同名字的元素和類型,同時(shí)在Schema引用別的Schema導(dǎo)致多個(gè)名稱空間在同一XML文檔中出現(xiàn)的情況下,也可以通過全局名字來唯一區(qū)分該元素和類型,還可以很方便的根據(jù)Schema定義的復(fù)雜類型來處理相同的XML元素,統(tǒng)一集中的處理這些信息,省去分析大量XML文檔所帶來的額外開銷。


圖1是本發(fā)明可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法的流程圖。
具體實(shí)施例方式
如圖1所示,本發(fā)明可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法包括下述步驟10)將全局元素命名為“{element}{+目標(biāo)名稱空間+}+元素的名稱屬性值”;20)將全局復(fù)雜類型命名為“{type}{+目標(biāo)名稱空間+}+復(fù)雜類型的名稱屬性值”;30)將局部復(fù)雜類型命名為該局部復(fù)雜類型的父元素的全局名字;40)將局部元素命名為“包含該局部元素的復(fù)雜類型的全局名字+“/”+該局部元素的名稱屬性值”;50)將簡(jiǎn)單類型命名為其基礎(chǔ)類型的全局名字。
使用目標(biāo)名稱空間作為全局元素的全局名字的一部分,這樣能夠?qū)⑻幵诓煌瑂chema中的具有相同名稱屬性值的全局元素區(qū)分開;至于全局復(fù)雜類型的命名同理;由于局部復(fù)雜類型對(duì)所屬元素是不可見,所以它的名字可以忽略,故在對(duì)局部復(fù)雜類型進(jìn)行命名時(shí)獲取引用它的父元素的全局名字,并把這個(gè)名稱作為該匿名類型的全局名字;當(dāng)局部元素是由一個(gè)局部類型所定義時(shí),或者一個(gè)局部類型被一個(gè)局部元素所引用時(shí),局部類型和局部元素的命名是相互遞歸的,順序是從外到里;對(duì)于簡(jiǎn)單類型使用其基礎(chǔ)類型的全局名字作為其全局名字。
所述步驟10)前還包括下述步驟1)獲取可擴(kuò)展標(biāo)記語(yǔ)言模式(Schema)文件定義的目標(biāo)名稱空間(TargetNameSpace);2)讀取模式文件中的全局元素(element)的名稱屬性(name)值。
可通過XML解析工具來獲取schema文件定義的目標(biāo)名稱空間以及讀取所述名稱屬性值。
所述步驟10)和步驟20)之間還包括以下步驟11)獲取可擴(kuò)展標(biāo)記語(yǔ)言模式文件定義的目標(biāo)名稱空間;12)讀取模式文件中的全局復(fù)雜類型(complexType)的名稱屬性(name)值。
可通過XML解析工具來獲取schema文件定義的目標(biāo)名稱空間以及讀取所述名稱屬性值。
所述步驟20)和步驟30)之間還包括以下步驟21)獲取包含局部元素的復(fù)雜類型的全局名字;22)讀取該局部元素的名稱屬性值。
可通過XML解析工具來獲取schema文件定義的目標(biāo)名稱空間以及讀取所述名稱屬性值。
所述步驟30)和步驟40)之間還包括步驟獲取包含局部類型的父元素的全局名字。
可通過XML解析工具來獲取schema文件定義的包含局部類型的父元素的全局名字。
所述步驟40)和步驟50)之間還包括步驟獲取簡(jiǎn)單類型的基礎(chǔ)類型的全局名字。
可通過XML解析工具來獲取schema文件定義的簡(jiǎn)單類型的基礎(chǔ)類型的全局名字。
對(duì)于xml文檔中包含的類型及元素可分為全局元素、局部元素、全局復(fù)雜類型、局部復(fù)雜類型和簡(jiǎn)單類型。
下面介紹三個(gè)schema文件,采用本發(fā)明可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法的技術(shù)方案對(duì)其元素和類型進(jìn)行命名的過程。
Schema一address.xsd<?xml version=″1.0″e(cuò)ncoding=″UTF-8″?>
<xsschema targetNamespace=http//org.xmldb.addressxmlns=″http//org.xmldb.address″xmlnsxs=http//www.w3.org/2001/XMLSchemaelementFormDefault=″qualified″attributeFormDefault=″unqualified″>
;Schema所定義的全局元素address<xselement name=″address″>
;Schema所定義的局部復(fù)雜類型<xscomplexType>
<xssequence>
;Schema所定義的局部復(fù)雜類型中定義的局部元素<xselement name=″tel″type=″xsstring″/>
<xselement name=″postcode″type=″xsstring″/>
<xselement name=″street″type=″xsstring″/>
</xssequence>
</xscomplexType>
</xselement>
</xsschema>
該Schema所屬的名稱空間http//org.xmldb.address首先為Schema一中定義的全局元素進(jìn)行命名,該Schema所定義的全局元素為address,其名稱屬性值為address,因而全局元素address的全局名字是{element}{http//org.xmldb.address}address;由于Schema一沒有定義全局復(fù)雜類型及簡(jiǎn)單類型,故不涉及對(duì)全局復(fù)雜類型及簡(jiǎn)單類型的命名;下面對(duì)局部復(fù)雜類型進(jìn)行命名,由于局部復(fù)雜類型對(duì)所屬元素是不可見的,所以局部復(fù)雜類型的名字可以忽略,故本方案將引用它的父元素的全局名稱作為局部復(fù)雜類型的全局名字。
Schema一中的局部復(fù)雜類型的父元素為address,故將address的全局名字作為該局部復(fù)雜類型的全局名字為{element}{http//org.xmldb.address}address;Schema一中的局部元素為tel、postcode和street包含tel的復(fù)雜類型的全局名字為{element}{http//org.xmldb.address}address,tel的名稱屬性值為tel,故其全局名字為{element}{http//org.xmldb.address}address/tel;包含postcode的復(fù)雜類型的全局名字為{element}{http//org.xmldb.address}address,postcode的名稱屬性值為postcode,故其全局名字為{element}{http//org.xmldb.address}address/postcode包含street的復(fù)雜類型的全局名字為{element}{http//org.xmldb.address}address,其名稱屬性值為street,故其全局名字為{element}{http//org.xmldb.address}address/street。
Schema二personal.xsd<?xml version=″1.0″e(cuò)ncoding=″UTF-8″?><xsschema targetNamespace=http//org.xmldb.personnelxmlnsaddr=http//org.xmldb.addressxmlns=http//org.xmldb.personnelxmlnsxs=http//www.w3.org/2001/XMLSchemaelementFormDefault=″qualified″>
<xsimport namespace=http//org.xmldb.addressschemaLocation=″address.xsd″/>;Schema所定義的全局元素<xselement name=″personnel″>;Schema所定義的局部復(fù)雜類型<xscomplexType>
<xssequence>
<xselement ref=″person″maxOccurs=″unbounded″/>
</xssequence>
</xscomplexType>
<xsunique name=″unique 1″>
<xsselector xpath=″person″/>
<xsfield xpath=″name/given″/>
<xsfield xpath=″name/family″/>
</xsunique>
<xskey name=″e(cuò)mpid″>
<xsselector xpath=″person″/>
<xsfield xpath=″@id″/>
</xskey>
<xskeyref name=″keyref1″refer=″e(cuò)mpid″>
<xsselector xpath=″″person″/>
<xsfield xpath=″link/@manager″/>
</xskeyre></xselement>;Schema所定義的全局元素
<xselement name=″person″>;Schema所定義的局部復(fù)雜類型<xscomplexType>
<xssequence>
<xselement ref=″name″/>
<xselement ref=″e(cuò)mail″ minOccurs=″0″maxOccurs=″unbounded″/>
<xselement ref=″url″minOccurs=″0″maxOccurs=″unbounded″/>
<xselement name=″addresses″>
<xscomplexType>
<xssequence maxOccurs=″unbounded″>;Schema所定義的局部元素<xselement ref=″addraddress″/>
</xssequence>
</xscomplexType>
</xselement>
</xssequence>
<xsattribute name=″id″type=″xsID″use=″required″/>
<xsattribute name=″note″type=″xsstring″/>
<xsattribute name=″contr″default=″false″>
;Schema定義的簡(jiǎn)單類型<xssimpleType>;<xsrestriction base=″xsstring″>
<xsenumeration value=″true″/>
<xsenumeration value=″false″/>
</xsrestriction>
</xssimpleType>
</xsattribute>
<xsattribute name=″salary″type=″xsinteger″/>
</xscomplexType></xselement>;Schema所定義的全局元素<xselement name=″name″>;Schema所定義的局部復(fù)雜類型<xscomplexType>
<xsall>
<xselement ref=″family″/>
<xselement ref=″given″/>
</xsall>
</xscomplexType></xselement>;Schema所定義的全局元素<xselement name=″family″type=″xsstring″/>;Schema所定義的全局元素<xselement name=″given″type=″xsstring″/>;Schema所定義的全局元素<xselement name=″e(cuò)mail″type=″xsstring″/>;Schema所定義的全局元素<xselement name=″url″>;Schema所定義的局部復(fù)雜類型<xscomplexType>
<xsattribute name=″hreftype=″xsstring″default=″http//″/>
</xscomplexType>
</xselement></xsschema>
該Schema所屬的名稱空間為http//org.xmldb.personnel首先,對(duì)Schema定義的全局元素進(jìn)行命名全局元素personnel,其名稱屬性值為personnel,故其全局名字為{element}{http//org.xmldb.personnel}personel同理,其它的全局元素的全局名字為person{element}{http//org.xmldb.personnel}personname{element}{http//org.xmldb.personnel}namefamily{element}{http//org.xmldb.personnel}familygiven{element}{http//org.xmldb.personnel}givenemail{element}{http//org.xmldb.personnel}emailurl{element}{http//org.xmldb.personnel}url該Schema沒有定義全局復(fù)雜類型;對(duì)該Schema定義的所有局部復(fù)雜類型采用其父元素的全局名字作為該局部復(fù)雜類型的全局名字,因而本Schema的四個(gè)局部復(fù)雜類型的全局名字為{element}{http//org.xmldb.personnel}personel{element}{http//org.xmldb.personnel}person{element}{http//org.xmldb.personnel}name{element}{http//org.xmldb.personnel}url對(duì)于Schema定義的局部元素addresses,包含其的復(fù)雜類型的全局名字為{element}{http//org.xmldb.personnel}person,其名稱屬性值為addresses,故該局部元素的全局名字為{element}{http//org.xmldb.personnel}person/addresses
該Schema中定義的簡(jiǎn)單類型的基礎(chǔ)類型是xsstring,通過xml解析器獲取名字空間http//www.w3.org/2001/XMLSchema定義的類型xsString的全局名字是{type}{http//www.w3.org/2001/XMLSchema}String。
故該局部簡(jiǎn)單類型的全局名字為{type}{http//www.w3.org/2001/XMLSchema}StringSchema 三company.xsd<?xml version=″1.0″e(cuò)ncoding=″UTF-8″?><xsschema targetNamespace=http//org.xmldb.companyxmlnsper=http//org.xmldb.personnelxmlns=″http//org.xmldb.company″xmlnsxs=″http//www.w3.org/2001/XMLSchema″e(cuò)lementFormDefault=″qualified″attributeFormDefault=″unqualified>
<xsimport namespace=″http//org.xmldb.personnel″schemaLocation=″personal.xsd″/>;Schema所定義的全局元素<xselement name=″company″>;Schema所定義的局部復(fù)雜類型<xscomplexType>
<xssequence>;Schema所定義的局部元素<xselement name=″e(cuò)mployee″type=″e(cuò)mployee″/>;Schema所定義的局部元素<xselement name=″department″>;Schema所定義的局部復(fù)雜類型<xscomplexType>
<xssequence>;Schema所定義的局部元素<xselement name=″manager″>;Schema所定義的局部復(fù)雜類型<xscomplexType>
<xssequence>;Schema所定義的局部元素<xselement name=″rank″type=″xsstring″/>
<xselement ref=″perperson″/>
</xssequence>
</xscomplexType>
</xselement>;Schema所定義的局部元素
<xselement name=″name″type=″xsstring″/>
</xssequence>
</xscomplexType>
</xselement>
</xssequence>
</xscomplexType></xselement>;Schema所定義的全局復(fù)雜類型<xscomplexType name=″e(cuò)mployee″>
<xssequence>
<xselement ref=″perperson″maxOccurs=″unbounded″/>
</xssequence>
</xscomplexType></xsschema>
company.xsd所屬的名稱空間為http//org.xmldb.company;首先,為該Schema所定義的全局元素進(jìn)行命名,該全局元素的名稱屬性值為company,故該全局元素的全局名字為{element}{http//org.xmldb.company}company其次,為該Schema定義的全局復(fù)雜類型進(jìn)行命名該全局元素的名稱屬性值為employee,故該全局復(fù)雜類型的全局名字為{type}{http//org.xmldb.company}employee再者,為該Schema定義的局部元素進(jìn)行命名,該schema定義了五個(gè)局部元素,employee、department、manager、rank和name對(duì)于employee,獲取包含該局部元素的類型的全局名字為{element}{http//org.xmldb.company}company,該局部元素的名稱屬性值為employee,因而該局部元素的全局名字為{element}{http//org.xmldb.company}company/employee對(duì)于department,獲取包含該局部元素的復(fù)雜類型的全局名字為{element}{http//org.xmldb.company}department,該局部元素的名稱屬性值為department,因而該局部元素的全局名字為{element}{http//org.xmldb.company}company/department對(duì)于manager,獲取包含該局部元素的復(fù)雜類型的全局名字為{element}{http//org.xmldb.company}company/department,該局部元素的名稱屬性值為manager,因而該局部元素的全局名字為{element}{http//org.xmldb.company}company/department/manager對(duì)于rank,獲取包含該局部元素的復(fù)雜類型的全局名字為{element}{http//org.xmldb.company}company/department/manager,該局部元素的名稱屬性值為rank,因而該局部元素的全局名字為{element}{http//org.xmldb.company}company/department/manager/rank
對(duì)于name,獲取包含該局部元素的復(fù)雜類型的全局名字為{element}{http//org.xmldb.company}company/department,該局部元素的名稱屬性值為name,因而該局部元素的全局名字為{element}{http//org.xmldb.company}company/department/name最后,為該Schema定義的局部類型進(jìn)行命名,該schema共定義了三個(gè)局部復(fù)雜類型,分別包含這三個(gè)局部復(fù)雜類型的父元素的全局名字分別為{element}{http//org.xmldb.company}company{element}{http//org.xmldb.company}company/department{element}{http//org.xmldb.company}company/department/manager因而,這三個(gè)局部復(fù)雜類型的全局名字分別為{element}{http//org.xmldb.company}company{element}{http//org.xmldb.company}company/department{element}{http//org.xmldb.company}company/department/manager以上所述僅是本發(fā)明可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法的保護(hù)范圍。
權(quán)利要求
1.一種可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法,其特征在于,包括下述步驟10)將全局元素命名為“{element}{+目標(biāo)名稱空間+}+元素的名稱屬性值”;20)將全局復(fù)雜類型命名為“{type}{+目標(biāo)名稱空間+}+復(fù)雜類型的名稱屬性值”;30)將局部元素命名為“包含該局部元素的復(fù)雜類型的全局名字+“/”+該局部元素的名稱屬性值”;40)將局部復(fù)雜類型命名為該局部復(fù)雜類型的父元素的全局名字;50)將簡(jiǎn)單類型命名為其基礎(chǔ)類型的全局名字。
2.如權(quán)利要求1所述的可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法,其特征在于,所述步驟10)前還包括下述步驟1)獲取可擴(kuò)展標(biāo)記語(yǔ)言模式文件定義的目標(biāo)名稱空間;2)讀取模式文件中的全局元素的名稱屬性值。
3.如權(quán)利要求2所述的可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法,其特征在于,所述步驟10)和步驟20)之間還包括以下步驟11)獲取可擴(kuò)展標(biāo)記語(yǔ)言模式文件定義的目標(biāo)名稱空間;12)讀取模式文件中的全局復(fù)雜類型的名稱屬性值。
4.如權(quán)利要求3所述的可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法,其特征在于,所述步驟20)和步驟30)之間還包括以下步驟21)獲取包含局部元素的復(fù)雜類型的全局名字;22)讀取該局部元素的名稱屬性值。
5.如權(quán)利要求4所述的可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法,其特征在于,所述步驟30)和步驟40)之間還包括步驟獲取包含局部復(fù)雜類型的父元素的全局名字。
6.如權(quán)力要求5所述的可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法,其特征在于,所述步驟40)和步驟50)之間還包括以下步驟獲取簡(jiǎn)單類型的基礎(chǔ)類型的全局名字。
全文摘要
本發(fā)明公開了一種可擴(kuò)展標(biāo)記語(yǔ)言元素和類型的全局命名方法,包括下述步驟10)將全局元素命名為“{element}{+目標(biāo)名稱空間+}+元素的名稱屬性值”;20)將全局復(fù)雜類型命名為“{type}{+目標(biāo)名稱空間+}+復(fù)雜類型的名稱屬性值”;30)將局部元素命名為“包含該局部元素的復(fù)雜類型的全局名字+“/”+該局部元素的名稱屬性值”;40)將局部復(fù)雜類型命名為該局部復(fù)雜類型的父元素的全局名字;50)將簡(jiǎn)單類型命名為其基礎(chǔ)類型的全局名字??梢院芊奖愕膮^(qū)分Schema不同的名稱空間中定義的相同名字的元素和類型,同時(shí)在Schema引用別的Schema導(dǎo)致多個(gè)名字空間在同一XML文檔中出現(xiàn)的情況下,也可以通過全局名字來唯一區(qū)分該元素和類型。
文檔編號(hào)G06F17/21GK1632795SQ20041010262
公開日2005年6月29日 申請(qǐng)日期2004年12月27日 優(yōu)先權(quán)日2004年12月27日
發(fā)明者李安渝, 嚴(yán)兵, 傅朝霞, 秦良娟, 丁蔚, 耿建光, 秦懷平, 董勝濤 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所, 神州數(shù)碼軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1