Validation 如何根据DNX Core 5.0(ASP.NET 5)中的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

我正在将一些代码移植到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 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可能希望将您的评论更改为“回答”,以便可以对其进行投票和接受。