首先,需求为了使 XHTML 1.0 文档符合其元语言 (XML),必须考虑几个需求和规则。如下所示:
建议、但不要求使用 XML 声明将 XHTML 1.0 文档声明成 XML 文档。要求 XHTML 1.0 文档包含一个 DOCTYPE,指明这是XHTML 1.0 文档,并指出该文档所用的 DTD。XHTML 1.0 文档有一个根元素 <html>。该 HTML 元素的开始标记应该包含 XML 名称空间 xmlns 和该名称空间的合适值。 文档的语法和结构必须符合 XHTML 语法规则。实现该目标的第一步是正确组织 XHTML 1.0 文档的结构。将从添加正确的声明和文档信息开始。
文档声明、类型和名称空间 XHTML 1.0 文档可以包含几个结构元素,以便被认为是正确的:一个 XML 声明、一个 DOCTYPE 声明,并包括名称空间。 XML 声明允许作者将其文档声明成 XML,并包括文档所用的编码。 <?xml version="1.0" encoding="UTF-8"?> 如前面提到的,建议使用此声明,但这不是必需的。不强制使用的部分原因是:如果使用,则某些浏览器(包括 IE 4.5for Mac 和 Netscape 4.0 for Windows)将显示不正确的 XHTML 页面。因此,大多数对互操作性感兴趣的 XHTML 1.0 作者不使用它。但是,因为编码信息在很多情况下很重要(特别在使用国际化文档时),所以,如果不使用 XML 声明,则鼓励在 meta 标记中添加编码信息(在后面的清单 2 中显示)。
在 XML 文档声明的下面 - 如果选择不使用它,则位于文档顶部 - 必须放置 DOCTYPE 声明。DOCTYPE 允许作者声明所用的文档类型。在本例中,文档类型是 XHTML 1.0,该文档要符合的特定 XHTML 1.0 DTD 为 strict。
XHTML 1.0 中只有三种 DTD。它们来自 HTML 4.0,其内容如下:
Strict:Strict 遵循最严格的 XHTML 规则。在以该类型编写的文档中,只允许出现当前元素、属性和字符实体。不允许出现 HTML 4.0 所反对的元素(如 font 或 center)。也不允许过时的元素。Strict 声明如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- strict.dtd"> Transitional:transitional XHTML 1.0 文档更宽容一些,它允许作者使用所反对的和当前的方法。可以在transitional 文档中使用 font 或 center,或任何其它所反对的标记,只要文档本身标记正确即可。不应该使用过时的元素。如果在用 XHTML 1.0 编写 transitional 文档,将包括以下声明: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> Frameset: frameset DTD 只为 frameset 文档保留。符合该 DTD 的 frameset 文档可以使用 strict 或 transitional标记。要以 XHTML 1.0 创建 frameset 文档,在文档顶部包括这个 DOCTYPE: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 确定了是否使用 XML 声明,并且添加了定义要遵循的标记规则的 DOCTYPE 声明之后,需要将 HTML 根添加到文档,并相应设置 XHTML 名称空间: <html xmlns="http://www.w3.org/1999/xhtml"> 此时,要添加一些必需的结构元素,如 head、title 和 body。清单 1 显示包括 XML 声明的 XHTML 1.0 transitional文档外壳。在清单 2 中,将看到不带 XML 声明的 transitional 文档,但是,有一个 meta 标记来声明所用字符集。
清单 1:带有 XML 声明的 Transitional DTD 格式的 XHTML 1.0 文档 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Transitional Document with XML Declaration</title> </head> <body> </body> </html> 在清单 2 中,将看到不带 XML 声明的 transitional 文档,但是,有一个 meta 标记来声明所用字符集。
清单 2:不带 XML 声明的 Transitional DTD 格式的 XHTML 1.0 文档 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Transitional Document without XML Declaration</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> </head> <body> </body> </html>
语法事项 一旦 XHTML 文档包含必需的声明和结构信息,就可以检查由 XML 在 Web 标记上的影响而导致的语法更改。这些语法更改包括是否区分大小写、正确格式的标记元素、空和非空元素,以及引号的使用。
|