XML(eXtensible Markup Language,可扩展的标记语言)是万维网联盟(W3C)创建的一组规范,用于在Web上组织、发布各种信息。它不仅可以满足迅速增长的网络应用的需求,还能够确保网络进行交互操作时具有良好的可靠性与互操作性。
XML的语法类似HTML,都是用标签来描述数据的。HTML的标签是固定的,我们只能使用,不能修改。XML则不同,它没有预先定义好的标签可以使用,而是依据设计上的需要自行定义标签。XML是一个元语言,根据不同的行业和语义,可以派生出许许多多的协议和规范。目前的基本协议有XSL、XLink/Xpointer、Xpath、XHTML、Schema等。不同的行业和领域都可以制定自己的XML规范,用于横向和纵向的信息交流和数据传输。XML规范有大有小,大的可以为全世界范围内的商务数据制定格式,像ebXML、Biztalk、eCo;小的有专门用于电子钱包的ECML,有为数学制定的MathML;还有为多媒体数据同步的SMIL,像XSL是专门用于显示的,它制定了许多有显示语义的标签;而XLink是描述文档之间关系的语言。像Micrsoft 的CDF(Channel Definition Format)推送频道“PUSH”技术应用、WML(Wireless Market Language)无线商务应用等等都是XML技术的具体应用。XML给基于Web的应用软件赋予了强大的功能和灵活性,因此它给开发者和用户带来了许多好处。利用XML用户可以方便地进行本地计算和处理。XML格式的数据发送给客户后,客户可以用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对象模式(DOM)允许用脚本或其它编程语言处理数据,数据计算不需要回到服务器就能进行。XML可以被利用来分离使用者观看数据的界面,使用简单灵活开放的格式,可以给Web创建功能强大的应用软件。
XML核心功能的有关特性和规范如下:
1. 格式良好的(Well-Formed)XML文档;
2. 文档类型定义(DTD);
3. XML使用样式?CSS(Cascading Style Sheet,层叠样式表单)和XSL(eXtensible Style Language,可扩展样式语言);
4. 文档对象模型(DOM)?XML编程接口;
5. XML 简单API(SAX)?XML编程接口;
6. XML 命名空间(Namespace)和模式(Schema);
7. 链接(XLink)和查询;
8. XPath(XML Path Language) 和 XPointer(XML Pointer Language);
9. 转换XML?XSL和XSLT(XSL Transformation);
10. XML 和数据库;
11. 用于服务器协议? XML-RPC、SOAP(Simple Object Access Protocol,简单对象访问协议)和WDDX(Web Distributed Data Exchange,分布式Web 数据交换)。
XML 是一种具有描述数据功能的语言,它十分适合作为知识表示语言或作为组件及文件格式的表示方法。它还可以让数据在不同的来源中,根据通用的语法规则来处理。而Java则是用于Internet、适合于分布式环境、提供了一个跨平台的语言。XML和Java相结合主要原因是基于XML的语法提供了一种灵活的、标准的、健壮的Java编程方案,同时,Java也将一种普遍的语义集合应用于XML数据。既然Java和XML都是可移植的标准,这两种技术结合的结果也是可移植的,可以重用数据和移植行为。单独使用XML或Java所能获得的所有潜力还没有被完全掌握,将它们结合就走进了一个巨大的、新的国度。将XML应用于Java的两个主要的应用是面向表示的出版业和企业中面向消息的中间件技术。
Java和XML是在为不同客户开发Web程序时形成得自然的匹配。从传统的电话到最新的智能冰箱,利用和产生的信息都是在不同的系统平台的服务器上交换。XML和Java的方便性和可延展性使它们在新的Web上具有更多的功能:
1. 结构化?建立有任何复杂层次的数据模型;
2. 可扩展性?根据需要定义新的标志;
3. 验证?检查数据在结构上的正确性;
4. 独立与媒介?以多种方式发布内容;
5. 独立于供应商和平台?使用标准的商业软件,甚至文本工具处理任何符合(XML标准)的文档。
上述这些功能使得XML技术被期望给面向网络的应用,特别是在数据交换领域带来革命性的影响。Java 与XML一起使得新一代Web应用成为可能。
Java 与 XML 的结合应用
建立一个良构(Well-Formed)的XML 文档及验证的实例
对于一个XML文件是否符合Well-Formed 所规定的各项XML 基本语法,必须借助XML 分析器来加以检查。比较常见的XML 分析器有Xerces、JAXP 和MSXML。
一个XML 文档是有明显特征的。下面是一个XML 文档的实例People.xml,代码如下:
< ? xml version="1.0" encoding="GB2312"? >
< PeopleInfo>
< People PeopleId="YOUR">
< PeopleName> 古董 < /PeopleName>
< PeopleSex> 男 < /PeopleSex>
< PeopleAge> 23 < /PeopleAge>
< /People>
< People PeopleId="SHEN">
< PeopleName> 王冠 < /PeopleName>
< PeopleSex> 女 < /PeopleSex>
< PeopleAge> 25 < /PeopleAge>
< /People>
< /PeopleInfo>