2016-05-03 67 views
2

應該爲HTML5的XML序列化指定什麼doctype?XHTML5(HTML5的XML序列化)的文檔類型是什麼?

將文件擴展名保存爲html我可以告訴瀏覽器該內容是XHTML5嗎?

+0

這聽起來像是一個XY問題:您遇到了問題,並且您試圖通過將某些文件作爲XHTML提供來解決它。帶來新的問題。那麼,你試圖解決的原始問題是什麼?我們先來看看。 –

回答

0

應該爲HTML5的XML序列化指定什麼doctype?

the docs:如果需要

XML文檔可能包含一個DOCTYPE,但這不是必須符合本規範。本規範沒有定義公共或系統標識符,也沒有提供正式的DTD。

所以沒有標準的DTD,所以你不應該提供任何的Doctype(除非你先寫一個DTD)。


保持文件擴展名爲HTML我可以告訴大家,內容XHTML5的瀏覽器?

文件擴展名與WWW無關。 Content-Type HTTP響應標頭應該是application/xhtml+xml

+0

從本地文件系統打開文件時,擴展名確實有所不同。更重要的是,由於驗證問題,我問了這個問題。由於例如有驗證錯誤void元素具有單獨的關閉標籤,這些標籤在xml中是有效的 – Nitesh

+0

「當從本地文件系統打開文件時,擴展名確實有所改變。」 - 這是XHTML的一種非典型用法,因爲您在問題中沒有提及它合理地假設你正在談論WWW。軟件使用文件擴展名來確定本地系統上的文件類型,所以不要給他們.html文件擴展名。 – Quentin

+0

「由於例如void元素具有單獨的關閉標籤,這些驗證錯誤在xml中是有效的」 - 這是您沒有提到的其他內容。您需要找到一個支持XHTML的驗證器。如果您爲XHTML編寫了DTD,那麼這可能是標準的XML驗證程序。 XHTML沒有標準的DTD。 – Quentin

3

XHTML5的「文檔類型」是<!DOCTYPE html>

嚴格來說,HTML5沒有文檔類型。它只有一個「看我,我是一個HTML5文檔」標記,它恰好類似於在Web瀏覽器中觸發標準模式的doctype聲明。正如你所說,由於XHTML5只不過是HTML5的XML序列化,所以其「doctype」與HTML5相同。

如果您問的是MIME類型,那麼就像通常的XHTML文檔那樣,它就是application/xhtml + xml。文檔類型對文檔是作爲HTML標籤湯還是作爲XML提供沒有任何影響。

+0

由於驗證問題,我問了這個問題。由於例如有驗證錯誤void元素具有單獨的關閉標籤,否則這些標籤在xml中有效 – Nitesh

+0

而某些html文件可能具有html5,但是其他XHtml5,因此我不能只指定MIME類型。那麼xhtml擴展是最好的選擇? – Nitesh

+2

@Nitesh:您的第一個錯誤是將您的網站用作部分HTML和部分XHTML。從來沒有人這樣做。沒有人。如果你這樣做是因爲你無法決定使用哪種口味,我會爲你決定:HTML。 – BoltClock

0

任何使用XHTML都應該暗示它現在是一個XML文檔。這是XHTML的唯一要求,儘管許多網站已經將XHTML作爲「text/html」MIME類型(由Web服務器設置)提供,儘管它應該是「application/xhtml + xml」。因此,您的Web服務器應配置爲將XHTML作爲XML提供。一旦它作爲XML文檔類型提供,如果網頁瀏覽器沒有完美形成和驗證的XML,則網頁將無法解析。