2010-07-16 230 views
2

BizTalk生成命名空間默認前綴爲NS0。有沒有一種方法可以在不使用XSLT的情況下重寫它以生成不同的東西(這是架構更改時的開銷,XSLT也必須更新)?喜歡的東西BizTalk命名空間默認前綴

<pidx:Invoice> 

,而不是

<ns0:Invoice> 

這應該是簡單的(畢竟它只是一個命名空間前綴),但客戶端,而不是分析文檔使用它與命名空間的XML的,並沒有預期的命名空間前綴會導致他們悲傷。

謝謝。

回答

2

不,沒有。

kludgey答案是將XML轉換爲字符串和搜索/替換。

+0

同意。儘管我不喜歡這種方法,並且在與工作人員聊天之後,我們找到了另一種解決方案。我們可以有一個自定義管道組件,它將接收命名空間,前綴和XSLT表達式並將其應用於輸出。輸出的映射將被配置爲根本不產生命名空間(因此ns0不存在於任何元素處),並且應該通過利用.NET XsltTransfomation以比字符串替換更高效的方式來實現。 – 2010-07-28 01:59:59

1

你可以這樣做。我在調用Google API時必須這樣做,它需要特定的命名空間前綴。

該方法是在您的XSD中使用<Schema>級別的Imports屬性。使用Imports對話框,您可以在每個名稱空間上定義特定的前綴。

您將不得不將模式分解成至少兩個單獨的XSD,以便您可以將一個導入到另一箇中,並在此時重新定義前綴。

+0

嗨蘭迪, 對不起,但看起來我似乎無法重現這一點。有沒有辦法設置一個簡單的演示項目並在我的電子郵件中觸發? Feldman.Sean at gmail.com 謝謝, Sean – 2010-08-13 03:32:42