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

Решение, которое я использовал, было "уродливым". Я добавил дополнительный заполнитель в конце записи и настроил его как «minOccurs = 0» и установил для параметра «Разрешить раннее завершение необязательных полей» значение «истина».

Это работает, но мне это не нравится.

Мне кажется, что должно быть свойство игнорировать любые дополнительные поля после последнего, поэтому мне это поле-заполнитель не понадобится.

Кто-нибудь знаком с таким вариантом / имуществом?

Спасибо всем.

0
user3845046 16 Июл 2014 в 16:41

2 ответа

Лучший ответ

Нет, то, что вы сделали, - это правильный способ справиться с этой ситуацией. Красота в глазах смотрящего.

Анализатор плоских файлов требует, чтобы в схеме был определен весь возможный контент, чтобы ему никогда не приходилось «угадывать», что будет дальше.

2
Johns-305 16 Июл 2014 в 13:47

Когда плоский файл изменяется, схема также должна измениться. Это часть работы разработчика BizTalk.

Вы не можете ожидать изменений в плоском файле внутри вашей схемы. Что вы собираетесь делать с имеющимся у вас полем-заполнителем, если появятся 2 дополнительных поля, которые нужно будет использовать? Как вы получите данные, скажем, в картографию?

Так работает парсер плоских файлов, все должно быть четко определено, и если спецификации изменятся, вы должны обновить свои схемы. Здесь нет никакой магии, чтобы сделать все это полностью динамичным. Если только вы не написали с нуля собственный дизассемблер плоских файлов, который его поддерживает, но удачи вам с этим.

1
MarioDS 16 Июл 2014 в 13:48