0

我正在使用 Biztalk 2010,我需要创建一个模式,问题是该模式的元素可以具有任何数据类型的值。

我的属性具有类型(例如 int,表示为字符串)、名称(例如 Age)和属性值,可以是任何数据类型。

这是我的架构:

Attribute(Root Node)
   Type(element, Datatype: string)
   Name(element, Datatype: string)
   Value(this needs to support every Datatype)

我怎样才能做到这一点?

4

1 回答 1

2

详细说明 TJ Adams 的建议。对于您的传入架构,将值定义为字符串字段。然后,当您需要键入它时,使用一个映射,该映射使用带有内联代码的 functoids 或调用外部帮助器类 (1) 以使用 TryParse 方法将其转换为目标模式/系统的正确数据类型。如果它无法将其解析为正确的类型,则返回“INVALID”字符串,然后使用逻辑日期/逻辑数字和值映射函数仅在可以解析(2)和格式正确的情况下对其进行映射。对于输入格式为 CSV 文件且日期可能采用多种格式且数字字段也可能为空的客户端,我必须这样做。

(1) 如果您需要为很多字段执行此操作,外部帮助程序类可能更易于维护。(2) 在没有解析和格式化的情况下仅使用 Logical Fuctoids 进行尝试可能会导致问题,因为它可能会说它是日期或数字,但它可能不是最终系统的正确格式。如果允许为 NULL,我还传递了一个空白,并使用 INVALID 字符串在验证消息中创建错误。

于 2013-10-24T19:57:12.403 回答