DTD与RFDa和XHTML 1.0过渡支持

时间:2010-02-23 23:11:12

标签: xhtml w3c dtd rdfa xhtml-transitional

是否有可用于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 ofcourse,但如果没有别的办法,我可能会将其作为IE用户的text / html服务。

2 个答案:

答案 0 :(得分:10)

我不相信有这样的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对此的态度。它表示您作为text / html提供的任何内容都是对象模型的HTML序列化,无论您声明的是什么DOCTYPE。这实际上是浏览器所做的事情。

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

因此,实际上,只要标记符合多语言文档的要求,您就可以毫无困难地将XHTML + RDFa 1.0作为text / html或application / xhtml + xml提供。

离开验证。抛开RDFa,是否有任何标记你正在使用符合XHTML 1.0 Transitional但不符合XHTML 1.1的标记?如果是这样,你是否足够关心完美验证要么改变它们,要么放弃使用RDFa?据推测,您正在使用RDFa为您的用户带来好处,而验证本身就是一种便利工具。

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

答案 1 :(得分:1)

实际上,除非您关注DTD实现,否则各种XHTML版本之间几乎没有差异,并且几乎从来没有使用XHTML 1.1的正当理由。您的网站以什么方式依赖于1.0过渡?如果你的网站有效率为1.0严格,那么从那里移动到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工作草案最终完全放弃了指定doctype的(愚蠢)要求,因此您可以使用仅模式验证。如果你能想出一种使用XML / XHTML mimetypes的方法,这将非常有效,因为在支持它的浏览器上获取标准模式呈现时不需要doctype声明(所有这些都是IE8及以下版本)。