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