【发布时间】:2011-05-10 14:38:21
【问题描述】:
我有一个存储过程,它返回一个完整的模式实例作为 xml 数据类型:
<ns0:PolicyCreated xmlns:ns0="http://blah/v1.0">
<ns0:Source>
<ns0:Organisation>Company1</ns0:Organisation>
<ns0:System>System1</ns0:System>
</ns0:Source>
</ns0:PolicyCreated>
问题是当我尝试使用 Sql Adapter 使用它时,它会将 xml 包装在根节点和命名空间中:
<ns0:PolicyCreated xmlns:ns0="http://blah/v1.0">
<ns0:PolicyCreated xmlns:ns0="http://blah/v1.0">
<ns0:Source>
<ns0:Organisation>Company1</ns0:Organisation>
<ns0:System>System1</ns0:System>
</ns0:Source>
</ns0:PolicyCreated>
</ns0:PolicyCreated>
所以我得到了一个双根节点和命名空间。
有什么想法可以解决这个问题吗?
谢谢您
汤姆
【问题讨论】:
-
你能分享请求和响应模式吗?这是 BizTalk 2006 SQL 适配器还是 WCF SQL 适配器?
-
嗨,克里斯,没有请求/响应模式。我没有使用适配器元数据。这是一种单向接收。我只想从 SQL 适配器接收 xml,类似于使用 MSMQ 或 FILE 适配器的方式。似乎有一种方法可以使用 WCF SQL 适配器执行此操作,因为您可以在发送端口响应中指定主体 xpath。但是,使用 SQL
-
您是否尝试为从 SQL 适配器返回的 XML 创建一个信封模式?对子文档使用“anyType/maxOccurs=unbounded”。尽管您可能没有真正进行信封处理,但双根元素已经消失,因为它被认为是信封元素,而不是文档元素。您最终应该将单独的行“按原样”(FOR XML AUTO)进入 MessageBox
-
感谢马文。我没有机会尝试这个。
标签: biztalk