【问题标题】:BizTalk Map Name Value Pair to Hierarchical SchemaBizTalk 映射名称值对到分层架构
【发布时间】:2012-04-18 04:41:18
【问题描述】:

我将使用 MS AX2010。通过 AX WCF 服务访问数据时,响应是包含名称/值对的 XML - 称为键数据列表。我将在 BizTalk 中收集此 XML,并需要将其转换为规范的分层架构。例如,如果我读取带有“OrderNumber”的源 Name 元素,那么我会将关联的 Value 映射到目标模式中的 OrderNumber 元素。 有没有人发现使用 BizTalk 地图的好方法?

【问题讨论】:

    标签: xslt biztalk


    【解决方案1】:

    我承认您更喜欢使用图形 functoid,但如果您可以接受 xslt 路线,那将非常简单(请参阅 here 将可视地图转换为 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>
    

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 1970-01-01
      • 2018-01-05
      • 2018-06-08
      • 1970-01-01
      • 2012-03-31
      • 2017-04-01
      • 1970-01-01
      • 2013-09-08
      相关资源
      最近更新 更多