Я пытаюсь проверить мой xml по его xsd и получаю недопустимый символ ошибки в данной кодировке. Код, который я использую для проверки, приведен ниже:
private static void ValidatingProcess(string XSDPath, string xml)
{
MemoryStream stream =
new MemoryStream(ASCIIEncoding.Default.GetBytes(xml));
using (StreamReader SR = new StreamReader(XSDPath))
{
XmlSchema Schema = XmlSchema.Read(SR, ReaderSettings_ValidationEventHandler);
XmlReaderSettings ReaderSettings = new XmlReaderSettings();
ReaderSettings.ValidationType = ValidationType.Schema;
ReaderSettings.Schemas.Add(Schema);
ReaderSettings.ValidationEventHandler += ReaderSettings_ValidationEventHandler;
XmlReader objXmlReader = XmlReader.Create(stream, ReaderSettings);
bool notDone = true;
while (notDone)
{
notDone = objXmlReader.Read();
}
}
}
Это ошибки в таких символах, как é, так что я догадался, что факт, что UTF-8 был указан как кодировка, или способ создания MemoryStream в приведенном выше коде с помощью ASCIIEncoding. Я попытался изменить кодировку в xsd и xml на UTF-16 и поток памяти на UTF32, но, похоже, это не дает никакого эффекта. Есть идеи?