Объявление открытого пространства Open Graph: HTML с XMLNS или префикс главы?

Я видел противоречивую информацию о том, как наилучшим образом реализовать пространства имен Open Graph. В частности, веб-сайт Open Graph использует несколько разных методов, а примеры Facebook Open Graph используют другие методы.

Пример веб-сайта Open Graph (с использованием атрибута префикса HTML):

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

Исходный код веб-сайта Open Graph (с использованием атрибута XML XMLNS):

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

Документация Facebook Open Graph (с использованием атрибута префикса HEAD):

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

Facebook Open Graph documentation # 2 (с использованием атрибута XML XMLNS):

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

Каков рекомендуемый метод или он даже не имеет значения?

Ответ 1

Все они эквивалентны и все будут работать.

Используйте префикс, поскольку он является новым рекомендуемым способом и меньше символов.

Я обновляю всю нашу документацию до префикса.

Ответ 2

Я попробовал ответить @Paul Tarjan на использование префикса в голове. Однако У меня возникла проблема с Internet Explorer 8. Поэтому в конце я все еще использую путь xmlns для пространства имен fb:

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

Ответ 3

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

Существует лучший способ проверки.

Ответ 4

Атрибут

prefix/xmlns полезен для определения коротких рук. rdf - от xml lineage, поэтому следует считать, что нотация xmlns не зависит от детали doctype. rdfa расширяет html с атрибутами, включая префикс, как указано http://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax Однако для этого требуется придерживаться http://dev.w3.org/html5/rdfa/rdfa-module.html Кроме того, поддержка инструмента для rel= "profile", как упоминалось в нем, еще не ожидалась. До этого выбор заключается в использовании старых доктринов или вручную размещении rdf: для целей проверки или ожидания проверки и таких инструментов для догоняющего. Правильным местом для объявления является любой тег открытия элемента, который является предком везде, где будет использоваться короткая нотация. В частности, для префикса og он предопределен исходным контекстом RDFa Core http://www.w3.org/2011/rdfa-context/rdfa-1.1.html, поэтому его вообще пропускать для новых доктринов - это хорошо. И специально для html5 исходный контекст RDFa http://www.w3.org/2011/rdfa-context/html-rdfa-1.1 загружается только после начального контекста RDFa, упомянутого ранее.

Ответ 5

Это даже не важно. Базовый начальный контекст RDFa распознает og как широко используемый словарный префикс:

Пользователи RDFa могут использовать эти префиксы, не имея обязанности определять префиксы в коде HTML. Тот же список префиксов также был определен для JSON-LD как контекст JSON-LD в URI http://www.w3.org/2013/json-ld-context/rdfa11; Пользователи JSON-LD могут использовать ключ @context с этим URI в качестве сокращения, чтобы использовать те же префиксы.

Акцент добавлен для ясности.

Поэтому вам не нужно добавлять пространство имен в ваши HTML-документы. Больше информации здесь.