【发布时间】:2022-07-05 10:56:07
【问题描述】:
尝试配置架构,使其始终提供每个元素,无论它是否已填充。
我已经尝试在架构中的所有元素上将 minOccurs 设置为 1 并将 nillable 设置为 true,但它仍然没有任何区别。我通过传递架构中的日期元素为空的消息进行了测试,但它仍然从收到的消息中删除了该元素。
通过 WCF-SQL 类型轮询端口获取有效负载,然后将创建的消息直接发送到消息框以供下游提取(该过程创建一个规范的有效负载,可被多个其他下游集成接受)。
架构示例;
<xs:element minOccurs="1" name="account_id" nillable="true" type="xs:string" />
<xs:element minOccurs="1" name="hus_id" nillable="true" type="xs:string" />
<xs:element minOccurs="1" name="date_left" nillable="true" type="xs:date" />
WCF-SQL(类型化轮询)源数据示例;
account_id - '267336302'
hus_id - ''
date_left - NULL
收到的消息示例;
<account_id>267336302</account_id>
<hus_id/>
我查看了它背后的理论,在这篇链接文章的前两段中,暗示这些设置应该有所作为。
BizTalk Mapper: Working With Nillable Values (xsi:nil=”true”)(Sandro 的 WordPress 博客)
任何人都可以建议我如何根据需要接收包含所有元素的消息(是否为空值)。
【问题讨论】:
-
您能否提供一个示例架构和有效负载,以及您是如何接收它的?例如你的管道是什么?如果有地图?