我正在使用Biztalk 2010,我需要创建一个Schema,问题是该Schema的一个元素可以包含任何数据类型的值。
我的属性有一个类型(例如int,表示为字符串),名称(例如Age)和属性的值,可以是任何数据类型。
这是我的架构:
Attribute(Root Node)
Type(element, Datatype: string)
Name(element, Datatype: string)
Value(this needs to support every Datatype)
我该怎么做?
答案 0 :(得分:2)
详细说明TJ亚当斯的建议。 对于传入模式,将Value定义为字符串字段。 然后,当您需要键入它时,使用一个地图,该地图使用具有内联代码的functoid或调用外部帮助程序类(1)以使用TryParse方法将其转换为目标模式/系统的正确数据类型。如果它无法解析它,因为正确的类型返回一个字符串“INVALID”,然后使用逻辑日期/逻辑编号和值映射functoid仅映射它,如果它可以被解析(2)并正确格式化。 我必须为输入格式为CSV文件的客户端执行此操作,日期可以是多种格式,数字字段也可以为空。
(1)如果你需要为很多字段做这件事,外部助手类可能更容易维护。 (2)只使用Logical Fuctoids进行尝试而不进行解析和格式化可能会导致问题,因为它可能会说它是日期或数字,但它可能不是最终系统的正确格式。如果允许它为NULL并且使用INVALID字符串在验证消息中创建错误,我也传递了一个空白。