最简单/最干净的方法是什么?
- 从文件系统中读取xml文件
- 根据xsd验证xml
- 将xml文件的部分内容读入变量
使用.net。
简而言之,要进行XSD验证,您需要使用带有ReaderSettings的XmlReader来定义要验证的XSD文件,并使用事件来响应/捕获验证错误。
要读取XSD文件,请使用类似以下代码:
StreamReader xsdReader = new StreamReader(xsdFileName);
XmlSchema Schema = new XmlSchema();
Schema = XmlSchema.Read(xsdReader, new ValidationEventHandler(XSDValidationEventHandler));
事件处理程序用于捕获读取XSD时可能出现的任何错误(例如,如果XSD本身无效),其签名将如下所示:
private static void XSDValidationEventHandler(object sender, ValidationEventArgs e)
e.Message中包含错误信息。
在将XSD加载到内存中后,实例化您的XmlReader并使用适当的设置来执行XSD验证:
XmlReaderSettings ReaderSettings = new XmlReaderSettings();
ReaderSettings.ValidationType = ValidationType.Schema;
ReaderSettings.Schemas.Add(Schema);
ReaderSettings.ValidationEventHandler += new ValidationEventHandler(XMLValidationEventHandler);
这个错误事件处理程序的签名与上面那个相同。
然后从开头到结尾实际读取文件:
XmlTextReader xmlReader = new XmlTextReader(xmlFileName);
XmlReader objXmlReader = XmlReader.Create(xmlReader, ReaderSettings);
while (objXmlReader.Read()) { }
如果发生任何的验证错误,您的事件处理程序将被调用,并且您可以在其中捕获错误消息,例如将其显示给用户(或者只是有一个指示验证是否成功的标志-由您决定 :))。
如果发生任何验证错误,则会调用您的事件处理程序,您可以在其中捕获错误消息并且例如向用户显示它们(或者只需设置一个指示验证是否成功的标志-由您决定 :))