J'ajoute des balises sémantiques schema.org, et j'aimerais relier plusieurs d'entre elles dans des parties très différentes de la page Web.
Cela fonctionne lorsque je les spécifie en tant que parent / enfant:
<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>
Cependant, je ne sais pas comment les lier lorsqu'ils sont séparés par une montagne 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>
Je suppose que je devrais utiliser "itemref" ou quelque chose pour lier des étendues connexes, mais je ne peux pas le faire fonctionner. Regarder des questions similaires n'a pas aidé dans ce cas.
MISE À JOUR: notez que je recherche spécifiquement une solution qui fonctionne via une sorte de référencement et ne fonctionne PAS via l'imbrication de tout type. De plus, l'ordre du deuxième exemple (non fonctionnel) doit rester le même (événement en premier, exercice en second). (Il y a plusieurs raisons à cela hors de mon contrôle).
Plus précisément, "cela fonctionne" est défini comme au moins un outil d'extraits enrichis de Google montrant que les éléments SONT liés entre eux (comme c'est le cas pour ce premier exemple de travail)
WebPage
balisage parent et l'utiliseritemref
là aussi, afin qu'il n'inclue pas les types d'éléments (non liés) en tant qu'enfants. Cela devrait probablement être une autre question.Si je comprends bien votre question, ne fermez pas cette div.
Tant que la balise correspondante n'est pas trouvée, tout ce qui se trouve à l'intérieur de cette division initiale sera toujours considéré comme faisant partie de cette division initiale, dans ce cas, un événement.
la source
@Guisasso est correct, vous ne fermez tout simplement pas l'élément. Mais sur une autre note, vous n'êtes pas limité à utiliser le schéma uniquement dans les éléments DIV et à utiliser les étendues comme il le suggère (de simples exemples). Si la page entière concerne des éléments liés aux événements et que cela se trouve sur le site, il peut être plus judicieux d'utiliser l'élément body, ce qui signifie que votre modèle, si vous en avez un, traite automatiquement de l'ouverture et de la fermeture du schéma. De cette façon, vos articles remplissent simplement ce contenu pendant que le modèle le définit.
Par exemple:
Ou vous pouvez l'utiliser dans l' élément
MAIN
orARTICLE
si vous utilisez HTML5.la source
J'ai également exécuté la propriété additionalType , qui pourrait être utilisée comme suit
bien que cela aide avec mon problème principal (ne pas pouvoir réorganiser la relation enfant-parent ExerciseAction / Event), cela n'aide pas avec un autre problème (ne pas pouvoir imbriquer ces divs), et c'est une sorte de kludgy (ne produit pas le même sémantique que l'exemple de travail d'origine). Cependant, il est utile car il permet de lier des types d'élément schema.org qui n'ont pas d'éléments destinés à la liaison, vous pouvez donc lier par exemple Book à SportsEvent ou autre.
Je me réponds ici juste au cas où cela aiderait quelqu'un d'autre avec un problème similaire, car cela ne m'aide pas vraiment (bien que cela puisse être le dernier recours si rien de mieux n'arrive)
la source