脚本标记的XHTML 1.1和xml:space属性

时间:2009-12-29 14:29:34

标签: xhtml doctype xml-namespaces w3c-validation xhtml-1.1

在XHTML 1.0中,在标记中使用xml:space属性是有效的,但在XHTML 1.1中它无效(使用相同的标记)。

我在文档中找不到它...任何人都可以确认吗?为什么删除它?它被其他东西取代了吗?

要验证的样本:

<script type="text/javascript" xml:space="preserve">
    // <![CDATA[
    alert('foo');
    alert('bar');
    // ]]>
</script>

1 个答案:

答案 0 :(得分:2)

在XHTML 1.1中xml:space根据http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod在所有元素上都有固定值preserve,包括<script>

<!ATTLIST %script.qname;
    xml:space    ( preserve )             #FIXED 'preserve'

因此我不认为在xml:space="preserve"元素上声明<script>应该是错误的,我不知道为什么验证器会绊倒它。

然而,出于同样的原因,通过包含属性没有任何东西可以获得。我不确定你希望通过它实现什么......所有网络浏览器和一般XML工具的“默认空白处理模式”在任何情况下都会在<script>中保留空白。