我可以将 HTML5 中的微数据添加到 XHTML Strict 网站并且仍然兼容吗?
我有一个使用 XHTML 1.0 Strict 编码的网站。我想使用新的微数据向我的网站添加面包屑(因此 Google 会理解它们)。
我旧的非微数据标记面包屑看起来像这样:
<ul>
<li><a href="...">Level 1</a></li>
<li><a href="...">Level 2</a></li>
<li><a href="...">Level 3</a></li>
</ul>
根据 Google,要使用微数据标记面包屑,您可以像这样扩展上面的代码:
<ul>
<li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="..." itemprop="url">
<span itemprop="title">Level 1</span>
</a>
</li>
...
</ul>
但这不是有效的 XHTML 1.0 Strict。
我应该做什么?
我应该忽略验证冲突吗?
我应该写 itemscope="itemscope"
而不是仅仅写 itemscope
(这将是有效的 XML,但仍然不是有效的 XHTML)?
我应该将 Doctype 更改为 HTML5 而不是 XHTML 1.0 Strict 吗?
我希望它能一直工作到 IE6!
请指教:)
I've got a site coded in XHTML 1.0 Strict. I want to use the new Microdata to add breadcrumbs to my site (so Google will understand them).
My old non-microdata marked-up breadcrumbs look like this:
<ul>
<li><a href="...">Level 1</a></li>
<li><a href="...">Level 2</a></li>
<li><a href="...">Level 3</a></li>
</ul>
According to Google, to markup breadcrumbs using Microdata, you extend the above code like this:
<ul>
<li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="..." itemprop="url">
<span itemprop="title">Level 1</span>
</a>
</li>
...
</ul>
But this is not valid XHTML 1.0 Strict.
What should I do?
Should I ignore the validation conflicts?
Should I write itemscope="itemscope"
instead of just itemscope
(this would be valid XML, but still not valid XHTML)?
Should I change the Doctype to be HTML5 instead of XHTML 1.0 Strict?
I want this to work all the way back to IE6!
Please advice :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
是的,如果您想在 XHTML 中使用
itemscope
,则需要编写itemscope="itemscope"
并使用 XHTML5(与 HTML5 相同的 DOCTYPE,但采用 XML 语法)。itemscope
未包含在 W3 HTML5 中,但存在于 WHATWG 的版本中,因此验证可能仍然是一个困难。关于这个问题似乎有相当多的政治争论,我没有没有关注,因为它看起来相当乏味。目前,如果您想以最终确定的、可验证的文档格式使用面包屑注释,您可以使用 RDFa 来代替:替代(但较旧)的提案,即争论的全部内容,并使用现有的文档类型:
Yes, if you wanted to use
itemscope
in XHTML, you would need to writeitemscope="itemscope"
and use XHTML5 (same DOCTYPE as HTML5, but XML syntax).itemscope
is not included in W3 HTML5, but present in WHATWG's version, so validation may continue to be a difficulty. There seems to be quite some political argument on this issue, which I haven't been following as it looks fairly tedious.For the moment, if you want to use breadcrumb annotations in a finalised, validatable document format, you could use RDFa instead: the alternative (but older) proposal, which the argument is all about, and use the existing doctype:
由于去年 6 月(2011 年)主要搜索引擎已决定将 schema.org 作为生成丰富摘要的方式,因此看到 XHTML5 还没有有效的 DTD,这个问题变得更加重要(顺便说一句,http://www.html5dtd.org/ 是正在开发 XHTML5 DTD,并且当您阅读本文时可能已经准备好了,如果是这样,请忽略我要说的内容)。我要说的内容总结了我放置在 http://www.nedprod.com/programs/portable/ 的页面XHTMLwithHTML5microdata/ 几周前,如果您需要的话,还有更多详细信息,包括丰富的代码片段演示。
我需要使用 schema.org/HTML5 微数据扩展 XHTML 1.x Strict 并使其全部正确验证以更新 nedprod,并且 Microsoft Expression Web 偶尔会吃掉它编辑的 HTML 部分,因此验证很容易捕获当它发声时。因此,我创建了这些扩展了标准 XHTML 1.0 的 DTD:
要使用,请复制您所需的 DTD(不要使用 nedprod 的原始版本,我可以' t 提供带宽)并按如下方式使用:
或 ...
...或更可能的是,通过您的特定 XML 验证设置覆盖用于验证的 DTD。
顺便说一句,这是一些有趣的事情,我只是将其包括在内,因为在回答问题时了解它很有用。老实说,我认为使用上述文档类型会在渲染时调用怪异模式。结果令我大吃一惊的是,IE8、Chrome 14、Firefox 5 和 Opera 11.50 都在标准模式下呈现这样的文档类型。谁能想到!因此,如果您愿意,您可以使用自定义文档类型将您的 XHTML 页面上传到公共互联网上,而较新的浏览器至少会做正确的事情。
希望这对某人有帮助,
尼尔
Since the major search engines have decided on schema.org last June (2011) as the way to do rich snippets, this question has become much more important seeing XHTML5 does not yet have a working DTD (BTW, http://www.html5dtd.org/ is working on a XHTML5 DTD and may well be ready when you read this, if so disregard what I'm about to say). And what I am about to say summarises a page I placed at http://www.nedprod.com/programs/portable/XHTMLwithHTML5microdata/ a few weeks ago, and there has more detail including a rich snippets demo if you want it.
I had need of extending XHTML 1.x Strict with schema.org/HTML5 microdata and getting it all to validate properly for updating nedprod, and Microsoft Expression Web has the occasional tendency to eat bits of HTML it edits, so validation is handy for catching when it borks. Hence I have created these DTDs which extend the standard XHTML 1.0 ones:
To use, take a copy of your desired DTD (don't use the original from nedprod, I can't afford the bandwidth) and use as follows:
or ...
... or more likely, override the DTD used for validation by your particular XML validating setup.
BTW, here's something interesting, and I only include this as it's useful to know when answering the question. I honest to God thought that using the above doctypes would invoke quirks mode when rendering. Turns out, much to my great surprise, that IE8, Chrome 14, Firefox 5 and Opera 11.50 all render such a doctype in Standards mode. Who would have thought! So you could, if you wanted to, upload your XHTML pages onto the public internet with the custom doctype and the newer browsers at least would do the right thing.
Hope this helps someone,
Niall
有效的 HTML 5 示例
发现这些链接很有帮助:
- http:// support.google.com/webmasters/bin/answer.py?hl=zh-CN&answer=2413309&topic=1088474&ctx=topic
- http://www.reelseo.com/embedded-youtube-indexed-google/< /a>
Valid HTML 5 example
Found these links helpful:
- http://support.google.com/webmasters/bin/answer.py?hl=en&answer=2413309&topic=1088474&ctx=topic
- http://www.reelseo.com/embedded-youtube-indexed-google/
使用
application/ld+json
MIME 类型和 微数据生成器 将标记转换为数据:或对象标记中的
data:uri
:使用
application/xhtml+xml
XSLT shim 支持 IE6 并扩展它以获取标记的副本。参考资料
MDN:Base64编码和解码
网页中的图像
聚合文档的 MIME 电子邮件封装,例如 HTML (MHTML)
将微数据映射到 RDF
数据:URI 测试
检查、实施和测试RFC2557 (MHTML) 的
MHTML URI
HTML5:与 HTML4 的差异
Use the
application/ld+json
MIME type and a microdata generator to transform the markup into data:or a
data:uri
in an object tag:Use the
application/xhtml+xml
XSLT shim to support IE6 and extend it to get a copy of the markup.References
MDN: Base64 Encoding and Decoding
Images in a Web Page
MIME E-mail Encapsulation of Aggregate Documents, such as HTML (MHTML)
Mapping Microdata to RDF
data:URI Tests
Examining, implementing and testing of RFC2557 (MHTML)
MHTML URIs
HTML5: Differences from HTML4
尝试验证谷歌的一些页面...它们不验证。
验证是一种工具,一个很棒的工具,但仅此而已,尽管我确实赞赏你的决心。如果您担心验证,我会切换到 HTML5 。
try and validate some of google's pages...they don't validate.
validation is a tool, an awesome one, but nothing more, although i do applaud your determination. if you're that worried about validation i would switch to HTML5 .