新しいediFabric 6.7.7を使用しています。一般的なメッセージの検証を試みています。特定のバージョンの特定のクラスにキャストできません。ediFabric 6.7.7 - 一般的なEDIメッセージの妥当性確認
xmlシリアル化に問題があります。このコードは動作
は
var invoice = (M_810) msg.Value;
var validation = new List<string>(invoice.ValidateX12(xsdStream));
(それはediFabricユニットテストのコードにかなり類似している)が、これは例外を
var validation = new List<string>(msg.Value.ValidateX12(xsdStream));
System.InvalidOperationExceptionがスロー:タイプ EdiFabric.Rules .X12004010810.M_810は期待されませんでした。 が静的に知られていないタイプを指定する XmlIncludeまたはSoapInclude属性を使用し
だから私の質問です - 明示的に特定のクラスにキャストoを\ wは、一般的なメッセージを検証するために何とか可能です。
ここで正しいスキーマを取得する方法は、GSヘッダーとST01を経由して行います。
もちろん私はXsdSchemaCollection
を使用してXSDスキーマに対して独自のXmlシリアライザを作成できますが、EdiMessage<S_ISA, S_GS>
にはValidateX12()
というメソッドが含まれていますので、可能であれば使用したいと思います。
ありがとうございます。 –