2012-11-05 37 views
0

首先,讓我說,我知道XHTML不再是真的了。然而,這個問題實際上是關於網絡的歷史。或者說,這件特別的東西如何成爲其歷史的一部分。爲什麼XHTML在腳本和樣式標籤中包含PCDATA?

我已經回答了this question,後來看到它被作爲this one的副本關閉時,我也閱讀了答案。提及它在XHTML中引起的問題讓我感興趣,並且我也開始想知道HTML定義在哪裏(如果有的話)的定義。我發現每個版本的css都明確允許在其定義中使用html註釋標籤。首先,這應該意味着應該可以毫無困難地添加外部樣式表。我還發現XHTML 1.0確實提供了stylescript -tags PCDATA而不是CDATA的內容。我也研究了這些事情的後果。

現在,我不明白這可能會如何。我看不到任何優勢,這種變化,雖然我看到很多缺點:

  1. 這讓在腳本中使用的技術評論和樣式表導致腳本/樣式不被讀取。的確,這種技術在當時已經過時了,但是像這樣打破它似乎還有點極端。

  2. 它引起各種各樣的麻煩,幾乎任何內嵌的JavaScript,因爲<&是語言中兩個常用字符,通常意味着XML解析器將失敗。試圖解決解決2儘可能最好代碼(//<![CDATA[//]]>)你還是會碰到一些代碼(代碼正好有]]>在後一個<&

  3. 問題即使

現在我敢打賭,肯定會對我錯過的東西有正面評價,否則它不會以XHTML標準結束。或者,也許有些奇怪的東西我沒有想到發生過?換句話說:儘管XHTML標準存在所有問題,但最終如何實現?

回答

1

很簡單,它是XML解析規則所要求的。儘管HTML對於不同的元素具有不同的解析規則,並且因此僅適用於HTML詞彙表,但XML具有可用於任何詞彙表的一致系統,其中XHTML只是其中一種。這是字符數據的成本,不允許在任何元素中使用未轉義的<&字符。

+0

這使得很多的意義,我想我只是忘記了這一點。雖然我喜歡XHTML背後的想法,但這確實使它更有疑問...... – Jasper

+1

我想我遇到的問題的一部分也是XHTML 1.0是用SGML定義的,這使得它看起來好像PCDATA是一個選擇。我相信從XHTML 1.1開始,定義實際上是根據xml規範而不是SGML定義的。 – Jasper

相關問題