I’m new to Microdata and have a problem with itemscope within a table.
For example assume I‘ve got a person object and in the table I’m showing Name, Street and City columns.
<table>
<tr itemscope itemtype="http://schema.org/Person">
<td itemprop="name">Name</td>
<td itemprop="streetAddress">123 main</td>
<td itemprop="addressCountry">USA</td>
</tr>
</table>
Note that the streetAddress and addressCountry are supposed to be children of an address property. Yet you can not add a parent div to group those within the table.
Further it doesn't appear that dot notation works, e.g. address.streetAddress.
How would one support this?
There are only rather ugly solutions for this.
You could use the itemref attribute for the country, but you’d have to add a dummy untyped itemscope so that the addressCountry property doesn’t get added to the Person item:
<table>
<tr itemscope itemtype="http://schema.org/Person">
<td itemprop="name">
Name
</td>
<td itemprop="address" itemscope itemtype="http://schema.org/PostalAddress" itemref="country">
<span itemprop="streetAddress">123 main</span>
</td>
<td itemscope>
<span itemprop="addressCountry" id="country">USA</span>
</td>
</tr>
</table>
You could use itemref for almost anything, so that you don’t have to add a dummy itemscope, but the markup gets more complex, and you have to "outsource" the Person item:
<meta itemscope itemtype="http://schema.org/Person" itemref="person-name person-address" />
<!-- can’t have this as descendant of another Microdata item -->
<table>
<tr>
<td itemprop="name" id="person-name">
Name
</td>
<td itemprop="address" itemscope itemtype="http://schema.org/PostalAddress" id="person-address" itemref="address-country">
<span itemprop="streetAddress">123 main</span>
</td>
<td itemprop="addressCountry" id="address-country">
USA
</td>
</tr>
</table>
Or still have Person in the table by adding it to the first td:
<!-- can’t have this as descendant of another Microdata item -->
<table>
<tr>
<td itemscope itemtype="http://schema.org/Person" itemref="person-address">
<span itemprop="name">Name</span>
</td>
<td itemprop="address" itemscope itemtype="http://schema.org/PostalAddress" id="person-address" itemref="address-country">
<span itemprop="streetAddress">123 main</span>
</td>
<td itemprop="addressCountry" id="address-country">
USA
</td>
</tr>
</table>
来源:https://stackoverflow.com/questions/29684960/microdata-on-tables