根据我在 XML 规范中发现的内容,以下 3 个字符是唯一非法的:
- &
- <
- >
我们正在与供应商合作开发一种工具,该工具似乎无法处理换行符。
例如
<Comments> This is line 1
This is line 2
</Comments>
将在工具中产生错误,而我得到的根本原因是 XML 中不允许换行符。规范中没有明确说明这一点。
我试图了解换行符是否确实是 XML 中的无效字符,或者这是否可能是该工具的限制。
最佳答案
您可能想询问格式良好、无效的 XML。 (有关差异的详细信息,请参阅 Well-formed vs Valid XML。)
格式良好的 XML 中肯定允许使用换行符。
-
(#xA
) 是 CR -
(#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>
其他角色
最后,你说&
的笔画有些草率。 , <
,和>
是非法的。相反,请使用以下准则:
-
&
:必须使用&
如果不是实体引用的一部分。 -
<
:必须使用<
如果不是标签、评论、PI 等的一部分。 -
>
:必须使用>
if 字符串]]>
的一部分. -
'
:必须使用apos;
如果在由'
分隔的属性值内. -
"
:必须使用quot;
如果在由"
分隔的属性值内.
另请参阅
关于xml - XML 中的换行符无效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28460550/