• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于模型映射方法實(shí)現(xiàn)XML與關(guān)系數(shù)據(jù)的相互轉(zhuǎn)換

    2014-09-24 12:09:51張屹
    軟件工程 2014年6期
    關(guān)鍵詞:關(guān)系數(shù)據(jù)庫(kù)

    張屹

    摘 要:基于模型映射方法可以獨(dú)立于XML文檔的DTD或Schema,在關(guān)系型數(shù)據(jù)庫(kù)中設(shè)計(jì)固定的關(guān)系模式用于存儲(chǔ)XML文檔。采用Dietz編碼方法對(duì)XML文檔中的元素進(jìn)行編碼,通過(guò)編碼值對(duì)反應(yīng)元素之間的祖先/后裔關(guān)系,并在關(guān)系表中存儲(chǔ)元素的Dietz編碼值,并依此作為依據(jù)設(shè)計(jì)算法將存儲(chǔ)于關(guān)系數(shù)據(jù)庫(kù)中的XML文檔進(jìn)行還原。

    關(guān)鍵詞:模型映射;關(guān)系數(shù)據(jù)庫(kù);XML;Dietz編碼

    中圖分類(lèi)號(hào):TP311.1 文獻(xiàn)標(biāo)識(shí)碼:A

    Implementation of Mutual Conversion Between XML and RDBMS

    Based on Model Mapping Method

    ZHANG Yi

    (Library of Tianjin Medical University,Tianjin 30070,China)

    Abstract:Model-based mapping method can be independent of the XML document DTD or Schema.This paper design a fixed relational pattern in order to store XML documents based on model mapping method.Firstly elements in XML are encoded by Dietz coding method.The pair of encoded value expressed ancestor/descendant relationships of elements.RDBMS stores these values.Algorithm can restore XML documents which store in RDBMS based on Dietz coding values.

    Keywords:model mapping;RDBMS;XML;dietz encoding method

    1 引言(Introduction)

    可擴(kuò)展的標(biāo)識(shí)語(yǔ)言XML(Extensible Markup Language)與傳統(tǒng)的關(guān)系數(shù)據(jù)明顯不同,SQL Server、Oracle等數(shù)據(jù)庫(kù)管理系統(tǒng)為關(guān)系數(shù)據(jù)提供了數(shù)據(jù)存儲(chǔ)、查詢(xún)以及分析這些功能支持,而XML僅用于存儲(chǔ)數(shù)據(jù)。XML是一種半結(jié)構(gòu)化數(shù)據(jù),由于其自身結(jié)構(gòu)特點(diǎn)導(dǎo)致對(duì)于XML數(shù)據(jù)不能方便的進(jìn)行數(shù)據(jù)查詢(xún)和更新操作,如何有效的對(duì)XML進(jìn)行查詢(xún)和存儲(chǔ)成為XML研究領(lǐng)域的重要研究方向。

    關(guān)系數(shù)據(jù)庫(kù)技術(shù)是目前應(yīng)用最為廣泛且技術(shù)成熟的數(shù)據(jù)存儲(chǔ)和處理技術(shù),它為數(shù)據(jù)提供了數(shù)據(jù)定義、數(shù)據(jù)操縱以及完整性約束的支持,因此使用關(guān)系表存儲(chǔ)XML文檔是一種較為理想的解決方案。關(guān)系表是一種二維表結(jié)構(gòu),而XML文檔是樹(shù)形結(jié)構(gòu),兩者在數(shù)據(jù)結(jié)構(gòu)上存在差異,如何實(shí)現(xiàn)這兩種數(shù)據(jù)結(jié)構(gòu)的相互轉(zhuǎn)化是目前相關(guān)研究工作的熱點(diǎn),本文提出了獨(dú)立于XML文檔DTD或Schema的模型映射存儲(chǔ)方法,采用固定的關(guān)系模式存儲(chǔ)XML文檔并且保存文檔中元素結(jié)點(diǎn)的編碼值。

    2 相關(guān)研究(Related works)

    相關(guān)研究成果將XML映射為關(guān)系模式進(jìn)行存儲(chǔ)分為兩類(lèi)方法:模型映射(Model-Mapping)和結(jié)構(gòu)映射(Structure-Mapping)[1]。結(jié)構(gòu)映射方法中,需要將XML Schema(或DTD)映射為關(guān)系模式,再將XML文檔存儲(chǔ)在相應(yīng)的關(guān)系模式中,文獻(xiàn)[2-4]介紹了如何根據(jù)XML文檔DTD或模式映射為關(guān)系模式存儲(chǔ)XML。使用結(jié)構(gòu)映射方法,關(guān)系表之間的參照完整性關(guān)系可以反映元素之間的祖先/后裔關(guān)系,通過(guò)關(guān)系表之間的連接操作可以將關(guān)系數(shù)據(jù)還原為原先的XML文檔。由于關(guān)系模式依賴(lài)于XML文檔的結(jié)構(gòu),映射的關(guān)系模式依照XML文檔結(jié)構(gòu)的變化而發(fā)生變化。模型映射方法獨(dú)立于XML文檔的結(jié)構(gòu),Xpev[5]系統(tǒng)是一種典型的模型映射方法。采用固定的關(guān)系模式存儲(chǔ)XML,但是缺點(diǎn)在于由于使用不同的關(guān)系表存儲(chǔ)XML文檔樹(shù)不同類(lèi)型的結(jié)點(diǎn)就無(wú)法反應(yīng)文檔中元素之間的祖先/后裔關(guān)系,進(jìn)而無(wú)法將存儲(chǔ)好的文檔進(jìn)行還原。

    3 關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)和還原XML文檔(Store/restore

    XML in RDBMS)

    3.1 Dietz編碼標(biāo)記XML文檔元素

    本文所提出的方法是一種模型映射方法,與以往的研究成果相比有點(diǎn)在于:(1)采用固定的關(guān)系模式存儲(chǔ)XML文檔,不依賴(lài)于文檔結(jié)構(gòu),能夠存儲(chǔ)不同結(jié)構(gòu)的XML;(2)使用Dietz編碼[6]這種區(qū)間編碼方式對(duì)XML文檔中元素進(jìn)行編碼并存儲(chǔ),在關(guān)系表中也能反應(yīng)所存儲(chǔ)元素的祖先/后裔關(guān)系;(3)通過(guò)關(guān)系表保存的區(qū)間編碼所反映元素之間的祖先/后裔關(guān)系可以將關(guān)系數(shù)據(jù)還原為XML文檔,克服了以往模型映射方法所存儲(chǔ)XML文檔無(wú)法進(jìn)行還原的問(wèn)題。

    定義1 XML文檔表示為樹(shù)型結(jié)構(gòu),文檔樹(shù)中的每個(gè)元素結(jié)點(diǎn)被賦予一個(gè)二元組編碼值對(duì),分別代表元素先序遍歷和后序遍歷值。由于文檔樹(shù)的每個(gè)元素結(jié)點(diǎn)u在先序遍歷(后序遍歷)序號(hào)中必然出現(xiàn)在它的后裔元素結(jié)點(diǎn)v之前(之后),因此,元素u和v之間是祖先/后裔關(guān)系,當(dāng)且僅當(dāng)pre(u)

    圖1 XML文檔示例

    Fig.1 XML document demo.

    圖2 XML文檔元素Dietz編碼

    Fig.2 Encoding elements in XML by Dietz method

    3.2 關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)XML文檔

    設(shè)計(jì)固定結(jié)構(gòu)關(guān)系模式即采用模型映射方法來(lái)存儲(chǔ) XML 文檔。本文根據(jù)XPath數(shù)據(jù)模型和XML文檔的編碼方法設(shè)計(jì)出一種全新的模型映射方法。

    表Document存儲(chǔ)的是數(shù)據(jù)庫(kù)中需要保存的XML文檔的文件名。表Element、Attribute和Text分別保存的是數(shù)據(jù)庫(kù)當(dāng)前存儲(chǔ)XML文檔元素、屬性、文本這三種類(lèi)型的結(jié)點(diǎn)。屬性ElementPre和ElementPost用于表示元素的Dietz編碼值對(duì),由于XML文檔中元素至多有一個(gè)父元素,因此屬性ParentPre表示當(dāng)前元素父元素的先序編碼。表Element中屬性TagName表示元素標(biāo)記名。表Attribute和表Text同樣還要要保存當(dāng)前元素的屬性名、屬性值以及元素文本內(nèi)容。

    圖3 存儲(chǔ)XML文檔的關(guān)系模式

    Fig.3 Relational pattern of storing XML

    算法1:關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)XML文檔

    輸入:XML文檔

    StoreXMLDoc(XMLDoc)//該函數(shù)用來(lái)描述存儲(chǔ)XML文檔的算法

    ① 獲取XML文檔或文檔片段根元素getRootElement(XMLDoc);

    ② 對(duì)當(dāng)前元素進(jìn)行Dietz編碼DietzEncode(RootElement);

    ③ 判斷當(dāng)前結(jié)點(diǎn)是否包含子結(jié)點(diǎn)

    if(RootElement.haschild){

    if(child instance of Text)// 如果為T(mén)ext,在表Text保存該結(jié)點(diǎn)以及當(dāng)前元素Dietz編碼值

    else if(child instance of Attribute)// 子節(jié)點(diǎn)類(lèi)型如果為Attribute,在表Attribute保存該結(jié)點(diǎn)以及當(dāng)前元素Dietz編碼值

    else StoreXMLDoc(Element)//子結(jié)點(diǎn)類(lèi)型如果為Element,以當(dāng)前元素的子元素為參數(shù)遞歸調(diào)用函數(shù)StoreXMLDoc()

    }

    else

    InsertElement(EncodePair, Element); //如當(dāng)前元素?zé)o子結(jié)點(diǎn),在表Element中保存該元素以及該元素的Dietz編碼值對(duì)

    3.3 關(guān)系數(shù)據(jù)還原為XML文檔

    關(guān)系模式中存儲(chǔ)了當(dāng)前元素及其父元素的Dietz編碼值,兩組編碼值之間通過(guò)參照完整性關(guān)系來(lái)反映元素結(jié)點(diǎn)之間的父子關(guān)系。首先構(gòu)造XML文檔根元素結(jié)點(diǎn),再根據(jù)當(dāng)前元素結(jié)點(diǎn)的先序編碼在Element表中查找屬性ParentPre取值與之相對(duì)應(yīng)的元組,將這些元組構(gòu)造為已構(gòu)造好元素的子元素,遞歸的執(zhí)行以上過(guò)程直到無(wú)法繼續(xù)構(gòu)造出子元素為止。這種方法能夠使還原出來(lái)的XML文檔與原文檔一致。

    算法2:關(guān)系數(shù)據(jù)庫(kù)還原XML文檔

    輸入:關(guān)系數(shù)據(jù)

    輸出:XML文檔

    ConstructXMLDoc()//還原XML文檔{

    RootElement = new Element(TagName);//當(dāng)前元組屬性TagName的取值,構(gòu)造XML文檔根元素

    XMLDocument = new Document(RootElement);//根據(jù)該根元素構(gòu)造XML文檔

    ConstructAttribute(ElementPre);//根據(jù)當(dāng)前元組屬性ElementPre的取值,構(gòu)造當(dāng)前根元素的屬性

    ConstructText(ElementPre);//根據(jù)當(dāng)前元組屬性ElementPre的取值,構(gòu)造當(dāng)前根元素的文本

    ChildElementList=RootElement.getElementPre();//查找以根元素為父元素的元組集合

    for(i=0;i

    ChildElement=new Element(ChildElementList.get(i).getTagName());

    ConstructAttribute(ChildElementList.get(i).getElementPre());

    ConstructText(ChildElementList.get(i).getElementPre());

    ChildElementSet=RecursiveConstruct(ChildElement);//當(dāng)前元組為參數(shù)調(diào)用遞歸函數(shù)RecursiveConstruct(),構(gòu)造當(dāng)前元素的子元素集

    XMLDocument.getRootElement().addContent(ChildElement);//將構(gòu)造的元素集添加為當(dāng)前元素的子元素,形成XML文檔

    }

    Output(XMLDocument);//輸出XML文檔;

    }

    Element RecursiveConstruct(CurrentElement){ //遞歸函數(shù)是用來(lái)構(gòu)造當(dāng)前元素的子元素

    ChildElementList(CurrentElement.getElementPre());

    for(i=0;i< ChildElementList.size();i++){

    ConstructAttribute(ChildElementList.get(i).getElementPre());

    ConstructText(ChildElementList.get(i).getElementPre());

    CurrentElement.addContent(RecursiveConstruct(ChildElementList.get(i)));//遞歸調(diào)用RecursiveConstruct()將構(gòu)造的元素集添加為當(dāng)前元素的子元素

    }

    4 結(jié)論(Conclusion)

    文章所提出的方法獨(dú)立于文檔結(jié)構(gòu)采用固定關(guān)系模式存儲(chǔ)XML文檔,同時(shí)克服以往模型映射方法中無(wú)法還原出所存儲(chǔ)的XML文檔的缺點(diǎn)。通過(guò)在關(guān)系模式中存儲(chǔ)元素的Dietz編碼值對(duì)形成的參照完整性關(guān)系來(lái)反映元素之間的父子關(guān)系。通過(guò)關(guān)系表之間的連接操作能夠?qū)⒋鎯?chǔ)在關(guān)系數(shù)據(jù)庫(kù)中的XML文檔還原出來(lái)。

    參考文獻(xiàn)(References)

    [1] 萬(wàn)常選,劉云生.基于關(guān)系數(shù)據(jù)庫(kù)的XML數(shù)據(jù)管理[J].計(jì)算機(jī)

    科學(xué),2003,30(8):64-68.

    [2] 周傲英,等.基于關(guān)系的XML數(shù)據(jù)存儲(chǔ)[J].計(jì)算機(jī)應(yīng)用,2000,

    20(9):9-12.

    [3] 楊健,雄前心.XML文檔架構(gòu)與關(guān)系數(shù)據(jù)模型間的映射研究

    [J].計(jì)算機(jī)工程與應(yīng)用,2004,40(27):169-172.

    [4] 劉偉.基于schema的XML模式與關(guān)系模式映射算法的研究[J].

    計(jì)算機(jī)應(yīng)用與軟件,2006,23:113-115.

    [5] 秦杰,楊樹(shù)強(qiáng),竇文華.一種基于模型映射的XML文檔存儲(chǔ)模

    型[J].計(jì)算機(jī)工程與科學(xué),2005,27(11):12-14.

    [6] Dietz P F. Maintaining Order in a Linked List [C].In: Lewis H

    Retal Eds. Proceedings of the 14th Annual ACM Symposium on

    Theory of Computing (STOC'82).San Francisco,California,

    USA. May 5-7,1982.New York: ACM Press,1982:122-127.

    作者簡(jiǎn)介:

    張 屹(1983-),男,碩士,助理工程師.研究領(lǐng)域:軟件

    工程.

    表Document存儲(chǔ)的是數(shù)據(jù)庫(kù)中需要保存的XML文檔的文件名。表Element、Attribute和Text分別保存的是數(shù)據(jù)庫(kù)當(dāng)前存儲(chǔ)XML文檔元素、屬性、文本這三種類(lèi)型的結(jié)點(diǎn)。屬性ElementPre和ElementPost用于表示元素的Dietz編碼值對(duì),由于XML文檔中元素至多有一個(gè)父元素,因此屬性ParentPre表示當(dāng)前元素父元素的先序編碼。表Element中屬性TagName表示元素標(biāo)記名。表Attribute和表Text同樣還要要保存當(dāng)前元素的屬性名、屬性值以及元素文本內(nèi)容。

    圖3 存儲(chǔ)XML文檔的關(guān)系模式

    Fig.3 Relational pattern of storing XML

    算法1:關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)XML文檔

    輸入:XML文檔

    StoreXMLDoc(XMLDoc)//該函數(shù)用來(lái)描述存儲(chǔ)XML文檔的算法

    ① 獲取XML文檔或文檔片段根元素getRootElement(XMLDoc);

    ② 對(duì)當(dāng)前元素進(jìn)行Dietz編碼DietzEncode(RootElement);

    ③ 判斷當(dāng)前結(jié)點(diǎn)是否包含子結(jié)點(diǎn)

    if(RootElement.haschild){

    if(child instance of Text)// 如果為T(mén)ext,在表Text保存該結(jié)點(diǎn)以及當(dāng)前元素Dietz編碼值

    else if(child instance of Attribute)// 子節(jié)點(diǎn)類(lèi)型如果為Attribute,在表Attribute保存該結(jié)點(diǎn)以及當(dāng)前元素Dietz編碼值

    else StoreXMLDoc(Element)//子結(jié)點(diǎn)類(lèi)型如果為Element,以當(dāng)前元素的子元素為參數(shù)遞歸調(diào)用函數(shù)StoreXMLDoc()

    }

    else

    InsertElement(EncodePair, Element); //如當(dāng)前元素?zé)o子結(jié)點(diǎn),在表Element中保存該元素以及該元素的Dietz編碼值對(duì)

    3.3 關(guān)系數(shù)據(jù)還原為XML文檔

    關(guān)系模式中存儲(chǔ)了當(dāng)前元素及其父元素的Dietz編碼值,兩組編碼值之間通過(guò)參照完整性關(guān)系來(lái)反映元素結(jié)點(diǎn)之間的父子關(guān)系。首先構(gòu)造XML文檔根元素結(jié)點(diǎn),再根據(jù)當(dāng)前元素結(jié)點(diǎn)的先序編碼在Element表中查找屬性ParentPre取值與之相對(duì)應(yīng)的元組,將這些元組構(gòu)造為已構(gòu)造好元素的子元素,遞歸的執(zhí)行以上過(guò)程直到無(wú)法繼續(xù)構(gòu)造出子元素為止。這種方法能夠使還原出來(lái)的XML文檔與原文檔一致。

    算法2:關(guān)系數(shù)據(jù)庫(kù)還原XML文檔

    輸入:關(guān)系數(shù)據(jù)

    輸出:XML文檔

    ConstructXMLDoc()//還原XML文檔{

    RootElement = new Element(TagName);//當(dāng)前元組屬性TagName的取值,構(gòu)造XML文檔根元素

    XMLDocument = new Document(RootElement);//根據(jù)該根元素構(gòu)造XML文檔

    ConstructAttribute(ElementPre);//根據(jù)當(dāng)前元組屬性ElementPre的取值,構(gòu)造當(dāng)前根元素的屬性

    ConstructText(ElementPre);//根據(jù)當(dāng)前元組屬性ElementPre的取值,構(gòu)造當(dāng)前根元素的文本

    ChildElementList=RootElement.getElementPre();//查找以根元素為父元素的元組集合

    for(i=0;i

    ChildElement=new Element(ChildElementList.get(i).getTagName());

    ConstructAttribute(ChildElementList.get(i).getElementPre());

    ConstructText(ChildElementList.get(i).getElementPre());

    ChildElementSet=RecursiveConstruct(ChildElement);//當(dāng)前元組為參數(shù)調(diào)用遞歸函數(shù)RecursiveConstruct(),構(gòu)造當(dāng)前元素的子元素集

    XMLDocument.getRootElement().addContent(ChildElement);//將構(gòu)造的元素集添加為當(dāng)前元素的子元素,形成XML文檔

    }

    Output(XMLDocument);//輸出XML文檔;

    }

    Element RecursiveConstruct(CurrentElement){ //遞歸函數(shù)是用來(lái)構(gòu)造當(dāng)前元素的子元素

    ChildElementList(CurrentElement.getElementPre());

    for(i=0;i< ChildElementList.size();i++){

    ConstructAttribute(ChildElementList.get(i).getElementPre());

    ConstructText(ChildElementList.get(i).getElementPre());

    CurrentElement.addContent(RecursiveConstruct(ChildElementList.get(i)));//遞歸調(diào)用RecursiveConstruct()將構(gòu)造的元素集添加為當(dāng)前元素的子元素

    }

    4 結(jié)論(Conclusion)

    文章所提出的方法獨(dú)立于文檔結(jié)構(gòu)采用固定關(guān)系模式存儲(chǔ)XML文檔,同時(shí)克服以往模型映射方法中無(wú)法還原出所存儲(chǔ)的XML文檔的缺點(diǎn)。通過(guò)在關(guān)系模式中存儲(chǔ)元素的Dietz編碼值對(duì)形成的參照完整性關(guān)系來(lái)反映元素之間的父子關(guān)系。通過(guò)關(guān)系表之間的連接操作能夠?qū)⒋鎯?chǔ)在關(guān)系數(shù)據(jù)庫(kù)中的XML文檔還原出來(lái)。

    參考文獻(xiàn)(References)

    [1] 萬(wàn)常選,劉云生.基于關(guān)系數(shù)據(jù)庫(kù)的XML數(shù)據(jù)管理[J].計(jì)算機(jī)

    科學(xué),2003,30(8):64-68.

    [2] 周傲英,等.基于關(guān)系的XML數(shù)據(jù)存儲(chǔ)[J].計(jì)算機(jī)應(yīng)用,2000,

    20(9):9-12.

    [3] 楊健,雄前心.XML文檔架構(gòu)與關(guān)系數(shù)據(jù)模型間的映射研究

    [J].計(jì)算機(jī)工程與應(yīng)用,2004,40(27):169-172.

    [4] 劉偉.基于schema的XML模式與關(guān)系模式映射算法的研究[J].

    計(jì)算機(jī)應(yīng)用與軟件,2006,23:113-115.

    [5] 秦杰,楊樹(shù)強(qiáng),竇文華.一種基于模型映射的XML文檔存儲(chǔ)模

    型[J].計(jì)算機(jī)工程與科學(xué),2005,27(11):12-14.

    [6] Dietz P F. Maintaining Order in a Linked List [C].In: Lewis H

    Retal Eds. Proceedings of the 14th Annual ACM Symposium on

    Theory of Computing (STOC'82).San Francisco,California,

    USA. May 5-7,1982.New York: ACM Press,1982:122-127.

    作者簡(jiǎn)介:

    張 屹(1983-),男,碩士,助理工程師.研究領(lǐng)域:軟件

    工程.

    表Document存儲(chǔ)的是數(shù)據(jù)庫(kù)中需要保存的XML文檔的文件名。表Element、Attribute和Text分別保存的是數(shù)據(jù)庫(kù)當(dāng)前存儲(chǔ)XML文檔元素、屬性、文本這三種類(lèi)型的結(jié)點(diǎn)。屬性ElementPre和ElementPost用于表示元素的Dietz編碼值對(duì),由于XML文檔中元素至多有一個(gè)父元素,因此屬性ParentPre表示當(dāng)前元素父元素的先序編碼。表Element中屬性TagName表示元素標(biāo)記名。表Attribute和表Text同樣還要要保存當(dāng)前元素的屬性名、屬性值以及元素文本內(nèi)容。

    圖3 存儲(chǔ)XML文檔的關(guān)系模式

    Fig.3 Relational pattern of storing XML

    算法1:關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)XML文檔

    輸入:XML文檔

    StoreXMLDoc(XMLDoc)//該函數(shù)用來(lái)描述存儲(chǔ)XML文檔的算法

    ① 獲取XML文檔或文檔片段根元素getRootElement(XMLDoc);

    ② 對(duì)當(dāng)前元素進(jìn)行Dietz編碼DietzEncode(RootElement);

    ③ 判斷當(dāng)前結(jié)點(diǎn)是否包含子結(jié)點(diǎn)

    if(RootElement.haschild){

    if(child instance of Text)// 如果為T(mén)ext,在表Text保存該結(jié)點(diǎn)以及當(dāng)前元素Dietz編碼值

    else if(child instance of Attribute)// 子節(jié)點(diǎn)類(lèi)型如果為Attribute,在表Attribute保存該結(jié)點(diǎn)以及當(dāng)前元素Dietz編碼值

    else StoreXMLDoc(Element)//子結(jié)點(diǎn)類(lèi)型如果為Element,以當(dāng)前元素的子元素為參數(shù)遞歸調(diào)用函數(shù)StoreXMLDoc()

    }

    else

    InsertElement(EncodePair, Element); //如當(dāng)前元素?zé)o子結(jié)點(diǎn),在表Element中保存該元素以及該元素的Dietz編碼值對(duì)

    3.3 關(guān)系數(shù)據(jù)還原為XML文檔

    關(guān)系模式中存儲(chǔ)了當(dāng)前元素及其父元素的Dietz編碼值,兩組編碼值之間通過(guò)參照完整性關(guān)系來(lái)反映元素結(jié)點(diǎn)之間的父子關(guān)系。首先構(gòu)造XML文檔根元素結(jié)點(diǎn),再根據(jù)當(dāng)前元素結(jié)點(diǎn)的先序編碼在Element表中查找屬性ParentPre取值與之相對(duì)應(yīng)的元組,將這些元組構(gòu)造為已構(gòu)造好元素的子元素,遞歸的執(zhí)行以上過(guò)程直到無(wú)法繼續(xù)構(gòu)造出子元素為止。這種方法能夠使還原出來(lái)的XML文檔與原文檔一致。

    算法2:關(guān)系數(shù)據(jù)庫(kù)還原XML文檔

    輸入:關(guān)系數(shù)據(jù)

    輸出:XML文檔

    ConstructXMLDoc()//還原XML文檔{

    RootElement = new Element(TagName);//當(dāng)前元組屬性TagName的取值,構(gòu)造XML文檔根元素

    XMLDocument = new Document(RootElement);//根據(jù)該根元素構(gòu)造XML文檔

    ConstructAttribute(ElementPre);//根據(jù)當(dāng)前元組屬性ElementPre的取值,構(gòu)造當(dāng)前根元素的屬性

    ConstructText(ElementPre);//根據(jù)當(dāng)前元組屬性ElementPre的取值,構(gòu)造當(dāng)前根元素的文本

    ChildElementList=RootElement.getElementPre();//查找以根元素為父元素的元組集合

    for(i=0;i

    ChildElement=new Element(ChildElementList.get(i).getTagName());

    ConstructAttribute(ChildElementList.get(i).getElementPre());

    ConstructText(ChildElementList.get(i).getElementPre());

    ChildElementSet=RecursiveConstruct(ChildElement);//當(dāng)前元組為參數(shù)調(diào)用遞歸函數(shù)RecursiveConstruct(),構(gòu)造當(dāng)前元素的子元素集

    XMLDocument.getRootElement().addContent(ChildElement);//將構(gòu)造的元素集添加為當(dāng)前元素的子元素,形成XML文檔

    }

    Output(XMLDocument);//輸出XML文檔;

    }

    Element RecursiveConstruct(CurrentElement){ //遞歸函數(shù)是用來(lái)構(gòu)造當(dāng)前元素的子元素

    ChildElementList(CurrentElement.getElementPre());

    for(i=0;i< ChildElementList.size();i++){

    ConstructAttribute(ChildElementList.get(i).getElementPre());

    ConstructText(ChildElementList.get(i).getElementPre());

    CurrentElement.addContent(RecursiveConstruct(ChildElementList.get(i)));//遞歸調(diào)用RecursiveConstruct()將構(gòu)造的元素集添加為當(dāng)前元素的子元素

    }

    4 結(jié)論(Conclusion)

    文章所提出的方法獨(dú)立于文檔結(jié)構(gòu)采用固定關(guān)系模式存儲(chǔ)XML文檔,同時(shí)克服以往模型映射方法中無(wú)法還原出所存儲(chǔ)的XML文檔的缺點(diǎn)。通過(guò)在關(guān)系模式中存儲(chǔ)元素的Dietz編碼值對(duì)形成的參照完整性關(guān)系來(lái)反映元素之間的父子關(guān)系。通過(guò)關(guān)系表之間的連接操作能夠?qū)⒋鎯?chǔ)在關(guān)系數(shù)據(jù)庫(kù)中的XML文檔還原出來(lái)。

    參考文獻(xiàn)(References)

    [1] 萬(wàn)常選,劉云生.基于關(guān)系數(shù)據(jù)庫(kù)的XML數(shù)據(jù)管理[J].計(jì)算機(jī)

    科學(xué),2003,30(8):64-68.

    [2] 周傲英,等.基于關(guān)系的XML數(shù)據(jù)存儲(chǔ)[J].計(jì)算機(jī)應(yīng)用,2000,

    20(9):9-12.

    [3] 楊健,雄前心.XML文檔架構(gòu)與關(guān)系數(shù)據(jù)模型間的映射研究

    [J].計(jì)算機(jī)工程與應(yīng)用,2004,40(27):169-172.

    [4] 劉偉.基于schema的XML模式與關(guān)系模式映射算法的研究[J].

    計(jì)算機(jī)應(yīng)用與軟件,2006,23:113-115.

    [5] 秦杰,楊樹(shù)強(qiáng),竇文華.一種基于模型映射的XML文檔存儲(chǔ)模

    型[J].計(jì)算機(jī)工程與科學(xué),2005,27(11):12-14.

    [6] Dietz P F. Maintaining Order in a Linked List [C].In: Lewis H

    Retal Eds. Proceedings of the 14th Annual ACM Symposium on

    Theory of Computing (STOC'82).San Francisco,California,

    USA. May 5-7,1982.New York: ACM Press,1982:122-127.

    作者簡(jiǎn)介:

    張 屹(1983-),男,碩士,助理工程師.研究領(lǐng)域:軟件

    工程.

    猜你喜歡
    關(guān)系數(shù)據(jù)庫(kù)
    關(guān)系數(shù)據(jù)庫(kù)在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
    山東冶金(2022年2期)2022-08-08 01:51:30
    關(guān)系數(shù)據(jù)庫(kù)技術(shù)在計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)中的應(yīng)用
    計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)中關(guān)系數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用
    基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索
    一種基于數(shù)據(jù)圖劃分的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵詞檢索方法
    基于用戶(hù)反饋的關(guān)系數(shù)據(jù)庫(kù)關(guān)鍵字查詢(xún)系統(tǒng)
    搡老熟女国产l中国老女人| 日本精品一区二区三区蜜桃| 老汉色∧v一级毛片| 欧美日韩国产亚洲二区| 国产精品久久电影中文字幕| 在线观看日韩欧美| 国模一区二区三区四区视频 | 2021天堂中文幕一二区在线观| 三级男女做爰猛烈吃奶摸视频| 国产伦在线观看视频一区| 97超碰精品成人国产| 黄色欧美视频在线观看| 尤物成人国产欧美一区二区三区| 国产一级毛片在线| 青春草国产在线视频 | 免费在线观看成人毛片| 美女cb高潮喷水在线观看| 好男人视频免费观看在线| 色播亚洲综合网| 国产精品爽爽va在线观看网站| 丰满人妻一区二区三区视频av| 国产高清激情床上av| 黄片无遮挡物在线观看| av在线观看视频网站免费| 午夜福利在线观看免费完整高清在 | 级片在线观看| 国产久久久一区二区三区| 亚洲av电影不卡..在线观看| 欧美色欧美亚洲另类二区| 成人特级av手机在线观看| 久久热精品热| 日本-黄色视频高清免费观看| av天堂中文字幕网| 免费看光身美女| 亚洲精华国产精华液的使用体验 | 亚洲欧美成人综合另类久久久 | 欧美最新免费一区二区三区| 97超碰精品成人国产| 尾随美女入室| 国产探花在线观看一区二区| 国产av一区在线观看免费| 午夜爱爱视频在线播放| 春色校园在线视频观看| 久久6这里有精品| 一夜夜www| 两个人视频免费观看高清| a级毛片免费高清观看在线播放| 搡女人真爽免费视频火全软件| 欧美又色又爽又黄视频| 大香蕉久久网| 啦啦啦韩国在线观看视频| 乱系列少妇在线播放| 性色avwww在线观看| 成年女人永久免费观看视频| 亚洲真实伦在线观看| 久久久久久久久久久免费av| 免费一级毛片在线播放高清视频| 在线播放国产精品三级| 成年免费大片在线观看| 国产精品美女特级片免费视频播放器| 亚洲va在线va天堂va国产| 18禁在线无遮挡免费观看视频| 国产精品一区二区三区四区久久| 热99在线观看视频| 村上凉子中文字幕在线| 成年女人看的毛片在线观看| 免费无遮挡裸体视频| 欧美+日韩+精品| 免费一级毛片在线播放高清视频| 午夜福利成人在线免费观看| 成人二区视频| 国产日本99.免费观看| 国产精华一区二区三区| 日日干狠狠操夜夜爽| 色吧在线观看| 亚洲综合色惰| 五月伊人婷婷丁香| 欧美日韩在线观看h| 欧美一区二区精品小视频在线| 免费av不卡在线播放| 99久久九九国产精品国产免费| 伊人久久精品亚洲午夜| 色5月婷婷丁香| 小蜜桃在线观看免费完整版高清| 中文字幕av在线有码专区| 午夜视频国产福利| 国产午夜精品一二区理论片| 久久久久久久久中文| av专区在线播放| 国产日韩欧美在线精品| 亚洲av电影不卡..在线观看| 午夜精品国产一区二区电影 | 精品一区二区免费观看| 热99在线观看视频| 久久精品久久久久久噜噜老黄 | 在线观看av片永久免费下载| 国产精品综合久久久久久久免费| 边亲边吃奶的免费视频| 12—13女人毛片做爰片一| 午夜福利高清视频| 欧美+亚洲+日韩+国产| 男的添女的下面高潮视频| 国产精品综合久久久久久久免费| 国产乱人视频| 日韩欧美精品v在线| www日本黄色视频网| 久久精品夜夜夜夜夜久久蜜豆| 久久亚洲精品不卡| 26uuu在线亚洲综合色| 国产蜜桃级精品一区二区三区| 九九久久精品国产亚洲av麻豆| 九九久久精品国产亚洲av麻豆| eeuss影院久久| 男女做爰动态图高潮gif福利片| 草草在线视频免费看| 色噜噜av男人的天堂激情| 搡女人真爽免费视频火全软件| 男女下面进入的视频免费午夜| 精品一区二区免费观看| 久久久久久久久大av| 亚洲av一区综合| 亚洲国产欧美在线一区| 一边亲一边摸免费视频| 综合色丁香网| 天天躁日日操中文字幕| 日本一二三区视频观看| 一本一本综合久久| 在现免费观看毛片| 精品无人区乱码1区二区| 99久久精品国产国产毛片| 国产美女午夜福利| 国产精品一区www在线观看| 亚洲精品456在线播放app| 真实男女啪啪啪动态图| 国产精品野战在线观看| 久久久久久久久久成人| 网址你懂的国产日韩在线| 在线观看66精品国产| 12—13女人毛片做爰片一| 亚洲精品成人久久久久久| 免费电影在线观看免费观看| 国产高清视频在线观看网站| 欧美一区二区国产精品久久精品| 免费观看人在逋| 亚洲精品久久国产高清桃花| 国产精品嫩草影院av在线观看| 中国美女看黄片| 久久久色成人| 国产成人aa在线观看| 一进一出抽搐动态| 人妻系列 视频| 久久精品久久久久久久性| 男人狂女人下面高潮的视频| 中文字幕人妻熟人妻熟丝袜美| 又爽又黄a免费视频| 国产成人a区在线观看| 青春草视频在线免费观看| 大又大粗又爽又黄少妇毛片口| 精品久久久久久久久久免费视频| 久久久精品大字幕| 国产欧美日韩精品一区二区| 成人午夜精彩视频在线观看| 97超碰精品成人国产| 看免费成人av毛片| 少妇高潮的动态图| 中文资源天堂在线| 看黄色毛片网站| 可以在线观看毛片的网站| 日本一本二区三区精品| 欧美变态另类bdsm刘玥| 91精品一卡2卡3卡4卡| 亚洲人成网站在线观看播放| 在线国产一区二区在线| 国产精品不卡视频一区二区| 亚洲在久久综合| 国产精品一区二区在线观看99 | 日本三级黄在线观看| 高清在线视频一区二区三区 | 亚洲精品日韩在线中文字幕 | 黄色视频,在线免费观看| 噜噜噜噜噜久久久久久91| 嫩草影院精品99| 淫秽高清视频在线观看| a级毛片a级免费在线| 亚洲精品国产成人久久av| 九色成人免费人妻av| 免费av毛片视频| 国产成人91sexporn| 97超视频在线观看视频| 亚洲欧洲日产国产| 久久久久久久午夜电影| 日本免费a在线| 亚洲精品国产成人久久av| 免费搜索国产男女视频| a级毛色黄片| 成人亚洲精品av一区二区| 99热这里只有是精品50| 伦精品一区二区三区| 亚洲av二区三区四区| 91午夜精品亚洲一区二区三区| 国产一区二区在线观看日韩| 九色成人免费人妻av| av卡一久久| 一区二区三区四区激情视频 | 国产麻豆成人av免费视频| 蜜桃久久精品国产亚洲av| 老熟妇乱子伦视频在线观看| 99热全是精品| 少妇人妻精品综合一区二区 | 国产亚洲精品av在线| 99视频精品全部免费 在线| 日韩欧美一区二区三区在线观看| 最后的刺客免费高清国语| 国产久久久一区二区三区| 美女脱内裤让男人舔精品视频 | 免费观看a级毛片全部| 日韩制服骚丝袜av| 国产精品三级大全| 18禁在线无遮挡免费观看视频| 亚洲成人久久爱视频| 高清毛片免费看| 亚洲色图av天堂| 亚洲精品乱码久久久久久按摩| 亚洲国产精品sss在线观看| av免费在线看不卡| a级毛片免费高清观看在线播放| 亚洲婷婷狠狠爱综合网| 午夜爱爱视频在线播放| 欧美高清性xxxxhd video| 人人妻人人看人人澡| 国内精品一区二区在线观看| 国产熟女欧美一区二区| 免费看a级黄色片| 国产国拍精品亚洲av在线观看| 亚洲婷婷狠狠爱综合网| 热99re8久久精品国产| 午夜精品一区二区三区免费看| 国产成人一区二区在线| 午夜福利在线观看免费完整高清在 | 亚洲成人精品中文字幕电影| 国产成人精品婷婷| 最近中文字幕高清免费大全6| 国产亚洲精品久久久com| 欧美色欧美亚洲另类二区| 亚洲三级黄色毛片| 美女脱内裤让男人舔精品视频 | 偷拍熟女少妇极品色| 国产淫片久久久久久久久| 蜜桃久久精品国产亚洲av| 久久久久久久久久成人| 超碰av人人做人人爽久久| 最近2019中文字幕mv第一页| 我要看日韩黄色一级片| 麻豆国产97在线/欧美| 国产伦精品一区二区三区视频9| 天堂中文最新版在线下载 | 69av精品久久久久久| 亚洲国产色片| 欧美成人免费av一区二区三区| 国产探花在线观看一区二区| 精品久久久久久久人妻蜜臀av| 婷婷精品国产亚洲av| 亚洲第一区二区三区不卡| 国产精品无大码| 欧美精品国产亚洲| 最近中文字幕高清免费大全6| 久久久久网色| 国产精品久久电影中文字幕| 亚洲无线观看免费| 亚洲人成网站在线播放欧美日韩| 日日啪夜夜撸| 有码 亚洲区| 中国美女看黄片| 国产v大片淫在线免费观看| 亚洲欧美成人精品一区二区| 夜夜看夜夜爽夜夜摸| 亚洲真实伦在线观看| 又粗又硬又长又爽又黄的视频 | 国产美女午夜福利| 丝袜喷水一区| 国语自产精品视频在线第100页| 蜜臀久久99精品久久宅男| 亚洲av免费在线观看| 好男人视频免费观看在线| 亚洲精品456在线播放app| 少妇的逼水好多| 欧美区成人在线视频| 日韩中字成人| 99九九线精品视频在线观看视频| 亚洲国产精品成人久久小说 | 只有这里有精品99| 美女黄网站色视频| 亚洲高清免费不卡视频| 中出人妻视频一区二区| 日韩在线高清观看一区二区三区| 亚洲欧美精品自产自拍| 99热网站在线观看| 日日干狠狠操夜夜爽| 热99re8久久精品国产| 成人综合一区亚洲| 成年女人看的毛片在线观看| 久久这里只有精品中国| 少妇裸体淫交视频免费看高清| a级毛色黄片| 啦啦啦韩国在线观看视频| 国产老妇女一区| 一区福利在线观看| 丝袜美腿在线中文| 亚洲一区高清亚洲精品| 久久久久久久久中文| 成人毛片a级毛片在线播放| 日韩制服骚丝袜av| 性插视频无遮挡在线免费观看| 亚洲av不卡在线观看| 黄色日韩在线| 菩萨蛮人人尽说江南好唐韦庄 | 欧美日韩在线观看h| 噜噜噜噜噜久久久久久91| 国产黄色视频一区二区在线观看 | 午夜久久久久精精品| 日本成人三级电影网站| 亚洲av.av天堂| av卡一久久| 中文字幕制服av| 久久鲁丝午夜福利片| 黄片无遮挡物在线观看| 欧美性猛交╳xxx乱大交人| 国产视频内射| 人人妻人人看人人澡| 国内少妇人妻偷人精品xxx网站| 亚洲国产欧美人成| 狂野欧美白嫩少妇大欣赏| 国产欧美日韩精品一区二区| 九九在线视频观看精品| 久久久久久伊人网av| 亚洲精品国产av成人精品| 天堂影院成人在线观看| 免费av不卡在线播放| 亚洲综合色惰| 一级毛片我不卡| 十八禁国产超污无遮挡网站| 久久精品91蜜桃| 国产成年人精品一区二区| 亚洲最大成人手机在线| 亚洲人成网站高清观看| 亚洲一区二区三区色噜噜| 亚洲熟妇中文字幕五十中出| 亚洲四区av| 亚洲丝袜综合中文字幕| ponron亚洲| 最近视频中文字幕2019在线8| 国产69精品久久久久777片| 亚洲欧美成人精品一区二区| 日韩精品青青久久久久久| 久久久精品94久久精品| 久久精品久久久久久久性| 欧美激情国产日韩精品一区| 精品人妻视频免费看| 欧美一区二区亚洲| 桃色一区二区三区在线观看| 亚洲成av人片在线播放无| 哪个播放器可以免费观看大片| 天天躁日日操中文字幕| 在线播放国产精品三级| 欧美最新免费一区二区三区| 九九久久精品国产亚洲av麻豆| 男人的好看免费观看在线视频| 国内精品久久久久精免费| 一区二区三区高清视频在线| 欧美精品国产亚洲| 最近的中文字幕免费完整| 国产伦在线观看视频一区| 26uuu在线亚洲综合色| 99久久无色码亚洲精品果冻| 在线播放国产精品三级| 免费观看在线日韩| 麻豆国产97在线/欧美| 三级毛片av免费| 欧美人与善性xxx| 男人舔女人下体高潮全视频| 一本久久精品| 成人欧美大片| av在线观看视频网站免费| av视频在线观看入口| 国产在视频线在精品| 1000部很黄的大片| 午夜亚洲福利在线播放| 日本在线视频免费播放| 国产熟女欧美一区二区| 国产男人的电影天堂91| 少妇熟女欧美另类| 国产白丝娇喘喷水9色精品| 中文精品一卡2卡3卡4更新| 干丝袜人妻中文字幕| 99视频精品全部免费 在线| 九色成人免费人妻av| 国产亚洲欧美98| 三级经典国产精品| 99在线人妻在线中文字幕| 国产中年淑女户外野战色| 伦精品一区二区三区| 久久婷婷人人爽人人干人人爱| 美女cb高潮喷水在线观看| 赤兔流量卡办理| eeuss影院久久| 日韩亚洲欧美综合| 日日摸夜夜添夜夜添av毛片| 亚洲美女视频黄频| 亚洲欧美日韩高清专用| 欧美+日韩+精品| 久久中文看片网| 麻豆精品久久久久久蜜桃| 一个人看的www免费观看视频| 精品午夜福利在线看| 国产日本99.免费观看| 看十八女毛片水多多多| 亚洲18禁久久av| 美女高潮的动态| 成人亚洲欧美一区二区av| 国产精品,欧美在线| 久久久久性生活片| 免费av不卡在线播放| 床上黄色一级片| 国产精品蜜桃在线观看 | 深夜a级毛片| 最后的刺客免费高清国语| 99精品在免费线老司机午夜| 村上凉子中文字幕在线| 午夜免费激情av| 91精品一卡2卡3卡4卡| 亚洲欧美日韩无卡精品| 九九热线精品视视频播放| 嘟嘟电影网在线观看| 国产成人freesex在线| 午夜福利在线在线| 性色avwww在线观看| 亚洲性久久影院| 在线免费观看的www视频| 日韩一区二区三区影片| 亚洲人成网站在线播放欧美日韩| 99九九线精品视频在线观看视频| 最近最新中文字幕大全电影3| 国产av在哪里看| 成人无遮挡网站| 欧美高清成人免费视频www| 99热网站在线观看| 免费看美女性在线毛片视频| 天堂影院成人在线观看| 波野结衣二区三区在线| 久久久精品94久久精品| 亚洲图色成人| 22中文网久久字幕| 两个人视频免费观看高清| 国产av麻豆久久久久久久| 国产一区二区在线观看日韩| 免费观看的影片在线观看| 亚洲,欧美,日韩| 有码 亚洲区| 精品久久久久久久久久久久久| 亚洲精品久久久久久婷婷小说 | 男女做爰动态图高潮gif福利片| 秋霞在线观看毛片| 国产亚洲精品久久久久久毛片| 深爱激情五月婷婷| 国产色爽女视频免费观看| ponron亚洲| 夜夜爽天天搞| kizo精华| 国产精品人妻久久久影院| 亚洲欧美精品综合久久99| 日韩av不卡免费在线播放| 18禁裸乳无遮挡免费网站照片| 亚洲在久久综合| 床上黄色一级片| 午夜久久久久精精品| 久久国产乱子免费精品| 亚洲欧美中文字幕日韩二区| 亚洲色图av天堂| 97在线视频观看| 亚洲天堂国产精品一区在线| www日本黄色视频网| 久99久视频精品免费| av天堂中文字幕网| 美女xxoo啪啪120秒动态图| 天堂影院成人在线观看| 国产三级在线视频| 国产精品嫩草影院av在线观看| 婷婷亚洲欧美| 噜噜噜噜噜久久久久久91| 欧美一级a爱片免费观看看| 久久这里只有精品中国| 久久精品久久久久久久性| 你懂的网址亚洲精品在线观看 | 激情 狠狠 欧美| 亚洲人成网站高清观看| 国产伦精品一区二区三区视频9| 久久精品久久久久久久性| 22中文网久久字幕| 日韩高清综合在线| 亚洲国产精品合色在线| 久久久精品欧美日韩精品| 亚洲丝袜综合中文字幕| 亚洲av.av天堂| 欧美成人免费av一区二区三区| 国产精品久久久久久亚洲av鲁大| 国产成人影院久久av| 一个人看的www免费观看视频| 一级毛片久久久久久久久女| 小蜜桃在线观看免费完整版高清| 久久精品国产亚洲av香蕉五月| 婷婷色av中文字幕| 一区二区三区高清视频在线| 日本一二三区视频观看| 波野结衣二区三区在线| 99九九线精品视频在线观看视频| 欧美一级a爱片免费观看看| 搡女人真爽免费视频火全软件| 国产69精品久久久久777片| 国产女主播在线喷水免费视频网站 | 18禁在线无遮挡免费观看视频| 亚洲欧美成人精品一区二区| 99在线人妻在线中文字幕| 国产综合懂色| www日本黄色视频网| 成年免费大片在线观看| 国内少妇人妻偷人精品xxx网站| 亚洲精品国产av成人精品| .国产精品久久| 亚洲aⅴ乱码一区二区在线播放| 色5月婷婷丁香| 97在线视频观看| 久久久精品大字幕| 久久久久久伊人网av| 中文字幕免费在线视频6| 国产三级在线视频| 熟女人妻精品中文字幕| 精品熟女少妇av免费看| 夜夜爽天天搞| 国产成人freesex在线| 久久精品综合一区二区三区| 黄色欧美视频在线观看| 亚洲综合色惰| 九九爱精品视频在线观看| 成人三级黄色视频| 99热这里只有是精品在线观看| 亚洲成人久久性| 毛片女人毛片| 不卡一级毛片| 在现免费观看毛片| 国产老妇女一区| av卡一久久| av天堂中文字幕网| 久久午夜福利片| 免费无遮挡裸体视频| 99国产精品一区二区蜜桃av| 精品少妇黑人巨大在线播放 | 色综合站精品国产| 国产欧美日韩精品一区二区| 精品久久久久久久久av| 午夜精品一区二区三区免费看| 丰满人妻一区二区三区视频av| 国内久久婷婷六月综合欲色啪| 精品国产三级普通话版| 欧美成人精品欧美一级黄| 国产精品无大码| 亚洲精品456在线播放app| 亚洲精品成人久久久久久| 蜜桃亚洲精品一区二区三区| 久久99蜜桃精品久久| 麻豆av噜噜一区二区三区| 99国产极品粉嫩在线观看| 非洲黑人性xxxx精品又粗又长| 男人舔奶头视频| 精品无人区乱码1区二区| 亚洲av中文av极速乱| 免费在线观看成人毛片| 国产三级在线视频| 干丝袜人妻中文字幕| 免费观看a级毛片全部| 一卡2卡三卡四卡精品乱码亚洲| 国产 一区精品| 国产91av在线免费观看| 国产高清激情床上av| 亚洲国产精品国产精品| 久久亚洲精品不卡| 国产在视频线在精品| 91麻豆精品激情在线观看国产| 精品久久久久久久久久久久久| 日韩欧美一区二区三区在线观看| 在线播放国产精品三级| 99久久中文字幕三级久久日本| 又黄又爽又刺激的免费视频.| 又粗又硬又长又爽又黄的视频 | 天堂中文最新版在线下载 | 中文字幕熟女人妻在线| 亚洲性久久影院| av视频在线观看入口| 成人亚洲欧美一区二区av| 99久久精品国产国产毛片| 国产免费一级a男人的天堂| 少妇人妻精品综合一区二区 | 国国产精品蜜臀av免费| 午夜免费男女啪啪视频观看| 舔av片在线| 看免费成人av毛片| 国模一区二区三区四区视频| 麻豆av噜噜一区二区三区| 欧美日韩在线观看h| 国产91av在线免费观看| 国产精品久久久久久精品电影| 国产色爽女视频免费观看| 国产成人精品婷婷| 看黄色毛片网站| 免费大片18禁| 国产黄片美女视频|