2

我有一个 WCF SQL 接收位置,并且能够从数据库中获取相关详细信息。

xml 看起来像这样:

<TypedPolling xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedPolling/EmailNotifications">
   <TypedPollingResultSet0>
     <TypedPollingResultSet0>
       <strPortName>port name 1</strPortName>
       <LastRun_UTC>2016-01-29T10:20:10.083Z</LastRun_UTC>
     </TypedPollingResultSet0>
     <TypedPollingResultSet0>
       <strPortName>portname 2</strPortName>
       <LastRun_UTC>2016-01-29T11:37:38.82Z</LastRun_UTC>
     </TypedPollingResultSet0>
     <TypedPollingResultSet0>
       <strPortName>portname3</strPortName>
       <LastRun_UTC>2016-01-29T11:37:39.353Z</LastRun_UTC>
     </TypedPollingResultSet0>
   </TypedPollingResultSet0>
</TypedPolling>

关联的xsd是这样的:

<?xml version="1.0" encoding="utf-16" ?> 
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
           targetNamespace="http://schemas.microsoft.com/Sql/2008/05/TypedPolling/EmailNotifications" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="TypedPolling">
    <xs:complexType>
      <xs:sequence> 
        <xs:element name="TypedPollingResultSet0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="TypedPollingResultSet0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="strPortName" 
                                type="xs:string" /> 
                    <xs:element name="LastRun_UTC" 
                                type="xs:dateTime" /> 
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

我想将数据从这个模式移动到一个更简单的模式,它的 xsd 看起来像这样:

<?xml version="1.0" encoding="utf-16" ?> 
<xs:schema xmlns="http://_024_EmailNotifications_Schemas.BizTalkDTADBExtractMod"
           xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
           targetNamespace="http://_024_EmailNotifications_Schemas.BizTalkDTADBExtractMod" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Root">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" 
                    name="Notification">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="strPortName" 
                          type="xs:string" /> 
              <xs:element name="LastRun_UTC" 
                          type="xs:string" /> 
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

我创建了一个变换形状并进行了一对一的映射。

源有 4 条记录,但映射后我只得到一条记录。

有人可以帮我弄清楚做错了什么吗?

4

1 回答 1

2

将循环 functoid 添加到您的地图中,输入来自重复TypedPollingResultSet0,输出转到Notification.

此外,避免从浏览器复制和粘贴 XML - 它会添加不受欢迎的字符(-您问题中的所有 s),并且包含有关您的地图的一些详细信息是个好主意。

于 2016-01-30T03:44:46.177 回答