Il devrait être judicieux d'utiliser différentes syntaxes sur la même page.
Il présente cependant un inconvénient: si vous souhaitez connecter des entités spécifiées dans différentes syntaxes, vous ne pouvez pas les imbriquer. Vous devez utiliser des URI à la place. (Mais notez que tous les consommateurs des données ne suivent pas nécessairement ces références d'URI.)
Exemple montrant l'imbrication et le référencement
Vous pouvez connecter un BreadcrumbList
à un WebPage
avec la breadcrumb
propriété.
Lorsque vous utilisez une seule syntaxe, vous pouvez simplement imbriquer les éléments:
<!-- 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>
Mais si vous mélangez des syntaxes, vous devez spécifier et référencer des URI à la place:
<!-- 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>
Pour l'autre sens, vous devez donner à l'élément dans JSON-LD un URI @id
et le lier à cet URI dans, par exemple, un link
élément. Voir un exemple.
Plus d'exemples
J'ai lié à plusieurs exemples qui utilisent JSON-LD avec des microdonnées dans cette réponse sur Stack Overflow .