-1

2 つの XML があり、1 つには条件が含まれ、もう 1 つの XML には、条件の評価に基づいて結果の XML に割り当てられる必要があるエラー コードのリストが含まれています。

条件.xml

<Validations>   
<Condition-1>UPDATE-IND!=A</Condition-1>   
<Condition-2>DUP-OVERRIDE=B</Condition-2>   
<Condition-3>TYPE-RECORD!=R</Condition-3>
</Validations>

ErrorList.xml

<ErrorList>
<error>
    <errorcode>1</errorcode>
    <errordescription>UPDATE INDICATOR.</errordescription>
</error>
<error>
    <errorcode>2</errorcode>
    <errordescription>SHOULD NOT BE BLANK.</errordescription>
</error>
<error>
    <errorcode>3</errorcode>
    <errordescription>NOT IN LIST</errordescription>
</error>
<error>
    <errorcode>4</errorcode>
    <errordescription>PARSE ERROR.</errordescription>
</error>

入力 XML:

<a>
    <c>
        <UPDATE-IND>A</UPDATE-IND>
        <DUP-OVERRIDE>B</DUP-OVERRIDE>
        <TYPE-RECORD>R</TYPE-RECORD>
    </c>
</a>

XSLT では、結果の xml は次のようになります。

条件 1 が真の場合 (Conditions.xml から) ErrorList.xml からのエラー コードの最初のセットが、結果の xml に表示されます。同様に、満たされたすべての条件について、関連するエラーノードが最終的な xml に表示されます。

このための XSLT の書き方 document() 関数を使用しようとしましたが、すべての条件とエラー コードを同時に反復して最終的な XML を形成する方法がわかりませんでした。

:変換エンジンとしてSaxon-B XSLT 2.0を使用して、Tibco BWでこれを試しています。

新しいロジック:

2 つの XML を組み合わせる代わりに、条件とエラー コードの両方を含む 1 つの XML を使用しようとしています。

入力 XML は同じままです。

条件 XML:

<ns0:root xmlns:ns0 = "http://www.tibco.com/schemas/Validation.xsd">
<ns0:subElement1 ID = "id">
    <ns0:subElement2 ID = "id">
        <ns0:subElement3 ID = "id">
            <ns0:subElement4 ID = "id">
                <ns0:subElement5 cond = "1">
                    <ns0:conditions>1=1</ns0:conditions>
                    <ns0:errorcode>001</ns0:errorcode>
                </ns0:subElement5>
                <ns0:subElement5 cond = "2">
                    <ns0:conditions>2=2</ns0:conditions>
                    <ns0:errorcode>002</ns0:errorcode>
                </ns0:subElement5>
                <ns0:subElement5 cond = "3">
                    <ns0:conditions>3!=3</ns0:conditions>
                    <ns0:errorcode>003</ns0:errorcode>
                </ns0:subElement5>
            </ns0:subElement4>
        </ns0:subElement3>
    </ns0:subElement2>
</ns0:subElement1>

今、私は条件を取得して評価し、同じxmlから関連するエラーコードを取得しようとしています.

注: conditions.xml は入力パラメーターとして XSLT に渡されます。

4

1 に答える 1