web-dev-qa-db-ja.com

Open Graph名前空間宣言:XMLNSまたはheadプレフィックス付きのHTML?

Open Graph名前空間を最適に実装する方法に関する矛盾する情報を見てきました。具体的には、Open Graph Webサイトではいくつかの異なる方法を使用し、Facebook Open Graphの例では他の方法を使用しています。

Open Graph Webサイトの例(HTMLプレフィックス属性を使用):

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

Open Graph Webサイトのソースコード(HTML XMLNS属性を使用):

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

Facebook Open Graphドキュメント(HEAD prefix属性を使用):

<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">

推奨される方法は何ですか、それも重要ではありませんか?

127
Matt Beckman

それらはすべて同等であり、すべて機能します。

新しい推奨方法であり、文字数が少ないプレフィックスを使用します。

すべてのドキュメントを接頭辞に更新します。

72
Paul Tarjan

頭に接頭辞を使用するという@Paul Tarjanの答えに従ってみました。ただし Internet Explorer 8の問題が発生しました 。そのため、最終的にはfb名前空間にxmlnsの方法を引き続き使用します。

<!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

それも重要ではありません。 RDFaコアの初期コンテキスト 認識ogは、広く使用されている語彙プレフィックスとして:

RDFaユーザーはこれらのプレフィックスを使用できますプレフィックスを定義する義務を負うことなく HTMLコードで。同じプレフィックスのリストは、URI http://www.w3.org/2013/json-ld-context/rdfa11;で JSON-LD Context としてJSON-LDにも定義されています。 JSON-LDユーザーは、同じURIで@contextキーを省略形として使用して、同じプレフィックスを使用できます。

明確にするために強調が追加されました。

したがって、HTMLドキュメントに名前空間を追加する必要はありません。詳細情報 こちら

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>

検証する最良の方法があります。

2

prefix/xmlns属性は、速記を定義するのに役立ちます。 rdfはxml系統からのものであるため、xmlns表記はdoctypeの詳細に関係なく機能することが期待されます。 rdfaは、 http://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax で指定されたプレフィックスを含む属性でhtmlを拡張しますto http://dev.w3.org/html5/rdfa/rdfa-module.html また、そこに記載されているrel = "profile"のツールサポートもまだ待たれています。それまでは、古いdoctypeを使用するか、検証のためにrdf:を手動で配置するか、バリデーターとそのようなツールが追いつくのを待つか、どちらかを選択します。宣言を行う適切な場所は、省略表記が使用される場所の先祖である要素開始タグです。特にogプレフィックスの場合、RDFaコアの初期コンテキストによって事前定義されています http://www.w3.org/2011/rdfa-context/rdfa-1.1.html ので、それを完全にスキップします新しいdoctypesは大丈夫です。特にhtml5の場合、RDFa初期コンテキスト http://www.w3.org/2011/rdfa-context/html-rdfa-1.1 は、前述のRDFa初期コンテキストの後にのみロードされます。

1
Chawathe Vipul