(一):XML快速入门
前言
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:
第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;
第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。
提纲
本文共分五大部分。分别是XML快速入门,XML的概念,XML的术语,XML的实现,XML的实例分析。最后附录介绍了XML的相关资源。作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方方面面,帮助你拨开XML的神秘面纱,快速步入XML的新领域。
第一章:XML快速入门
一. 什么是XML?
二. XML是新概念吗?
三. 使用XML有什么好处?
四. XML很难学吗?
五. XML和HTML的区别
六. XML的严格格式
七. 关于XML的更多
一. 什么是XML?
这往往是第一个问题,也往往在第一个问题上你就会搞不明白,因为大多的教材上这样回答:
XML是Extensible Markup Language的简写,一种扩展性标识语言。
这是标准的定义。那么什么是标志语言,为什么叫扩展性?已经让人有些糊涂。我想我们这样来理解会好一些:
对HTML你已经非常熟悉了吧,它就是一种标记语言,记得它的全称吗:"Hypertext Markup Language" 超文本标记语言。明白了?同时,HTML里面有很多标签,类似
sample | sample |
Symbol | 含 义 | 举 例 |
#PCDATA | 包含字符或文本数据 | 元素MYFILE包含一个文本数据 |
#PCDATA, element-name | 包含文本和其它子元素 | MYFILE元素必须包含文本和TITLE子元素 |
, | 使用逗号分隔排序 | MYFILE元素必须依次包含TITILE,AUTHOR,EMAIL三个子元素 |
| | 使用"|"表示或者 | MYFILE元素必须包含TITLE,或者AUTHOR或者EMAIL子元素 |
name | 只能使用一次 | MYFILE元素必须包含TITLE子元素,而且只能使用一次。 |
name? | 使用一次或者不使用 | MYFILE元素必须包含TITLE子元素,而且只能使用一次;可以包含或者不包含AUTHOR和EMAIL子元素,但是如果使用,只能一次。 |
name+ | 使用至少一次或多次 | MYFILE元素必须包含TITLE子元素,而且使用至少一次;接下来可以跟随AUTHOR子元素,也可以不跟;最后必须包含EMAIL子元素,而且只能使用一次。 |
name* | 使用一次,多次,或者根本不使用 | MYFILE元素可以包含一个,多个或者不包含TITLE子元素 |
( ) | 设置组,可以嵌套 |
|
另外,我们还可以为元素定义属性,因为我们不推荐使用属性,在这里就不详细展开了。
最后,我们来总结一些前四章学习的内容,写一个包含DTD,XML,以及Script的简单实例,便于读者理解:
1.将下面文件存为myfile.dtd
2.然后建立XML文档myfile.xml:
3.建立HTML文档myfile.html
第五章:XML实例解析
提纲:
一:实例效果
二:实例解析
1.定义新标识。
2.建立XML文档。
3.建立相应的HTML文件。
XML在不同领域有着广泛的应用,比如在科技领域的MathML,无线通信应用的WML,在网络图象方面的SVG等等,我们这里侧重讨论XML在web上的应用。XML在web上应用主要是利用其强大的数据操作能力。一般用XML配合javascript和asp等服务器端程序,可以实现网络上几乎所有的应用需求。
考虑讲解方便,我们在下面介绍一个简单的实例,不包含服务器端程序。目的在于让您对XML的数据操作能力有一个感性的认识。
好,我们首先[ 点击这里]来看实例的效果。(请用IE5.0以上版本浏览器打开)
这是一个简单的CD唱片数据检索功能。你通过点击"上一张","下一张"可以看到单张CD的有关信息。这样的效果我们原来用两种方法可以实现:
1.利用DHTML,将数据隐藏在不同的层中,通过鼠标事件依次显示;
2.利用后台程序(如ASP,CGI,PHP,JSP等),调用服务器端的数据。
但是在这个实例中,我们打开页面原代码可以看到,其中没有用DHTML的DIV,也没有表单的action,它完全是用XML来实现的。下面我们来分析它的制作过程:
第一步:定义新标识。
根据实际的CD数据,首先新建一个名为
以上元素的定义和关系都完全符合XML标准,不需要特别的DTD文件来定义,所以可以省略DTD定义。如果我们想使用DTD来定义,以上过程可以表示为:
这段代码表示:元素CATALOG包含多个CD子元素,而子元素CD又依次包含Title, Artist, Year, Country, Company, Price 六个子元素,它们的内容都定义为文本(字符,数字,文本)。(注:具体的语法说明可以看上一章关于DTD的介绍)
第二步:建立XML文档。
上面代码首先用声明语句表明这是一个XML文档,它的格式遵守XML 1.0标准规范。然后是文档内容,结构树非常清晰:
......
......
一共定义了5组数据。我们将上面的代码存为cd.xml文件,以备调用。
第三步:建立相应的HTML文件。
1.导入XML数据。
我们知道,目前流行的浏览器中,暂时只有微软的IE5.0以上版本浏览器支持XML。IE是通过在HTML中的object物件来支持插入XML,并通过js的XMLDocument.load()方法来导入数据。我们看代码:
CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso">
定义一个object,ID名为xmldso。然后在head区用js引入xml数据:
2.捆绑数据。
然后将用标识来将XML数据绑定在表格中。其中ID,DATASRC,DTATFLD都是的属性。代码如下:
Title:
Artist:
Year:
Country:
Company:
Price:
3.动作操作。
最后,为数据提供浏览按钮:
并利用js来完成两个鼠标点击功能:movenext()和moveprevious()。在head区加入如下代码:
好,我们先看HTML文件的全部原代码:
CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" ID="xmldso">
Title:
Artist:
Year:
Country:
Company:
Price:
将以上代码存为cd.htm文件,于第二步的cd.xml文件放在一起。打开cd.htm文件,你就看见和上面实例一样的效果了。
好,到今天为止,我们已经学习了关于XML的不少知识,我们来总结一下前面五个章节,分别是XML快速入门,XML的概念原理,XML的术语,XML的语法和本章的实例解析。到这里,教程部分就结束了。在写作过程中,阿捷尽最大努力将有关XML概念讲得通俗易懂,尽量把自己的理解告诉给大家,但因为本人学习XML时间也不长,对整个XML的技术把握还不够系统和深入,所以难免有疏漏的地方,请大家指正和谅解,谢谢!
在教程最后,附带一章"XML的相关资源",提供了许多非常好的学习网站和资源连接,推荐您保存下来。请继续浏览:XML的相关资源。
第六章:XML相关资源
一. XML的大本营
二. XML指南
三. XML常见问题
四. XML主题网站
五. XML的编辑软件
六. 支持XML的浏览器
七. XML parser
八. Schema编辑软件
九. 国内XML资源
一. XML的大本营
XML是由W3C(World Wide Web Consortium)国际组织负责开发和制定标准的。关于XML最权威,最新的消息都来自W3C。网址是:http://w3c.org/XML/
另外一个名为OASIS的前著名的SGML研究组织也在一起推动XML的发展,网址是:http://www.oasis-open.org/
二. XML指南
http://www.w3.org/TR/REC-xml
W3C关于XML规范的详细,完整的说明。不用多说,绝对权威。
http://www.xml.com/axml/testaxml.htm
这是Tim Bary写的XML规范说明书,非常的详细和严密,是学习XML规范的好帮手。
三. XML常见问题
Peter Flynn的XML FAQ
http://www.ucc.ie/xml/
包含大量详细的资料,经常更新,由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主题网站
http://www.xml.com/
一个以XML为主题的内容丰富的网站
http://www.xml-zone.com/
另一个比较知名的XML网站,提供XML的新闻和资讯。
http://www.xmlinfo.com/
网站创建者James Tauber’s是W3C组织XML发展组的成员之一,他的网站提供了大量的连接和例子。
http://www.simonstl.com/
网站创建者Simon St. Laurent也是XML发展组的成员。他是W3C中XML初级入门教程的作者,他的站点主要提供有关XML的发展信息。
http://msdn.microsoft.com/xml/c-frame.htm#/xml/default.asp
微软的MSDN关于XML的主题网站。微软在推进XML应用方面不遗余力。
http://www.xmlsoftware.com/
是XML info的姐妹网站,内容包括XML/DTD/XSL编辑软件,XML API软件等。
http://xmlhack.com/
1999年9月建立的大型XML新闻网站,同时提供XML人才信息。
http://xml.apache.org/
Apache软件基金会(ASF),提供了大量open source的XML和XSL的工具软件。
http://www.biztalk.org/
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编辑软件。
http://www.arbortext.com/
Arbortext公司是重点开发XML游戏的公司。
http://www.inso.com/
Inso,好象是用来处理大型SGML或者XML文档的软件。
http://www.softquad.com/
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
http://validator.w3.org/
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.stud.ifi.uio.no/~larsga/download/python/xml/xmlproc.html
用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,但现在已经有一些Schema编辑软件来帮助我们更方便的建立DTD。
http://www.extensibility.com/
Extensibility这个软件被称为XML权威。可以以图形化方式建立和编辑schema,包括DTD文件。
九. 国内XML资源
http://www.xml.net.cn/
XML中国论坛是一个非赢利的学术网站。由北京大学计算机科学与技术研究所创办,北大方正集团公司提供赞助。
http://www.xml.org.cn:8188
中国XML联盟将建立为国内第一个开放性网络标准组织,提供XML技术认证、咨询和交流。由上海易方公司赞助。
http://www.xml.com.cn/
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
一个XML FAQ邮件列表的中文翻译,可惜是1998年10月的。
-------------- 全文完-----------
以上就是XML轻松学习手册的内容,更多相关内容请关注PHP中文网(www.php.cn)!