我有一个模式,在其所有不同大小的元素上设置了最大长度属性。我正在映射到它并期望经常超过最大长度。

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

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

有帮助吗?

解决方案

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

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

非常值得您花时间去锻炼:

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

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

来自 W3C XML 架构定义:

maxLength· 规定:

-将数值空间限制为 最多有特定数量的 的长度单位,其中 长度因 { 基准类型 定义}。

我更喜欢他们用的词 约束 超过这个词 验证- 对我来说,这更清楚地表达了 XML 模式的概念,即定义您的系统将传递给其他系统的内容的契约。像 maxLength 这样的方面(对模式的读者)表示,如果传递的数据长度超过 maxLength,希望使用此数据的系统很可能会崩溃。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top