【问题标题】:ediFabric 6.7.7 - validation of generic EDI messageediFabric 6.7.7 - 通用 EDI 消息的验证
【发布时间】:2017-03-03 11:27:05
【问题描述】:

我正在使用新更新的 ediFabric 6.7.7 并且我正在尝试验证通用消息 - 所以我无法将其转换为特定版本的特定类。

我对 xml 序列化有疑问。

此代码有效(它与 ediFabric 单元测试中的代码非常相似)

var invoice = (M_810) msg.Value;
var validation  = new List<string>(invoice.ValidateX12(xsdStream));

但这会引发异常

var validation  = new List<string>(msg.Value.ValidateX12(xsdStream));

System.InvalidOperationException:类型 EdiFabric.Rules.X12004010810.M_810 不是预期的。使用 XmlInclude 或 SoapInclude 属性来指定不属于 静态已知

所以我的问题是 - 是否有可能验证通用消息,而无需将其显式转换为特定类。

我在这里获得正确架构的方式是通过 GS Header 和 ST01 通过反射。

当然,我可以编写自己的 Xml 序列化器并使用 XsdSchemaCollection 对 Xsd 架构进行验证,但 EdiMessage&lt;S_ISA, S_GS&gt; 包含 ValidateX12() 方法,如果可能我想使用它。

【问题讨论】:

    标签: c# edi edifabric


    【解决方案1】:

    现在可在 6.8.2 版中使用。你可以这样称呼它: var 验证 = new List(msg.Value.Validate());

    它现在在内部解析 xsd 和格式。

    【讨论】:

    • 谢谢,我试试
    猜你喜欢
    • 2018-08-20
    • 2017-06-06
    • 2017-01-10
    • 2016-12-29
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多