和&算作xml文件中的一个或多个字符?

时间:2010-06-04 17:27:04

标签: .net xml xsd

我正在使用的XML模式具有字符串的特定字符长度。所以我可能有一个字符串,如:

"Jim & Mary"

这是C#中的10个字符,但是当它写入xml时,它变为:

"Jim & Mary"

如果XML模式表示该字符串最多只能有10个字符。这个字符串会通过吗?

如果没有,我如何在C#中测试字符串长度,就像在XML中一样?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

我得出与Matt(&是单个字符)相同的结论,但是基于标准。 XML standard表示验证前,属性值必须标准化,包括实体替换。

另请参阅Treatment of Entities部分,其中指出它们将是“包含”,无论它们是内容的一部分还是内部属性值。 “包含”具有这样的含义:“检索并处理其替换文本,代替引用本身,就好像它是在引用被识别的位置处的文档的一部分”。

答案 1 :(得分:1)

System.Xml.Linq.XElement xet = new System.Xml.Linq.XElement("test", "jim & mary");
Console.WriteLine(xet.ToString());
Console.WriteLine(xet.Value);
Console.ReadLine();

将输出

<test>jim &amp; mary</test>
jim & mary

所以&amp;计为1个字符。