Автоматическое усечение до максимальной длины во время сопоставления

StackOverflow https://stackoverflow.com/questions/2419973

Вопрос

У меня есть схема, у которой свойство max length установлено для всех ее элементов различного размера.Я привязываюсь к нему и ожидаю, что максимальная длина будет превышаться довольно часто.

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

Есть ли у свойства max length какая-то цель, отличная от проверки?

Это было полезно?

Решение

В BizTalk mapper нет функциональности для выполнения того, что вы хотите - вы, конечно, могли бы написать какой-нибудь предварительный или постпроцессор, который бы это делал, но я бы предположил, что вы идете по неверному пути.

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

Это будет стоить вашего времени, чтобы потренироваться:

  • Все ли эти элементы максимальной длины строго необходимы?
  • Вызовет ли усечение какого-либо из ваших полей проблемы, как технические, так и для бизнес-пользователей?
  • Следует ли вместо этого разделить некоторые из этих полей?Возможно, одна система определяет единственное поле адреса из 100 символов, в то время как другая система содержит поле улицы и города.

Свойство maxLength определяет, какой длины может быть содержимое элемента.Так что да, его единственная цель - предоставить дополнительные правила проверки для вашей схемы.

Из самого Определение XML-схемы W3C:

Максимальная длина · обеспечивает:

• Ограничение · пространства значений · значениями, содержащими не более определенного числа единиц длины, где единицы длины варьируются в зависимости от {базового типа определения}.

Я предпочитаю слово, которое они используют сдерживающий над словом валидация - для меня это более четко выражает концепцию вашей XML-схемы, являющейся контрактом, который определяет, что ваша система будет передавать другим системам.Такие аспекты, как maxLength, говорят (читателю схемы), что системы, надеющиеся использовать эти данные, вполне могут сломаться, если им будет передано что-либо длиннее maxLength.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top