2012-06-19 21 views
8

Mi desarrollador codificó una lista de productos utilizando tablas HTML. El código salió algo como esto:Microdatos ID de elemento para identificar elementos dispersos en un documento HTML/tablas HTML

<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> 

Ya sacó la idea. Visualmente se ve perfecto, pero cuando trato de marcar a través de schema.org, me encuentro con problemas, ya que las propiedades de los productos no existen son elementos HTML anidados, pero están distribuidos en la tabla. ¿Habría alguna manera de utilizar el atributo Microdata ItemID para asegurarse de que cada marca y precio esté asociado con el nombre correcto del producto?

Algo así como:

<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> 

etc., etc. ¿Alguna idea? ¿Tendré el código de las páginas para hacer que esto funcione?

Respuesta

6

Sí, itemid es la forma correcta de hacerlo. Su ejemplo podría ser algo como esto:

<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> 

Al reutilizar la misma itemid, usted está diciendo que el analizador microdatos que se está hablando del mismo tema en diferentes partes de la página.

+0

[ 'itemid'] (http://www.w3.org/TR/2013/NOTE-microdata-20131029/# attr-itemid) "debe tener un valor que sea una URL válida". – unor

+0

@unor relative URLS son itemsID válidos –

+0

Ah, eso es correcto. – unor

6

En realidad, itemid no sería la forma correcta de hacerlo. A diferencia de RDF, el modelo de análisis de microdatos no une elementos que tienen el mismo itemid.

En su lugar, debe usar el atributo itemref.

Por ejemplo:

<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> 

que pueda probar el uso de microdatos http://foolip.org/microdatajs/live/

Cuestiones relacionadas