Microformats 2 and Schema

There's been some misinformation about microformats spread at AccBristol, specifically:

For the sake of daftness, I'm going to show how to do this. I'm going to take the 2nd example of BroadcastService, about In Our Time and give a microformats2 markup for the arbitrary schema vocab.

Immediately, there is some confusion as the various examples given don't match (the JSON-LD is missing all of the episode name information, and has misparsed the dates as text; the microdata and RDFa have injected lots of extra div's that will relayout the page) but I'll see if I can match the microdata/RDFa examples:

<div>
 <a href="http://www.bbc.co.uk/programmes/b006qykl">In Our Time</a>,
 <a href="http://www.bbc.co.uk/programmes/b03ggc19">Ordinary Language Philosophy</a>, episode 604,
 broadcast on BBC Radio 4 at 09:00, 7th of November 2013, available online from 09:45 on the same day.
</div>
<div class="h-schema-RadioSeries">
  <a class="p-name" href="http://www.bbc.co.uk/programmes/b006qykl">In Our Time</a>,
  <div class="p-schema-episode h-schema-RadioEpisode">
    <a class="p-name" href="http://www.bbc.co.uk/programmes/b03ggc19">Ordinary Language Philosophy</a>,
    episode <span class="p-schema-position">604</span>,
    broadcast on 
    <span class="p-schema-publication h-schema-BroadcastEvent">
      <a class="p-schema-publishedOn h-schema-BroadcastService" href="http://bbc.co.uk/radio4">BBC Radio 4</a>
      at <time class="dt-schema-startDate" datetime="2013-11-07T09:00+0100">09:00, 7th of November 2013</time>
    </span>, available online from 
    <span class="p-schema-publication h-schema-OnDemandEvent">
      <time class="dt-schema-startDate" datetime="2013-11-07T09:45+0100">09:45 on the same day
    </span>.
  </div>
</div>
{
    "items": [{
        "type": ["h-schema-RadioSeries"],
        "properties": {
            "name": ["In Our Time"],
            "schema-episode": [{
                "value": "Ordinary Language Philosophy",
                "type": ["h-schema-RadioEpisode"],
                "properties": {
                    "name": ["Ordinary Language Philosophy"],
                    "schema-position": ["604"],
                    "schema-publication": [{
                        "value": "BBC Radio 4\n      at 09:00, 7th of November 2013",
                        "type": ["h-schema-BroadcastEvent"],
                        "properties": {
                            "schema-publishedOn": [{
                                "value": "BBC Radio 4",
                                "type": ["h-schema-BroadcastService"],
                                "properties": {
                                    "name": ["BBC Radio 4"],
                                    "url": ["http://bbc.co.uk/radio4"]
                                }
                            }],
                            "schema-startDate": ["2013-11-07T09:00+0100"],
                            "name": ["BBC Radio 4\n      at 09:00, 7th of November 2013"]
                        }
                    }, {
                        "value": "09:45 on the same day",
                        "type": ["h-schema-OnDemandEvent"],
                        "properties": {
                            "schema-startDate": ["2013-11-07T09:45+0100"],
                            "name": ["09:45 on the same day"]
                        }
                    }],
                    "url": ["http://www.bbc.co.uk/programmes/b03ggc19"]
                }
            }],
            "url": ["http://www.bbc.co.uk/programmes/b006qykl"]
        }
    }],
    "rels": {},
    "rel-urls": {}
}
{
    "type": "schema-RadioSeries", 
    "name": "In Our Time",
    "url": "http://www.bbc.co.uk/programmes/b006qykl", 
    "schema-episode": {
        "type": "schema-RadioEpisode", 
        "name": "Ordinary Language Philosophy",
        "url": "http://www.bbc.co.uk/programmes/b03ggc19", 
        "schema-position": "604", 
        "schema-publication": {
            "children": [
                {
                    "type": "schema-BroadcastEvent", 
                    "name": "BBC Radio 4\n      at 09:00, 7th of November 2013", 
                    "schema-startDate": "2013-11-07T09:00:00+0100",
                    "schema-publishedOn": {
                        "type": "schema-BroadcastService", 
                        "name": "BBC Radio 4", 
                        "url": "http://bbc.co.uk/radio4"
                    } 
                }, 
                {
                    "type": "schema-OnDemandEvent", 
                    "name": "09:45 on the same day", 
                    "schema-startDate": "2013-11-07T09:45:00+0100"
                }
            ]
        } 
    }
}
<div itemscope itemtype="http://schema.org/RadioSeries">
  <a itemprop="url" href="http://www.bbc.co.uk/programmes/b006qykl">
   <span itemprop="name">In Our Time</span></a>,
  <div itemprop="episode" itemscope itemtype="http://schema.org/RadioEpisode">
    <a itemprop="url" href="http://www.bbc.co.uk/programmes/b03ggc19">
     <span itemprop="name">Ordinary Language Philosophy</span></a>,
    episode <span itemprop="position">604</span>, broadcast on
    <div itemprop="publication" itemscope itemtype="http://schema.org/BroadcastEvent">
      <div itemprop="publishedOn" itemscope itemtype="http://schema.org/BroadcastService">
        <a itemprop="url" href="http://www.bbc.co.uk/radio4"><span itemprop="name">BBC Radio 4</span></a>
      </div> at
      <span itemprop="startDate"
        content="2013-11-07T09:00:00+01:00">09:00, 7th of November 2013</span>
    </div>,
    available online from
    <div itemprop="publication" itemscope itemtype="http://schema.org/OnDemandEvent">
      <span itemprop="startDate"
       content="2013-11-07T09:45:00+01:00">09:45 on the same day</span>.
    </div>
  </div>
</div>
<div vocab="http://schema.org/" typeof="RadioSeries">
  <a property="url" href="http://www.bbc.co.uk/programmes/b006qykl">
   <span property="name">In Our Time</span></a>,
  <div property="episode"  typeof="RadioEpisode">
    <a property="url" href="http://www.bbc.co.uk/programmes/b03ggc19">
     <span property="name">Ordinary Language Philosophy</span></a>,
    episode <span property="position">604</span>, broadcast on
    <div property="publication"  typeof="BroadcastEvent">
      <div property="publishedOn"  typeof="BroadcastService">
        <a property="url" href="http://www.bbc.co.uk/radio4"><span property="name">BBC Radio 4</span></a>
      </div> at
      <span property="startDate"
        content="2013-11-07T09:00:00+01:00">09:00, 7th of November 2013</span>
    </div>,
    available online from
    <div property="publication"  typeof="OnDemandEvent">
      <span property="startDate"
       content="2013-11-07T09:45:00+01:00">09:45 on the same day</span>.
    </div>
  </div>
</div>
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "RadioSeries",
  "episode": {
    "@type": "RadioEpisode",
    "position": "604",
    "publication": [
      {
        "@type": "BroadcastEvent",
        "publishedOn": {
          "@type": "BroadcastService",
          "url": "http://www.bbc.co.uk/radio4"
        },
        "startDate": "09:00, 7th of November 2013"
      },
      {
        "@type": "OnDemandEvent",
        "startDate": "09:45 on the same day"
      }
    ],
    "url": "http://www.bbc.co.uk/programmes/b03ggc19"
  },
  "url": "http://www.bbc.co.uk/programmes/b006qykl"
}
</script>

Things to note here:

Updated with jf2 version.