xml - 如何使用 Saxon Home Edition (HE) 9.4 根据 XSD 验证 XML

标签 xml validation xsd saxon

如何使用 Saxon Home Edition (HE) 9.4 根据 XSD 验证 XML?

我是否需要企业版来完成错误消息所暗示的基本操作?这是我正在使用的代码。

private void btnSaxonTest3_Click(object sender, EventArgs e)
 // validate xml against xsd and show multiple errors
{
  try
  {
    SetGlobalVariables();
    Saxon.Api.Processor proc = new Processor(true);
    //this is the property to set for multiple errors
    //proc.SetProperty("net.sf.saxon.lib.FeatureKeys.VALIDATION_WARNINGS", "true");  //Enterprise function only?

    SchemaManager schemaManager = proc.SchemaManager;

    FileStream xsdFs = new FileStream(GvXSDFullPath, FileMode.Open);

    schemaManager.Compile(XmlReader.Create(xsdFs));
    SchemaValidator validator = schemaManager.NewSchemaValidator();

    FileStream xmlFs = new FileStream(GvXMLFullPath, FileMode.Open);

    validator.SetSource(XmlReader.Create(xmlFs));
    validator.ErrorList = new ArrayList();
    try
    {
      validator.Run();
    }
    catch (Exception)
    {
      AddMsg("Instance validation failed with " + validator.ErrorList.Count + " errors");
      foreach (StaticError error in validator.ErrorList)
      {
        AddMsg("At line " + error.LineNumber + ": " + error.Message);
      }
      txtResults.Text = GvResults;
      return;
    } // try catch
  }
  catch (Exception ex)
  {
    AddMsg(ex.ToString());
  }
  AddMsg("Process completed");
  txtResults.Text = GvResults;
}

最佳答案

您需要 EE 版本。您可以在此处了解有关 Saxon 每个版本的更多信息:

http://www.saxonica.com/products/products.xml

关于xml - 如何使用 Saxon Home Edition (HE) 9.4 根据 XSD 验证 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9686922/

相关文章:

javascript - 在 XML 文件中存储和检索新行 '\n'

java - ConstraintViolationException 不能同时适用于 DTO 和 MODEL 类

java - 改进 xsd :any in Java code 的使用

xsd - 从 RelaxNG 生成 XSD,同时保留根元素限制

php - 如何在 PHP 中以属性为键的关联数组形式获取 XML 数据

android - XML 代码格式在 LinearLayout Android Studio 3.5 中给出了错误的 subview 排列

javascript - 如何验证 Node.js 和 Express 中应该相等的两个字段?

xml - 验证XPath表达式

java - 如何告诉 JAXB 添加 noNameSpaceSchemaLocation 属性

xml - 匹配具有特定祖先Xpath Xslt的节点