我可以将HTML5中的Microdata添加到XHTML Strict站点并且仍然符合要求吗?

Tho*_*son 25 validation html5 xhtml-1.0-strict breadcrumbs microdata

我有一个用XHTML 1.0 Strict编码的站点.我想使用新的Microdata为我的网站添加面包屑(因此Google会理解它们).

我的旧的非微数据标记面包屑看起来像这样:

<ul>
  <li><a href="...">Level 1</a></li>
  <li><a href="...">Level 2</a></li>
  <li><a href="...">Level 3</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

据谷歌称,要使用Microdata标记面包屑,你可以像这样扩展上面的代码:

<ul>
  <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
    <a href="..." itemprop="url">
      <span itemprop="title">Level 1</span>
    </a>
  </li>
  ...
</ul>
Run Code Online (Sandbox Code Playgroud)

但这不是有效的XHTML 1.0 Strict.

我该怎么办?
我应该忽略验证冲突吗?
我应该写itemscope="itemscope"而不是只是itemscope(这将是有效的XML,但仍然无效的XHTML)?
我应该将Doctype更改为HTML5而不是XHTML 1.0 Strict吗?

我想让它一直回到IE6!

请指教 :)

bob*_*nce 16

是的,如果你想itemscope在XHTML中使用,你需要编写itemscope="itemscope"和使用XHTML5(与HTML5相同的DOCTYPE,但是XML语法).

itemscope不包含在W3 HTML5中,但是在WHATWG的版本中,因此验证可能仍然是一个难题.在这个问题上似乎有一些政治论点,我没有遵循这个问题,因为它看起来相当乏味.

目前,如果您想在最终的,可验证的文档格式中使用面包屑注释,您可以使用RDFa:替代(但更旧)的提议,该参数是关于的,并使用现有的doctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
Run Code Online (Sandbox Code Playgroud)


Nia*_*las 12

由于主要搜索引擎已于去年6月(2011年)决定使用schema.org作为执行丰富网页摘要方式,因此看到XHTML5还没有可用的DTD这个问题变得更加重要(BTW,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内容,因此验证很方便什么时候b.因此我创建了这些扩展标准XHTML 1.0的DTD:

要使用,请复制您想要的DTD(不要使用nedprod中的原件,我负担不起带宽)并使用如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict with HTML5 microdata//EN" "xhtml1-strict-with-html5-microdata.dtd">
Run Code Online (Sandbox Code Playgroud)

要么 ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional with HTML5 microdata//EN" "xhtml1-transitional-with-html5-microdata.dtd">
Run Code Online (Sandbox Code Playgroud)

...或者更有可能,覆盖用于特定XML验证设置验证的DTD.

顺便说一句,这里有一些有趣的东西,我只包括这个,因为在回答这个问题时知道它是有用的.我对上帝保持诚实,认为使用上述doctypes会在渲染时调用quirks模式.事实证明,令我惊讶的是,IE8,Chrome 14,Firefox 5和Opera 11.50都在标准模式下渲染了这样的文档类型.谁曾想到!因此,如果您愿意,可以使用自定义文档类型将您的XHTML页面上传到公共互联网,而新版浏览器至少会做正确的事情.

希望这有助于某人,
Niall