12

是否存在同时支持 XHTML 1.0 过渡支持和 RDFa 支持的 W3C 文档类型?

我知道 XHTML+RDFa 1.0 ( http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd ) DTD 但这是与我当前网站不兼容的 XHTML 1.1。似乎还有一个 HTML4+RDFa 1.0 ( http://www.w3.org/MarkUp/DTD/html4-rdfa-1.dtd ) DTD 可用。

我不提供 XHTML 1.1 的主要原因当然是 Internet Explorer,尽管如果没有其他方法,我可能会将其作为文本/html 提供给 IE 用户。

4

2 回答 2

10

我不相信有这样的DTD,不。

HTML 变得越来越碎片化,为每种可能的组合创建 DTD 将变得不切实际。HTML5 不是基于 SGML 的,并且有效地放弃了 DTD。将来,验证器可能必须进行更改,以便调用 RDFa 和 ARIA 等组件集合,并在其结果中指出需要哪些集合才能使每个特定的标记符合要求。

不幸的是,我们目前确实处于过渡点,因此您的问题没有干净的解决方案。但是,一定程度的实用主义会让你走得很远。

现在,DTD 可以将 XHTML+RDFa 1.0 定义为 XHTML 1.1 的扩展,但它实际上不是 XHTML 1.1,也不是 XHTML 1.0 过渡或严格,或者实际上不是“XHTML+RDFa 1.0”。

所以你可以采取务实的服务方式。考虑一下 HTML5 对此的态度。它表示任何作为 text/html 的内容都是对象模型的 HTML 序列化,而不管您声明的任何 DOCTYPE。这实际上是浏览器所做的。

同样,您使用 XML 内容类型(例如 application/xhtml+xml)提供的任何内容都是 XML 序列化。XML 中具有 xhtml 名称空间的那些部分构成了 XHTML。

因此,在实践中,您可以毫无困难地将 XHTML+RDFa 1.0 作为 text/html 或 application/xhtml+xml 提供,前提是标记满足多语言文档的要求。

这就留下了验证。撇开 RDFa 不谈,您使用的标记是否符合 XHTML 1.0 Transitional 但不符合 XHTML 1.1?如果是这样,你是否足够关心完美的验证来改变这些,或者放弃使用 RDFa?假设您使用 RDFa 是为了让您的用户受益,而验证本质上是一种方便您自己的工具。

当我决定将 ARIA 属性添加到我的 XHTML 1.0 页面时,我最近遇到了类似的情况。我认为可访问性胜过有效性,我会添加属性而忘记确保我的页面 100% 有效。

于 2010-02-24T01:41:13.010 回答
1

实际上,除非您关心 DTD 实现,否则各种 XHTML 版本之间几乎没有区别,而且几乎没有不使用 XHTML 1.1 的正当理由。您的网站以何种方式依赖于 1.0 过渡?如果您可以通过 1.0 strict 使您的站点有效,那么从该版本迁移到 1.1 应该不会引起问题,因为本质上唯一的区别是模块化的 DTD,它确实没有任何缺点。

如果您仍在为 XHTML MIME 的哲学问题苦苦挣扎,我不会担心,因为从概念上讲,使用组织得更好的 1.1 DTD 提供错误的媒体类型并不比使用 1.0 更犯罪。之所以按原样实现 RDFa,是因为将 RDFa 模块添加到 XHTML 1.1 DTD 只涉及向主模块添加几行代码。对 1.0 DTD 这样做会更难,也不会那么干净。

需要考虑的其他一些事情是 XHTML 1.1 第二版规范包括一个 XML 模式实现。此外,最新的 XHTML+RDFa 1.1 工作草案最终完全放弃了指定文档类型的(愚蠢的)要求,因此您可以使用仅模式验证。如果您能找到一种使用 XML/XHTML mimetypes 的方法,这将非常有效,因为不需要 doctype 声明即可在支持它的浏览器上获得标准模式呈现(除 IE8 及以下之外的所有浏览器)。

于 2011-01-31T21:05:14.157 回答