在XML中存储引用数据的可接受方式是什么?

18 xml quotes

在XML中存储引用数据的可接受方式是什么?

例如,对于一个节点,哪个是正确的?

  • (a)<name> Jesse"The Body"Ventura </ name>
  • (b)<name> Jesse \"The Body \"Ventura </ name>
  • (c)<name> Jesse"The Body" 文</名称>
  • (d)以上都不是(请注明)

如果(a),你对属性做了什么?如果(c),混合HTML和XML真的合适吗?同样,你如何处理单引号和引号?

Mit*_*ers 28

您的正确答案是A&C,因为"它不是必须在元素数据中编码的字符.

你应该总是XML编码的字符,如>,<&确保你没有问题,如果他们不是一个CDATA部分.这些是关注元素数据的关键项目.

在谈论属性时,还要注意属性值'"内部属性值,具体取决于用于包围值的符号类型.

我发现经常编码"并且'在所有方面都是一个更好的主意,因为它有时会转换为其他格式,"或者'可能会导致问题.


Mic*_*urr 14

XML元素内的字符数据可以包含引号字符而不会转义它们.XML元素中唯一不允许的字符是'<','&'和'>'(如果它是"]]>"字符序列的一部分,则只允许'>'字符.

这并不是说逃避引号不是一个好主意 - 我只是说不逃避引号是完全有效的XML.请参阅XML规范中的第2.4节"字符数据和标记".

所以(a)和(c)都可以.

就属性而言,属性值可以用单引号或双引号括起来,因此如果它包含一个或另一个,则可以使用相反的值来包含该值.如果它包含两者,那么你将不得不为一个或两个使用一个字符实体.

就"卷曲引号"而言,如果你在谈论Word有时将引号转换为特殊的非ASCII引号 - 它们在XML中没有特殊含义,所以你可以做任何一个(但它们不能用于包含属性值".您还需要确保文档的字符编码是正确的,以便正确解释它们.


Rob*_*ney 5

文本节点中的双引号可以表示为双引号字符或&quot;实体.如果值由单引号分隔,则属性值中的双引号可以表示为双引号字符,反之亦然; 否则,逃避他们&quot;

只有在a)在非XML知识文本编辑器中编辑XML或b)通过字符串操作以编程方式创建XML时,这才有意义.一般来说,你应该避免(一)除非你真的知道自己在做什么,或者至少有编辑后检查你的XML的良好性的方式完成.

你应该避免(b)在任何情况下.从不通过字符串操作创建XML; 总是使用DOM或其​​他工具.


Joe*_*orn 0

正确答案是“C”。

单引号实际上不会引起问题,但您需要小心&符号和左尖括号。