MSAX2010を使用します。AX WCFサービスを介してデータにアクセスする場合、応答は名前と値のペアを含むXMLであり、キーデータリストと呼ばれます。このXMLをBizTalkで収集し、正規の階層スキーマに変換する必要があります。したがって、たとえば、「OrderNumber」を含むソースName要素を読み取る場合、関連付けられたValueを宛先スキーマのOrderNumber要素にマップします。誰かがBizTalkマップを使用してこれを行うための良い方法を発見しましたか?
質問する
944 次
1 に答える
2
グラフィカルなFunctoidを使用することを好むことを認めますが、xsltルートを受け入れることができれば、それは非常に簡単です(ビジュアルマップをxsltに変換する方法についてはこちらを参照してください)。例えば。次のXSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="inputxmlns"
xmlns:ns1="outputxmlns"
exclude-result-prefixes="ns0"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/ns0:Root">
<ns1:Root>
<ns1:Elements>
<xsl:for-each select="ns0:Elements/ns0:Element">
<xsl:element name="ns1:{normalize-space(*[local-name()='Name']/text())}">
<xsl:value-of select="ns0:Value/text()"/>
</xsl:element>
</xsl:for-each>
</ns1:Elements>
</ns1:Root>
</xsl:template>
</xsl:stylesheet>
準EAVスキーマを変換します。
<?xml version="1.0" encoding="utf-8"?>
<Root xmlns="inputxmlns">
<Elements>
<Element>
<Name>
NameOfElement1
</Name>
<Value>
ValueOfElement1
</Value>
</Element>
<Element>
<Name>
NameOfElement2
</Name>
<Value>
ValueOfElement2
</Value>
</Element>
</Elements>
</Root>
これに:
<?xml version="1.0" encoding="utf-8"?>
<ns1:Root xmlns:ns1="outputxmlns">
<ns1:Elements>
<ns1:NameOfElement1>
ValueOfElement1
</ns1:NameOfElement1>
<ns1:NameOfElement2>
ValueOfElement2
</ns1:NameOfElement2>
</ns1:Elements>
</ns1:Root>
于 2012-04-05T09:58:03.473 に答える