【问题标题】:Schema validation difference between BizTalk IDE and XmlReaderBizTalk IDE 和 XmlReader 之间的架构验证差异
【发布时间】:2009-05-08 11:22:23
【问题描述】:

按照 Michael Stephensons blog post 中的示例,我正在尝试对我正在开发的 BizTalk 应用程序进行单元测试,并且似乎有所进展

然后我得到了一个错误,我追踪到我正在使用的“无效”XML测试文件,但这正在通过我对模式单元测试的验证......
- 命名空间不正确的原因

我的困惑是为什么 XmlReader 认为 XML 与架构相比是有效的,但如果我使用 BizTalk IDE“验证实例”选项,我会收到错误...
...错误 BEC2004:验证架构 FromFrontOffice.xsd 的实例失败,文件:...

XmlSchema schema = XmlSchema.Read(schemaStream, null);
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.Schemas.Add(schema);
xmlReaderSettings.ValidationType = ValidationType.Schema;
xmlReaderSettings.ValidationEventHandler += ValidationEventHandler;
XmlReader xmlReader = XmlReader.Create(xmlStream, xmlReaderSettings);
while (xmlReader.Read())

private void ValidationEventHandler(object sender, ValidationEventArgs args)
{
  if (args.Exception == null) return;
  _IsValid = false;
}

【问题讨论】:

  • 您的架构和实例文档是什么样的?
  • 您使用的是什么版本的 BizTalk?通常 BizTalk 架构验证的执行方式不同(使用 BizTalk 库),因此可能会为您提供与标准 .NET 验证方式不同的结果。

标签: unit-testing validation schema biztalk


【解决方案1】:

认为我已经对其进行了排序......技巧似乎是使用 ValidationFlags

xmlReaderSettings.ValidationFlags =
    XmlSchemaValidationFlags.ReportValidationWarnings |
    XmlSchemaValidationFlags.ProcessIdentityConstraints |
    XmlSchemaValidationFlags.ProcessInlineSchema |
    XmlSchemaValidationFlags.ProcessSchemaLocation;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2014-05-27
    相关资源
    最近更新 更多