Как вставить закрывающий узел для элемента в структуру XML в BizTalk

Я пытался вставить закрывающий узел в выходные данные BizTalk XML, используя карту, но я не могу этого сделать.

Текущий результат - это то, что я получаю прямо сейчас. В этом у меня есть запрос в выделенной части. А мне нужен ожидаемый вывод с помощью маппинга.

Настоящий вывод

<VIS_Products Version="1.0">
    <Product>
        <ProductNo>200042132</ProductNo>
        <LotTrackingCode>1</LotTrackingCode>
        <SerialTrackingCode>0</SerialTrackingCode>
        <FractionAllowed>false</FractionAllowed>
        <RevisionControlFlag>false</RevisionControlFlag>
        <DefaultUomCode>MTR</DefaultUomCode>
        <ProductInventoryType>8</ProductInventoryType>
        <Active>true</Active>
        <FUID>
        </FUID>
        <TextID>
            <Text>
                <TextTranslation>
                    <LanguageID>1033</LanguageID>
                    <Short>NJREG SF 30 U70 CLR PTR P</Short>
                    <Medium>NJREG SF 30 U70 CLR PTR P</Medium>
                    <Extended>NJREG SF 30 U70 CLR PTR P</Extended>
                    <TextID>
                    </TextID>
                </TextTranslation>
                <TextTranslation>
                    <LanguageID>1036</LanguageID>
                    <Short>NJREG SF 30 U70 CLR PTR P</Short>
                    <Medium>NJREG SF 30 U70 CLR PTR P</Medium>
                    <Extended>NJREG SF 30 U70 CLR PTR P</Extended>
                    <TextID>
                    </TextID>
                </TextTranslation>
                <TextTranslation>
                    <LanguageID>1046</LanguageID>
                    <Short>NJREG SF 30 U70 CLR PTR P</Short>
                    <Medium>NJREG SF 30 U70 CLR PTR P</Medium>
                    <Extended>NJREG SF 30 U70 CLR PTR P</Extended>
                    <TextID>
                    </TextID>
                </TextTranslation>
                <TextTranslation>
                    <LanguageID>2058</LanguageID>
                    <Short>NJREG SF 30 U70 CLR PTR P</Short>
                    <Medium>NJREG SF 30 U70 CLR PTR P</Medium>
                    <Extended>NJREG SF 30 U70 CLR PTR P</Extended>
                    <TextID>
                    </TextID>
                </TextTranslation>
            </Text>
        </TextID>
        <ProductGroupDelete>
            <Group>VIS_Nojax</Group>
            <GroupType>2</GroupType>
            <Active>true</Active>
            <GroupClassID Name="VIS_ProductLine /">
            </ProductID>
        </ProductGroupDelete>
        <ProductGroupDelete>
    </Product>
</VIS_Products >

Ожидаемый результат

 <VIS_Products Version="1.0">
        <Product>
        <ProductNo>200042132</ProductNo>
        <LotTrackingCode>1</LotTrackingCode>
        <SerialTrackingCode>0</SerialTrackingCode>
        <FractionAllowed>false</FractionAllowed>
        <RevisionControlFlag>false</RevisionControlFlag>
        <DefaultUomCode>MTR</DefaultUomCode>
        <ProductInventoryType>8</ProductInventoryType>
        <Active>true</Active>
        <FUID>
        </FUID>
        <TextID>
            <Text>
                <TextTranslation>
                    <LanguageID>1033</LanguageID>
                    <Short>NJREG SF 30 U70 CLR PTR P</Short>
                    <Medium>NJREG SF 30 U70 CLR PTR P</Medium>
                    <Extended>NJREG SF 30 U70 CLR PTR P</Extended>
                    <TextID>
                    </TextID>
                </TextTranslation>
                <TextTranslation>
                    <LanguageID>1036</LanguageID>
                    <Short>NJREG SF 30 U70 CLR PTR P</Short>
                    <Medium>NJREG SF 30 U70 CLR PTR P</Medium>
                    <Extended>NJREG SF 30 U70 CLR PTR P</Extended>
                    <TextID>
                    </TextID>
                </TextTranslation>
                <TextTranslation>
                    <LanguageID>1046</LanguageID>
                    <Short>NJREG SF 30 U70 CLR PTR P</Short>
                    <Medium>NJREG SF 30 U70 CLR PTR P</Medium>
                    <Extended>NJREG SF 30 U70 CLR PTR P</Extended>
                    <TextID>
                    </TextID>
                </TextTranslation>
                <TextTranslation>
                    <LanguageID>2058</LanguageID>
                    <Short>NJREG SF 30 U70 CLR PTR P</Short>
                    <Medium>NJREG SF 30 U70 CLR PTR P</Medium>
                    <Extended>NJREG SF 30 U70 CLR PTR P</Extended>
                    <TextID>
                    </TextID>
                </TextTranslation>
            </Text>
        </TextID>
        <ProductGroupDelete>
            <Group>VIS_Nojax</Group>
            <GroupType>2</GroupType>
            <Active>true</Active>
            <GroupClassID Name="VIS_ProductLine">
            </GroupClassID>
            <ProductID>
            </ProductID>
        </ProductGroupDelete>
        <ProductGroupDelete>
    </Product>
</VIS_Products >

Изменения в узле идентификатора класса группы в productgroupdelete. В настоящем выводе я не получаю закрывающий узел. Я хочу закрыть узел с помощью сопоставления.

Как я могу это сделать?


person user3676094    schedule 26.05.2014    source источник
comment
Просто хотел указать, что ваш последний элемент ‹ProductGroupDelete› (3-я последняя строка) неверен в обоих случаях. Возможно, проблема с форматированием?   -  person Pieter Vandenheede    schedule 27.05.2014


Ответы (1)


Самозакрывающиеся теги, такие как <GroupClassID Name="VIS_ProductLine" />, идентичны <GroupClassID Name="VIS_ProductLine"></GroupClassID>. Процессор XSLT выберет то, что ему больше всего подходит. В письменной форме то же самое.

Вы можете попытаться обмануть процессор XSLT и добавить, например, <xsl:comment />, если вы действительно хотите, чтобы отображалось так, как вы просили. Например, этот XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="GroupClassID">
        <xsl:copy>
            <xsl:apply-templates select="@*" />
            <xsl:comment>TRICKED</xsl:comment>
            <xsl:apply-templates select="node()" />
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

Он добавляет комментарий как дочерний элемент этого узла, а на выходе будет добавлен закрывающий тег.

person Mark Veenstra    schedule 26.05.2014