详解 XML 与 J2EE 组合技术的精髓
当前,Java 2 平台企业版(J2EE)架构在厂商市场和开发者社区中倍受推崇。作为一种工
具,可扩展标记语言(XML)简化了数据交换、进程间消息交换这一类的事情, 因而对开
发者逐渐变得有吸引力,并开始流行起来。自然,在 J2EE 架构中访问或集成 XML 解决方
案的想法也很诱人。因为这将是强大系统架构同高度灵活的数 据管理方案的结合。
XML 的应用似乎是无穷无尽的,但它们大致上可以分为三大类:
1、简单数据的表示和交换(针对 XML 的简单 API(SAX)和文档对象模型(DOM)语法
解析,不同的文档类型定义(DTDs)和概要(schemas))
2、面向消息的计算(XML-RPC(远程过程调用),SOAP 协议,电子化业务
XML(ebXML))
3、用户界面相关、表示相关的上下文(可扩展样式表语言(XSL),可扩展样式表语言转
换(XSLT))
这 几类应用在 J2EE 架构中恰好有天然的对应:数据表示和交换功能是 EJB 组件模型中持
久化服务(persistence services)的一部分,基于消息的通讯由 Java 消息服务
(JMS)API 来处理,而界面表示正是 Java 服务器页面(JSP)和 Java Servlets 的拿手好
戏。在本文中,我们将看到当今基于 J2EE 的应用里,XML 是如何在上述几个方面进行应
用的,以及在相关标准的未来版本中这些应 用将会如何发展。
基础:数据的表示和交换
修改甚至写入某个 XML 文档而经常被读入到某个对象模型中。作为例子,假定我们正处理
多种类型的媒体(图品、视频、文本文档等等),并且用下面这个简单的 XML DTD 来描
述这些媒体的元数据:
<!-- DTD for a hypothetical media
management system -->
<!-- Media assets are the
root of the object hierarchy.
Assets are also
hierarchical - they can
contain other assets. -->
<!ELEMENT media-asset
(name, desc?, type*, media-asset*, urn)>
<!-- Metadata about the asset -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT desc (#PCDATA)>
<!ELEMENT type (desc, mime-type?)>