我需要对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;
}
在使用有效的XML
和XSL
文件测试此代码时,当我在验证器上调用Validate(xmlStream
)时,它会崩溃。它说不允许操作,我不确定为什么。有人知道如何验证C#
中的Schematron文件吗?我很困惑这种验证似乎没有太多支持。
Microsoft文档中的示例使用XSD而不是XSL文件作为架构,这可能是为什么它不起作用的原因吗?