BizTalk映射值映射循环functoid
我有一个源模式,其中地址可以作为多个“AddressLine”元素或多个“Street”元素给出,也可以是一个组合。我的目标模式只是有多个“Street”元素。我在用functoid映射这一点上遇到了困难(自定义XSLT没有问题,但我更愿意用图形方法来映射)。我尝试将两个源元素映射到循环functoid,然后再映射到目标元素,但这只会生成XSLT,它在源“AddressLine”和“Street”元素之间循环,但不会向目标写入任何内容 我已将源架构和目标架构的相关部分粘贴到下面: 来源BizTalk映射值映射循环functoid,biztalk,biztalk-mapper,Biztalk,Biztalk Mapper,我有一个源模式,其中地址可以作为多个“AddressLine”元素或多个“Street”元素给出,也可以是一个组合。我的目标模式只是有多个“Street”元素。我在用functoid映射这一点上遇到了困难(自定义XSLT没有问题,但我更愿意用图形方法来映射)。我尝试将两个源元素映射到循环functoid,然后再映射到目标元素,但这只会生成XSLT,它在源“AddressLine”和“Street”元素之间循环,但不会向目标写入任何内容 我已将源架构和目标架构的相关部分粘贴到下面: 来源 <
<xsd:complexType name="Address">
<xsd:sequence>
<xsd:element name="AddressLine" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Free format address lines may be used instead of (or in addition to) specific Street etc elements.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Street" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="City" type="xsd:string" minOccurs="0"/>
<xsd:element name="State" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>State/County/Province</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="PostCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Post/ZIP code</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Country" minOccurs="0">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Code" type="xsd:string" use="optional"/>
<xsd:attribute name="Codelist" type="xsd:string" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
可使用自由格式地址行代替(或补充)特定街道等元素。
州/县/省
邮政编码
目的地
<xs:element name="Address" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Street" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="City" type="xs:string" minOccurs="0"/>
<xs:element name="State" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>State/County/Province</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PostCode" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Post/ZIP code</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Country" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Code" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
州/县/省
邮政编码
指向循环functoid的链接仅定义循环结构。要在定义循环结构后获得实际数据,必须连接源节点和目标节点
例如,在设计图面上放置一个循环functoid。将AddressLine和Street从源连接到循环functoid。然后将循环functoid连接到目标中的street。现在,将源中的AddressLine和Street直接连接到目标中的Street
希望这是有道理的 您是希望将脚本functoid与.NET方法一起使用,还是这基本上类似于使用XSLT?就我个人而言,我认为在.NET中编写代码比在XSLT中编写代码更容易。我同意,恢复到编写代码会更容易,但我想知道是否/如何使用functoids来完成。查看表循环och表提取器?