曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
通過使用案例描述的用戶界面對話框將集中說明用戶和系統之間的交互信息,而不是解釋
對話框在屏幕上如何顯示。這使得相應的X M L實現中的信息內容自然而然地獨立于表示細節。
6. 對象交互圖
對象交互圖從一個比數據流模型更加詳細的層次分析對象之間的消息交互。數據流模型可
能僅僅說明在線預訂系統向信用卡c l e a r e r發送交易信息,并收到認證信息作為應答,然而,交互
圖將詳細描述構成這次會話的所有消息。
當你需要描述兩個獨立系統之間的交互時,例如:旅游代理系統與航空公司之間的交互,
對象交互圖是一種非常出色的方法。它能夠幫助你定義將哪些信息封裝在消息中。由于這些消
息通常是X M L消息,因此對象交互圖為設計每個消息的X M L結構提供了所需的上下文。
7. 選擇動態建模方法
我們在八十年代提倡的某些系統設計方法鼓勵你堅持這樣一個信念:在開始任何編碼之前,
必須詳細定義所有方法。這種觀點并非總是正確的; I n t e r n e t變化如此之快,使得這種觀點難以
貫徹。但是,了解能夠適應不同情況的各種技術是非常有必要的,因此我們上面介紹的內容對
你來說應該具有一定的價值。
在動態建模時,并不一定要建立上述所有模型,你應該學會變通—這些都可以作為非常
有用的工具,當你會見用戶(或者與設計小組的其他成員交談)時,可以在白板上進行簡要敘
述,以征求大家的意見。如前所述,當你在X M L項目中定義從一個子系統流向另一個子系統的
消息時,或者當你在電子商務中定義從你的系統流向供應商或客戶的系統的消息時,你會發現
這些方法自有其用途。
第4章數據建模與XML使用89 下載
4.2 設計XML文檔
本章的第一部分著重分析了現實世界中要表示的信息,它使得每個人能夠對這些信息達成
共識。分析到此為止,現在讓我們再回到X M L。在本節中,我們將假設已經理解了系統的信息
需求,現在,我們的核心問題是如何設計能夠滿足這些需求的X M L文檔。我們首先來看看X M L
在系統體系結構中能夠扮演的角色。
4.2.1 XML的兩種角色
在討論數據流模型時,我們看到系統中有兩種類型的數據:數據存儲和消息流,數據存儲
提供長期的永久性數據,以便于系統引用,消息流將暫時存在的信息從一個子系統(或者人,
或者數據存儲)轉移到另一個子系統。
X M L適用于這兩種類型的數據,但是它們在設計時要考慮的問題相差甚遠,因此我們將依
次進行介紹。
1. 用于消息的X M L
與將X M L用于永久性數據相比,將X M L用于系統中的消息時引發的設計問題較少。這是因
為每個消息通常相當完備,而且一條消息中應該包含哪些內容一般可以由處理模型得出。
當然,我們使用的消息一詞有非常廣泛的含義。它可以是企業之間發送的用于表示旅館預
訂交易的E D I式消息。或者,它也可以是一個子系統向另一個子系統提出請求時傳遞的數據,例
如:在銀行中,欺騙檢測系統可以要求銀行運作系統提供特定帳戶的交易歷史,并接收X M L消
息形式的應答。除此之外,還有為用戶提供顯示的消息,例如:當你通過瀏覽器咨詢特定旅游
勝地的天氣預報。在這種情況下,應答將以X M L消息的形式從后臺數據庫系統返回前端,前端
系統(或瀏覽器)利用適當的樣式表進行展示,將應答消息變為可視化頁面。有些消息可能源
自人,例如:銷售查詢是由We b站點上的表單創建的。
以下通用的設計原則可以應用于所有X M L消息,無論這些消息具體的用途是什么:
• 設計應該反映信息內容,而不是體現預期的用途。隨著時間的推移,信息的用途可能發生
變化,但是信息的內容一般是穩定的。這條原則特別針對于表示細節:如果信息是供人類
使用的,避免包含屏幕布局和字體大小等表示信息。
• 設計應該預計到可能的變化。當然, X M L本身的設計在這方面是領先的,它能夠避免傳統
的缺陷,例如:固定長度的字段和固定的列順序。但是,文檔設計者在將信息結構化時有
責任采用一種能夠在一定程度上適應未來變化的方式。
• 盡量使用標準消息類型,減少自己的發明。目前標準化的消息類型越來越多,例如:最初
由M i c r o s o f t發起的B i z t a l k( h t t p : / / w w w. b i z t a l k . o rg / ),以及獨立的O A S I S協會
(h t t p : / / w w w. o a s i s - o p e n . o rg /)都提供了許多例子。除此之外、h t t p : / / w w w. o n t o l o g y. o rg /、
h t t p : / / w w w. r o s e t t a n e t . o rg /和h t t p : / / w w w. c o m m e r c e n e t . o rg等站點也值得一看。第1章介紹了
業界在為特定應用領域創建標準的X M L詞匯表和消息類型方面所做的努力。即使不能原封
不動地使用它們,也能夠從中汲取許多靈感,或者可以利用第7章介紹的命名空間和模式
將它們融入到自己的擴展模型中。
90使用XML 高級編程
下載
• 在性能允許的范圍內,數據編碼應該與自然編碼盡可能接近。避免過于簡潔的編碼,例如:
將W作為Wi t h d r a w n的編碼,除非這種編碼已經被業界廣泛接受。使用該行業中已有的標
識符和編碼(比如:信用卡號),盡量不要自己杜撰標識符,(特別要)避免會使消息和現
有數據庫形成密切關系的標識符。消息應該是獨立的。
有一個設計決策比較棘手,即:是否包含一些目前尚不需要的信息,以備將來使用。對于
這個問題,沒有一致的答案。如果包含對象的所有特性比從中選擇接收者感興趣的特性更加簡
單,可以將它們全部包括在內,由接收者決定舍棄哪些特性。另一方面,發送大量多余的數據
是非常愚蠢的,我們也可能出于安全性或隱秘性考慮保留一些特性。這個決策應該是切合實際
的。
在消息中包含常規信息是非常明智的,即使它重復了任何用于傳遞數據的消息系統都能夠
提供的信息。日期和時間、發送者標識和預期的接收者是顯然要包含的信息;你還可以加入序
號,它能夠檢查傳輸過程中是否有消息丟失,或者是否有消息被傳輸了兩次。之所以在X M L消
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(38)