以下のサンプルxmlデータがあります。要素とデータを複数のレベルで並べ替える必要があります。1. ソートは、ルート レベルのすぐ下で発生する必要があります。 2. ソートは、各レコード セットまたはフィールド名<InventoryRecord><SalesInRecord><SellOutRecord>
のすべての要素に対して発生する必要があります。レコードセットタイプ。ここで重要なことは、レコード要素によっては利用できない場合があるということです。その場合、並べ替えは値に対してのみ行われるべきです。<InventoryRecord>
<SalesInRecord>
<SellOutRecord>
<LOCATION_ID><LOCATION_ID_DB><LOCATION_NAME>
<LOCATION_ID>
<LOCATION_ID_DB><LOCATION_NAME>
<root>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>1</RECORD_NO>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>2</RECORD_NO>
<LOCATION_NAME>XYZ ABC</LOCATION_NAME>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>WARNING</RECORD_TYPE>
<RECORD_NO>3</RECORD_NO>
<LOCATION_ID>2-3LG-2450</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>4</RECORD_NO>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>6</RECORD_NO>
<LOCATION_NAME>XYZ ABC</LOCATION_NAME>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
</SellOutRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>2</RECORD_NO>
<LOCATION_ID>2-3LG-2450</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>4</RECORD_NO>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>5</RECORD_NO>
<LOCATION_NAME>XYZ ABC</LOCATION_NAME>>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>8</RECORD_NO>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
</InventoryRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>VALID</RECORD_TYPE>
<RECORD_NO>3</RECORD_NO>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>WARNING</RECORD_TYPE>
<RECORD_NO>3</RECORD_NO>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>4</RECORD_NO>
<LOCATION_ID>2-3LG-2450</LOCATION_ID>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<RECORD_TYPE>ERROR</RECORD_TYPE>
<RECORD_NO>7</RECORD_NO>
<LOCATION_NAME>XYZ ABC</LOCATION_NAME>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
</SalesInRecord>
</root>
期待される出力は次のようになります。
<root>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
<LOCATION_NAME>XYZ ABC</LOCATION_NAME>
<RECORD_NO>5</RECORD_NO>
<RECORD_TYPE>VALID</RECORD_TYPE>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<LOCATION_ID>2-3LG-2450</LOCATION_ID>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>2</RECORD_NO>
<RECORD_TYPE>ERROR</RECORD_TYPE>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>4</RECORD_NO>
<RECORD_TYPE>VALID</RECORD_TYPE>
</InventoryRecord>
<InventoryRecord>
<FILE_TYPE>STOIV</FILE_TYPE>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>8</RECORD_NO>
<RECORD_TYPE>ERROR</RECORD_TYPE>
</InventoryRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
<LOCATION_NAME>XYZ ABC</LOCATION_NAME>
<RECORD_NO>7</RECORD_NO>
<RECORD_TYPE>ERROR</RECORD_TYPE>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<LOCATION_ID>2-3LG-2450</LOCATION_ID>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>4</RECORD_NO>
<RECORD_TYPE>ERROR</RECORD_TYPE>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>3</RECORD_NO>
<RECORD_TYPE>VALID</RECORD_TYPE>
</SalesInRecord>
<SalesInRecord>
<FILE_TYPE>STOSI</FILE_TYPE>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>3</RECORD_NO>
<RECORD_TYPE>WARNING</RECORD_TYPE>
</SalesInRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
<LOCATION_NAME>XYZ ABC</LOCATION_NAME>
<RECORD_NO>2</RECORD_NO>
<RECORD_TYPE>ERROR</RECORD_TYPE>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
<LOCATION_NAME>XYZ ABC</LOCATION_NAME>
<RECORD_NO>6</RECORD_NO>
<RECORD_TYPE>ERROR</RECORD_TYPE>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<LOCATION_ID>2-3LG-2450</LOCATION_ID>
<LOCATION_ID_DB>-1</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>3</RECORD_NO>
<RECORD_TYPE>WARNING</RECORD_TYPE>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>1</RECORD_NO>
<RECORD_TYPE>VALID</RECORD_TYPE>
</SellOutRecord>
<SellOutRecord>
<FILE_TYPE>STOSO</FILE_TYPE>
<LOCATION_ID>2-3LG-2456</LOCATION_ID>
<LOCATION_ID_DB>2-3LG-2456</LOCATION_ID_DB>
<LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
<RECORD_NO>4</RECORD_NO>
<RECORD_TYPE>ERROR</RECORD_TYPE>
</SellOutRecord>
</root>