这适用于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>
有没有办法解决这个问题?真的很奇怪。
全部谢谢!
答案 0 :(得分:1)
如果没有看到完整的架构,很难确切地知道发生了什么,但是我已经看到了表名更改的地方,然后相应的命名空间不再匹配。
例如:
http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/professionalAddendum
VS
http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/ProfessionalAddendum
答案 1 :(得分:0)
我正在发布我找到的内容。地图和编排在大多数情况下都很好。映射器中有一个Scripting functoid,它使用内联XSLT从源模式映射到目标模式,并且有问题的命名空间在该XSLT代码中。当我更改了模式的表时,它们相应的命名空间#s也发生了变化,从而导致这个问题出现。话虽如此,如果架构表的名称空间#s再次发生变化,我会将其修改为灵活的。
问题解决了。现在我得解决其中一些问题。 :)
感谢大家的帮助。