Es sollte in Ordnung sein, unterschiedliche Syntaxen auf derselben Seite zu verwenden.
Es hat jedoch einen Nachteil: Wenn Sie Entitäten verbinden möchten, die in verschiedenen Syntaxen angegeben sind, können Sie sie nicht verschachteln. Sie müssen stattdessen URIs verwenden. (Beachten Sie jedoch, dass nicht unbedingt alle Verbraucher der Daten solchen URI-Referenzen folgen.)
Beispiel für Verschachtelung und Referenzierung
Sie können a BreadcrumbList
mit a WebPage
mit der breadcrumb
Eigenschaft verbinden.
Wenn Sie nur eine Syntax verwenden, können Sie die Elemente einfach verschachteln:
<!-- 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>
Wenn Sie jedoch Syntaxen mischen, müssen Sie stattdessen URIs angeben und referenzieren:
<!-- 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>
Für die andere Richtung müssen Sie dem Element in JSON-LD einen URI in geben @id
und innerhalb eines Beispiels mit diesem URI verknüpfen link
. Siehe ein Beispiel.
Mehr Beispiele
Ich habe in dieser Antwort zum Stapelüberlauf auf mehrere Beispiele verwiesen, die JSON-LD zusammen mit Mikrodaten verwenden .