XML属性值中是否允许换行?

XML属性值中是否允许换行?,xml,xml-parsing,Xml,Xml Parsing,我意识到这既不优雅也不理想,但是(在格式良好的XML中)允许XML元素中的属性值跨多行吗 e、 g 是的,我意识到有更好的写作方法。我个人会这样写: <some-xml-element> <value>this value goes over... multiple lines!</value> </some-xml-element> 这个值超过。。。 多行! 或: 但是我们有自己的XML解析器,我想知道第一个示例是否允许在格式良好的

我意识到这既不优雅也不理想,但是(在格式良好的XML中)允许XML元素中的属性值跨多行吗

e、 g


是的,我意识到有更好的写作方法。我个人会这样写:

<some-xml-element>
<value>this value goes over...
multiple lines!</value>
</some-xml-element>

这个值超过。。。
多行!
或:



但是我们有自己的XML解析器,我想知道第一个示例是否允许在格式良好的XML中使用。

是的,第一个示例是有效的。

似乎只说了
.NET以外的所有内容:
若不确定目标字符串是否为有效的xml属性(并通过代码提供该属性的值),则始终可以使用函数转义无效字符

根据此函数的描述,唯一的无效字符是:

&


这意味着(正如我的前辈所写的),新行应该是可以的。

这是允许的,但是根据W3C的建议,您的XML解析器应该将所有空白字符规范化为空格(0x20)-因此示例的输出将有所不同(您应该在“ ; ;”的输出上有新行,但在第一种情况下只有空格)


NET XDocument解析器如预期那样接受此选项,但返回的属性值带有空格,而不是第二个示例中文本中的换行符。(您的问题不是针对.NET的,但我的示例数据是。我不知道这是通用标准的一部分还是.NET功能的一部分。)另请参见为一个保留换行符的类似问题制作了一个示例:related:-related:-related:-related:在属性中使用新行的一个示例是Spring配置中的xsi:schemaLocation属性,它可以包含多个由空格分隔的URL,因此比屏幕宽度长得多。但是,它是有效的解析器将它们规范化为空格,。嗯……我在XSLT文档中使用多行长if/when测试语句。
<some-xml-element>
<value>this value goes over...
multiple lines!</value>
</some-xml-element>
<some-xml-element value="this value goes over....&#13;&#10;" />