【问题标题】:XHTML 1.1 and xml:space attribute for script tag脚本标签的 XHTML 1.1 和 xml:space 属性
【发布时间】:2009-12-29 14:29:33
【问题描述】:

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

我在文档中找不到它...有人可以确认吗?为什么它被删除了?是不是被别的东西代替了?

验证样本:

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

【问题讨论】:

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


    【解决方案1】:

    在 XHTML 1.1 中,xml:space 在所有元素(包括&lt;script&gt;)上都有一个固定值preserve,根据http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod

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

    因此,我认为在 &lt;script&gt; 元素上声明 xml:space="preserve" 不应该是一个错误,而且我不知道验证器为什么会绊倒它。

    但是,出于同样的原因,包含该属性并没有任何好处。我不确定您希望通过它实现什么...所有 Web 浏览器和通用 XML 工具的“默认空白处理模式”无论如何都会在 &lt;script&gt; 中保留空白。

    【讨论】:

    • 很好的答案,正是我一直在寻找的(如果可以的话,我会投赞成票)!我通过将页面从 XHTML 1.0 升级到 1.1 发现了这个问题,并得到了这个验证错误。我现在可以从我的标记中删除 xml:space,因为它在 1.1 中已修复保留(我想如果我有其他东西而不是保留在某处,但事实并非如此)。
    猜你喜欢
    • 2012-12-27
    • 2015-02-14
    • 2014-09-27
    • 2012-05-30
    • 1970-01-01
    • 2012-05-14
    • 2021-09-15
    • 2011-06-21
    • 2016-09-04
    相关资源
    最近更新 更多