使用UML設計XML模式方法解析
本節向大家介紹一下如何使用UML設計XML模式,主要包括補充框架,建模的價值和補充等內容,希望通過本節的介紹你對使用UML設計XML模式方法有所掌握。
使用UML設計XML模式
統一建模語言(UnifiedModelingLanguage,UML)是一種業界標準,當以面向對象的方法構建軟件系統時,用它來對業務概念建模。就信息和命令的傳輸方面而言,近來XML已經愈發成為實現這些系統的關鍵因素。XML模式用于定義和限制被交換XML的本質,因此它成為了人們注意的焦點。本文討論了UML在設計XML模式方面的用法,并為使用UML框架創建XML詞匯表提供了一種實用的方法。
在將UML框架用于構造XML模式時,必須考慮三個問題:
◆UML和XML模式之間的互補性
◆如何擴展UML設計以捕獲模式提供的全部功能
◆根據UML圖設計XML模式的能力
為了有助于在本文中討論這兩種框架,我將使用一家虛擬公司:BALTICShipping作為示例。
BALTICShipping是一家國際性的運輸公司,專門從事美國到東歐的貨運業務。該公司希望創建一種機制,用于跟蹤從其紐約總部到各分公司(如位于愛沙尼亞塔林(Tallinn)的一個分公司)的裝運物情況(請參閱圖1)。當產品起運時,總部通過電子方式以XML形式發送關于本次裝運物的信息。一旦貨物抵達目的地,分公司將以電子方式把確認信息發回給總部。
所有訂單和確認數據都以XML文檔形式交換,必須設計模式來概括文檔的結構。用于對裝運訂單建模的業務構造也用來與庫存跟蹤系統(InventoryTrackingSystem)交換信息,庫存跟蹤系統隨時都知道公司現有哪些包裝箱要交運。本文討論了構造XML模式時使用UML的功效,這些XML模式定義了這些以XML格式進行數據傳輸的業務構造。
圖1.BALTICShipping工作流
補充框架
UML設計及其面向對象的建模可以為構建XML模式提供補充。您可以方便地用UML中的圖形符號來表示業務概念,并開始設計您的XML模式。
建模的價值
有關UML在創建XML模式時的優點的討論假定了面向對象建模的價值是已知的。在我上一篇文章“CreateflexibleandextensibleXMLschemas”中,我討論了使用面向對象方法構建XML模式的重要性和價值。使用UML設計面向對象系統除了具有技術優勢之外,UML還提供了一個公共媒介,業務團隊和技術團隊可以通過該媒介方便地交流看法。業務分析人員是軟件系統(尤其是一個包含特定于領域信息的系統)中的關鍵協作者。由于業務分析人員參與設計XML文檔的過程,因此軟件架構設計師和業務分析人員之間默契的合作對于項目的成功變得非常重要。UML的圖形符號使得技術人員和非技術人員很容易就諸如ShippingOrder的定義之類的業務概念達成一致,因此也就加速并促進了項目的完成。
互補
設想一下,BALTICShipping的業務經理找到您,請您對一個XML模式建模,該模式將對在公司內不同系統之間傳輸的信息進行形式化。他與您坐下來,一起討論該領域的業務概念。您可以在紙上繪制一些草圖,但UML設計使用圖和符號對這些概念建模提供了一種更好的正式方法。
圖2中的UML圖里勾畫出了ShippingOrder的業務定義。BALTICShipping將ShippingOrder定義為包含ShippingId、Origin、Destination和Order。無論何時交換有關ShippingOrder的任何數據,它都考慮這些必需的信息。此外,UML圖也用來表示組成Origin或Order的內容。所顯示的Origin和Destination的類型與類型Address相同,BALTICShipping將具有下列特征的Address:Name、Street、City和Country存儲在其數據庫中。這些都是業務概念,數據庫模型、軟件程序以及供經理和業務伙伴們閱讀的文檔中都用到了它們。這些概念還包括基數(Order可以包含許多Item)、繼承(Origin繼承Address的全部特征)以及依賴關系(Order依賴于其Item的詳細信息);UML圖捕獲了所有這些關系。由于您希望您的XML文檔攜帶ShippingOrder信息,因此下一步就是設計符合草擬的UML圖的XML模式。下面的模式表示UML圖(參閱圖2)到XML模式的映射。
在UML圖中(請參閱圖2),Address是一種抽象類型,單詞“Address”用斜體書寫以表示它是抽象類型。類型Origin和Destination從Address繼承了特征Name、Street、City和Country。為可重用類型創建藍圖被認為是一種好的面向對象設計。在XML模式中(請參閱清單2),我已經通過使用關鍵字abstract="true"將類型Address指定為抽象類型。類型Origin和Destination模仿了我最初在UML設計圖中所勾畫的設計,這里我使用extensionbase="Address"來表明它們繼承了Address的特征。此外,我還捕獲了這樣一個業務模型:通過用代碼type="Item"maxOccurs="unbounded",Order可以包含許多Item。
如果您是從頭開始設計XML模式的,那么將很難只使用XML寫下對象類型。此外,要想向不熟悉XML模式術語的業務經理解釋它們也幾乎是不可能的。根據UML圖,您可以有效地轉換公司的業務概念,然后使用您面前的這一可視化表示創建XML模式。以下是運用您創建的模式為一批從紐約運往塔林的草莓醬生成的實例文檔。
【編輯推薦】