Validation 如何根据DNX Core 5.0(ASP.NET 5)中的XSD(单独文档)验证XML?
我正在将一些代码移植到ASP.NET 5,并希望以DNX Core 5.0为目标。但是,我很难找到根据XSD文档验证XML文档所需的类型 代码如下:Validation 如何根据DNX Core 5.0(ASP.NET 5)中的XSD(单独文档)验证XML?,validation,xsd,asp.net-core,asp.net-core-mvc,dnx,Validation,Xsd,Asp.net Core,Asp.net Core Mvc,Dnx,我正在将一些代码移植到ASP.NET 5,并希望以DNX Core 5.0为目标。但是,我很难找到根据XSD文档验证XML文档所需的类型 代码如下: var xsdStream = this.GetType().GetTypeInfo().Assembly.GetManifestResourceStream(xsdPath); using (XmlReader xsd = XmlReader.Create(xsdStream)) { XmlSchemaSet schema = new X
var xsdStream = this.GetType().GetTypeInfo().Assembly.GetManifestResourceStream(xsdPath);
using (XmlReader xsd = XmlReader.Create(xsdStream))
{
XmlSchemaSet schema = new XmlSchemaSet();
schema.Add(null, xsd);
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.ValidationType = ValidationType.Schema;
xmlReaderSettings.Schemas.Add(schema);
using (XmlReader xmlReader = XmlReader.Create(xmlPath, xmlReaderSettings))
{
try
{
while (xmlReader.Read());
}
catch (Exception ex)
{
throw new Exception(string.Format(Resources.Messages.XmlValidationFailed, xmlPath), ex);
}
}
}
正如您所看到的,我只想在第一个错误上停止,并抛出一个异常,指示错误是什么
问题是:
XmlSchemaSet
类不存在于System.Xml.Schema
命名空间中(或我找到的任何其他地方)XmlReaderSettings.ValidationType
和XmlReaderSettings.Schemas
属性不存在XmlSchemaSet
不存在,XDocument.Validate()
也不存在。我也搜索了几个例子,但似乎找不到任何例子
DNX Core 5.0中有哪些工具(如果有的话)可以根据XSD验证XML?如果可能的话,我更愿意使用流来实现这一点,但如果绝对必要,我会接受一种方法,即立即将整个文档读入内存。在第一个版本中不支持XSD。当我在他们做的推特、帖子、bug或社区站中听到正确的消息时,我会考虑在以后的版本中发布
ps:Pawel应该回答这个问题并获得学分。。。但是我们应该结束这个问题。似乎XSD不是CoreClr-的一部分。你可能想在他们的回购协议中提交一个bug…@Pawel-谢谢你的提示。打开了一个新问题。@Pawel可能希望将您的评论更改为“回答”,以便可以对其进行投票和接受。