将XSD模式文件包含到.NET Core Web App中

时间:2018-12-19 17:55:11

标签: xml asp.net-core xsd

我有一个Web应用程序,我想在其中验证xml文件。对于此验证,我有一个xsd文件。在此xml中,我必须验证签名。为了进行签名验证,我必须包含

xmldsig-core-schema.xsd

来自w3c。

在我的xsd中,我有以下标题:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
    <xs:element name="Root">...

我之前在一个简单的控制台应用中测试了我的验证。当我将之前从w3c下载的“ xmldsig-core-schema.xsd”文件添加到项目中时,验证就可以正常进行。

现在,我想在我的Web应用程序中执行相同的操作。因此,我将xmldsig-core-schema.xsd添加到了我的xsd位置。我将文件添加到解决方案中作为内容。 但是在webapp中,它不起作用。

是否有人知道我必须在哪里或如何添加此文件才能运行验证?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我必须将签名架构添加到我的SchemaSet中。然后就可以了。

var xsdPath = new FileInfo("my.xsd"));
schemas.Add("", xsdPath.FullName);
xsdPath = new FileInfo("xmldsig-core-schema.xsd");
schemas.Add("http://www.w3.org/2000/09/xmldsig#", xsdPath.FullName);