Dichiarazione dello spazio dei nomi Open Graph: HTML con XMLNS o prefisso head?


129

Ho visto informazioni contrastanti su come implementare al meglio gli spazi dei nomi Open Graph. In particolare, il sito Web Open Graph utilizza alcuni metodi diversi e gli esempi di Facebook Open Graph utilizzano altri metodi.

Esempio di sito Web Open Graph (utilizzando l'attributo del prefisso HTML):

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

Codice sorgente del sito Web Open Graph (utilizzando l'attributo HTML XMLNS):

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

Documentazione Facebook Open Graph (utilizzando l'attributo prefisso HEAD):

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

Documentazione # 2 di Facebook Open Graph (utilizzando l'attributo HTML XMLNS):

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

Qual è il metodo raccomandato o non importa?


9
Sto seguendo internamente a FB per ottenere la risposta giusta per te.
Simon Cross,

7
@SimonCross, anni dopo (Nov / 2017) stiamo ancora aspettando la risposta ...;)
Helmut Granda

Risposte:


73

Sono tutti equivalenti e funzioneranno tutti.

Usa il prefisso in quanto è il nuovo modo consigliato e contiene meno caratteri.

Riceverò tutta la nostra documentazione aggiornata al prefisso.


4
Puoi spiegare perché usare qualcosa? Che ne dici di lasciare questa dichiarazione? qualcosa si romperà se lo faccio?
andrewrk,

3
Al momento non si romperà nulla, ma fare affidamento sui valori predefiniti raramente è una buona idea quando si può essere espliciti. Se dopo 2 anni cambiamo le impostazioni predefinite, il tuo sito si romperà. Inoltre, se dichiari direttamente i tuoi spazi dei nomi, aiuterà altri parser non solo Facebook.
Paul Tarjan,

1
Paul, ho notato che i documenti non sono stati aggiornati da novembre. Perché utilizzare al meglio il nuovo modo, se entrambi i modi saranno supportati da tutti i browser esistenti per il prossimo futuro? L'adozione di qualcosa di nuovo se il supporto non è presente (tra agenti utente, parser, ecc.) Sembra un rischio non necessario a meno che non vi sia una reale differenza tra i due. Non sono stato in grado di trovare alcuna risorsa che lo dica.
AndrewF,

3
@PaulTarjan Here ! Quello ha un esempio usando xmlns. Inoltre, dovrebbe prefixessere usato su htmlo headtag? Andrebbe bene in entrambi i casi? Quale è raccomandato?
its_me

9
Oh, quei documenti sono vecchi. Lo dice la cosa gialla in alto. Non volevamo toccarli perché sono molto citati. Metti prefixil head. Funziona su entrambi ma è più vicino ai tag.
Paul Tarjan,

4

Ho provato a seguire la risposta di @Paul Tarjan sull'uso del prefisso in testa. Tuttavia ho riscontrato qualche problema con Internet Explorer 8 . Quindi alla fine uso ancora il modo xmlns per lo spazio dei nomi 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

Non importa nemmeno. RDFa Core Initial Context riconosce og come prefisso di vocabolario ampiamente utilizzato:

Gli utenti di RDFa possono utilizzare questi prefissi senza l'obbligo di definire i prefissi nel codice HTML. Lo stesso elenco di prefissi è stato anche definito per JSON-LD come contesto JSON-LD all'URI http://www.w3.org/2013/json-ld-context/rdfa11; Gli utenti JSON-LD possono utilizzare la @contextchiave con quell'URI come abbreviazione per utilizzare gli stessi prefissi.

Enfasi aggiunta per chiarezza.

Pertanto, non è necessario aggiungere uno spazio dei nomi ai documenti HTML. Maggiori informazioni qui .


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

C'è il modo migliore per convalidare.


1

L'attributo prefix / xmlns è utile per definire la scorciatoia. rdf proviene dal lignaggio xml, quindi la notazione xmlns dovrebbe funzionare indipendentemente dai dettagli del tipo di documento. rdfa estende html con attributi incluso prefisso come indicato da http://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax Tuttavia, ciò richiede l'adesione a http: // dev. w3.org/html5/rdfa/rdfa-module.html Inoltre, è ancora atteso il supporto dello strumento per rel = "profile" come menzionato al suo interno. Fino ad allora, la scelta è tra l'uso di doctype più vecchi o il posizionamento manuale di rdf: a scopo di convalida o attendere che il validatore e tali strumenti recuperino. Il posto giusto per fare una dichiarazione è qualsiasi tag di apertura di un elemento che è antenato ovunque verrà usata la notazione abbreviata. In particolare per il caso del prefisso og, è predefinito dal contesto iniziale di RDFa Core http://www.w3.org/2011/rdfa-context/rdfa-1.1.html, quindi saltarlo del tutto per i nuovi tipi di documento va bene. In particolare per html5 il contesto iniziale RDFa http://www.w3.org/2011/rdfa-context/html-rdfa-1.1 viene caricato solo dopo il contesto iniziale RDFa menzionato in precedenza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.