Хорошо использовать разные синтаксисы на одной странице.
Однако у него есть один недостаток: если вы хотите соединить сущности, указанные в разных синтаксисах, вы не можете их вкладывать. Вы должны использовать URI вместо этого. (Но учтите, что не все потребители данных следуют таким ссылкам URI.)
Пример, показывающий вложение и ссылки
Вы можете подключить BreadcrumbList
к WebPage
с breadcrumb
собственностью.
Используя только один синтаксис, вы можете просто вложить элементы:
<!-- Microdata only -->
<div itemscope itemtype="http://schema.org/WebPage">
<div itemprop="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList">
</div>
</div>
<!-- JSON-LD only -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"breadcrumb":
{
"@type": "BreadcrumbList"
}
}
</script>
Но если вы смешиваете синтаксис, вы должны указать и ссылаться на URI:
<!-- Microdata, giving the entitiy an URI with the 'itemid' attribute -->
<div itemscope itemtype="http://schema.org/BreadcrumbList" itemid="#page-breadcrumbs">
</div>
<!-- JSON-LD, referencing the URI "#page-breadcrumbs" which is specified in the Microdata -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"breadcrumb":
{
"@type": "BreadcrumbList",
"@id": "#page-breadcrumbs"
}
}
</script>
Для другого направления вам нужно дать элемент в JSON-LD URI @id
и ссылку на этот URI, например, внутри link
элемента. Смотрите пример.
Больше примеров
В этом ответе о переполнении стека я ссылался на несколько примеров, в которых используется JSON-LD вместе с микроданными .