XML属性中的xml:space="preserve"对空格有什么影响?

4

我知道

<a xml:space="preserve">
<b></b>
</a>

不同。
<a xml:space="preserve">
<b>  </b>
</a>

然而,关于什么呢?

<a xml:space="preserve">
<b c='c'></b>
<c   />
</a>

并且

<a xml:space="preserve">
<b     c='c'></b>
<c />
</a>

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

那么<a xml:space="preserve"><b></b></a>和<a xml:space="preserve"><b/></a>呢? - XenoAmess
XML 中的空格不会产生任何影响。 - jdweng
@jdweng 那么你认为 xml:space 实际上是做什么的? - XenoAmess
对于第一种情况,innertext 不同,就像两个字符串 ""(没有空格)和 " "(一个空格)之间的不同。第二种情况则完全没有区别。只是元素名称和第一个属性之间多了一个空格。这就像将属性放在新行上。 - jdweng
@jdweng 我明白了。谢谢! - XenoAmess
1个回答

10

xml:space="preserve" 指令表示 元素内容 中的空格是有意义的。1

它不影响 开始标签中的空格, 这些空格只有在需要将属性与自身以及元素名称分开时才具有意义:

[40] STag ::= '<' Name (S Attribute)* S? '>'
请注意,S production需要一个空格字符,并允许多个空格字符。
[3] S ::= (#x20 | #x9 | #xD | #xA)+

默认设置(也是唯一允许的设置)xml:space="default",允许在不改变意义的情况下缩进(美化)XML。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接