2014-03-31 53 views
-2

這是一個比實際問題更多的學術問題,但我試圖獲得更深入的BizTalk知識。我可以在BizTalk中使用XML驗證程序管道組件來驗證平面文件嗎?

在這種情況下,我得到一個FlatFile頭條線,然後重複條目。大家一致認爲,爲了使這項工作正確,我應該有獨立的頭部和身體模式,並將它們用作我正在構建的管道組件的反彙編程序部分的一部分。

現在,在FF反彙編程序中,有一個屬性「驗證文檔結構」,默認爲false。 This Link似乎說它會驗證標題和正文(不一定是問題)。但是,它也暗示我可以在我的管道中使用XML驗證組件來執行相同的操作。

我的問題是雙重的:首先,這些平面文件在反彙編後可以使用XML驗證器嗎?在反彙編器中FF信息是否已經轉換爲XML?

其次,爲什麼我要使用XML驗證器,即使它可能?也許是因爲如果我放棄標題行並且不希望冒險從變體標題行驗證錯誤?

回答

1

要回答的具體問題:

  1. 是。
  2. 是的,如果在反彙編階段有一個平面文件反彙編程序。
  3. 你通常不會。
  4. 不是。無論如何,平面文件反彙編程序是非常具體的,所以任何格式不正確的結構 可能已經導致了一個錯誤。

我不記得在同一管道中使用XmlValidator作爲平面文件反彙編程序。

+0

非常好,謝謝你回答@boatseller! – Ryanman

1

我想在這裏澄清一些事情。在某些使用場景中,您確實需要使用XML驗證,而不是在反彙編器中啓用驗證。

假設你有一個包含6條消息的平面文件。其中5個符合你的身體模式,而1個不符合你的身體模式。您希望啓用失敗的消息路由,但不希望整個事務失敗。

如果您通過FF反彙編程序與恢復交換處理一起啓用驗證,它將會正常工作......但只是部分!如果消息#4是損壞的消息,則只有消息1,2和3將成功路由。 4,5和6將作爲一個巨大的失敗信息被路由。但是,如果您在反彙編程序中定義頭/身模式,禁用驗證,禁用RIP並添加使用正文模式和RIP的XML驗證程序,則消息1,2,3,5和6將成功路線。只有消息#4將被路由爲失敗的消息。

編輯:Here是你也可以找到這種信息,也許在一個更易消化的格式。

再次感謝@boatseller的澄清,這裏是一個非常現實的情況,我不得不在這個管道中使用XML驗證器。

相關問題