title: Google now supporting new version of Schema.org BreadcrumbList?
body: <p>It appears as though Google has now implemented Schema.org version 2 and Google's own examples fail Google's validation test. For example, here's is <a href="https://developers.google.com/structured-data/breadcrumbs" rel="nofollow">Google's example JSON-LD code for breadcrumbs</a>: </p>
  
  <pre class="lang-html prettyprint-override"><code>&lt;script type="application/ld+json"&gt;
  {
      "@context": "http://schema.org",
      "@type": "BreadcrumbList",
      "itemListElement": [
          {
              "@type": "ListItem",
              "position": 1,
              "item": {
                  "@id": "https://example.com/arts",
                  "name": "Arts"
              }
          },
          {
              "@type": "ListItem",
              "position": 2,
              "item": {
                  "@id": "https://example.com/arts/books",
                  "name": "Books"
              }
          },
          {
              "@type": "ListItem",
              "position": 3,
              "item": {
                  "@id": "https://example.com/arts/books/poetry",
                  "name": "Poetry"
              }
          }
      ]
  }
  &lt;/script&gt;
  </code></pre>
  
  <p>Yesterday, when I pasted the above code into a <code>test.html</code> file, <a href="https://developers.google.com/structured-data/testing-tool/" rel="nofollow">Google's validation tool</a> validated it as a "Pass".</p>
  
  <p>Today, it fails. It appears that you now have to explicitly define a <code>mainEntity</code>. But they haven't bothered to update their docs.</p>
  
  <p>Does anyone know where to find the official documentation on using JSON-LD? Schema.org doesn't offer much and appears to also be out-dated. I managed to get the following code to pass the test: </p>
  
  <pre class="lang-html prettyprint-override"><code>&lt;script type="application/ld+json"&gt;
  {
      "@context": "http://schema.org",
      "@type": "WebPage",
      "mainEntity": {
          "@context": "http://schema.org",
          "@type": "BreadcrumbList",
          "itemListElement": [
              {
                  "@type": "ListItem",
                  "position": 1,
                  "item": {
                      "@id": "http://www.example.com",
                      "name": "Home"
                  }
              },
              {
                  "@type": "ListItem",
                  "position": 2,
                  "item": {
                      "@id": "http://www.example.com/shop.com",
                      "name": "Shop"
                  }
              }
          ]
      }
  }
  &lt;/script&gt;
  </code></pre>
  
  <p>What I'm worried about this is: </p>
  
  <p>Let's say you also define a product on the same page, using microdata, will the search engines treat the breadcrumb list as the <code>mainEntity</code>? i.e. Will it rank higher in search results, than the product will?</p>