【发布时间】:2015-08-18 12:01:45
【问题描述】:
我正在尝试使用 schematron 验证 CDA (xml) 文档。我已经拥有了我需要的所有 schematron 文件(它们的扩展名为 .sch)。为了验证我使用来自 schematron.net 的 NMatrix.Schematron.Validator 类
http://sourceforge.net/projects/dotnetopensrc/
这是我的代码:
class CDALetterValidator
{
private CDALetter cdaLetter;
private Validator validator;
private String file { get; set; }
IXPathNavigable result;
public CDALetterValidator(String fileName)
{
validator = new Validator();
validator.AddSchema(new XmlTextReader("C:/pathToSchFile"));
file = fileName;
result = new ValidationResult();
}
internal void validate()
{
while (!System.IO.File.Exists(file))
{
System.Threading.Thread.Sleep(300);
}
try
{
result = validator.Validate(new XmlTextReader(file));
}
catch (ValidationException ex)
{
Console.WriteLine(ex.Message);
}
}
}
正如我在调试时看到的那样,验证器类可以识别我的 schematron 文件,但它不能验证正确,因为我使用 xml 文件进行了尝试,这当然是无效的,在这种情况下,预计会出现异常抛出,但不是。
有人有使用 schematron.net 的经验吗?或者甚至知道出了什么问题? 顺便说一句:.sch 文件是绝对正确的,所以错误要么在我的实现中,要么在 schematron.net 库中。
【问题讨论】:
-
你确定这条线是正确的吗? “结果=新的验证结果();”您是否有指向您正在使用的任何示例代码的链接?
-
ValidationResult 实现 IXPathNavigable 示例代码:stackoverflow.com/questions/24759417/…msdn.microsoft.com/en-us/library/aa468554.aspx
-
您的内部方法 validate 是从哪里调用的?
标签: c# schematron