Je suis nouveau sur Facebook Open Graph Protocol . J'ai essayé de comprendre la signification de l'attribut HTML prefix
. Le post le plus proche sur Stack Overflow que j'ai pu trouver sur ce sujet est ce post qui a été très utile car il traite des différences entre les différentes syntaxes possibles et celle à utiliser.
Cependant, la publication ne dit rien sur ce que cet attribut prefix
est ou ce qu'il fait. AFAIK ce n'est pas un attribut HTML standard. J'ai pu trouver ce document qui, je pense, est l'endroit où le W3C définit cet attribut mais n'a pas été en mesure de le comprendre.
Quelqu'un pourrait-il m'expliquer:
Que fait l'attribut prefix
?
Puis-je écrire
<html prefix="og:http://ogp.me/ns#">
au lieu de
<html prefix="og: http://ogp.me/ns#">
ou serait-ce une erreur de syntaxe?
Puis-je inclure plusieurs attributs prefix
pour une balise HTML donnée?
<head prefix="a: http://www.aaa.com/ns#" prefix="b: http://www.bbb.com/ns#">
D'après mes connaissances en HTML, ce serait faux, mais alors prefix
est un attribut non standard. Alors peut-être, ce que je voudrais savoir, est-ce que je peux écrire:
<head prefix="a: http://www.aaa.com/ns# b: http://www.bbb.com/ns#">
ou la spécification de plusieurs préfixes à un endroit quelconque de l'arborescence HTML n'a-t-elle aucun sens pour une raison quelconque?
Si cette balise prefix
ne fait pas partie de la spécification HTML, comment la soumission d'une page contenant cet attribut à un validateur de code entraînerait-elle la conformité de mon code aux normes?
Je vous remercie d'avoir répondu à mes questions.
D'abord:
prefix
est l'un des attributs définis par l'extension RDFa (Resource Description Framework in Attributes) . RDFa est utilisé pour implémenter le Web sémantique dans les pages Web représentées dans de nombreux langages de balisage, comme HTML et XML. Au lieu d'avoir une page Web expliquant au navigateur comment elle doit être structurée, vous pouvez désormais lui dire ce que la page représente , comme une personne, un Liste des produits, etc.
Et pour que vous puissiez représenter sémantiquement les données sur votre page Web, vous devez utiliser un vocabulaire sémantique , qui indique exactement au navigateur ce qui est: représenté dans votre page. Un vocabulaire sémantique populaire est schema.org .
Mais parfois, un vocabulaire sémantique singulier ne peut pas représenter et décrire l'ensemble de votre page Web. C'est là que l'attribut prefix
entre en jeu:
Que fait l'attribut
prefix
?
L'attribut prefix
vous permet de spécifier un ou plusieurs vocabulaires sémantiques utilisés. L'exemple suivant utilise deux vocabulaires pour représenter une personne qui a un animal préféré : schema.org et vocab.org .
<p vocab="http://schema.org/" prefix="ov: http://open.vocab.org/terms/" resource="#manu" typeof="Person">
My name is <span property="name">MY_NAME</span>
and my telephone is <span property="telephone">MY_TELEPHONE</span>.
My favorite animal is the <span property="ov:preferredAnimal">FAVORITE_ANIMAL</span>.
</p>
Puis-je écrire
<html prefix="og:http://ogp.me/ns#">
au lieu de<html prefix="og: http://ogp.me/ns#">
ou serait-ce une erreur de syntaxe?
En plus de ne pouvoir trouver aucun exemple sur le web en utilisant l'ancienne syntaxe, à partir de la spécification du RDFa Core vous pouvez voir qu'au moins un espace est en effet obligatoire:
prefix
a white space separated list of prefix-name IRI pairs of the form
NCName ':' ' '+ xsd:anyURI
Puis-je inclure plusieurs attributs
prefix
pour une balise HTML donnée?
Oui, vous pouvez. D'après la spécification de l'attribut prefix
donnée ci-dessus, et à partir de nombreux exemples donnés sur la spécification de RDFa Core , ce qui suit est autorisé:
<html
prefix="foaf: http://xmlns.com/foaf/0.1/
dc: http://purl.org/dc/terms/"
>
<!-- your page -->
</html>
Si cette balise
prefix
ne fait pas partie de la spécification HTML, comment la soumission d'une page contenant cet attribut à un validateur de code entraînerait-elle la conformité de mon code aux normes?
Comme mentionné par @wensveen, HTML5 prend en charge les attributs RDFa prêts à l'emploi .
Il semble que l'attribut préfixe soit bien défini dans la spécification RDFa que vous avez liée. Alors que vous devez spécifier le type de support correct pour les documents XHTML (application/xhtml+xml
) et le bon doctype (<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">
) et probablement d'autres push-ups XML, ce n'est pas nécessaire pour HTML5. En HTML5, vous pouvez utiliser les attributs définis RDFa prêts à l'emploi.
Voir: spécification HTML + RDFa 1.1
Je ne sais pas s'il y a des avantages spécifiques à cette façon de mapper un préfixe à un espace de noms. Ce n'est pas tout à fait clair pour moi non plus.