曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
通过使用案例描述的用户界面对话框将集中说明用户和系统之间的交互信息,而不是解释
对话框在屏幕上如何显示。这使得相应的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.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程上(38)