0

オーケストレーション、マップ、スキーマの 3 つのプロジェクトに分割された BizTalk ソリューションがあります。私のマップのいくつかは、Orchestrations プロジェクトで構築する必要がありました。これは、複数の入力スキーマが必要であり、BizTalk マッパーだけでそれを行う簡単な方法が見つからなかったためです。それらが機能するようになったら、マップ プロジェクトに移動しました。しかし、そのプロジェクトをビルドしようとすると、移動したマップごとに次のエラーが発生します (すべてのマップで同じ場所)。

予期しない識別子のエラー: 'ÿþ' (行 2、列 2)

予期しないトークンのエラー: '<' (行 2、列 4)

マップのどこにも、または本来あるべきでない場所にも、これらの値が見つかりません。マップをさまざまな形式で保存し、コピーして新しいドキュメントに貼り付け、2 行目 (ドキュメントが作成されたときに自動的に生成されたコメントにすぎません) を削除し、マップをオーケストレーション プロジェクトに戻してみました。マップをゼロから完全に再作成します。

誰かがこれを前に見て、何がうまくいかないのか知っていますか?

ありがとう!ステファニー

4

3 に答える 3

1

お気づきのように、複数の入力または複数の出力を含むマップを BizTalk マッパーから直接作成する簡単な方法はありません。実際、BizTalk オーケストレーションからこれを行うのが正しい方法です。

生成されたマップを後で移動する必要のないこれを行う 1 つの方法は、Maps プロジェクトで空のオーケストレーションを作成することです。このオーケストレーションは、不要になったら破棄できます。

ただし、あるプロジェクトから別のプロジェクトにマップを移動する必要がある場合は、次の点に注意してください。

  • インポートされたスキーマの場所
  • .Net 名前空間

インポートされたスキーマの場所

マップを作成すると、生成された .btm ファイルに入力および出力スキーマの場所が記録されます。ただし、この場所は、インポートされたスキーマの場所に対するマップの場所に応じて、2 つの形式をとります。

マップが参照アセンブリで宣言されているスキーマを使用している場合、場所は、生成される .net 型の完全修飾名のようになります。これは、Orchestrations プロジェクトからマップを生成したものの、Schemas and Maps プロジェクトからスキーマを参照している場合に当てはまります。

マップが同じプロジェクト/アセンブリで宣言されているスキーマを使用している場合、場所は相対パス名として記録されます。

マップを 1 つの BizTalk プロジェクトから別のプロジェクトに移動する場合、スキーマの場所を宣言する正しい方法を復元する必要があります。テキスト エディタで .btm ファイルを開き、次のように完全修飾名を相対パスに変更します。

".\imported_schema.xsd"

.Net 名前空間

さらに、マップをあるプロジェクトから別のプロジェクトに移動した場合は、それらの .Net 名前空間を更新することをお勧めします。作成時に、.net 名前空間がマップに関連付けられ、マップが生成されたプロジェクトの名前空間に対応します。

この名前空間は、Visual Studio ソリューション エクスプローラーの .btmp ファイル プロパティから変更できます。このようにして、同じプロジェクトのすべての成果物で常に一貫した名前を付けることができます。

于 2011-02-18T10:29:12.200 に答える
0

marnix のように、'ÿþ' に対する私の最初の応答も Unicode でした。ファイルが何らかの形で別の形式で保存された可能性があります。

作業マップ ファイルと非作業マップ ファイルに対して、次の操作を試してください。

Visual Studio で

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

おそらく、ファイルの違いを見つけることができます。

もう 1 つの試みは、Visual Studio でマップ ファイルを開くことです。

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

それで

 File > Advanced Save Options

ここで、そこに表示されているエンコーディングを確認します。ここで、動作していないマップ ファイルのエンコーディングを変更し (たとえば、UTF-16 から UTF-8 に)、それらを再度保存して、BizTalk のビルド エンジンを満足させるだけでよい場合があります。

于 2011-02-25T14:23:09.770 に答える
0

BizTalk についての知識はありません。まったく。

しかし、上記のエラーから、次のようなファイルがあると推測されます。

BOM の意図は、UTF-16 でエンコードされたファイルの最初の 2 バイトになることです。

したがって、ファイルは UTF-16 でエンコードされた XML ファイルのように見えますが、ファイルの先頭に空白が追加されています。

ファイル形式がどうあるべきか、空白がどこに導入されたか、どこを修正する必要があるかについてはわかりません。しかし、おそらくこの分析は役に立ちます。

于 2011-02-16T16:24:12.460 に答える