Могу ли я добавить микроданные из HTML5 на строгий сайт XHTML и все еще будет соответствовать?

StackOverflow https://stackoverflow.com/questions/3659778

Вопрос

У меня есть сайт, закодированный в 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 строго.

Что я должен делать?
Должен ли я игнорировать конфликты проверки?
Должен ли я написать itemscope="itemscope" вместо всего itemscope (Это было бы действительным XML, но все еще не действительным XHTML)?
Должен ли я изменить Doctype, чтобы быть HTML5 вместо XHTML 1.0 строгого?

Я хочу, чтобы это было работать назад до IE6!

Пожалуйста посоветуй :)

Это было полезно?

Решение

Да, если вы хотите использовать itemscope В XHTML вам нужно было написать itemscope="itemscope" И используйте XHTML5 (тот же DOCTYPE AS HTML5, но синтаксис XML).

itemscope не включается в W3 HTML5, но присутствует в версии Whatwg, поэтому проверка может продолжать быть трудностью. Кажется, совсем некоторые Политический аргумент По этой проблеме, которую я не следил за тем, как это выглядит довольно утомительно.

На данный момент, если вы хотите использовать аннотации ChadCromb в доработанном, варьемом формате документа, вместо этого вы можете использовать RDFA: альтернативное (но более старое) предложение, которое все аргумент, и использует существующий доктрип:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

Другие советы

Поскольку основные поисковые системы решили stchema.org. в июне прошлого года (2011 год) то Способ делать богатые фрагменты, этот вопрос стал гораздо более важным, увидев, что XHTML5 еще не имеет рабочего DTD (BTW, http://www.html5dtd.org/ Работает на XHTML5 DTD и вполне может быть готов, когда вы прочитаете это, если настолько игнорировать то, что я собираюсь сказать). И что я собираюсь сказать, суммирует страницу, которую я разместил в http://www.nedprod.com/programs/portable/xhtmlwithhtml5microdata/ Несколько недель назад, и здесь более подробно, в том числе богатые фрагменты демонстрации, если вы этого хотите.

Мне нужна продлевая XHTML 1.x Stritt с Schema.org/html5 Microdatata и получение всего, чтобы все было правильно для обновления NEDProd, и Web Microsoft Expression имеет случайную тенденцию съесть биты HTML-редактирования, поэтому валидация удобна для ловли Когда это Борки. Следовательно, я создал эти DTD, которые расширяют стандартные XHTML 1.0:

Использовать, принять копию вашего желаемого DTD (не используйте оригинал из NedProd, я не могу позволить себе пропускную способность) и использовать следующие:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict with HTML5 microdata//EN" "xhtml1-strict-with-html5-microdata.dtd">

или ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional with HTML5 microdata//EN" "xhtml1-transitional-with-html5-microdata.dtd">

... или более вероятно, переопределить DTD, используемый для проверки вашим конкретным XML проверяющим настройкой.

Кстати, вот что-то интересное, и я включаю в себя только так, как это полезно знать, отвечая на вопрос. Я честно, чтобы Бог думал, что использование вышеупомянутых дочинков призывает рендеринг. Оказывается, много для моего большого сюрприза, что IE8, Chrome 14, Firefox 5 и Opera 11.50 все визуализируют такой доктрип в режиме стандартов. Кто бы мог подумать! Таким образом, вы могли бы, если вы хотите, загрузить свои страницы XHTML на публичный Интернет с пользовательским доцинским дочением, а более новые браузеры, по крайней мере, сделали бы правильные вещи.

Надеюсь, это поможет кому-то,
Ниалл

Действительный HTML 5 Пример

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Example page</title>
</head>
<body>
    <div itemscope="" itemtype="http://schema.org/MediaObject">
        <div itemprop="video" itemscope="" itemtype="http://schema.org/VideoObject">
           <meta itemprop="name" content="Breast Augmentation Video Diary">
           <meta itemprop="duration" content="PT12M54S">
           <meta itemprop="thumbnailUrl" content="http://www.plastic-surgery-estonia.com/new-assets/images/thumbnails/breast-augmentation.jpg">
           <meta itemprop="contentURL" content="http://www.youtube.com/watch?v=BwPN6eCpxTk">
           <meta itemprop="embedURL" content="http://www.youtube.com/watch?feature=player_embedded&amp;v=BwPN6eCpxTk">
           <meta itemprop="uploadDate" content="2010-11-09">
           <iframe src="http://www.youtube.com/embed/BwPN6eCpxTk?rel=0&amp;autohide=1&amp;modestbranding=1&amp;showinfo=0"></iframe>
           <span itemprop="description">Video Diary</span>
        </div>
   </div>
</body>
</html>

Нашел эти ссылки полезными:
- http://support.google.com/WebMasters/bin/answer.py?hl=en&answer=2413309&topic=1088474&ctx=topic.
- http://www.reelseo.com/embedded-googe-indexed-google/

Использовать application/ld+json Тип MIME и Генератор микроданных Чтобы преобразовать разметку в данные:

<!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>microdata.xhtml</title>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    </head>
    <body>
      <div>
      <script type="application/ld+json">
      {"items": [{
        "type": ["https://schema.org/breadcrumb"],
        "properties":{ 
        "url": ["..."],
        "title": ["Level 1"]
        }
       }]
      }
      </script>
      </div>
    </body>
    </html>

или а data:uri В теге объекта:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>microdata.xhtml</title>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    </head>
    <body>
      <div>
        <object data="data:text/html;charset=utf-8;base64,PHVsPiA8bGkgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZGF0YS12b2NhYnVsYXJ5Lm9yZy9CcmVhZGNydW1iIj4gICAgICAgICA8YSBocmVmPSIuLi4iIGl0ZW1wcm9wPSJ1cmwiPiAgICAgICAgICAgPHNwYW4gaXRlbXByb3A9InRpdGxlIj5MZXZlbCAxPC9zcGFuPiAgICAgICAgIDwvYT4gICAgICAgICA8L2xpPiAgICAgICA8L3VsPg==">

          <?microdata
          <ul>
            <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
             <a href="..." itemprop="url">
               <span itemprop="title">Level 1</span>
             </a>
            </li>
          </ul>
          ?>

        </object>
      
        <!--[if lt IE 8]>
        <object data="mhtml://#foo">

          <?microdata
          <ul>
            <li itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
             <a href="..." itemprop="url">
               <span itemprop="title">Level 1</span>
             </a>
            </li>
          </ul>
          ?>
          <div id="foo">
              PHVsPiA8bGkgaXRlbXNjb3BlIGl0ZW10eXBlPSJodHRwOi8vZGF0YS12b2NhYnVsYXJ5Lm9yZy9CcmVhZGNydW1iIj4gICAgICAgICA8YSBocmVmPSIuLi4iIGl0ZW1wcm9wPSJ1cmwiPiAgICAgICAgICAgPHNwYW4gaXRlbXByb3A9InRpdGxlIj5MZXZlbCAxPC9zcGFuPiAgICAgICAgIDwvYT4gICAgICAgICA8L2xpPiAgICAgICA8L3VsPg==
          </div>
       </object>
       <![endif]-->
      </div>
    </body>
    </html>

Я хочу, чтобы это было работать назад до IE6!

Использовать application/xhtml+xml XSLT Chim. поддерживать IE6 и продлить его, чтобы получить копию разметки.

использованная литература

Попробуйте проверить некоторые из страниц Google ... они не подтверждают. Валидация - это инструмент, потрясающий, но не более, хотя я приветствую вашу решимость. Если вы беспокоитесь о проверке, я бы перешел на HTML5.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top