3
我想驗證我的xml反對它的xsd並獲得給定編碼中的錯誤無效字符。我用驗證代碼如下:xml無效字符在給定的編碼
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,但似乎沒有效果。有任何想法嗎?
什麼編碼的文件? – Oded 2010-03-08 11:28:28
您將輸入字符串轉換爲ASCII碼,並且想知道非ASCII字符的編碼問題嗎? – dtb 2010-03-08 11:34:46
哪一個文件?如果是xml,我將它作爲一個字符串傳遞給上面的方法,該字符串在xml頭文件中指定了UTF-16 endcoding並將其轉換爲內存流供使用。 – PeteT 2010-03-08 11:34:53