0

这是针对 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>

有没有办法来解决这个问题?真的很奇怪。

谢谢大家!

4

2 回答 2

1

在没有看到完整架构的情况下很难确切地知道发生了什么,但我已经看到表名的大小写在某处发生变化,然后相应的命名空间不再匹配。

例如:
http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/professionalAddendum vs http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/ProfessionalAddendum

于 2013-07-19T20:45:30.343 回答
0

我正在发布我发现的内容。地图和编排在大多数情况下都很好。映射器中有一个 Scripting functoid,它使用内联 XSLT 从源模式映射到目标模式,而有问题的命名空间位于该 XSLT 代码中。当我更改架构的表时,它们对应的命名空间#s 也发生了变化,从而导致了这个问题的表现。话虽如此,如果模式表的命名空间#s 再次更改,我将其修复为灵活。

问题解决了。现在我必须修复其中的一些。:)

感谢你的帮助。

于 2013-07-30T04:33:17.200 回答