Open Graph namespace declaration: HTML with XMLNS or head prefix?
I tried following @Paul Tarjan's answer of using prefix in the head. However I got some Internet Explorer 8 issue. So in the end I still use the xmlns way for fb namespace:
<!DOCTYPE HTML>
<html xmlns:fb="http://ogp.me/ns/fb#">
<head prefix="og: http://ogp.me/ns# object: http://ogp.me/ns/object#">
They are all equivalent and will all work.
Use prefix as it is the new recommended way and is fewer characters.
I'll get all our documentation updated to prefix.
<html xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns# fb:
http://www.facebook.com/2008/fbml"> <head>
There is the best way to validate.
It doesn't even matter. RDFa Core Initial Context recognizes og
as a widely used vocabulary prefix:
RDFa users can use these prefixes without having the obligation of defining the prefixes in the HTML code. The same list of prefixes have also been defined for JSON-LD as a JSON-LD Context at the URI
http://www.w3.org/2013/json-ld-context/rdfa11
; JSON-LD users can use the@context
key with that URI as a shorthand to use the same prefixes.
Emphasis added for clarity.
Therefore, you do not need to add a namespace to your HTML documents. More information here.