【发布时间】:2013-07-19 19:12:42
【问题描述】:
这是针对 BizTalk 2010 的。我遇到了一个非常奇怪的问题,我无法使用我最喜欢的搜索引擎的结果或其他地方找到解决方案。
我向 BizTalk 添加了几个 SQL Server 2008 表架构。设置编排和映射没有任何问题。 BizTalk 能够使用 WCF_Custom SQL Adapter 使用 XML/BTSAction 将数据插入到 XML 中标识的 SQL 表中。
其中一些表的数据插入得很好,除了两个。两者都有相同的错误。错误是从第三个表的命名空间中提取的。这是完整的错误 - 请注意,命名空间 ns 是预期的 ns46:professionalAddendum,但不知何故,BizTalk 正在从不同的表中提取不同的命名空间 ns35:
Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException:名称为“ClaimFilingIndicatorCode”和命名空间“http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/professionalCOBAdjustmentsAncillary”的起始元素是意外的。请确保您的输入 XML 符合操作的架构。
<ns2:Insert xmlns:ns2="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/professionalAddendum">
<ns2:Rows>
<ns46:professionalAddendum xmlns:ns46="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo">
<ns46:uid_claim>1b8f20e9-0517-4f00-9ee2-99d5f04d1573</ns46:uid_claim>
ERROR>>>>> <ns35:ClaimFilingIndicatorCode xmlns:ns35="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/professionalCOBAdjustmentsAncillary">17</ns35:ClaimFilingIndicatorCode>
<ns46:ClaimFrequencyTypeCode>1</ns46:ClaimFrequencyTypeCode>
<ns46:ProviderAcceptAssignmentCode>B</ns46:ProviderAcceptAssignmentCode>
<ns46:BenefitsAssignmentCertificationIndicator>Y</ns46:BenefitsAssignmentCertificationIndicator>
<ns46:ReleaseofCode>Y</ns46:ReleaseofCode>
<ns46:ProviderOrSupplierSignatureIndicator>N</ns46:ProviderOrSupplierSignatureIndicator>
</ns46:professionalAddendum>
</ns2:Rows>
</ns2:Insert>
有没有办法解决这个问题?真奇怪。
谢谢大家!
【问题讨论】:
-
根据 Schellack 的回答,任何与 XSD 的轻微偏差都可能导致此问题。 This post 描述了一种抓取 BTS 尝试发送的 xml 消息的方法,然后可以针对 XSD 进行验证。
-
StuartLC,感谢您的回复。我删除了每一个 TableOperation 模式,并通过 Add Generated Item -> Consume Adapter Service 重新导入它们,然后重建了一个列出每个表的主表模式。我仍然遇到同样的问题——这次不同的命名空间编号。有趣的是,较早的块具有正确的命名空间 # 用于 ClaimFilingIndicatorCode,但随后与后续块更改为不同的命名空间,然后是第三个块,它会恢复为正确的命名空间......等等。很奇怪。以前从未见过。
标签: sql-server-2008 biztalk biztalk-2010