2011-02-16 191 views
0

我有一個BizTalk解決方案,它被分解爲三個項目:編排,地圖和模式。我的一些地圖,我不得不在Orchestrations項目中構建,因爲他們需要多個輸入模式,並且沒有簡單的方法,我發現只使用BizTalk Mapper就可以完成此任務。一旦我讓他們工作,我將他們移到我的地圖項目。但是,當我嘗試建立一個項目,我得到每個被移動的地圖下面的錯誤(在所有的地圖同一地點):意外的標識符:'ÿþ'

錯誤意想不到的標識:「雲天化」(第2行,第2列)

錯誤意外令牌:'<'(第2行,第4列)

我無法在地圖中的任何位置或者它們不應該出現的位置找到這些值。我試着以不同的格式保存地圖,複製並粘貼到新文檔中,消除了第2行(這只是自動生成文檔創建時間的註釋),將地圖移回編配項目,一切都很短從頭開始完全重新創建地圖。

有沒有人看過這個,知道怎麼回事?

謝謝! Stephanie

+0

你解決了你的問題嗎? – oleschri 2011-03-29 10:18:21

回答

0

我不瞭解BizTalk。完全一樣。

但是從上面的錯誤,我推斷,有一些文件,它看起來像這樣:

  • 它開始與一個空行(最多一些空白)。
  • 然後,它可能有一個空間線2
  • 的第一個字符。然後它在UTF-16編碼的文件所使用的字節0xFF和0xFE的,這是Unicode Byte Order Marker(BOM)。
  • 然後它有'<',這表明了XML的開始。

BOM的用意是UTF-16編碼文件的前兩個字節。

因此,它看起來像該文件是一個UTF-16編碼的XML文件,但是在文件的開頭添加了一些空白。

我不知道什麼文件格式應該是什麼,也沒有引入空白的地方,也不應該在哪裏應該修復。但也許這種分析有幫助。

+0

不,沒有空行,沒有空格,至少沒有可見的空格。 – Stephanie 2011-02-16 22:40:17

1

正如您發現的那樣,沒有簡單的方法可以直接從BizTalk映射器創建具有多個輸入或多個輸出的映射。正確的方法確實是從BizTalk業務流程中做到這一點。

這樣做的一種方法是,在之後不需要移動生成的地圖就是在地圖項目中創建一個空的編排。這種編排可以在不再需要時丟棄。

如果必須從一個項目移到映射到另一個,但是,請注意以下幾點:

  • 進口架構位置
  • 。淨命名空間

進口架構位置

當你創建一個地圖,輸入和輸出模式的位置被記錄在產生.btm的文件。但是,該位置有兩種形式,具體取決於地圖相對於導入模式位置的位置。

如果映射使用在引用程序集中聲明的模式,則位置看起來就像生成的.net類型的完全限定名稱。如果您已經從Orchestrations項目生成了地圖,但是它引用了Schema和Maps項目中的模式,則情況確實如此。

如果地圖使用在同一個項目/程序集中聲明的模式,則該位置將記錄爲相對路徑名。

將地圖從一個BizTalk項目移動到另一個時,必須恢復正確的方式來聲明架構位置。打開一個文本編輯器中.btm的文件,並更改完全合格的名稱,以這樣的相對路徑:

".\imported_schema.xsd" 

淨命名空間

Additionnaly,如果你已經從一個項目移到您的地圖到另一個,你可能想要更新他們的.Net命名空間。在創建時,.net名稱空間與您的地圖相關聯,並且與您生成的項目相對應。

您可以從Visual Studio Solution Explorer中的.btmp文件屬性更改此名稱空間。這樣,您將始終對來自同一項目的所有工件有一致的命名。

+0

名稱空間和路徑都是正確的。錯誤發生在它達到那個點之前。來源始終是第2行,第2/4列 - 即使沒有任何內容,如果它已更改,也是如此。 – Stephanie 2011-02-22 22:10:13

0

和marnix一樣,我對'ÿþ'的第一個迴應也是Unicode。 也許你的文件以某種方式保存在不同的格式。

嘗試做你的工作和非工作映射文件如下:

在Visual Studio

File > Open > File ... > 
Select your map file > Open With ... (the small dropdown on the Open button) > 
Binary Editor > OK 

也許你能發現你的文件之間的差異。

另一次嘗試是在Visual Studio中打開你的地圖文件與

...(as above)... > Open With ... > 
XML Editor > OK 

然後

File > Advanced Save Options 

現在看到的是顯示有什麼編碼。也許你只需要在這裏更改你的非工作映射文件的編碼(比如說,從UTF-16到UTF-8)並再次保存它們以使BizTalk的構建引擎開心。