xml:space="preserve" 对 XML 属性之间的空间有影响吗?

Xen*_*ess 3 xml whitespace w3c xml-parsing

我知道

<a xml:space="preserve">
<b></b>
</a>
Run Code Online (Sandbox Code Playgroud)

不同于

<a xml:space="preserve">
<b>  </b>
</a>
Run Code Online (Sandbox Code Playgroud)

然而,那又如何

<a xml:space="preserve">
<b c='c'></b>
<c   />
</a>
Run Code Online (Sandbox Code Playgroud)

<a xml:space="preserve">
<b     c='c'></b>
<c />
</a>
Run Code Online (Sandbox Code Playgroud)

我找不到有关如何xml:space="preserve"影响这些情况的文档。

kjh*_*hes 5

xml:space="preserve"指令表示元素内容中的空间很重要。1

它不会影响start tags 中的空格,这仅在需要它的存在以将属性与其自身和元素名称分开时才有意义:

[40] STag ::= '<' Name (S Attribute)* S? '>'
Run Code Online (Sandbox Code Playgroud)

请注意,S 产生式 需要一个空格字符并允许多个:

[3] S ::= (#x20 | #x9 | #xD | #xA)+
Run Code Online (Sandbox Code Playgroud)

1 默认值(以及唯一允许的其他设置)xml:space="default"允许在不改变意义的情况下对 XML 进行缩进(漂亮的打印)。