### XML 在电子商务中的应用

电子商务的发展

最早的电子商务是传统的EDI（Electronic Data Interchange，电子数据交换）。20世纪60年代末，欧洲和美国几乎同时提出了EDI的概念。早期的EDI是在两个商业伙伴之间依靠计算机之间直接通信完成的，70年代，数字通信技术的发展大大加快了EDI技术的成熟和应用范围的扩大，也带动了跨行业EDI系统的出现。80年代EDI标准的国际化又使它的应用跃入一个新阶段。

传统EDI将数据信息规范化、格式化，通过网络互联处理，便于不同公司、企业应用或商业运营的数据交换和交流。但是随着EDI的普及，它的一些缺点也相应显现出来。传统EDI利用专网或增值网服务，成本高。基于严格的事务处理的标准集，其中包含了商业的规则，仅适用于特定应用，对于经常变动的商业规则不适用，难于实现跨平台跨系统的数据交换。

90年代初，随着Internet的迅速普及，出现了基于Internet的电子商务。它利用Internet的全球性，扩大了交易范围，成本大大降低；采用数据加密、电子认证、安全电子交易等一系列措施，提高了交易的安全性。但是在实现跨平台跨系统的数据交换方面还不是很方便，仍需要在多种文件格式间进行转换。

90年代后期，XML的出现为电子商务注入了新的活力。XML与EDI的结合提供了一种可被广泛理解的商业规范，文档、表单等信息可在不同的系统中相互交换，提高了数据的可持续性，降低了由于商业规则上的变化所引起的额外应用成本，保证同旧系统的连接，保护既有投资。当然，目前XML/EDI技术尚未完全成熟，需要进一步发展和完善。

XML概述

可扩展置标语言XML（eXtensible Markup Language）是W3C联合SGML专家组成的SGML工作组，对SGML（Standard for General Markup Language）进行裁剪而形成的SGML精简子集。它为互联网开发者提供了一个全新的实现电子商务和电子数据交换EDI解决方案的工具。

XML具有以下4个主要特点：

1.简单性

XML为程序员和文档作者提供了一个友好的环境。XML的严格定义和规则集使人类和机器都能更容易地阅读文档。XML文档语法包含一个非常小的规则集，使开发者能立刻开始工作。根据文档的结构，DTD（Document Type Definition，文档格式定义）既可以通过一个标准过程创建，也可以由专家创建。

XML文档建立在基本嵌套结构的一个核心集的基础之上。当一层又一层的细节增加使结构变得越来越复杂时，作者或开发者为内部结构的复杂化付出的努力将是很少的。这些基本结构可以用来代表复杂的信息集合，而不需要改变结构自身。XML的语法分析器也非常容易创建。

2.可扩展性

XML在两个意义上是可扩展的。首先，它允许开发者创建他们自己的DTD，有效地创建可被用于多种应用的“可扩展的”标志集；其次，使用几个附加的标准，可以对XML进行扩展，这些附加标准可以向核心的XML功能集增加样式、链接和参照能力。作为一个核心标准，XML为可能产生的其他标准提供了一个坚实的基础。

3.互操作性

XML可以在多种平台上使用，而且可以用多种工具进行解释。因为文档的结构是相容的，所以解释它们的语法分析器就能以较低的费用建立。XML支持用于字符编码的许多主要标准，允许它在全世界许多不同的计算环境中使用。

XML对Java进行了很好的补充，许多早期的XML开发是用Java进行的。一个用于语法分析器的普通应用程序接口——XML的简单API（SAX），可以免费获得，也可获得用C++、C、JavaScript、Tcl和Python等编写的语法分析器。目前，XML语法分析器的开发集中在免费的插件（Plug-in）上，这些插件为XML应用提供了语法分析能力，极大降低了使用XML建立实际应用的费用。

4.开放性

XML标准在Internet上是完全开放的，可以免费获得。XML文档自身也较为开放，任何人都可以对一个结构良好的XML文档进行语法分析，如果提供了DTD，还可以校验这个文档。公司仍然用特定方式创建用于它们应用的XML，而XML文档中的数据却是任何应用都可使用的。虽然开发者可以建立语意模糊的DTD，或以自己的方式加密数据，但他们将会失去使用XML的许多好处。XML并不禁止创建私有格式，但它的开放性是它最大的优点之一。

XML 简化数据库的发布

用 HTML 页面和数据库打交道时，要经过复杂的转换手续，而需要在一种类型的数据库和另一种类型的数据库之间交换数据时，更是要大费周折。反观 XML，由于它采用了结构化的数据，所以要储存或是要在不同数据库之间交换时，都非常容易。可以预见，XML 今后将会成为数据在不同数据库之间交换时的标准方式。

众所周知，当在 Internet 上一次传输大量的数据时，经常会遇到数据代表的意义即数据的格式无法确定的问题。特别是在远程报表项目中，每一张报表均有大量的数据，还要包括报表本身的信息和数据在报表中的位置，而且报表的格式五花八门，这更增加了数据表示的难度。此时，最好的方法就是利用 XML 来格式化数据。

通常用 XML 格式能够很好地表示报表的结构，不但能传送报表的数据，还能准确表示数据在报表中的位置。所以，当这样两个 XML 文件传送到客户端时，我们可以很容易地将其恢复成原来的报表。

当我们需要在客户端实现脱机操作时，就要求在客户端保留大量的信息，但在客户端建立数据库不符合瘦客户的原则。如果换一个角度来看，XML 对数据的结构化描述，就是一个以树型结构表示的数据库。当然，我们需要一个管理 XML 将它们连起来，这样可以把多个 XML 文件连接起来形成一个文件数据库，而且占用的空间小，更新十分方便。

XML 与 EDI 融合——XML/EDI

XML/EDI 小组于 1997 年 7 月通过互联网成立，目的在于培育和发展开放的和对 XML/EDI 广泛适用的下一代电子商务标准。XML/EDI 的目的是允许各种组织为全球用户配置更为智能、更为便宜和具有更高可维护性的系统。

EDI 是电子商务的始祖，具备用简单格式表现结构数据的能力，使得数据能够传递到其他人，且接收者能解释接收到的信息。在 EDI 转移到下一代产品过程中，XML/EDI 为现存的 EDI 交易提供了 100％的向后兼容性。这意味着我们无需抛弃现有的 EDI 投资和知识。

EDI 和 XML 两者本质上都是封装在标记格式和结构中的数据和元数据。因此现有的 EDI 机制可以用 XML 语法来表示，而且能够创建新的更为灵活的方法。EDI 传统上使用独特的类似标记的段落标识来分隔和标识消息中的数据项；XML 使用同样的基于标记的方法，但允许动态的标记和对象结构。因此，用 Internet 标记替换段落标识使得 XML 充分表现 EDI，而且可以通过 Internet 传送 EDI 单证。

只是简单地重新定义消息格式使得消息可以在 Internet 上传递还是不够的，传统的 EDI 单证机构由于自身的固定性和不灵活性将面临被淘汰的危险。为此 XML/EDI 工作组增加了 3 个额外的关键组件：

处理模板（Process Template）

软件代理（Software Agent）

全球实体知识库（Global Entity Repositories）

这 3 个额外的组件将传统的 EDI 转变为 XML/EDI，允许业务伙伴间开展完整动态的电子商务，并且每个组件增加了利用其他部分的独特工具。过去，EDI 是静态的，而 XML/EDI 提供了完善的动态处理过程，可以无限扩展。

处理模板提供了将整个 XML/EDI 结合在一起的粘合剂。如果没有处理模板，用户将无法单独使用 XML 语法表达所有需要进行的工作细节。模板是全局应用，或者在 XML 中作为特殊的段落或标记集合向前传播，而且容易读取和解释。它们在布局和内容上将传统的处理控制语言语法集中起来，并对 XML 中所声称的文档类型定义提供补充。DTD（Document Type Definition，文档类型定义）通过定义结构和内容，提供交易的互操作性。DTD 还允许两个组织相互理解数据。处理模板定义了数据上发生的动作，并提供交易处理。

软件代理，不仅解释处理模板，执行必要的工作，而且与 EDI 交易数据定义、用户业务应用相互作用，为每一特定的任务创建新的模板。代理也能访问全局知识库，为现有工作查找并配属恰当的模板。软件代理也能参考 DTD，决定窗体的显示特征。这是 Java 和 ActiveX 所擅长的领域。当前，这两个技术为创建代理提供最好的中介。

全球互联网知识库（Global Internet Repositories）已经应用于传统 EDI 了，例如：BSI 的 BEACON 系统。它使用 BEACON 字典，用户可以手工查找 EDI 元素的含义和定义。当前，全球互联网知识库概念已进入下一层次，提供自动查找功能，正如当前较高级的互联网搜索引擎一样。该组件为全球业务交易提供了语义基础，并为软件代理正确的实体交叉引用提供支撑。

XML/EDI 为系统提供传递信息，不仅仅是数据，而且包含所需要的信息处理逻辑。

XML/EDI 也定义了一个标准，用于为表现特征、结构和支持业务交易（编目录，订单表格和合法要求等）的数据行为进行编码，它为关键交易信息的交换提供了便利，从而形成了自动执行和基于文档的交易。

XML/EDI 的基本思想是在文档中增加足够的智能处理信息使得文档（以及以文档为中心的文档处理工具）成为电子商务的框架。

例如：在企业之中的供应商供应链的管理、客户服务的支援、资源整合和物流管理等的应用，通常会牵涉到很多不同的处理过程和步骤，文件需要转送很多部门，而且文件之中的资料内容和结构又不尽相同，这些工作 HTML 根本就不能胜任。而 XML 却提供了各种完整的解决方案和功能，包括资料传递、资料采撷、资料结构与资料呈现等，让设计流程大为简化。XML 可以让电子商务拥有更多的资源选择，并且与消费者或供应商与合作伙伴之间维持更密切、更有效率的关系。

下面讨论具体的 XML/EDI 系统的实现，系统基本框架如下:

XML 解释器：考虑到平台兼容性，由 Java 编程来实现。它处于 EDI 服务器和 WWW 服务器之间，负责在基于 X12 和 EDIFACT 等 EDI 标准事务处理集和 XML 间进行转换，例如单证格式、信息格式等；

WWW 服务器：使用 Apache 服务器并编译进支持 XML 的模块；

处理模板：利用 XML 的 DTD 编写各类模板，来满足传统 EDI 系统对商业规则和各类标准的要求（如各种单证标准），并由软件代理控制；

软件代理：使用 Java 编写，用 CORBA 技术来和 XML 翻译器、EDI 服务器进行联系通信；

EDI 服务器和全球实体知识库：利用传统的 EDI 系统，增加相应的支持 CORBA 的接口。

该系统通过 XML 语言将支持传统 EDI 的电子商务系统与非 EDI 的基于 Internet 的电子商务系统有机地结合起来。有效地利用了现有的网络和设施，大大降低了客户的成本，满足中小企业对电子商务的需求。

目前基于 XML 的电子商务标准

以下列出目前已有的基于 XML 的电子商务标准：

1.cXML 规范（Commerce XML）

1999 年 8 月，Ariba Technologies 正式推出了 cXML/1.0 标准。该标准是一种基于 XML 标准的面向 Internet 中 B2B 模式电子商务交易的行业标准。规范主要内容是用于定义电子商务交易 DTD，涉及订单（order）、采购（PunchOrder）和商品目录（Catalog）等。

2.eConcert 计划与 PIP 规范集

1998 年工业标准组织 RosettaNet 发起了 eConcert 计划。规范内容包括：PIP 通用的电子商务流程标准；规范描述形式 DTD。

3.xCBL 2.0 规范（XML Common Business Library）

1999 年 1 月由 CommerceOne 提出。该规范描述形式为 DTD，是一个跨行业的基于 XML 的电子商务标准与框架。主要为中小企业提供一种快捷的电子商务解决方案。

4.BizTalk 框架

1999 年 12 月 6 日，微软推出 BizTalk 框架 1.0 规范。该框架是微软电子商务解决方案的核心，规范描述形式为 Schema，信息传送主要方式是 BizTalk Server 间的传送消息、转换数据。

Internet 与传统 EDI 结合产生了新一代 Internet EDI，HTML 带来了 Internet、WWW 及 Internet EDI 的发展，但因其过于简化，逐渐为 Web 的发展所不容。XML 顺应需要，其优秀性能带来了新一代 Web，更带来了真正 Web 风格的 EDI。发展中的 XML，其更深远的影响有待进一步研究。