使用XSL文件

时间:2019-01-09 08:51:10

标签: c# xml validation xslt schematron

我需要对XML文件执行Schematron验证。我在Google上搜索了很多,最接近解决方案的是使用Schematron package,如here所述:

    public static bool SchemaTronValidation(string xml, string xsl)
    {
        //Create schema and validator
        var xslStream = new MemoryStream(Encoding.UTF8.GetBytes(xsl ?? ""));

        Schema schematronSchema = new Schema();
        schematronSchema.Load(xslStream);

        Validator validator = new Validator();
        validator.AddSchema(schematronSchema);

        //Validate
        var xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(xml ?? ""));
        var res = validator.Validate(xmlStream); //fails here

        return true;
    }

在使用有效的XMLXSL文件测试此代码时,当我在验证器上调用Validate(xmlStream)时,它会崩溃。它说不允许操作,我不确定为什么。有人知道如何验证C#中的Schematron文件吗?我很困惑这种验证似乎没有太多支持。

Microsoft文档中的示例使用XSD而不是XSL文件作为架构,这可能是为什么它不起作用的原因吗?

0 个答案:

没有答案