Я видел противоречивую информацию о том, как наилучшим образом реализовать пространства имен Open Graph.В частности, веб-сайт Open Graph использует несколько различных методов, а примеры Facebook Open Graph используют другие методы.
Пример веб-сайта Open Graph (с использованием атрибута префикса HTML):
<html prefix="og: http://ogp.me/ns#">
Open Graphисходный код веб-сайта (с использованием атрибута HTML 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 # 2 (с использованием атрибута HTML XMLNS):
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="https://www.facebook.com/2008/fbml">
Какой метод рекомендуется или вообще не имеет значения?
Все они эквивалентны и будут работать.
Используйте префикс, так как это новый рекомендуемый способ и содержит меньше символов.
Я обновлю всю нашу документацию до префикса.
Я пытался следовать ответу @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#">
<html xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns# fb: http://www.facebook.com/2008/fbml"> <head>
Существует лучший способ проверки.
Это даже не имеет значения. Базовый начальный контекст RDFa распознает og в качестве широко используемого словарного префикса:
og
Пользователи RDFa могут использовать эти префиксы , не имея обязательстваопределение префиксов в коде HTML.Тот же список префиксов также был определен для JSON-LD как JSON-LD Context в URI http://www.w3.org/2013/json-ld-context/rdfa11;Пользователи JSON-LD могут использовать клавишу @context с этим URI в качестве сокращения, чтобы использовать те же префиксы.
http://www.w3.org/2013/json-ld-context/rdfa11
@context
Акцент добавлен для ясности.
Поэтому вам не нужнодобавьте пространство имен в ваши документы HTML.Больше информации здесь .
prefix / xmlns полезен для определения сокращения. rdf взят из линии xml, поэтому ожидается, что нотация xmlns будет работать независимо от деталей типа документа. 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.