Відкрити декларацію простору імен Graph: HTML з XMLNS або префіксом заголовка?


129

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

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

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

Відкрийте вихідний код веб-сайту Graph (за допомогою атрибута HTML XMLNS):

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

Документація на відкриту графіку Facebook (за допомогою атрибута префікса HEAD):

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

Документація відкритої графіки Facebook №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">

Що є рекомендованим методом чи це навіть не має значення?


9
Я внутрішньо стежу за ФБ, щоб отримати правильну відповідь для вас.
Саймон Крос

7
@SimonCross, років по тому (листопад / 2017) ми ще чекаємо на відповідь ...;)
Гельмут Гранда

Відповіді:


73

Всі вони рівноцінні і всі працюватимуть.

Використовуйте префікс, оскільки це новий рекомендований спосіб і має менше символів.

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


4
Чи можете ви пояснити, чому взагалі щось використовувати? Як щодо того, що я просто залишаю цю заяву? чи щось зламається, якщо я це зроблю?
andrewrk

3
Зараз нічого не зламається, але покладатися на типові параметри рідко є доброю ідеєю, коли ви можете бути явними. Якщо через 2 роки в дорозі ми змінимо налаштування за замовчуванням, ваш сайт зламається. Крім того, якщо ви оголосите простори імен безпосередньо, це допоможе іншим парсерам не лише Facebook.
Пол Тарджан

1
Павло, я помітив, що документи не оновлюються з листопада. Чому найкраще використовувати новий спосіб, якщо обидва способи будуть підтримуватися усіма існуючими браузерами в осяжному майбутньому? Прийняття чогось нового, якщо підтримки не існує у всіх (серед агентів користувача, аналізаторів тощо), здається зайвим ризиком, якщо між ними не буде певної різниці. Я не зміг знайти жодного ресурсу, який би сказав про це.
AndrewF

3
@PaulTarjan Тут ! Для цього є приклад використання xmlns. Також, чи prefixслід використовувати на htmlабо headтег? Було б добре в будь-якому випадку? Що рекомендується?
its_me

9
О, ці документи старі. Жовта річ вгорі так говорить. Ми не хотіли їх чіпати, бо на них багато посилань. Покладіть prefixна head. Він працює і на те, і ближче до тегів краще.
Пол Тарджан

4

Я спробував слідувати відповіді @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

Це навіть не має значення. RDFa Core Initial Context розпізнає og як широко використовуваний префікс лексики:

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

Акцент додається для наочності.

Тому вам не потрібно додавати простір імен у свої документи HTML. Більше інформації тут .


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

Є найкращий спосіб перевірити.


1

атрибут prefix / xmlns корисний для визначення короткої сторони. rdf походить від xml-рядків, тому очікується, що позначення 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.