Mở khai báo không gian tên đồ thị: HTML với XMLNS hoặc tiền tố đầu?


129

Tôi đã thấy thông tin mâu thuẫn về cách triển khai tốt nhất các không gian tên Open Graph. Cụ thể, trang web Open Graph sử dụng một vài phương pháp khác nhau và các ví dụ về Biểu đồ mở của Facebook sử dụng các phương pháp khác.

Ví dụ trang web Open Graph (sử dụng thuộc tính tiền tố HTML):

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

Mã nguồn trang web của đồ thị mở (sử dụng thuộc tính XML XMLNS):

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

Tài liệu Facebook Open Graph (sử dụng thuộc tính tiền tố HEAD):

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

Tài liệu đồ thị mở của Facebook # 2 (sử dụng thuộc tính XML XMLNS):

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

Phương pháp được đề xuất là gì hoặc nó thậm chí không quan trọng?


9
Tôi đang theo dõi nội bộ tại FB để có câu trả lời đúng cho bạn.
Simon Cross

7
@SimonCross, nhiều năm sau (tháng 11/2017) chúng tôi vẫn đang chờ câu trả lời ...;)
Helmut Granda

Câu trả lời:


73

Họ đều tương đương và tất cả sẽ làm việc.

Sử dụng tiền tố vì đó là cách được đề xuất mới và ít ký tự hơn.

Tôi sẽ nhận được tất cả các tài liệu của chúng tôi được cập nhật thành tiền tố.


4
Bạn có thể giải thích tại sao để sử dụng bất cứ điều gì cả? Làm thế nào về tôi chỉ để lại tuyên bố này? Có gì sẽ phá vỡ nếu tôi làm điều đó?
andrewrk

3
Không có gì sẽ phá vỡ ngay bây giờ, nhưng dựa vào mặc định hiếm khi là một ý tưởng tốt khi bạn có thể rõ ràng. Nếu 2 năm sau, chúng tôi thay đổi mặc định, trang web của bạn sẽ bị hỏng. Ngoài ra, nếu bạn khai báo không gian tên trực tiếp, nó sẽ giúp các trình phân tích cú pháp khác không chỉ Facebook.
Paul Tarjan

1
Paul, tôi đã nhận thấy rằng các tài liệu đã không được cập nhật kể từ tháng 11. Tại sao sử dụng cách mới tốt nhất, nếu cả hai cách sẽ được hỗ trợ bởi tất cả các trình duyệt hiện tại trong tương lai gần? Chấp nhận một cái gì đó mới nếu hỗ trợ không phải là tất cả (giữa các tác nhân người dùng, trình phân tích cú pháp, v.v.) có vẻ như là một rủi ro không cần thiết trừ khi có một số khác biệt thực sự giữa hai. Tôi đã không thể tìm thấy bất kỳ tài nguyên nào nói như vậy.
AndrewF

3
@PaulTarjan Đây ! Đó là một ví dụ sử dụng xmlns. Ngoài ra, nên prefixđược sử dụng trên htmlhoặc headthẻ? Nó cũng sẽ ổn thôi Đó là khuyến cáo?
its_me

9
Ồ, những tài liệu đó đã cũ. Điều màu vàng ở phía trên nói như vậy. Chúng tôi không muốn chạm vào chúng vì chúng được tham chiếu rất nhiều. Đặt prefixtrên head. Nó hoạt động trên cả hai nhưng gần hơn với các thẻ là tốt hơn.
Paul Tarjan

4

Tôi đã thử làm theo câu trả lời của @Paul Tarjan về việc sử dụng tiền tố trong đầu. Tuy nhiên tôi có một số vấn đề Internet Explorer 8 . Vì vậy, cuối cùng tôi vẫn sử dụng cách xmlns cho không gian tên 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

Nó thậm chí không quan trọng. Ngữ cảnh ban đầu của RDFa công nhận og là tiền tố từ vựng được sử dụng rộng rãi:

Người dùng RDFa có thể sử dụng các tiền tố này mà không có nghĩa vụ xác định các tiền tố trong mã HTML. Danh sách các tiền tố tương tự cũng đã được xác định cho JSON-LD dưới dạng bối cảnh JSON-LD tại URI http://www.w3.org/2013/json-ld-context/rdfa11; Người dùng JSON-LD có thể sử dụng @contextkhóa với URI đó làm tốc ký để sử dụng cùng các tiền tố.

Nhấn mạnh thêm cho rõ ràng.

Do đó, bạn không cần thêm không gian tên vào tài liệu HTML của mình. Thêm thông tin ở đây .


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

Có cách tốt nhất để xác nhận.


1

thuộc tính tiền tố / xmlns là hữu ích để xác định tay ngắn. rdf là từ dòng xml nên ký hiệu xmlns nên hoạt động độc lập với chi tiết doctype. rdfa mở rộng html với các thuộc tính bao gồm tiền tố như được đưa ra bởi http://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax Tuy nhiên, điều này đòi hỏi phải tuân thủ http: // dev. w3.org/html5/rdfa/rdfa-module.html Ngoài ra, công cụ hỗ trợ cho rel = "hồ sơ" như đã đề cập trong đó vẫn chưa được chờ đợi. Cho đến lúc đó, sự lựa chọn là giữa việc sử dụng các loại tài liệu cũ hơn hoặc đặt rdf theo cách thủ công: cho mục đích xác thực hoặc chờ trình xác thực & các công cụ như vậy bắt kịp. Vị trí thích hợp để khai báo là bất kỳ thẻ mở phần tử nào là tổ tiên của bất kỳ nơi nào ký hiệu tay ngắn sẽ được sử dụng. Cụ thể cho trường hợp tiền tố og, nó được xác định trước bởi bối cảnh ban đầu của RDFa Core http://www.w3.org/2011/rdfa-context/rdfa-1.1.htmlvì vậy bỏ qua nó hoàn toàn cho các loại tài liệu mới hơn là ổn. Và đặc biệt đối với html5 bối cảnh ban đầu RDFa http://www.w3.org/2011/rdfa-context/html-rdfa-1.1 chỉ được tải sau khi bối cảnh ban đầu RDFa được đề cập trước đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.