自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

技術(shù)分享 UML類圖轉(zhuǎn)化成XML文檔模式方法揭秘

開發(fā) 架構(gòu)
本文向大家介紹一下UML類圖,UML是用面向?qū)ο蠹夹g(shù)描述一個(gè)系統(tǒng)的有效方法,XML是一種描述數(shù)據(jù)和交換數(shù)據(jù)標(biāo)準(zhǔn),W3CXMLSchema是用來描述XML文檔的模式。

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

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

1.引言

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

2.UML和XMLSchema

2.1UML

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

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

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

2.2XMLSchema

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4.小結(jié)

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

【編輯推薦】

  1. 揭秘五種UML類圖關(guān)系
  2. UML類圖用途及創(chuàng)建方法揭秘
  3. 詳解三大UML類圖元素
  4. 專家提醒 小心掉進(jìn)UML建模誤區(qū)
  5. 四步輕松實(shí)現(xiàn)用Visio畫UML類圖
責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-07 18:00:44

UML類圖建模

2010-07-01 11:42:56

UML類圖

2010-07-09 16:54:47

UML類圖

2015-06-05 11:24:17

WPS金山軟件

2010-06-29 09:08:15

UML類圖關(guān)系

2010-07-12 12:41:12

UML類圖

2010-07-05 16:23:39

UML類圖

2010-07-05 09:34:45

UML類關(guān)系圖

2010-06-12 16:30:51

UML設(shè)計(jì)

2010-06-29 17:27:49

UML建模方法

2010-07-09 15:19:58

UML類圖建模

2010-06-09 10:53:28

UML類圖

2010-07-07 14:33:11

UML序列圖

2010-08-02 10:35:19

Flex3教程

2009-08-28 14:54:20

C# byte數(shù)組

2014-03-19 10:44:51

Linuxpng圖片

2011-09-07 15:38:33

Ubuntuccd2isonrg2iso

2021-10-08 13:45:23

大數(shù)據(jù)數(shù)據(jù)科學(xué)家貨幣

2010-06-30 14:37:20

UML類圖

2010-06-28 17:26:02

UML類圖關(guān)系
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)