2012-06-19 5 views
8

私の開発者がHTMLテーブルを使用して製品リストをコード化しました。コードは次のようになりました:HTMLデータテーブルに散在する要素を識別するMicrodata ItemID

<table> 
<tr class="name"> 
<td>Product Name #1</td><td>Product Name #2</td><td>Product Name #3</td> 
</tr> 
<tr class="price"> 
<td>Product Price #1</td><td>Product Price #2</td><td>Product Price #3</td> 
</tr> 
<tr class="brand"> 
<td>Product Brand #1</td><td>Product Brand #2</td><td>Product Brand #3</td> 
</tr> 
</table> 

あなたはそのアイディアを得ています。視覚的には完璧に見えますが、schema.orgでマークアップしようとすると、製品のプロパティが存在しないというネストされたHTML要素がテーブル全体に広がっているという問題が発生しています。 ItemID Microdata属性を使用して、各ブランドと価格が適切な製品名に関連付けられていることを確認する方法がありますか?以下のような

何か:

<tr class="name"> 
<td itemscope itemtype="http://www.schema.org/Product" itemID="Product1">Product Name #1</td> 
<td itemscope itemtype="http://www.scema.org/Product" itemID="Product2">Product Name #2</td> 

等などの任意の考え?私は、この作品を作るためにページを再コード化してもらえますか?

答えて

6

はい、itemidはこれを行う正しい方法です。あなたはページのさまざまな部分で同じ項目話をしているのmicrodataパーサーを言っている、同じアイテムIDを再利用することにより

<table> 
    <tr class="name"> 
    <td itemscope itemtype="http://www.schema.org/Product" itemid="Product1"> 
     <span itemprop="name">Product Name #1</span> 
    </td> 
    <td itemscope itemtype="http://www.schema.org/Product" itemid="Product2"> 
     <span itemprop="name">Product Name #2</span> 
    </td> 
    </tr> 
    <tr class="price"> 
    <td itemscope itemtype="http://www.schema.org/Product" itemid="Product1"> 
     <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
     <span itemprop="price">Product Price #1</span> 
     </div> 
    </td> 
    <td itemscope itemtype="http://www.schema.org/Product" itemid="Product2"> 
     <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
     <span itemprop="price">Product Price #2</span> 
     </div> 
    </td> 
    </tr> 
</table> 

:あなたの例では、次のようになります。

+0

を用いてミクロをテストすることができる[ 'itemid'(http://www.w3.org/TR/2013/NOTE-microdata-20131029/# attr-itemid) "有効なURLである必要があります"。 – unor

+0

@unor相対URLは有効なアイテムIDです –

+0

ああ、そうです。 – unor

6

実際、itemidはこれを行う正しい方法ではありません。 RDFと異なり、マイクロデータ解析モデルは同じitemidを持つものには参加しません。

代わりに、itemref属性を使用する必要があります。例えば

<div itemscope itemtype="http://schema.org/Product" itemref="foo"></div> 
<div id="foo" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 
    <span itemprop="price">Product Price #1</span> 
</div> 

あなたはhttp://foolip.org/microdatajs/live/

関連する問題