Я пытаюсь проверить максимальные символы в XML-документе:проверки MaxCharactersInDocument не работает
string xml = "<X><Y><Z></Z><Z></Z><Z></Z></Y></X>";
var settings = new XmlReaderSettings
{
MaxCharactersInDocument = 10
};
try
{
using(var sr = new StringReader(xml))
{
using(var xr = XmlReader.Create(sr))
{
using(var xr2 = XmlReader.Create(xr, settings))
{
while(xr2.Read()){} // MaxCharactersInDocument validation do not work
}
}
}
}
catch (XmlException ex)
{
Console.WriteLine(ex.Message);
}
заманчивым является проверка внешнего XML (полученным с XmlReader) для максимальной charcters. Почему проверка MaxCharactersInDocument не работает для XmlReader, созданного на другом XmlReader? Как я могу сделать эту проверку по-другому?
Кроме того, проверка схемы работает для второго читателя, но проверка макс. Символов не выполняется.
Зачем вам два создать заявления? Вы можете добавить настройку в первый метод Create(). – jdweng
@jdweng, первый читатель является внешним читателем для некоторых приложений. И предназначение - проверить внешний xml (полученный с XmlReader) для максимальных символов. Кроме того, проверка схемы работает для второго читателя, но проверка макс. Символов не выполняется. Зачем? –
Это может быть проблема с кодировкой. При добавлении в список параметров StringReader() метод кодирования может решить проблему. – jdweng