コメントとかCDATAとか

挙動を確認するため適当に書いてみた。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
    <meta title="hogehoge" />
</head>
<body>
    <p>xxxx</p> 
    <p>&lt;p&gt;xxxx&lt;/p&gt;</p>
    <!-- zzzz -->
    <!-- <script type="text/javascript">alert("1234")</script> -->
    <![CDATA[yyyy]]>
    <![CDATA[&lt;p&gt;abc&lt;/p&gt;]]>
    <![CDATA[<script type="text/javascript">alert("1234")</script>]]>
    <![CDATA[<!-- hogehoge -->]]>
    <![CDATA[<!-- hogehoge <p>zzz</p> -->]]>
    <![CDATA[<!-- hogehoge &lt;p&gt;xxxx&lt;/p&gt; -->]]>
</body>
</html>

これを Content-Type: text/html としてブラウザで表示させると

xxxx
<p>xxxx</p>

application/xhtml+xml の場合

xxxx
<p>xxxx</p>
yyyy
<script type="text/javascript">alert("1234")</script>
&lt;p&gt;abc&lt;/p&gt;
<!-- hogehoge -->
<!-- hogehoge <p>zzz</p> -->
<!-- hogehoge &lt;p&gt;xxxx&lt;/p&gt; -->

いずれもalert()は発動しない.