XHTML 1.1 и атрибут xml:space для тега script

В XHTML 1.0 использование атрибута xml:space в теге допустимо, но в XHTML 1.1 оно недопустимо (с использованием той же разметки).

Я не могу найти это в документах... кто-нибудь может это подтвердить? Почему это было удалено? Было ли это заменено чем-то другим?

Образец для проверки:

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

1 ответ

Решение

В XHTML 1.1 xml:space имеет фиксированное значение preserve на все элементы, в том числе <script>в соответствии с http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-script-1.mod:

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

как таковой, я не верю, что это должно быть ошибкой, чтобы объявить xml:space="preserve" на <script> элемент, и я не знаю, почему валидатор срабатывает на него.

Тем не менее, по тому же признаку, ничего нельзя получить, включив атрибут. Я не уверен, чего вы надеетесь достичь этим... "режим обработки пробелов по умолчанию" всех веб-браузеров и общих инструментов XML сохранит пробелы в <script> в любом случае.

Другие вопросы по тегам