web-dev-qa-db-fra.com

Déclaration d'espace de noms Open Graph: HTML avec XMLNS ou préfixe head?

J'ai vu des informations contradictoires sur la meilleure façon d'implémenter les espaces de noms Open Graph. Plus précisément, le site Web Open Graph utilise différentes méthodes et les exemples Facebook Open Graph utilisent d'autres méthodes.

Exemple de site Web Open Graph (utilisant l'attribut préfixe HTML):

<html prefix="og: http://ogp.me/ns#">

Code source du site Web Open Graph (utilisant l'attribut HTML XMLNS):

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#">

Documentation Facebook Open Graph (avec HEAD):

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">

Documentation Facebook Open Graph n ° 2 (utilisant l'attribut HTML XMLNS):

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" 
      xmlns:fb="https://www.facebook.com/2008/fbml">

Quelle est la méthode recommandée ou est-ce même sans importance?

127
Matt Beckman

Ils sont tous équivalents et fonctionneront tous.

Utilisez prefix car c'est la nouvelle méthode recommandée et il y a moins de caractères.

Je vais mettre toute notre documentation à jour en préfixe.

72
Paul Tarjan

J'ai essayé de suivre la réponse de @Paul Tarjan d'utiliser le préfixe dans la tête. Cependant j'ai eu un problème avec Internet Explorer 8 . Donc au final, j'utilise toujours la méthode xmlns pour l'espace de noms fb:

<!DOCTYPE HTML>
<html xmlns:fb="http://ogp.me/ns/fb#">
  <head prefix="og: http://ogp.me/ns# object: http://ogp.me/ns/object#">
4
lulalala

Cela n'a même pas d'importance. RDFa Core Contexte initial reconnaîtog comme préfixe de vocabulaire largement utilisé:

Les utilisateurs de RDFa peuvent utiliser ces préfixes sans être obligés de définir les préfixes dans le code HTML. La même liste de préfixes a également été définie pour JSON-LD en tant que contexte JSON-LD à l’URI http://www.w3.org/2013/json-ld-context/rdfa11; Les utilisateurs JSON-LD peuvent utiliser le @context clé avec cet URI comme raccourci pour utiliser les mêmes préfixes.

L'accent est ajouté pour plus de clarté.

Par conséquent, vous n'avez pas besoin d'ajouter un espace de nom à vos documents HTML. Plus d'informations ici .

2
Josh Habdas
<html xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns# fb:
http://www.facebook.com/2008/fbml"> <head>

Il y a le meilleur moyen de valider.

2

l'attribut prefix/xmlns est utile pour définir un raccourci. rdf est issu de la lignée xml, la notation xmlns doit donc fonctionner de manière indépendante du détail du doctype. rdfa étend le langage HTML avec les attributs, y compris le préfixe, tels qu'ils sont donnés par http://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax Toutefois, cela nécessite to http://dev.w3.org/html5/rdfa/rdfa-module.html De plus, le support de l'outil pour rel = "profile", tel que mentionné ici, est encore attendu. Jusque-là, vous avez le choix entre utiliser d'anciens doctypes, ou placer manuellement rdf: à des fins de validation ou attendre que le validateur & ces outils se rattrapent. Le bon endroit pour faire une déclaration est n'importe quelle balise d'ouverture d'élément qui est l'ancêtre de l'endroit où la notation abrégée sera utilisée. Spécifiquement pour le cas de préfixe og, il est prédéfini par le contexte initial de RDFa Core http://www.w3.org/2011/rdfa-context/rdfa-1.1.html donc le saute complètement pour les nouveaux doctypes vont bien. Et spécifiquement pour html5, le contexte initial RDFa http://www.w3.org/2011/rdfa-context/html-rdfa-1.1 est chargé uniquement après le contexte initial RDFa mentionné précédemment.

1
Chawathe Vipul