Проблемы при подключении к бренду с помощью itemref
Я пытаюсь связать Brand
с Product
следующим кодом:
<div itemscope itemtype="http://schema.org/Product" id="p2000">
...
<meta itemprop="brand" itemscope itemtype="http://schema.org/Brand" itemref="v1437"/>
...
</div>
Brand
уже определен на той же веб-странице выше, внутри независимого блока:
<h1 itemscope itemtype="http://schema.org/Brand" id="v1437">
<span itemprop="name">MyBrand</span>
<meta itemprop="url" content="http://www.example.com/MyBrand"/>
<meta itemprop="logo" content="http://www.example.com/MyBrand/logo.png"/>
</h1>
Валидатор не может найти свойство name
внутри связанного объекта Brand
Связь между Brand
и Person
, похоже, работает, но объект Person
не отображает Brand
имя:
Я могу использовать атрибуты itemref
и id
для других объектов. Я могу связать Offer
s с Product
s и Offer
s с Person
s, используя тот же способ.
Это ошибка валидатора?
2 answers
itemref
так не работает.
Вам необходимо добавить атрибут itemref
к элементу, к которому вы хотите применить свойство, и это свойство должно быть определено для элемента с соответствующим идентификатором.
Таким образом, ваш пример должен быть:
<div itemscope itemtype="http://schema.org/Product" itemref="v1437">
</div>
<h1 itemprop="brand" itemscope itemtype="http://schema.org/Brand" id="v1437">
<span itemprop="name">MyBrand</span>
<link itemprop="url" href="http://www.example.com/MyBrand"/>
<link itemprop="logo" href="http://www.example.com/MyBrand/logo.png"/>
</h1>
(Я изменил два элемента meta
на элементы link
, что требуется , если значение является URI.)
Я предполагаю, что вы получаете разные идентификаторы: в случае <meta itemprop="brand" itemscope itemtype="http://schema.org/Brand" itemref="v1437"/>
это v1437, в случае <div itemscope itemtype="http://schema.org/Product"></div>
это будет p1437: вот почему они не совпадают, и инструмент тестирования не может их правильно распознать