创建可维护、可扩展的 XML 格式

XML 是一种交换结构化文档和数据的通信格式。人们经常随意地在开发过程中临时决定选择 XML 格式,而没有提前计划或设计。只有提前设计好正确的 XML 格式,才能满足通信各方的要求。否则就不得不反复地修改。了解如何设计一种不经常进行修改的格式,足够敏捷,不需要彻底修改而仅需填加少许扩展就能适应新的需求。

10 年来,XML 发展成为了一种常见的、受到广泛接受的标准,用来在组织内部和组织之间存储和交换数据。XML 本身仅仅是一种抽象,其成功完全依赖于一个或多个组织所设计的 XML 格式。与任何软件产品一样,随着业务需求的变化,这些 XML 格式也面临着维护问题。而且这些变化不是一般意义上的:迫于竞争和市场的原因,XML 格式经常需要针对多个组织同时进行更新。

常用缩写词
  • NXD:原生 XML 数据库(Native XML database)
  • XSD:XML 模式定义(XML Schema Definition)
  • XSLT:XML 样式表语言转换(XML Stylesheet Language Transformation)
  • W3C:万维网联盟(World Wide Web Consortium)
  • XML:可扩展标记语言(Extensible Markup Language)

仅仅维护一个 XML 模式还比较容易。但是如果修改影响到数百组织,问题就大了。对 XML 模式进行一次简单的修改可能要花费大量的时间和金钱,但是如果事先设计好,可能只需要再看一遍就行了。本文讨论两个问题:

  • 如何控制这种影响
  • 如何尽可能地减小这种影响

我们使用一个非常简单的例子,涉及到汽车、轮胎、挡风玻璃和有关的公司或者分销商。虽然不完全符合实际,但足以说明提高 XML 格式可维护性的必要性了。

简单但是存在问题

关于 XML 模式

XML Schema 是一种 XML 格式,可用于形式化地描述 XML 格式。XML 工具可使用 XML Schema 的实例验证 XML 文档,就是说检验一个 XML 文档是否符合 XML Schema 所规定的格式。XML Schema 的前身是文档类型定义(DTD),DTD 仍然用于描述 HTML。XML Schema 的特色之一是它本身用 XML 表示。实际上,您可以用 XML Schema 描述 XML Schema 格式。表示 XML 模式有不同的语言,比如 XML Schema (W3C) 和 RELAX NG。XML 模式通常指 XML Schema Definition

只有符合相关模式的要求,XML 文档才会被认为是有效的。

首先,我们以 Volvo C30 和米其林轮胎为例建立一个 XML 文件来共享关于轮胎的信息。如 清单 1 所示。


清单 1. 共享轮胎信息的简单 XML 文件
                
<car>
<brand>Volvo</brand>
<type>C30</type>
<kind>Small family car</kind>
<tires>
<tire>
<brand>Michelin</brand>
<type>Winter</type>
<count>4</count>
</tire>
<tire>
<brand>Michelin</brand>
<type>Spare</type>
<count>1</count>
</tire>
</tires>
<windscreen count="1">
<brand>Car glass</brand>
</windscreen>
</car>

这个 XML 文件看起来很简单,是不是?初看起来可能没有什么问题。但是再深入地想想。真正的问题在于 XML 模式。它非常大,而且是一个整体。现在考虑一下这种只有少量元素类型的 XML 格式。设想一下如果用于一个真实的例子会变成什么样,如 清单 2 所示。


清单 2. 描述简单 XML 格式的 XML 模式
 


本文转自IBM Developerworks中国

      请点击此处查看全文


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值