I have a requirement to validate actual XMLs data against expected XML Data.
Example: Expected Data
<root>
<Orders>
<Order>
<DateTime>\d{8}_\d{4}</DateTime>
<OrderID>\d{4}</OrderID>
</Order>
<Order>
<DateTime>\d{8}_\d{4}</DateTime>
<OrderID>\d{4}</OrderID>
</Order>
</Orders>
<queryStatus>Success</queryStatus>
</root>
Since DateTime and OrderIDs would change at each execution , therefore I am maintaining a pattern instead of hard-coding DateTime or OrderIDs. The above is just a Sample - We will have several different XMLs that we need to compare and validate.
The above Actual Data should match either of the two XMLs
XML1:
<root>
<Orders>
<Order>
<DateTime>08052021_1250</DateTime>
<OrderID>1234</OrderID>
</Order>
<Order>
<DateTime>08052021_1251</DateTime>
<OrderID>4567</OrderID>
</Order>
</Orders>
<queryStatus>Success</queryStatus>
</root>
XML2:
<root>
<queryStatus>Success</queryStatus>
<Orders>
<Order>
<DateTime>08052021_1250</DateTime>
<OrderID>1234</OrderID>
</Order>
<Order>
<DateTime>08052021_1251</DateTime>
<OrderID>4567</OrderID>
</Order>
</Orders>
</root>
As far as I understand xmlunit will report that DateTime and OrderID do not match. I am open for a Java based solution or a Bash script (xmllint) based solution. Can you please help with any pointers on how to approach this.