Неожиданный идентификатор: 'ÿþ'

У меня есть решение BizTalk, которое разбито на три проекта: оркестровки, карты и схемы. Несколько моих карт мне пришлось построить в проекте Orchestrations, потому что им требовалось несколько схем ввода, и я не нашел простого способа сделать это с помощью только BizTalk Mapper. Как только они заработали, я переместил их в свой проект Карт. Но когда я пытаюсь собрать этот проект, я получаю следующие ошибки для каждой из перемещенных карт (одно и то же место на всех картах):

Неожиданный идентификатор ошибки: 'ÿþ' (строка 2, столбец 2)

Неожиданный токен ошибки: '‹' (строка 2, столбец 4)

Я не могу найти эти значения нигде на карте или там, где они не должны быть. Я пробовал сохранять карту в разных форматах, копировать и вставлять в новый документ, удалять строку 2 (которая является просто автоматически сгенерированным комментарием при создании документа), перемещать карты обратно в проект Orchestration, все, кроме полное воссоздание карт с нуля.

Кто-нибудь видел это раньше и знает, что происходит не так?

Спасибо! Стефани


person Stephanie    schedule 16.02.2011    source источник
comment
ты решил свою проблему?   -  person oleschri    schedule 29.03.2011


Ответы (3)


Как вы уже поняли, нет простых способов создать карту с несколькими входами или несколькими выходами непосредственно из BizTalk Mapper. Правильный способ действительно сделать это из оркестровки BizTalk.

Один из способов сделать это, не требующий последующего перемещения сгенерированных карт, — создать пустую оркестровку в проекте «Карты». От этой оркестровки можно отказаться, когда она больше не нужна.

Однако, если вам необходимо переместить карты из одного проекта в другой, обратите внимание на следующие моменты:

  • Местоположение импортированной схемы
  • Пространства имен .Net

Местоположение импортированной схемы

При создании карты расположение входных и выходных схем записывается в созданный файл .btm. Однако это расположение принимает две формы, в зависимости от расположения карты относительно расположения импортированных схем.

Если карта использует схему, объявленную в сборке, на которую ссылаются, расположение выглядит как полное имя созданного типа .net. Это, безусловно, тот случай, когда вы сгенерировали свои карты из своего проекта Orchestrations, но он ссылается на схемы из вашего проекта Schemas and Maps.

Если карта использует схему, объявленную в том же проекте/сборке, местоположение записывается как имя относительного пути.

При перемещении карт из одного проекта BizTalk в другой необходимо восстановить правильный способ объявления местоположений схемы. Откройте файл .btm в текстовом редакторе и измените полное имя на относительный путь следующим образом:

".\imported_schema.xsd"

Пространства имен .Net

Кроме того, если вы переместили свои карты из одного проекта в другой, вы можете обновить их пространство имен .Net. Во время создания пространство имен .net связано с вашей картой и соответствует пространству имен из проекта, в котором оно было сгенерировано.

Это пространство имен можно изменить в свойствах файла .btmp в обозревателе решений Visual Studio. Таким образом, вы всегда будете иметь согласованные имена для всех артефактов из одного проекта.

person Maxime Labelle    schedule 18.02.2011
comment
Пространства имен и пути все правильные. Ошибка возникает еще до того, как она доходит до этой точки. Источник всегда Строка 2, Столбец 2/4 - даже если там ничего нет, если он изменился. - person Stephanie; 23.02.2011
comment
Поэтому я думаю, что вы могли непреднамеренно изменить содержимое файлов BTM и сделать их непригодными для BizTalk. Или вы говорите, что точно такие же файлы работают, когда они возвращаются в проект, в котором они были изначально созданы? - person Maxime Labelle; 25.02.2011

Я ничего не знаю о BizTalk. Вообще.

Но из приведенных выше ошибок я делаю вывод, что есть какой-то файл, который выглядит так:

  • Он начинается с пустой строки (не более пробела).
  • Тогда он, вероятно, имеет пробел в качестве первого символа строки 2.
  • Затем у него есть байты 0xFF и 0xFE, которые являются маркером порядка байтов Unicode (BOM), используемым в UTF. -16 закодированных файлов.
  • Затем у него есть '‹', что указывает на начало XML.

Назначение спецификации состоит в том, чтобы быть первыми двумя байтами файла в кодировке UTF-16.

Поэтому похоже, что файл представляет собой XML-файл в кодировке UTF-16, однако с некоторыми пробелами в начале файла.

Я понятия не имею ни о том, какой формат файла должен быть, ни где были введены пробелы, ни где это должно быть исправлено. Но, возможно, этот анализ поможет.

person MarnixKlooster ReinstateMonica    schedule 16.02.2011
comment
Нет, никаких пустых строк, никаких пробелов, по крайней мере, ничего видимого. - person Stephanie; 17.02.2011

Как и в случае с 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 счастливым.

person oleschri    schedule 25.02.2011