什么是XML
XML是一个精简的SGML,它将SGML的丰富功能与HTML的易用性结合到Web的用中。XML保留了SGML的可扩展功能,这使XML从根本上有别于HTML。XML要比HTML强大得多,它不再是固定的标记,而是允许定义数量不限的标记来描述文档中的资料,允许嵌套的信息结构。HTML只是Web显示数据的通用方法,而XML提供了一个直接处理 Web 数据的通用方法。HTML着重描述Web页面的显示格式,而XML着重描述的是Web页面的内容。让我们先来看一看用XML描述天气预报的实例:
<weatherreport>
<date> March 25, 1998 </date>
<time>08:00</time>
<area>
<city> Seattle </city>
<state>WA</state>
<region>West Coast</region>
<country> USA </country>
</area>
<measurements>
<skies>partly cloudy</skies>
<temperature>46</temperature>
<wind>
<direction>SW</direction>
<windspeed>6</windspeed>
</wind>
<hindex>51</hindex>
<humidity>87</humidity>
<visibility>10</visibility>
<uvindex>1</uvindex>
</measurements>
</weatherreport>
为了使编写的Web页面成为有效的XML文档,文中每一添加的标记必须记入一个
独立的DTD文件中。当客户浏览天气预报文档时,相关的DTD文件是随着文档一起下
载到客户端,客户浏览器就懂得怎样来处理它们,例如你可以从几个天气报告中计
算出平均温度等,最后将结果显示出来。
DTD文件使XML页面能包含更多的内容,表现更复杂的形式。从实例中也可以看
出XML页面信息是结构化的,有些与数据库结构类似,因而更具访问性,其检索结
果更有针对性、更准确。
另外你也可以将URL地址定义在DTD文件中,当Web主页地址发生变化时,你只
需改动DTD文件中的定义即可,而不必一一在HTML文档中改变URL地址,从而使Web
的维护更方便,用户也不会遇到URL地址找不到的信息,这样一来,Web的应用更稳
定。
并不是所有的DTD文件都要下载到客户端,已经制订成为标准的协议,例如在
后面第六点中提到的化学标记语言CML、数学标记语言MML等是不需要DTD文件的。
除了DTD外,XML中还包括可扩展格式语言XSL(Extensible Style Language)
和可扩展链接语言XLL(Extensible Linking Language)。
XSL用于将XML数据翻译为HTML或其他格式的语言。XSL提供了一种叠式页面
CSS的功能,使开发者构造出具有表达层结构的Web页面来,以有别于XML的数据结
构。XSL也能和HTML一起构造叠式页面。XSL可以解释数量不限的标记,它使Web的
版面更丰富多彩,例如动态的文本、跑马式的文字。此外,XSL还处理多国文字、
双字节的汉字显示、网格的各种各样的处理等。
XLL是XML的链接语言,它与HTML的链接相似,但功能更强大。XLL支持可扩展
的链接和多方向的链接。它打破了HTML只支持超级文本概念下最简单的链接限制,
能支持独立于地址的域名、双向链路、环路、多个源的集合链接等。XLL链接可不
受文档制约,完全按用户要求来指定和管理。
为了使XML易学易用,XML精简了一大片SGML难得用一次的功能。正如几十万汉
字中常用的只不过八千,SGML常用的部分只占20%,XML抛弃了SGML中不常用的部
分,使它一下就精简了80%。这样一来,XML的语法说明书只有30页,而SGML却有
500页。
XML设计中也考虑了它的易用性,易用性来自两个方面:一方面用户编写Web页
面方便,另一方面设计人员实现XML浏览器也不太困难。
总之,XML使用一个简单而有灵活的标准格式,为基于Web的应用提供了一个描
述数据和交换数据的有效手段。HTML描述了显示全球数据的通用方法,而XML提供
了直接处理全球数据的通用方法。
目前的主要XML技术
XML 与 命名空间
文档类型定义DTD
XPath
XPointer、XInclude、XML Base
XSL Transformations
SAX
DOM
XML Schema
SOAP
支持XML的公司和它们的开发工具
尽管XML还处在开发阶段,其标准正在由W3C组织制定,但是已经有许多公司表
示全力支持XML,并开发了不少XML工具。Adobe公司的FrameMaker可以用来书写
XML文档。Microsoft公司推出的IE 4.0已经可以显示、处理和编辑XML文档,
Microsoft公司作出承诺,要在下一个版本的Office 软件如MS Word、Excel中支持
XML。Netscape、Sun公司也不甘寂寞,纷纷表示要在他们的Web工具中支持XML。除
了这些著名的公司有所行动外,其他小公司也把XML 作为一种商机,纷纷投入到
XML的开发工作中。例如ArborText 公司的Cedar项目旨在开发XSL;ArborText公司
和Microsoft公司一起向W3C提出了XSL的标准草案;Grif公司的Symposia Doc+则
是一个编辑XML文档的可见即可得的工具。此外还有Copsol公司的XML开发工具,
Norbert公司的XML句法分析器,Jade公司的XSL工具包以及支持客户/服务机应用的
Serucie 98等。
XML展望
任何一项新技术的产生都是有其需求背景的,XML的诞生是在HTML遇到不可克
服的困难之后。近年来HTML在许多复杂的Web应用中遇到了问题,要彻底解决这些
问题,必须用功能强大的XML来替代HTML作为Web页面的书写工具。XML有利于信息
的表达和结构化组织,从而使数据搜索更有效;XML可以使用URL别名使 Web的维护
更方便,也使Web的应用更稳定;XML可以使用数字签名使Web的应用更广阔拓展到
安全保密领域。可以认为未来的Web书写工具必定是XML。而XML的广泛使用必然能
推动Web不断发展,从而开创Web应用的新时代。
Web的应用将随着XML的使用而更精彩,以下是可以预见的XML的几种应用。
XML/EDI电子数据交换
EDI(Electronic Data Interchange)是用电子技术代替基于纸张的操作手段,
用于公司之间的单据交换。XML的丰富的格式语言可用来描述不同类型的单据,例
如信用证、贷款申请表、保险单、索赔单以及各种发票等。结构化的XML文档送至
Web的数据可以被加密,并且很容易附加上数字签名。XML的安全保密措施可在EDI
的应用中充分显示它的魅力,XML有希望推动EDI的大规模的应用。
化学标记语言CML和数学标记语言Math ML
CML(chamical Markup Language)和Math ML(Mathematical Markup
Language)是XML应用于描述化学和数学公式的标记语言。CML可描述分子与晶体结
构、化合物的光谱结构等。而Math ML则是数学家的福音,自Web问世以来,数学家
们第一次可以使用Math ML将数学公式精确地显示在浏览器上。
开放式软件描述格式OSD
和EDI的命运相仿,软件包的上网发行一直处于试行阶段。OSD(Open Software
Descriptipon)是XML的一组用来描述各种软件产品的标记集,可以详细说明软件
的规格、使用说明以及可运行平台等。
通道定义格式CDF
通道定义格式CDF(Channel definition format)是Microsoft在IE 4.0浏览器
中使用的XML数据格式, 用于描述活动通道的内容和桌面部件,指明通道的信息及
其更新情况。CDF 使不同平台的互操作成为可能,使Web发布者可以控制推(push)
技术。专用的推技术将不再影响不同推技术的互操作性,这样一来,从互不兼容的
平台上可以获得相同的Web内容。
开放式财务交换OFX
OFX(Open Financial Exchange)也是XML的一种标记集,用于描述会计事务所
与客户之间的业务往来。使用OFX,客户与会计事务所之间可以直接交换财务数据
,包括电子银行和支付协议等说明文件。
为了推动XML的使用,W3C已经批准了XML标准1.0版本,相信XML 10的颁布会
带动大批高级的Web应用,用户必须从现在起开始考虑用XML来书写Web页面。但是
XML的大量使用并不意味着HTML会马上消亡。习惯的势力是强大的,正如Cobol语言
在很长的一段时间里没有退出历史舞台一样,由于现存的大量的Web页面都是用
HTML书写的,HTML决不会轻易退出使用。可以预计,在未来的5年内,XML将和
HTML携手并肩共同使用在Web应用的不同领域中。
XML网络资源
推荐网站
http://www-900.ibm.com/developerWorks/cn/xml/index.shtml
http://bbs.xml.org.cn/list.asp?boardid=3
http://www.perfectxml.com/也是一个学习xml不错的站点。
一. XML的大本营
XML是由W3C(World Wide Web Consortium)国际组织负责开发和制定标准的。关于XML最权
威,最新的消息都来自W3C。网址是:http://w3c.org/XML/
另外一个名为OASIS的前著名的SGML研究组织也在一起推动XML的发展,网址是:http://w
ww.oasis-open.org/
二. XML指南
W3C关于XML规范的详细,完整的说明。不用多说,绝对权威。
http://www.xml.com/axml/testaxml.htm
这是Tim Bary写的XML规范说明书,非常的详细和严密,是学习XML规范的好帮手。
三. XML常见问题
Peter Flynn的 XML FAQ
包含大量详细的资料,经常更新,由W3C协会XML组维护。
Lisa Rein’s finetuning XML FAQs
http://www.finetuning.com/faq.html
这个FAQ列表有侧重点,主要包含XSLT FAQ,XPath FAQ和IE5中的XSL FAQ。
Dave Pawson’s XSL FAQ
http://www.dpawson.co.uk/xsl/idx.html
提供最好的关于XSL方面的FAQ,创建于1999年。
jGuru’s Extensible Markup Language (XML) FAQ
http://www.jguru.com/jguru/faq/faqpage.jsp?name=XML
这个FAQ列表是一个典型的"老百晓",任何问题,从普通的到非常细节的XML问题都可以在
这里找到。
Ronald Bourret’s XML Namespaces FAQ
http://www.informatik.tu-darmstadt.de/DVS1/staff/bourret/xml/
NamespacesFAQ.htm
创建于2000初,是关于namespaces概要的FAQ。
四. XML主题网站
一个以XML为主题的内容丰富的网站
另一个比较知名的XML网站,提供XML的新闻和资讯。
网站创建者James Tauber’s是W3C组织XML发展组的成员之一,他的网站提供了大量的连接
和例子。
网站创建者Simon St. Laurent也是XML发展组的成员。他是W3C中XML初级入门教程的作者
,他的站点主要提供有关XML的发展信息。
http://msdn.microsoft.com/xml/c-frame.htm#/xml/default.asp
微软的MSDN关于XML的主题网站。微软在推进XML应用方面不遗余力。
是XML info的姐妹网站,内容包括XML/DTD/XSL编辑软件,XML API软件等。
1999年9月建立的大型XML新闻网站,同时提供XML人才信息。
Apache软件基金会(ASF),提供了大量open source的XML和XSL的工具软件。
BizTalk是微软发起的以XML商业应用为目标的组织。BizTalk不是一个标准组织。
五. XML的编辑软件
目前XML文档的编辑软件依然很少。虽然我们可以手工编写,但是如果有一个好的软件(类
似用DW/FP编写HTML),可以减少差错和提高效率。下面是现有的一些编辑软件。
http://www.macromedia.com/software/dreamweaver/
Macromedia最新的Dreamweaver 4.0已经支持XML文档的编写。推荐使用。
http://www.microsoft.com/xml/notepad/intro.asp
微软在这方面向来不会落后,它推出的XML Notepad是一个非常小巧灵活的XML文档编辑器
。推荐使用。
http://www.adobe.com/prodindex/framemaker/prodinfosgml.html
Adobe公司的Framemaker plus是目前较好的XML编辑软件。
Arbortext公司是重点开发XML游戏的公司。
Inso,好象是用来处理大型SGML或者XML文档的软件。
Softquad 是HTML和SGML软件的开发商,对XML自然不会放过。
六. 支持XML的浏览器
http://www.microsoft.com/windows/ie/
IE 5.X是目前流行浏览器唯一支持XML的,它可以在微软的网站免费下载到。
http://developer.netscape.com/software/communicator/ngl/
index.html?cp=dev09fg01
Gecko是另一种支持XML的浏览器,但目前只是测试版。
七. XML parser
Parser是一个检查XML文档语法是否符合DTD定义,并进行解析的软件。
在线的parser
W3C组织提供的一个在线paeser。可以根据你在线提交的XML文档URL,进行验证和解吸。
http://www.stg.brown.edu/service/xmlvalid/
一个Brown大学科技小组提供的parser,非常方便和容易理解。。
可下载的Parser
有很多可以下载到本机上运行的parser,下面列出一些主要的:
http://www.jclark.com/xml/expat.html
James Clark是在SGML/XML领域的元老,他写的parser被广泛的运用。
http://www.alphaworks.ibm.com/tech/xml
一个以Java语言编写的Parser,来自IBM。
http://www.microsoft.com/xml/parser/cparser.asp
微软的XML Parser,用C++写成。
http://www.microsoft.com/downloads/details.aspx?FamilyId=0CDD34BF-50EA-4238-84
6B-243C58FF224A&displaylang=en
用Python写的parser。
http://www.jeremie.com/Dev/XML/
用javascript写的parser,只用来检查语法,不进行解吸析。
http://w3c.org/RDF/Implementations/SiRPAC/
来自W3C组织的SiRPAC,全称是Simple RDF Parser and Compiler。
八. Schema编辑软件
Schema我们前面介绍过,DTD就是一种Schema,我们可以手工写DTD,但现在已经有一些Sc
hema编辑软件来帮助我们更方便的建立DTD。
Extensibility这个软件被称为XML权威。可以以图形化方式建立和编辑schema,包括DTD文
件。
九. 国内XML资源
http://www.xml.net.cn/(admin注:该网站已不能访问了.)
XML中国论坛是一个非赢利的学术网站。由北京大学计算机科学与技术研究所创办,北大方
正集团公司提供赞助。
http://www.xml.org.cn:8188 (admin注:该网站已不能访问了.)
中国XML联盟将建立为国内第一个开放性网络标准组织,提供XML技术认证、咨询和交流。
由上海易方公司赞助。
chinaasp.com的子站,提供XML文章和技术交流等。
http://www.egroups.com/group/china_xml_list/info.html
中国XML邮件组包括中文XML资源, XML的最新资料,同行的交流空间。由非盈利性组织中国
XML联盟负责维护。
http://weblab.crema.unimi.it/xmlzh/XML_FAQ.htm
1。W3C 的网站
2。XML.com
3。xml zone
4。XML.org
5。XML Cover Pages
6。OASIS
7。XMLINFO.com
8。STARTKABEL
9。XMLAdvantage
10。Chinese XML Now!
11。simonstl.com
12。XML ARENA
13。XML 资源目录
14。XML Tree
XML 教程:
1。XML FAQ
2。无废话 XML -- 网上最好的 XML 入门教程
http://2tigers.net/xml_book/wfhxml_gb.zip
http://www.xml.org.cn:8188/docs/download/wfhxml_gb.zip
http://www.helpwork.net/downdata/bo...k/wfhxml_gb.zip
3。XML Bible
http://www.ibiblio.org/xml/books/bible/
http://www.mmg.vmei.acad.bg/xml/
《XML Bible》的中译本为中国水利水电出版社的《XML实用大全》一书,XML 中国论坛已
将此书做成了电子版共享,请看这里:
http://www.xml.net.cn/ASPs/book_catalog.asp?bookid=02
在此向 XML 中国论坛所做出的努力表示由衷的感谢!
4。IBM 站点上的 XML 教程 (需注册)
http://www.ibm.com/developerworks/xml/
http://www.ibm.com/developerworks/e...ecourse-bytitle
http://www.ibm.com/developerworks/webservices/
http://www-900.ibm.com/developerWorks/xml/
(IBM 的 DeveloperWorks 中文版上的 XML 专栏,强烈推荐!)
5。W3Schools.com
6。zvon.org
7。xmlpitstop.com
8。Cafe con Leche XML News and Resources
9。一个免费 XML 教程的列表
http://www.intelinfo.com/newly_rese...aining/XML.html
比较好的 XML 编辑器:
1。XML Spy
2。EditML Pro
3。PSGML for Emacs
http://sourceforge.net/projects/psgml/
与 XML 技术有关的软件项目:
1。支持 XML 的浏览器 -- Mozilla
http://www.mozilla.org/newlayout/xml/
2。Apache 基金会的 XML 项目
3。Apache 基金会的 Jakarta 项目
4。可用的 XML 软件列表
5。可用的 XML 软件列表
http://www.oasis-open.org/cover/publicSW.html#xmlTools
6。XML hack
7。Sun 站点上的 XML 软件
http://www.sun.com/software/xml/
http://www.sun.com/xml/developers/
8。IBM 站点上的 XML 软件
http://www.ibm.com/developerworks/xml/
9。Oracle 站点上的 XML 软件
http://technet.oracle.com/tech/xml/
10。XSLT.com
11。SOAP & WebServices
12。XML-RPC
13。WDDX
14。Komodo
http://aspn.activestate.com/ASPN/Downloads/Komodo/More
15。XML with Java
16。XML with Perl
17。XML with C
18。Free XML Tools and Software
http://www.garshol.priv.no/download/xmltools/
电子商务:
1。ebXML
2。UDDI
3。XML/EDI