MicrodataとJSON-LDを異なるページの同じページに混在させることはできますか


9

私のウェブサイトはJSON-LDとMicrodataを使用しています。

例えば、中BreadcrumbList、Iは、ミクロ・フォーマットを使用している、などのため(のようなOrganizationTouristAttraction)JSON-LDが使用されてきました。

MicrodataとJSON-LDを異なるページの同じページに混在させることはできますか、それとも1つのフォーマットのみを使用する必要がありますか?


回答:


7

同じページで異なる構文を使用しても問題ありません。

ただし、欠点が1つあります。異なる構文で指定されたエンティティを接続する場合、それらをネストすることはできません。代わりにURIを使用する必要があります。(ただし、必ずしもデータのすべての利用者がそのようなURI参照に従うわけではないことに注意してください。)

ネストと参照の例

プロパティBreadcrumbListを使用してa WebPageをに接続できbreadcrumbます。

構文を1つだけ使用する場合は、項目をネストするだけです。

<!-- 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、たとえばlink要素内でこのURIにリンクする必要があります。例をご覧ください。

その他の例

Stack Overflowのこの回答で、JSON-LD Microdata を使用する複数の例にリンクしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.