Seharusnya tidak masalah untuk menggunakan sintaks yang berbeda pada halaman yang sama.
Ini memiliki satu kelemahan, meskipun: Jika Anda ingin menghubungkan entitas yang ditentukan dalam sintaks yang berbeda, Anda tidak dapat membuat sarangnya. Anda harus menggunakan URI saja. (Tetapi perhatikan bahwa tidak semua konsumen data mengikuti referensi URI tersebut.)
Contoh menunjukkan nesting vs referensi
Anda dapat menghubungkan BreadcrumbList
ke WebPage
dengan breadcrumb
properti.
Saat hanya menggunakan satu sintaks, Anda dapat dengan mudah menyarangkan item:
<!-- 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>
Tetapi jika Anda mencampur sintaks, Anda harus menentukan dan merujuk URI sebagai gantinya:
<!-- 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>
Untuk arah lain, Anda harus memberikan item dalam JSON-LD URI di @id
, dan menautkan ke URI ini dalam misalnya link
elemen. Lihat sebuah contoh.
Lebih banyak contoh
Saya ditautkan ke beberapa contoh yang menggunakan JSON-LD bersama dengan Microdata dalam jawaban ini di Stack Overflow .