我真的不確定:使用「JSP Document」/「XML in XML表示法」意味着輸出XHTML嗎?是否使用「JSP Document」/「XML in XML表示法」暗示輸出XHTML?
如果是這樣,是否有什麼特別的要求,以產生一個「有效的」XHTML頁面?
更具體地說:我可以擁有一個生成無效XHTML頁面的有效「JSP文檔」(JSP中的XML)嗎?
我真的不確定:使用「JSP Document」/「XML in XML表示法」意味着輸出XHTML嗎?是否使用「JSP Document」/「XML in XML表示法」暗示輸出XHTML?
如果是這樣,是否有什麼特別的要求,以產生一個「有效的」XHTML頁面?
更具體地說:我可以擁有一個生成無效XHTML頁面的有效「JSP文檔」(JSP中的XML)嗎?
我真的不確定這個:使用「JSP Document」/「JSP in XML notation」意味着輸出XHTML嗎?
它至少意味着消費和生產格式良好的XML。如果你編寫無效的XML,那麼它在分析過程中會出錯。如果它生成格式良好的XML,那麼它不可能是HTML4,因爲不允許關閉類似br
,hr
,meta
和link
的短標籤。
當您使用JSP文檔時,您會推薦使用哪些服務?過渡?嚴格? HTML5 XML? HTML5 HTML? (HTML5允許關閉標籤像
<br/>
)
,因爲它是良好的XML,你應該選擇使用XHTML或HTML5。儘管HTML5規範仍處於草稿模式,但它允許關閉短標籤。另請參閱chapter 3.2.2 Elements的結尾:
但是,某些元素根本不允許包含任何內容。這些被稱爲無效元素。在HTML中,上面的語法不能用於void元素。對於這些元素,必須省略結束標記,因爲該元素由解析器自動關閉。這樣的元件包括,除其他外,
br
,hr
,link
和meta
HTML示例:
<link type="text/css" rel="stylesheet" href="style.css">
在XHTML中,XML句法要求規定,這必須使用一個顯式結束標記作出明確的,因爲上面,或空元素語法。這是通過在緊鄰右尖括號之前的開始標籤末尾插入斜線來實現的。
實施例:
<link type="text/css" href="style.css"/>
作者可以可選地選擇用於在HTML語法元素空隙此相同的語法,以及。一些作者也選擇在斜線之前加入空格,但這不是必需的。 (該方式使用空格是一個慣例從兼容性原則,繼承了XHTML 1.0,附錄C)
然後,過渡和嚴格的選擇取決於你想web標準的程度支持。爲此,the table at the bottom的this website給出了一個很好的概述。
要開始,你想避免Quirks Mode儘可能因爲這觸發MSIE瀏覽器,導致inconsitenties利潤率,填充的box model bug,當由CSS指定的元素的尺寸。缺少doctype或不正確的文檔類型將觸發此模式。
我強烈建議挑選嚴格的 doctype,因爲盒子模型和行爲將盡可能地與世界知道的不同網頁瀏覽器保持一致。以下任一文檔類型都可以,取決於您想要支持/ vaildate的元素/屬性。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
或較新的XHTML 1.1 (strict, module-based):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
或(仍處於草稿模式)HTML5 doctype:
<!DOCTYPE html>
請注意,您需要確保HTTP Content-Type
標題設置爲text/html
,而不是application/xml
也不application/xhtml+xml
當去XHTML,否則MSIE可能仍然發瘋,因爲它不支持。有關更多詳細信息,另請參閱aforementioned doctype website。同一篇文章確實提到了XHTML as text/html
is considered harmful,但這隻適用於<?xml?>
聲明和/或包含未嵌入CDATA
塊的內嵌JavaScript。
偉大的鏈接,但在你給的http://hsivonen.iki.fi/doctype/,作者特別寫道*「爲XHTML提供文本/ html被認爲是有害的」*。這是瘋狂的。誰在這裏信任? BalusC還是BalusC給出的鏈接? :) – NoozNooz42 2010-06-03 19:55:37
當它返回''聲明和/或使用內聯Javascript時,它是有害的,但這又被認爲是不好的做法。我不確定JSPX,但Facelets解析模板後不會發出''聲明。但是,使用HTML5文檔類型的建議很有用。我沒有意識到在HTML5中也允許關閉短標籤。 – BalusC 2010-06-03 20:11:05
yup從這個觀點來看,HTML5看起來很棒......在閱讀了幾篇文檔(我瞭解了關閉HTML5中的短標籤)之後,在這裏提問,閱讀更多文檔和指向的鏈接......我覺得我知道比以前都多,但我仍然有點困惑。這一切都有點凌亂:) – NoozNooz42 2010-06-03 20:35:21
這取決於您對XHTML的定義。對於大多數人來說,XHTML僅僅是指格式良好的XML中的HTML。從這個意義上說,JSP Document意味着XHTML,因爲JSP Document本身是格式良好的XML。
但是,JSP文檔本身不強制執行任何XHTML規則。例如,您仍然可以生成XHTML 1.0 Strict文檔,其中包含不推薦使用的標記,如< center>。
也可以在JSP Document中使用自定義標籤來生成非XML標籤,該標籤將整個文檔呈現爲非XML。
@ZZ編碼器:+1,有趣。在使用JSP文檔時,您會推薦使用哪些服務?過渡?嚴格? HTML5 XML? HTML5 HTML? (HTML5允許關閉標籤,如
) –
NoozNooz42
2010-06-03 14:13:37
這取決於您的受衆。我沒有參與決定,但我們所有的頁面都使用過渡性的。目前,HTML5對我們的目標市場沒有足夠的滲透率。 – 2010-06-03 15:33:40
注意:無效表示不符合XHTML模式,不完整意味着意味着所有打開的標籤都關閉,屬性用引號等等。 – 2010-06-03 18:20:49