И считается ли один или несколько символов в файле XML? - PullRequest
2 голосов
/ 04 июня 2010

Схема XML, с которой я работаю, имеет определенную длину символов для строк. Так что у меня может быть такая строка:

"Jim & Mary"

, что составляет 10 символов в C #, но когда оно записывается в xml, оно становится:

"Jim & Mary"

Если в XML-схеме указано, что строка может содержать не более 10 символов. Эта строка пройдет?

Если нет, то как я могу проверить в C # длину строки, которая будет отображаться в XML?

Спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 04 июня 2010

Я прихожу к тому же выводу, что и Мэтт (& - одиночный символ), но на основе стандартов. Стандарт XML гласит, что до проверки значения атрибутов должны быть нормализованы, что включает замену сущности.

Также см. Раздел Обработка сущностей , в котором говорится, что они будут «включены», независимо от того, являются ли они частью содержимого или внутри значений атрибута. «Включено» имеет следующее значение: «заменяющий его текст извлекается и обрабатывается вместо самой ссылки, как если бы он был частью документа в том месте, где ссылка была распознана».

1 голос
/ 04 июня 2010
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 символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...