Estoy agregando marcas semánticas de schema.org, y me gustaría vincular varias de las cuales están en partes bastante diferentes de la página web.
Esto funciona cuando los especifico como padre / hijo:
<div itemscope itemtype="http://schema.org/ExerciseAction">
<span itemprop="distance">11 km</span>
<div itemprop="event" itemscope itemtype="http://schema.org/Event">
<span itemprop="name">first event</span>
<span itemprop="startDate">2001-01-01</span>
</div>
</div>
Sin embargo, no sé cómo vincularlos cuando están separados por una montaña de HTML:
<div itemscope itemtype="http://schema.org/Event">
<span itemprop="name">some event</span>
<span itemprop="startDate">2002-02-02</span>
</div>
<!--
....
zillion other HTML stuff
...
-->
<div itemscope itemtype="http://schema.org/ExerciseAction">
<span itemprop="distance">22 km</span>
</div>
Supongo que debería usar "itemref" o algo para vincular ámbitos relacionados, pero no puedo hacer que funcione. Mirar preguntas similares no ayudó en este caso.
ACTUALIZACIÓN: tenga en cuenta que estoy buscando específicamente una solución que funcione a través de algún tipo de referencia y NO funciona a través de la anidación de ningún tipo. Además, el orden del segundo ejemplo (que no funciona) debe permanecer igual (evento primero, ejercicio segunda acción). (Hay varias razones para eso fuera de mi control).
Específicamente, "funciona" se define como al menos una herramienta de fragmentos enriquecidos de Google que muestra que los elementos están vinculados entre sí (como lo hace para ese primer ejemplo de trabajo)
WebPage
marcado padre y usarloitemref
allí también, para que no incluya los tipos de elementos (no relacionados) como hijos. Probablemente debería ser otra pregunta.Si entiendo su pregunta correctamente, simplemente no cierre esa división.
Mientras no se encuentre la etiqueta coincidente, lo que esté dentro de ese div inicial todavía se considerará parte de ese div inicial, en ese caso, un Evento.
fuente
@Guisasso es correcto, simplemente no cierras el elemento. Pero en otra nota, no está restringido a usar el esquema solo dentro de los elementos DIV y usar los tramos como sugiere (meros ejemplos). Si toda la página trata sobre cosas relacionadas con eventos y esto está en todo el sitio, entonces podría tener más sentido usar el elemento del cuerpo, lo que significa que su plantilla, si tiene una, trata automáticamente de abrir y cerrar el esquema. De esta manera, sus artículos solo llenan ese contenido mientras la plantilla lo configura.
Por ejemplo:
O podría usarlo en el elemento
MAIN
oARTICLE
si está usando HTML5.fuente
También he ejecutado la propiedad adicionalType , que podría usarse de la siguiente manera
Si bien eso ayuda con mi problema principal (no poder reordenar la relación niño-padre de ExerciseAction / Event), no ayuda con otro problema (no poder anidar esos divs), y es un poco incómodo (no produce el mismo semántico que el ejemplo de trabajo original). Sin embargo, es útil ya que permite la vinculación de los tipos de elementos de schema.org que no tienen elementos destinados a la vinculación, por lo que podría vincular, por ejemplo, Book to SportsEvent o lo que sea.
Me estoy respondiendo aquí solo en caso de que ayude a alguien más con un problema similar, ya que realmente no me ayuda (aunque podría ser el último recurso si no surge nada mejor)
fuente