2008年7月1日星期二

XML_001:XML是个啥东东?

要说XML,必须从HTML说起。
【HTML】:HyperText Markup Language,超文本标记语言。
“HTML是为网页创建和其它可在网页浏览器中看到的信息设计的一种置标语言。HTML被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。”(摘自http://zh.wikipedia.org/wiki/HTML
HTML的最新版本是4.0.1,由W3C在1999年12月制定,规范详细内容请访问:http://www.w3.org/TR/html4/

不难发现,HTML的缺陷就在它自己的定义中:描述文档的外观。HTML中有很多标签可以对布局和外观有很好的掌控,但对内容本身却缺乏表达能力。
比如说HTML可以用多种方式(列表、表格)的方式显示出一个订单,而却无法知道哪个信息是产品名称,哪个是产品价格,也就是说HTML中没有一个标签是用来描述产品名称和产品价格的。
于是,一些人开始思考:开发网页时,能不能把信息的展现方式和信息内容本身分开来呢?
答案当然是肯定的,它就是XHTML+CSS。

【XHTML】:eXtensible HyperText Markup Language,可扩展超文本标记语言。
XHTML与HTML类似,不过语法上更加严格。
XHTML的最新版本是1.1,由W3C在2007年2月制定,规范详细内容请访问:http://www.w3.org/TR/xhtml11/
强烈建议使用XHTML 1.1进行网页开发。
XHTML与HTML 的区别主要有以下4点:
1. 元素和属性的名称一律用小写字母。
2. 所有的元素必须要正确关闭。空标签的自闭方法如下:在标签的“>”符号前加上一个空格和一个反斜杠“/”。例如 <hr />。
3. 元素之间的嵌套关系一定要正确。
4. 属性值必须要用双引号“"”引起来。

如何验证网页是否符合XHTML1.1的严格标准:
http://www.w3school.com.cn/xhtml/xhtml_validate.asp
输入网页地址即可验证,我用我的blog试了一下,竟然有119 Errors, 96 warning(s) 。天啊,难道我的blog这样不守规矩吗?

常见错误提示:
1. required attribute X not specified:元素中缺少必须的属性。
2. end tag for X omitted, but OMITTAG NO was specified:元素没有关闭。
3. XML Parsing Error:
(1)Opening and ending tag mismatch:元素开闭标签不匹配。
(2)特殊符号如:<、>、&未用编码表示。

【CSS】:Cascading Style Sheets,层叠样式表。
“CSS是一种用来为结构化文档(HTML或XML)添加样式(字体、间距和颜色等)的计算机语言。”(摘自http://zh.wikipedia.org/wiki/CSS
CSS的最新版本是2.1,由W3C在2007年7月制定,规范详细内容请访问:http://www.w3.org/TR/CSS21/

【XML】:Extensible Markup Language,可扩展标记语言。
与XHTML使用国际通用的标记不同,XML可以使用人们自由决定的标记,这就是其语言的可扩展性。
XML的最新版本是1.0,由W3C在2006年9月制定,规范详细内容请访问:http://www.w3.org/TR/xml/
每个人都可以自由地制定自己的标记语言,不用再遵守大公司的条条框框,这是多么了不起的想法。实际上,许多行业已经有了自己的标记语言。比如:
CML:Chemistry Markup Language
MathML:Mathematical Markup Language

【XML Schema】
XML Schema 是一种描述XML文档结构语言。XML Schema本身也是一份XML文档,其XML名称空间为http://www.w3.org/2001/XMLSchema
XML Schema的最新版本是1.1,由W3C在2008年6月制定,规范详细内容请访问:http://www.w3.org/XML/Schema

【XPath】:XML Path Language,XML路径语言。
XPath是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
XPath的最新版本是2.0,由W3C在2007年1月制定,规范详细内容请访问:http://www.w3.org/TR/xpath20/

【XQuery】:XML Query Language,XML查询语言。
“解释XQuery 的最佳方式是:XQuery 相对于XML,等同于SQL 相对于数据库。”(摘自http://www.w3school.com.cn/xquery/index.asp
XQuery的最新版本是1.0,由W3C在2007年1月制定,规范详细内容请访问:http://www.w3.org/TR/xquery/

XPath与XQuery相同与不同:
“XPath 和XQuery 都能实现一些相同的功能,但是XPath比较简洁而XQuery更加强大和灵活。对于很多查询来说XPath 非常合适。
比如,从XML文档中的部分记录建立电话号码的无序列表,使用XPath实现最简单。
但是如果需要表达更复杂的记录选择条件的表达式、转换结果集或者进行递归查询,则需要使用XQuery。” (摘自http://www.ibm.com/developerworks/cn/xml/x-xqueryxpath.html

【XSLT】:Extensible Stylesheet Language Transformations,扩展样式表转换语言。
XSLT是把XML文档转化为另一文档的转换语言(利用XPath选择源文档的数据或者部分数据)。
它是XSL规范的一部分。XSLT是声明性的语言,本身只包含了一些转换规则的文档。这些规则可以被递归地应用到转换过程中。
XSLT本身也是一份XML文档,其XML名称空间为http://www.w3.org/1999/XSL/Transform
XSLT的最新版本是2.0,由W3C在2007年1月制定,规范详细内容请访问:http://www.w3.org/TR/xslt20/

名词解释:
1. 【W3C】:World Wide Web Consortium
万维网联盟为解决Web应用中不同平台、技术和开发者带来的不兼容问题,制定了一系列标准,其中包括XMLCSS等众多影响深远的标准规范。关于W3C更多信息请访问:http://www.w3.org/

参考文献:
1. 《无废话 XML》 作者:劳虎。
2. 《XML 教程》 作者:http://www.w3school.com.cn/xml/
3. 《XML Schema 教程》 作者:http://www.w3school.com.cn/schema/index.asp
4. 《XPath 教程》 作者:http://www.w3school.com.cn/xpath/index.asp
5. 《XQuery 教程》 作者:http://www.w3school.com.cn/xquery/index.asp
6. 《XSLT 教程》 作者:http://www.w3school.com.cn/xsl/index.asp
7. 《XQuery对XPath的扩展 》 作者:http://www.ibm.com/developerworks/cn/xml/x-xqueryxpath.html

没有评论: