microdata schema.org: как смешивать схемы?

привет, у меня есть страница ( http://schema.org/WebPage ), содержащая обзор ( http://schema.org/Review )

вопрос:

  • как бороться с дублирующимся содержимым?
  • правильно ли делать элементы принадлежащими двум или более областям?
  • как это сделать, повторяя текст дважды?
  • или я должен избегать нескольких ссылок?

пример:

<html itemscope itemtype="http://schema.org/WebPage">
    <meta name="description" content="_________" itemprop="description">
    ...
    <div itemscope itemtype="http://schema.org/Review">
        <div itemprop="description">_________</div>
    </div>
    ...
</html>

описание принадлежит обзору И веб-странице, так что... что я должен написать в этом случае?

(примечание: в предыдущем примере строка «__» — это один и тот же текстовый абзац, повторенный дважды)


РЕДАКТИРОВАТЬ:

может это решение? (в спецификации html5 об этом не говорится, но определяется атрибут itemref)

<html itemscope itemtype="http://schema.org/WebPage" id="WEBPAGE">
    ...
    <div itemscope itemtype="http://schema.org/Review" id="REVIEW">
        <div itemprop="description" itemref="WEBPAGE REVIEW">_________</div>
    </div>
    ...
</html>

НЕ СМОТРИТЕ УЛУЧШИТЬ ВОПРОС!


person skyline26    schedule 02.05.2012    source источник


Ответы (1)


Быстрые ответы

  • how to deal with duplicate contents?
    • use the attribute itemref
  • is correct making elements belong to two or more scopes?
    • Yes, this is what you use itemref for
  • how to do this, repeating text twice?
    • No, you only need to refer to the element
  • or i should avoid multiple references?
    • I don't see any reason why you don't wanna use multiple references

Несколько примеров

Включить путем переноса

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

<body itemscope itemtype="http://schema.org/WebPage" itemref="wrapper">
    ...
    <div itemscope itemtype="http://schema.org/Review">
        ...
        <div id="wrapper">
            <div itemprop="description">_________</div>

            <div itemprop="some-other-property">_________</div>
        </div>
        ...
    </div>
    ...
</body>

Включение путем переноса — другой пример

Допустим, у вас есть продукт с несколькими различными предложениями, выходящим за рамки.

<div itemscope itemtype="http://schema.org/Product" itemref="wrapper">
    ...
</div>

<div id="wrapper">
    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        ...
    </div>

    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        ...
    </div>

    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
        ...
    </div>
</div>

Включить определенное свойство

Возможно, вы захотите включить только одно конкретное свойство вне области действия, для этого мы можем просто установить идентификатор непосредственно на целевом элементе с указанным itemprop.

<body itemscope itemtype="http://schema.org/WebPage" itemref="target">
    ...
    <div itemscope itemtype="http://schema.org/Review">
        <div id="target" itemprop="description">_________</div>
    </div>
    ...
</body>

Несколько ссылок

Возможно, оболочка неприменима, тогда вы можете использовать несколько ссылок. Вы разделяете их просто пробелом.

<body itemscope itemtype="http://schema.org/WebPage" itemref="desc name">
    ...
    <div itemscope itemtype="http://schema.org/Review">
        <div id="desc" itemprop="description">_________</div>

        <div id="name" itemprop="name">_________</div>
    </div>
    ...
</body>

Источник

См. также эти страницы для некоторых других пояснений и примеров:
http://www.w3.org/TR/2011/WD-microdata-20110405/
http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html

person superhero    schedule 07.05.2012
comment
почему инструмент Google Rich Snippet не распознает атрибут itemref? спасибо за Ваш ответ! - person skyline26; 07.05.2012
comment
Мне трудно ответить за то, что делает Google, я предполагаю, что это связано с тем, что он находится в бета-версии. - person superhero; 07.05.2012
comment
Привет @skyline26, Google обнаружил мою ссылку на товар. Я думаю, у тебя проблемы в другом. - person Marco Panichi; 09.07.2013
comment
@Erik: Ваш пример с несколькими ссылками проблематичен. В большинстве случаев кажется, что вы хотели бы указать их по имени класса, а не по идентификатору. Например, легко представить себе страницу с длинным списком обзоров — указывать идентификатор каждого из них было бы нежелательно... - person doub1ejack; 30.09.2013
comment
@doub1ejack: то, что я вижу на сайте whatwg.org, невозможно указать по имени класса: whatwg.org/specs/web-apps/current-work/multipage/ Атрибут itemref, если он указан, должен иметь значение, неупорядоченный набор уникальных разделенных пробелами токенов, чувствительных к регистру, состоящий из идентификаторов элементов в одном и том же домашнем поддереве. Я попытаюсь обновить ответ, добавив некоторую дополнительную информацию, касающуюся проблемы, которую вы описали. - person superhero; 01.10.2013
comment
@doub1ejack: я добавил обновление для решения проблемы, которую вы описали в разделе Включить путем переноса — другой пример. Посмотрите и дайте мне знать, если у вас есть какие-либо вопросы. - person superhero; 01.10.2013