2012-03-15 14 views
0

私は、アドレスが複数の "AddressLine"要素または複数の "Street"要素、またはその組み合わせとして指定できるソーススキーマを持っています。私の目的地のスキーマは単に複数の "ストリート"要素を持っています。私はこれをFunctoidとマッピングするのに問題があります(カスタムXSLTでは問題ありませんが、このマップではグラフィカルメソッドを使用したいと思います)。私は両方のソース要素をループファンクドにマップしてからこれを宛先要素にマッピングしようとしましたが、ソース "AddressLine"と "Street"要素をループするXSLTが生成されますが、宛先には何も書き込まれません。BizTalk MapバリューマッピングルーピングFunctoids

私は下の送信元と送信先スキーマの関連セクションを貼り付けました:定義ループのFunctoidに

ソース

<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> 
+0

スクリプトのFunctoidを.NETメソッドで使用しますか?これは基本的にXSLTを使用するのと同じですか?個人的には、.NETでXSLTよりも簡単にコーディングできると思います。 –

+0

私は同意すると、これをコードに戻す方が簡単ですが、functoidを使用してこれを実行できるかどうかを知りたいと思います。 –

+0

テーブルルーピングochテーブルエクストラクタを見ましたか? http://geekswithblogs.net/evankoch/archive/2007/08/07/114470.aspx – Riri

答えて

0

あなたのリンクループ構造のみ。ループ構造を定義した後で実際のデータを取得するには、ソースノードと宛先ノードを接続する必要があります。

たとえば、デザイン面にループファンクコードをドロップします。 AddressLineとStreetをソースからループファンクドドに接続します。次に、ループファンクドを目的地の通りに接続します。次に、送信先のAddressLineとStreetの両方を宛先のStreetに直接接続します。

うまくいけばうまくいきます。