代码之家  ›  专栏  ›  技术社区  ›  Wolph

带RFDA和XHTML 1.0过渡支持的DTD

  •  12
  • Wolph  · 技术社区  · 14 年前

    XHTML 1.0过渡支持和RDFA支持是否都提供W3C文档类型?

    我知道xhtml+rdfa 1.0( http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.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用户。

    2 回复  |  直到 13 年前
        1
  •  10
  •   Alohci    14 年前

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

    HTML正变得越来越零散,为每种可能的组合创建DTD将不现实。HTML5不是基于SGML的,有效地放弃了DTD。在将来,验证器可能必须进行更改,以便调用RDFA和ARIA等组件集合,并在结果中指出需要哪些集合来允许每个特定的标记片段保持一致。

    不幸的是,我们目前确实处于过渡点,所以没有一个清晰的解决方案来解决您的问题。但是,一定数量的实用主义会给你带来很大的帮助。

    现在,xhtml+rdfa 1.0可以由dtd定义为xhtml 1.1的扩展,但它实际上不是xhtml 1.1,也不是xhtml 1.0过渡或严格,或者实际上不是“xhtml+rdfa 1.0”。

    所以你可以采取务实的服务方式。考虑一下HTML5对此的态度。它指出,无论您声明什么doctype,您作为text/html的任何东西都是对象模型的HTML序列化。实际上浏览器就是这样做的。

    类似地,与XML内容类型(如application/xhtml+xml)一起使用的任何内容都是XML序列化。XML中那些具有XHTML名称空间的部分构成了XHTML。

    因此,在实践中,只要标记满足polyglot文档的要求,就可以毫无困难地将xhtml+rdfa 1.0作为文本/html或应用程序/xhtml+xml提供服务。

    这就剩下验证了。撇开RDFa不谈,您是否使用了符合XHTML 1.0过渡但不符合XHTML 1.1的标记?如果是这样,您是否足够关心完美的验证来更改这些验证,或者放弃使用RDFA?假设您使用RDFA是为了您的用户的利益,而验证实际上是您自己的一个方便工具。

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

        2
  •  1
  •   ormaaj    13 年前

    实际上,除非您关心DTD实现,否则不同的XHTML版本之间几乎没有区别,而且几乎没有任何有效的理由不使用XHTML 1.1。你的网站以什么方式依赖于1.0过渡?如果你能让你的站点在1.0严格的情况下有效,那么从1.1严格到1.1不应该引起问题,因为本质上唯一的区别是模块化的DTD,它确实没有缺点。

    如果你还在为XHTML mime的哲学问题而苦苦挣扎,我不会担心,因为从概念上讲,用组织得更好的1.1dtd服务于错误的媒体类型与1.0相比,更不算犯罪。之所以实现RDFa,是因为将RDFa模块添加到XHTML 1.1DTD中只需要向主模块添加几行。对1.0 DTD这样做会更困难,也不会那么干净。

    其他一些需要考虑的事情是XHTML 1.1第二版规范包含一个XML模式实现。另外,最新的XHTML+RDFa1.1工作草案最终放弃了对指定doctype的(愚蠢的)要求,因此您可以使用仅模式验证。如果您能找到一种使用XML/XHTML mimetype的方法,这就非常好地解决了,因为在支持它的浏览器(除了IE8和以下版本外,所有浏览器都不需要doctype声明)上进行标准模式呈现。