XML中的换行符是否无效?

时间:2015-02-11 17:23:39

标签: xml

根据我在XML规范中找到的内容,以下3个字符是唯一非法的字符:

  1. &安培;
  2. <
  3. >
  4. 我们正在与供应商合作开发一种似乎无法处理换行符的工具。

    e.g。

    <Comments> This is line 1
    This is line 2
    </Comments>
    

    将在工具中产生错误,并且我给出的根本原因是XML中不允许使用换行符。该规范没有明确说明这一点。

    我试图理解新行是否确实是XML中的无效字符,或者这可能是该工具的限制。

2 个答案:

答案 0 :(得分:3)

据推测,您的意思是询问格式良好,无效的XML 。 (有关差异的详细信息,请参阅Well-formed vs Valid XML。)

格式良好的XML中肯定允许使用换行符。

  • &#13;#xA)是CR
  • &#10;#xD)是LF

(Windows通常以CR + LF为终点; MacOS X和Linux,LF;经典Mac OS,CR。)

XML建议确实明确允许两者。见Character Range

  

Char :: =#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] |   [#x10000-#x10FFFF]

常用用法

在元素中,新行通常重要到应用程序:

<a>one
two</a>

通常意味着与

不同的东西
<a>one two</a>

在标记之间,新行通常无关紧要

<a>
   <b>one</b>
</a>

通常与

相同
<a><b>one</b></a>

其他角色

最后,你在描述&<>是非法的时候,有点草率地画画。相反,请使用以下准则:

  • &:如果不是实体引用的一部分,则必须使用&amp;
  • <:如果不是标记,评论,PI等的一部分,则必须使用&lt;
  • >:如果字符串&gt;的一部分,则必须使用]]>
  • ':如果在apos;分隔的属性值中,则必须使用'
  • ":如果在quot;分隔的属性值中,则必须使用"

答案 1 :(得分:0)

没有。新行字符在XML中是完全可以接受的。它们包含在the character range for text中。