2
我有一個web服務,它獲取特定的XML,該XML沒有在文件本身中指定的模式。 我的項目中有XSD模式,它將用於測試獲取的XML文件。根據特定的XSD模式驗證XML
問題是,無論我做驗證程序似乎接受文件,即使它們無效。
我正在使用的代碼是這樣的(略,使其更容易一些零部件)
var schemaReader = XmlReader.Create(new StringReader(xmlSchemeInput));
var xmlSchema = XmlSchema.Read(schemaReader, ValidationHandler);
var xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.Schemas.Add(xmlSchema);
xmlReaderSettings.ValidationEventHandler += ValidationHandler;
xmlReaderSettings.ValidationType = ValidationType.Schema;
xmlReaderSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessIdentityConstraints;
xmlReaderSettings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
xmlReaderSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
using(var xmlReader = XmlReader.Create(new StringReader(xmlInput), xmlReaderSettings))
{
while (xmlReader.Read()) { }
}
// return if the xml is valid or not
我發現了幾個解決方案,內嵌指定的模式,其工作的偉大,但有一個模式等確定這(我認爲應該工作)我似乎無法找到任何。
我做錯了什麼?或者我只是錯誤地認爲這是它應該如何工作?
謝謝!