【发布时间】:2017-09-20 09:59:35
【问题描述】:
我有一个 NMatrix.schematron.dll 来使用 Schematron(1.5) 验证 xml 文件。我使用 Linqpad 进行测试。但我发现如果我使用 ISO Schematron 标准,它没有不工作。 有我的 C# 代码
void Main()
{
var xmlResult = "";
var validator = new Validator();
var schPath2 = Path.Combine("E:\\validate", "test1.sch");
try
{
validator.AddSchema(schPath2);
validator.Validate(new XmlTextReader("E:\\validate\\Biz430381170629035686.xml"));
}
catch (Exception ex)
{
xmlResult = ex.Message;
}
xmlResult.Dump();
}
这是schematron 1.5版:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.ascc.net/xml/schematron">
<pattern name="CheckUnique">
<rule context="*">
<assert test="1=1">
OK
</assert>
</rule>
</pattern>
</schema>
这是schematron iso版本:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2"
xmlns:sqf="http://www.schematron-quickfix.com/validator/process">
<pattern id="CheckUnique">
<rule context="*">
<assert test="1=1">
OK
</assert>
</rule>
</pattern>
</schema>
唯一不同的是命名空间。当我将 1.5 版更改为 ISO 版时,验证不起作用。 为什么? 因为 NMatrix.Schematron.dll ? 谢谢。王。
【问题讨论】:
-
为什么这个标题真的很烦人?呃。
-
“没用” - 怎么样?
-
这意味着我更改 xmlns 后没有出现“OK”
标签: c# xml schematron