| <p>Here is section 1 my Web page.</p> <section> <h>Section 1.1 of my Web page</h> <p>Here is a subsection of my Web page.</p> </section> </section> <section> <h>Section 2 of my Web page</h> <p>Here is section 2 of my Web page.</p> </section> </section> </body> 在这一版本的代码中,“Here is a subsection” 段落是第一个 section 元素的曾孙元素,这个 section 元素中的 “My Web Page” h 元素显示了其主标题 — 正应该如此!
这种丰富结构的优势之一(也是 XHTML 2 比 XHTML 1 更适合充当单源发布系统的中心格式的一个关键原因)就是更容易进行流处理。如果您需要处理大量的输入而无法在处理之前把这些输入加载到内存中 — 比如说,如果要为 CD-ROM 准备内容 — 处理会更容易计算出每个 sectiong 元素在 XHTML 2 文档中的哪里结束。比如说,假设我们想要调出所有标题中含有单词 “Beagle” 的部分。找到这些标题足够简单,但是要在 XHTML 1 中决定 section 在哪里结束就不是一般的困难了。对这种 XHTML 的处理是否使用了基于流的接口、Xquery 或者 XSLT,清楚地定义 section 的结束位置可以使提取简单很多。
现在,设想您提取这些 section 因为您将把他们加入到关于 beagle 的新发布中,而且调出的每一个 section 都有一个 h3 元素作为其题头。标有数字的 XHTML 1 题头,如 h3,在 XHTML 2 中仍然合法,但是如果新的发布将使用这些元素作为一个特别章节中的主 section,或者子 section 会怎样呢?您需要回去并把 h3 元素修改为 h2 元素或者 h4 元素,或者任何能在新上下文中识别自己角色的元素。如果它们在原始文档中是 XHTML 2 的 h 元素,通过每个 section 祖先元素的数字指示出它们角色的等级(比如说,清单 2 中的 section 1.1 h 元素有三个 section 头祖先元素,而 “My Web Page” h 元素只有一个),那么您可以把它们插入未经修改的新文档中,通过新文档的 section 元素的嵌套排列指示出其角色。CSS、XSLT 和其他 XML 处理工具和标准都提供了一种根据嵌套层次处理同名元素的方法,因此我们不会错过作为 XHTML 1 题头一部分的数字。我们考虑有 h2 和 h3 元素但是没有 h1 元素,或者有h1 和 h3 元素但是没有 h2 元素的 (X)HTML 文档的数目时,很明显太多人不会使用它们指示合适的等级。
在 XHTML 2 中,p 元素中还可以有更多的结构。我想介绍一些语句中的示例代码,比如说下面这个:
print "Hello? World?";
如果我想要在示例代码之后继续该语句,XHTML 1 会强制我把语句分成两部分放在两个不同的 p 元素中,不过从语义上说它们位于同一个语句中。XHTML 2 让我们把示例代码、无序列表和编号列表和许多其他块元素放置在一个 p 元素中,让我们的标记能更准确地反映出文档的结构。
从表示标记到结构型标记还要一小步,把 hr 元素重命名为 separator。HTML 工作小组(HTML Working Group)发现其原始名称(代表 horizontal rule)经常落入结构型标记和表示标记之间的灰色区域。他们收到了一些使用亚洲国家语言的用户发出的 vertical rule 请求,他们看到许多水平分离器并不是真正的规则(HTML 工作小组的主席 Steven Pemberton 作了一个陈述,其中指出了 James Joyce 的 Ulysses 中的几个不同的变种;请参阅 参考资料 以获得到该陈述的链接)。这使得他们把 hr 元素重命名为能更准确地返回其使用的名称并在陈述中允许了更强的灵活性。
设备独立性更好、更易访问、语义更完善
|
| 共5页: 上一页 [1] [2] 3 [4] [5] 下一页 |
评论加载中…