日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
技術(shù)分享UML類圖轉(zhuǎn)化成XML文檔模式方法揭秘

一種將UML類圖轉(zhuǎn)化成XML文檔模式的方法

創(chuàng)新互聯(lián)長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為萬源企業(yè)提供專業(yè)的成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè),萬源網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

UML是用面向?qū)ο蠹夹g(shù)描述一個系統(tǒng)的有效方法,XML是一種描述數(shù)據(jù)和交換數(shù)據(jù)標準,W3CXMLSchema是用來描述XML文檔的模式。通過討論UML類圖中類之間的關(guān)系,給出一種將一個用UML類圖轉(zhuǎn)化成一個XML文檔模式。

1.引言

UML是UnifiedModelingLanguage(統(tǒng)一建模語言)的縮寫,它定義了一個用于簡化系統(tǒng)模型的標準語言和圖形符號。UML是分析、設(shè)計軟件系統(tǒng)時廣泛采用的標準。XML是eXtensibleMarkupLanguage(可擴展置標語言)的縮寫,它定義了一種描述數(shù)據(jù)、交換數(shù)據(jù)的標準,也可以作為原語言定義其它的標準。W3CXMLSchema是2001年5月通過的用于描述XML文檔結(jié)構(gòu)的模式語言。它具有豐富的數(shù)據(jù)類型和強大的數(shù)據(jù)結(jié)構(gòu)定義及約束功能、用標準XML格式表示.支持命名空間、具有廣泛的應(yīng)用前景等優(yōu)點。
現(xiàn)有的系統(tǒng)有很大一部分是基于RUP建模技術(shù)建立的模型,都是通過UML圖來描述整個系統(tǒng)的。為了方便與其他系統(tǒng)的數(shù)據(jù)的交換,需要將數(shù)據(jù)轉(zhuǎn)化成用XML描述的。通過對類與類之間的關(guān)系的研究,給出了一種將UML類圖轉(zhuǎn)化成XMLSchema的方法。

2.UML和XMLSchema

2.1UML

UML是一種定義良好、易于表達、功能強大且普遍適用的建模語言。它溶入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計,還支持從需求分析開始的軟件開發(fā)的全過程。作為一種建模語言,UML的定義包括UML語義和UML表示法兩個部分:

◆UML語義 描述基于UML的精確元模型定義。元模型為UML的所有元素在語法和語義上提供了簡單、一致、通用的定義性說明,使開發(fā)者能在語義上取得一致,消除了因人而異的最佳表達方法所造成的影響。此外UML還支持對元模型的擴展定義。

◆UML表示法 定義UML符號的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標準。這些圖形符號和文字所表達的是應(yīng)用級的模型,在語義上它是UML元模型的實例。

2.2XMLSchema

XMLSchema是用一套預(yù)先規(guī)定的XML元素和屬性創(chuàng)建的,這些元素和屬性定義了文檔的結(jié)構(gòu)和內(nèi)容模式。相應(yīng)的一套精巧的規(guī)則指定了每個Schema元素或者屬性的合法用途。如果違反這些規(guī)則解析器就會拒絕解析你的Schema以及任何同它相聯(lián)系的文檔。
XMLSchema通過元素以及元素的屬性和類型來描述對象。元素的類型可以使簡單類型,也可以是復(fù)雜類型。元素之間的約束描述了元素之間的關(guān)聯(lián)重數(shù)。元素的類型是復(fù)雜類型,復(fù)雜類型的元素的類型又是復(fù)雜類型,這樣就構(gòu)成了一個樹狀的分層的結(jié)構(gòu)。這樣一個樹狀層級結(jié)構(gòu)描述了類和類之間的層級關(guān)系。#p#

3.UML類圖和XMLSchema之間的映射

UML類圖中主要描述了三類語義:繼承,聚合/組合和關(guān)聯(lián)。繼承通過一個帶三角箭頭的直線表示類A是類B的基類。聚合通過一個帶菱形的直線表示類A是類B的組成部分。關(guān)聯(lián)時通過一條兩邊都有約束的直線表示類A和類B之間有滿足約束關(guān)系的聯(lián)系。下面通過對這三種情況的分別討論,給出了UML類圖和XMLSchema之間的對應(yīng)關(guān)系,并給出了相應(yīng)的用來描述UML類的XML文件的描述。

3.1繼承關(guān)系到XMLSchema的映射

繼承在面向?qū)ο蠹夹g(shù)中是一個很基本,也是很關(guān)鍵的概念。人們將具有共同特性的事物抽象成類,并通過增加其內(nèi)涵而進一步分類。繼承(Generalization)定義了一般事物和特殊事物之間的分類關(guān)系。用W3CXMLSchema中復(fù)雜類型的擴展機制很容易表示類的繼承關(guān)系
XMLSchema中通過定義一個復(fù)雜類型,這個復(fù)雜類型可以作為另外一個復(fù)雜類型的基類型來表示繼承關(guān)系。復(fù)雜類型A中所有的元素將繼承到它的子類型當中去,同時可以在子類型當中增加基類型當中所沒有的元素,實現(xiàn)對基類型的擴展。

3.2聚合/組合關(guān)系到XMLSchema的映射

UML類圖中聚合和組合是兩種特殊的關(guān)聯(lián)關(guān)系。聚合是整體——部分關(guān)系的一種,它描述了“hasa”關(guān)系,即聚合是有許多部分組成,它是一種較弱的整體與部分之間的關(guān)系。組合是聚合關(guān)系的一種變體,組合與聚合的區(qū)別是:組合是一種較強的擁有關(guān)系,在組合中部分脫離整體就不能獨立存在,而且整體與部分的生命周期是一致的。在UML中表示類A中組合或者聚合類B的關(guān)系的時候,也就是在類A的屬性中增加一個類型為B的屬性。在XMLSchema中表示組合或者聚合關(guān)系的時候,相當于在A對應(yīng)的元素的下一個層級關(guān)系中包含一個B的元素。

3.3關(guān)聯(lián)關(guān)系到XMLSchema的映射

UML類圖中關(guān)聯(lián)關(guān)系一般用名稱、角色和多重性描述。
(1)名稱:用以描述關(guān)聯(lián)的性質(zhì),為了消除名稱含義上的歧義,可提供一個指引讀者名稱方向的三角形,給名稱一個方向。
(2)角色:當一個類處于關(guān)聯(lián)的一端時,該類就在這個關(guān)系中扮演了一個特定的角色;角色是關(guān)聯(lián)中靠近它的一端的類對另一端的的類呈現(xiàn)的職責。
(3)多重性:多重性說明了在一個關(guān)聯(lián)的實例中一個對象有多少個可以連接的對象,多重性是對關(guān)聯(lián)的一種約束,可以精確地表示多重性為1(1),0或1(0...1),很多(0...),一個或很多(1...),甚至可以精確地指明多重性為一個數(shù)值。
對于一對多的關(guān)聯(lián)和多對一的關(guān)聯(lián)關(guān)系,我們都可以用兩種方式來進行描述。第一種是借用XMLSchema中的ID和IDREF來實現(xiàn)一對多和多對一的關(guān)聯(lián)關(guān)系,第二種是我們可以通過XPath一個元素里邊包含另一個元素XPath來實現(xiàn)一對多和多對一的關(guān)聯(lián)關(guān)系.下邊分別介紹兩種方法來實現(xiàn)關(guān)聯(lián)關(guān)系。多對一的關(guān)聯(lián)關(guān)系我們采用ID和IDREF的方式來實現(xiàn)關(guān)聯(lián)關(guān)系。一對多的關(guān)聯(lián)關(guān)系我們采用XPath方式來實現(xiàn)。

3.3.1多對一的關(guān)聯(lián)關(guān)系到XMLSchema的映射

ID類型唯一的確認文檔中的元素。類型ID的屬性值必須是一個有效的XML名稱。IDREF類型允許一個屬性值是一個在文檔中可以找到的元素。IDERF屬性值必須是文檔中某個元素的ID,也就是說,IDREF屬性值必須等于另一個元素中ID屬性值。

3.3.2一對多的關(guān)聯(lián)關(guān)系到XMLSchema的映射

XPath遵循文檔對象模型(DOM)的路徑格式,由于每個XML文檔都可以看成是一棵擁有許多結(jié)點的樹,如果需要定位一個節(jié)點,就可以用這個樹上邊的一系列節(jié)電組成的路徑來表示這個節(jié)電在這棵樹上邊的位置。對于一個A對應(yīng)多個B的情況,可以在A的下一層級結(jié)構(gòu)當中保存一個列表,這個列表記錄了所有關(guān)聯(lián)到這個A上邊的B的XPath,這個B可能是DOM樹狀結(jié)構(gòu)上邊的另外一個節(jié)點。這同時也解決了UML模型描述的是個圖,如何將它轉(zhuǎn)化成一個DOM模型的樹狀結(jié)構(gòu)的問題。

3.3.3多對多的關(guān)聯(lián)關(guān)系到XMLSchema的映射

通過上邊的討論可以看出,對于多對多的關(guān)系,可以采用上邊兩種方法中的任何一種方法來進行描述。不同的地方在于,一個A對應(yīng)多個B,一個B對應(yīng)于多個A的情況,也就是多對多的情況,需要在A和B兩邊分別保存一個ID/IDREF序列或者XPath序列。則對于一個A,它有一個它所對應(yīng)的所有的B的ID/IDREF或者XPath序列。對于一個B,它有一個它所對應(yīng)的所有A的ID/IDREF或者XPath序列。從而實現(xiàn)了A和B之間的多對多的關(guān)系。

4.小結(jié)

通過對UML類圖中類之間的繼承,組合/聚合和關(guān)聯(lián)關(guān)系的研究,給出了一個將UML類圖轉(zhuǎn)化成XMLSchema的方法。并且XMLSchema忠實的反應(yīng)了UML類圖中類之間的關(guān)系。對于用UML類圖描述的系統(tǒng),通過這種方法將UML類圖轉(zhuǎn)化成XMLSchema,根據(jù)該XMLSchema生成的XML文件同樣可以忠實的反應(yīng)UML類圖所描述的系統(tǒng)的模型。


網(wǎng)站名稱:技術(shù)分享UML類圖轉(zhuǎn)化成XML文檔模式方法揭秘
鏈接分享:http://www.dlmjj.cn/article/djocpod.html