XHTML
XHTML是什么
- XHTML 指可扩展超文本标签语言(EXtensible HyperText Markup Language)。
- XHTML 的目标是取代 HTML。
- XHTML 与 HTML 4.01 几乎是相同的。
- XHTML 是更严格更纯净的 HTML 版本。
- XHTML 是作为一种 XML 应用被重新定义的 HTML。
- XHTML 是一个 W3C 标准。
为什么使用XHTML
简单地说,XHTML是HTML与XML的结合物。HTML用来显示数据,而XML用来描述数据。XHTML可以被所有的支持XML的设备读取,同时在其余的浏览器升级至支持 XML 之前,XHTML 使我们有能力编写出拥有良好结构的文档,这些文档可以很好地工作于所有的浏览器,并且可以向后兼容。XHTML语法
- XHTML 元素必须被正确地嵌套。
- XHTML 元素必须被关闭。
- 标签名必须用小写字母。
- XHTML 文档必须拥有根元素。
- 属性名称必须小写。
- 属性值必须加引号。
- 属性不能简写。
下面是一个HTML的简写属性列表,以及在XHTML中的改写
用 Id 属性代替 name 属性。
XHTML DTD 定义了强制使用的 HTML 元素。
XHTML DTD
XHTML定义了三种文件类型声明:
- STRICT(严格类型)
- TRANSITIONAL(过渡类型)
- FRAMESET(框架类型)
XHTML 1.0 Strict
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
在此情况下使用:需要干净的标记,避免表现上的混乱。
XHTML 1.0 Transitional
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
在此情况下使用:当需要利用 HTML 在表现上的特性时,并且当需要为那些不支持层叠样式表的浏览器编写 XHTML 时。
XHTML 1.0 Frameset
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
如何升级到XHTML
- 添加文件类型声明
- 小写的标签和属性名
- 给所有属性加上引号
- 空标签:
<hr>,<br>,<img>
中需要加上/ - 验证站点
XHTML模块
XHTML模块化的原因
通过将 XHTML 分为若干模块,W3C 已经创造出数套小巧且定义良好的 XHTML 元素,这些元素既可被独立应用于简易设备,又可以与其他 XML 标准并入大型且更复杂的应用程序。
通过使用模块化的 XHTML,产品和软件设计者可以:
- 选择被某种设备所支持的元素。
- 在不打破 XHTML 标准的情况下,使用 XML 对 XHTML 进行扩展。
- 针对小型设备,对 XHTML 进行简化。
- 通过添加新的 XML 功能(比如 MathML, SVG, 语音和多媒体),针对复杂的应用对 XHTML 进行扩展。
- 定义 XHTML 框架,比如 XHTML BASIC (针对移动设备的 XHTML 子集)。
XHTML模块
XHTML 标准属性
核心属性 (Core Attributes)
语言属性 (Language Attributes)
键盘属性 (Keyboard Attributes)
XHTML 事件属性
HTML 4.0 的新特性之一是使 HTML 事件触发浏览器中的行为,比方说当用户点击一个 HTML 元素时启动一段 JavaScript 。以下就是可被插入 HTML 标签以定义事件行为的一系列属性。
窗口事件 (Window Events)
仅对body和frameset元素有效
表单元素事件 (Form Element Events)
仅对表单元素中有效。
键盘事件 (Keyboard Events)
在下列元素中无效:base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style, 以及 title 元素。
鼠标事件 (Mouse Events)
在下列元素中无效:base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style, title 元素。
XML
XML被设计用来传输和存储数据。
什么是 XML
- XML 指可扩展标记语言(EXtensible Markup Language);
- XML 是一种标记语言,很类似 HTML;
- XML 的设计宗旨是传输数据,而非显示数据;
- XML 标签没有被预定义。您需要自行定义标签;
- XML 被设计为具有自我描述性;
- XML 是 W3C 的推荐标准。
XML与HTML 的主要差别
- XML 不是 HTML 的替代;
XML 和 HTML 为不同的目的而设计; - XML 被设计为传输和存储数据,其焦点是数据的内容;
- HTML 被设计用来显示数据,其焦点是数据的外观;
- HTML 旨在显示信息,而 XML 旨在传输信息。
XML没有任何行为
XML仅仅是纯文本,有能力处理文本的软件都可以处理XML,通过XML你可以发明自己的标签,同时,XML是对HTML的一种补充,所以并不会代替HTML,XML是独立于软件和硬件的信息传输工具。
XML的用途
XML常用于web开发的许多方面,比如简化数据的存储和共享,XML可以把数据从HTML分离。
XML 树结构
XML文档形成了一种树结构,它从根部开始,然后扩展到枝叶。
一个XML文档实例
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
- 第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集);
- 下一行描述文档的根元素(像在说:“本文档是一个便签”);
- 接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body);
- 最后一行定义根元素的结尾。
树结构:
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
XML 语法
- 所有XML 元素都必须有关闭标签
- XML 对大小写敏感
- XML 必须正确嵌套
- XML 必须有根元素
- XML 的属性必须加引号
- 实体引用
- XML 中的注释
<!-- This is a comment -->
- 在XML中,空格会被保留
- XML 中以LF存储换行
XML元素
XML元素是什么
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
XML 命名规则
- 名称可以含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字符 “xml”(或者 XML、Xml)开始
- 名称不能包含空格
最佳命名习惯
使名称具有描述性。使用下划线的名称也很不错。
名称应当比较简短,比如:
避免 “-“ 字符。如果您按照这样的方式进行命名:”first-name”,一些软件会认为你需要提取第一个单词。
避免 “.” 字符。如果您按照这样的方式进行命名:”first.name”,一些软件会认为 “name” 是对象 “first” 的属性。
避免 “:” 字符。冒号会被转换为命名空间来使用(稍后介绍)。
XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的名称规则来命名 XML 文档中的元素。
非英语的字母比如 éòá 也是合法的 XML 元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。
XML 是可扩展的
XML 的优势之一,就是可以经常在不中断应用程序的情况下进行扩展。
XML属性
XML属性
属性通常提供不属于数据组成部分的信息。<file type="gif">computer.gif</file>
对于上面这个例子,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要。
XML 属性必须加引号
属性值必须被引号包围,不过单引号和双引号均可使用。
XML 元素 vs. 属性
元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
XML 查看
XML 文档不会携带有关如何显示数据的信息。
由于 XML 标签由 XML 文档的作者“发明”,浏览器无法确定像