我正在使用的XML模式具有字符串的特定字符长度。所以我可能有一个字符串,如:
"Jim & Mary"
这是C#中的10个字符,但是当它写入xml时,它变为:
"Jim & Mary"
如果XML模式表示该字符串最多只能有10个字符。这个字符串会通过吗?
如果没有,我如何在C#中测试字符串长度,就像在XML中一样?
感谢您的帮助。
答案 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 & mary</test>
jim & mary
所以&
计为1个字符。