映射期间自动截断为MaxLength

时间:2010-03-10 19:40:01

标签: biztalk biztalk-2009 biztalk-mapper

我有一个架构,它的所有元素都设置了各种大小的max length属性。我正在映射它,并期望经常超过最大长度。

有没有办法告诉BizTalk自动截断而不必进入并为每个元素手动配置functoid?

除了验证之外,最大长度属性是否有用?

1 个答案:

答案 0 :(得分:2)

没有功能可以在BizTalk映射器中执行您想要的操作 - 您当然可以编写某种预处理器或后处理器来执行此操作,但我建议您走错路。

这需要更多的工作,但我建议调查源系统和目标系统为什么有这样不同的模式。这可能是一个警告信号,您希望截断这么多字段以便能够传递信息。

值得花时间锻炼:

  • 这些maxLength元素都是严格必要的吗?
  • 截断您的任何字段会导致问题,无论是技术上还是业务用户?
  • 是否应该拆分其中一些字段?也许一个系统定义了一个100字符的地址字段,而另一个系统有一个街道和一个城镇字段。

maxLength属性定义元素内容的长度。所以是的,唯一的目的是为您的架构提供额外的验证规则。

来自W3C XML Schema definition

  

maxLength·提供:

     

•约束·值空间·   最多具有特定数字的值   单位长度,单位为   长度取决于{基本类型   定义}。

我更喜欢他们使用约束而不是单词 validation   - 对我来说,这更清楚地表达了您的XML模式的概念,该模式是一个合同,定义了您的系统将传递给其他系统的内容。像maxLength这样的方面(对于模式的读者)说,如果传递的数据长于maxLength,那么希望使用这些数据的系统可能会中断。