【问题标题】:TypedPolling xsd to a simpler schemaTypedPolling xsd 到更简单的模式
【发布时间】:2016-01-29 21:34:07
【问题描述】:

我有一个 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 条记录,但映射后我只得到一条记录。

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

【问题讨论】:

    标签: wcf xsd biztalk biztalk-mapper


    【解决方案1】:

    向您的地图添加一个循环仿函数,输入来自重复的TypedPollingResultSet0,输出到Notification

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多