### 什么时候不应该使用 XML(3)

当问题非常简单时
当它可能产生其大无比的文件时
当应用程序是“一次性的”时
当需要使用 Unix 面向行的文本处理工具时
涉及使用 XML 来进行程序间通信时，有探讨的余地。但当涉及人机通信，如编程语言或配置文件时，XML 可能提供了最不自然的人机界面。
我的论点归结人与计算机硬件之间的一个问题。人类擅长处理隐含的结构，而计算机希望处理明确的结构，它设计成擅长于我们所不擅长的。计算机语言越接近自然语言，它对人类越自然，但实现越困难。在这场拔河竞赛中，稳妥的折衷方案可能是使用以标点符号和算式的形式加上某些自然语言子集，这就是最明显和有用的示例。使我感到惊讶的是，这种经典方法的统治地位已由基于 XML 的显式结构语言取代，后者的形式非常容易识别（下载一个免费的标准 XML 语法分析器），但是其输入和阅读是极其不自然和费力的。需要明白的是，在界面语言中平衡这一点需要经验和可用的资源，但我希望您至少认识到对计算机友好的 XML 语法对人类是不友好的。
让我留给您一些建议：了解语言，它们的设计和实现。考虑 XML 本身存在是为了“修正”SGML 的语言复杂性和实现难点。计算机语言技能是可获得的一件最有用的武器，因为它正是涵盖了计算的每一个应用程序。作为 ANTLR － 一种流行的语法分析器／转换器生成器（请参阅参考资料） － 的主要开发人员，我收到了各行各业用户的问题：做 DNA 模式识别的生物学家、从太空探测规范 RTF 文档来自动构建通信库的 NASA 科学家、为每一种可想象得到的程序构建配置文件的人，等等。jGuru.com 门户使用了从对象模式规范到 HTML 清洁器的许多语言和语法分析器。要知道的一点是，计算机语言技能使您能够产生极其灵活和功能强大的软件，不仅仅是新编程语言的编译器。并且，这里关于我所关注的最重要的是，您将能够产生对人类友好的文本界面。
参考资料
是完全同意 Terence Parr？还是不同意他的观点？请单击该页面顶部或底部的讨论图标，让他（和您的同仁）知道。
查看 ANTLR，一个非常流行的语法分析器／转换器，由本文作者设计，人们用来为配置文件和其它人机界面问题构建所有种类的语法分析器。
Practical Computer Language Recognition and Translation 是我打算完成的一本书的草稿，但同时人们认为前面几章非常易于理解。您应该喜欢有关动手构建识别器的这一章节，作为对该技术的极佳介绍。
如果对于数据需要 XML 语法分析器，请看 IBM 的 XML Parser For Java, 又称为 XML4J。
请浏览 jGuru.com，您看到的 Java 世界。来自关于 44 种不同主题的 5000 多条 FAQ 项、来自 Java 世界的文章以及用来提问题的结构化论坛。
XBeans 允许您在因特网上剪贴数据。
请查看 SOAP 以了解 XML 如何促进互操作性。
IBM 参考资料
在 developerWorks XML 专区上找到更多 XML 参考资料。
Solution 2001 开发人员大会将于 8 月 13 日至 16 日期间在旧金山召开；请在 AgendaBuilder 中搜索或浏览超过 230 个会议的描述。有 20 多个会议专注于 XML 和相关的技术，包括：
Hands-on: Integrating XML with DB2
Hands-on: Voice XML Tools/Building Killer Apps
XSL by Example: An Introduction to XML Transformations
Parsing and Programming XML Documents using Java Technology