入力 XML ファイルは次のようになります
<test-message>
<segment id="MSH"/>
<segment id="SFT"/>
<segment id="PID"/>
<segment id="NTE"/>
<segment id="NK1"/>
<segment id="PV1"/>
<segment id="ORC"/>
<segment id="OBR"/>
<segment id="NTE"/>
<segment id="OBX"/>
<segment id="NTE"/>
<segment id="SPM"/>
</test-message>
上記の入力 XML ファイル要素セグメントでid="ORC"はオプションです
id="ORC"の要素セグメントまたはid="OBR"の要素セグメントに基づいて、入力 XML ファイルをグループ化したい
上記の入力 XML ファイルの場合、id="ORC" の要素セグメントが存在する場合、以下の結果が必要です
<message-group>
<test-message>
<segment id="MSH"/>
<segment id="SFT"/>
<segment id="PID"/>
<segment id="NTE"/>
<segment id="NK1"/>
<segment id="PV1"/>
</test-message>
<test-message>
<segment id="ORC"/>
<segment id="OBR"/>
<segment id="NTE"/>
<segment id="OBX"/>
<segment id="NTE"/>
<segment id="SPM"/>
</test-message>
</message-group>
上記の入力 XML ファイルの場合、id="ORC" の要素セグメントが存在しない場合、以下の結果が必要です
<message-group>
<test-message>
<segment id="MSH"/>
<segment id="SFT"/>
<segment id="PID"/>
<segment id="NTE"/>
<segment id="NK1"/>
<segment id="PV1"/>
</test-message>
<test-message>
<segment id="OBR"/>
<segment id="NTE"/>
<segment id="OBX"/>
<segment id="NTE"/>
<segment id="SPM"/>
</test-message>
</message-group>
上記のシナリオを処理するための XSLT (2.0) テンプレートまたは関数を使用できますか
注: XSLT 2.0 と saxon パーサーを使用しています。