【问题标题】:Empty decimal tag won't accept '' value, is invalid according to its datatype空十进制标签不接受 '' 值,根据其数据类型无效
【发布时间】:2018-09-13 17:16:22
【问题描述】:

我在测试地图时收到此错误:

根据其数据类型,值 '' 无效 'http://www.w3.org/2001/XMLSchema:decimal' - 字符串 '' 不是 有效的十进制值。

标签“LineAmount”存在于输入文件中,但为空。我尝试在输出值之前进行“IsBlank”检查,但它给了我同样的错误。标签是可选的,应该可以不包含值。在 XSLT 中不能发送一个空的十进制标签吗?

这是有问题的标签:

<LineAmount/>

【问题讨论】:

  • 你不能在 Angular 中有自闭合标签
  • 这不是角度的。我正在使用可视化映射器在 Visual Studio 中制作 Biztalk 映射。
  • 如果你想要一个空元素,你还需要使用&lt;LineAmount xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/&gt;

标签: xml xslt mapping biztalk


【解决方案1】:

因此,错误是正确的,因为 ''(空字符串)不是有效的小数。

您需要做的第一件事是准确地确定目标值应该是什么,具体来说,0 或根本不出现。

如果目标应始终出现,如果源为空则为 0,则需要使用带有 TryParse() 的 Scripting Functoid。

如果源为空时不应出现目标字段,则可以使用一些 Functoid 来抑制目标。例如:

源 -> 等于(源 & '') -> 逻辑非 -> 目标

这意味着仅当源不是''时才包含目标。您仍将单独链接该值。

【讨论】:

    【解决方案2】:

    您应该使用“值映射”functoid 来链接或不链接 LineAmount。

    第一个参数应该是一个布尔值,表示字段是否有值,第二个参数应该是 LineAmount 本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      相关资源
      最近更新 更多