1

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

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

除了验证之外,最大长度属性还有其他用途吗?

4

1 回答 1

2

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

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

非常值得您花时间锻炼:

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

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

W3C XML Schema 定义

maxLength· 规定:

• 将·值空间· 约束到最多具有特定长度单位数量的值,其中长度单位根据{基本类型定义}而有所不同。

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

于 2010-03-10T22:49:36.413 回答