XML 的使用越来越广泛,但是很多 XML 的结构并不好。即便结构良好,也常常设计得很糟,使得处理和维护非常困难。而大部分用于 XML 的基础结构使问题更加恶化。于是出现了关于 XML 最佳实践的公开讨论,比如 Henri Sivonen 的文章“HOWTO Avoid Being Called a Bozo When Producing XML”。Uche Ogbuji 经常在 IBM developerWorks 上讨论 XML 最佳实践,这里他提出了在这些文章中讨论的要点。
几年来我一直在本专栏和其他系列文章中讨论 XML 最佳实践。其他人,比如和我同行的专栏作家 Elliotte Rusty Harold 也谈到这个问题。参加 XML 设计原则讨论的 XML 专家越好越好,这样社区就会对在不同层次上采用 XML 的开发人员提供一致的建议。本文将结合最新和过去的文章,更详细地介绍了 XML 最佳实践。
不再有笨蛋
Henri Sivonen 撰写了一篇有用的文章“HOWTO Avoid Being Called a Bozo When Producing XML”(请参阅参考资料)。他采用了基于 XML 的 Web 提要格式(如 RSS 和 Atom)的观点,提出了用名称空间生成结构良好的 XML 应该做和不应该做哪些事情的指南。正如他在简介中所说的:
有些开发人员似乎认为以编程方式生成 XML 而保持结构良好非常困难(如果不是不可能的话),另一些开发人员却能够做到这一点,并奇怪其他人为什么如此无能。我假设没有人愿意显得无能或者被点名。因此,我希望下列建议能够帮助开发人员从第一类人转变成第二类人。
Henri 给出的第一条建议是“不要将 XML 看作是文本格式”,我认为这是一条危险的建议。当然其基本观点是正确的 —— 不能像简单的文本文档那样随心所欲的生成和编辑 XML,但是这种要求适用于所有有结构的文本格式。但是,说 XML 不是文本就背弃了 XML 一个最重要的特点,而这点在规范的 XML 定义中被奉为圭臬。(“文本对象是结构良好的 XML 文档[如果符合本规范]”。) Henri 的提法也让人糊涂,因为有关于 XML 文本的技术定义,大致上是将它解释为 XML 的字符序列。文本不仅仅是叶子元素或者属性中的主要成分 —— 技术上称这类文本为字符数据。文本还是所有 XML 实体的主要成分,因此说 XML 不是文本是自相矛盾的。我认为强调 XML 和开发人员已经熟悉的文本格式的区别会更有意义。
新闻热点
疑难解答