@H_502_2@
一 XML 简介
(一)什么是 XML?
@H_502_2@ 指可扩展标记语言(EXtensibleMarkup Language),
@H_502_2@@H_502_2@ 是一种标记语言,很类似HTML
@H_502_2@@H_502_2@ 设计宗旨:传输数据,而非显示数据
@H_502_2@@H_502_2@ 标签没有被预定义,需要自行定义标签。
@H_502_2@@H_502_2@ 被设计为具有自我描述性。
@H_502_2@@H_502_2@ 是 W3C 的推荐标准
@H_502_2@
(二)XML 与 HTML 的主要差异
@H_502_2@XML 不是 HTML 的替代,而是对 HTML 的补充;XML 和 HTML 为不同的目的而设计:
@H_502_2@
(三)XML 的用途
@H_502_2@应用于 web 开发的许多方面,常用于简化数据的存储和共享。
@H_502_2@XML 把数据从 HTML 分离
@H_502_2@简化数据传输,在不兼容的系统之间轻松交换数据。
@H_502_2@简化平台的变更
@H_502_2@使数据更有用,独立于硬件、软件、应用程序。
@H_502_2@用于创建新的Internet语言
(四)XML 树结构
@H_502_2@ XML 文档形成了一种树结构,从“根部”开始,扩展到“枝叶”。XML 文档有且仅有一个根元素/父元素。XML 具有出色的自我描述性。
@H_502_2@
@H_502_2@
二 XML 文档构建模块
@H_502_2@所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
元素 +属性+实体+PCDATA+CDATA
@H_502_2@下面是每个构建模块的简要描述:
(一)元素
@H_502_2@扩展:命名空间:避免元素命名冲突
@H_502_2@
(二)属性
@H_502_2@属性总是被置于某元素的开始标签中,类似 HTML。属性总是以名称/值的形式成对出现的。XML 属性必须加引号:单/双。
@H_502_2@从 HTML,你会回忆起这个:<img src="computer.gif">。"src" 属性提供有关 <img> 元素的额外信息。
@H_502_2@<img src="computer.gif">
@H_502_2@<ahref="demo.asp">
@H_502_2@<gangstername='George "Shotgun" Ziegler'>
@H_502_2@或者可以使用实体引用:
@H_502_2@<gangstername="George "Shotgun" Ziegler">
@H_502_2@
@H_502_2@小技巧: HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。@H_502_2@避免 XML 属性?因使用属性而引起的一些问题:
@H_502_2@ 请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
(三)实体
@H_502_2@实体是用来定义普通文本的变量。实体引用是对实体的引用。
@H_502_2@实体引用特殊字符被预定义
@H_502_2@
@H_502_2@ 注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。非法的 XML 字符必须被替换为实体引用(entity reference)。
@H_502_2@所有 XML 文档中的文本均会被解析器解析。只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。
(四)PCDATA
@H_502_2@PCDATA :被解析的字符数据(parsed character data)。
@H_502_2@PCDATA 是会被解析器解析的文本。文本中的标签会被当作标记来处理,而实体会被展开。不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。
(五)CDATA
@H_502_2@CDATA :字符数据(character data)。
@H_502_2@CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。
@H_502_2@CDATA 部分由 "<![CDATA["开始,由 "]]>" 结束
@H_502_2@关于 CDATA 部分的注释:
@H_502_2@CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。
@H_502_2@标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。
@H_502_2@
三 XML 验证
@H_502_2@形式良好的文档与合法文档之间的差异,以及如何规定 XML 文档的结构。
@H_502_2@形式/结构良好的XML:拥有正确语法规则
(一)语法规则:
@H_502_2@XML 文档必须有根元素
@H_502_2@XML 元素必须被正确的嵌套
(四)注释
@H_502_2@在 XML 中编写注释的语法与 HTML 的语法很相似:
@H_502_2@<!-- This isa comment -->
@H_502_2@HTML:把多个连续的空格字符裁减(合并)为一个
@H_502_2@XML:文档中的空格会被保留,不会被删节。