title: XMLUnit-2 is failing with `withNodeMatcher` API for random order of List<Map>
body: <p>I've used below <code>DiffBuilder</code> using XMLUnit-2</p>
  <pre><code>diff = DiffBuilder.compare(control).withTest(test).checkForSimilar()
  .normalizeWhitespace().ignoreComments()
  .ignoreWhitespace().ignoreElementContentWhitespace()
  .withNodeFilter(node -&gt; (filter(node, attrsToIgnore)))
  .withAttributeFilter(fields -&gt; (filterFields(fields, fieldsToIgnore)))
  .withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndText)).build();
  </code></pre>
  <p>It works well for shuffling the <code>List&lt;&gt;</code> values or random value in <code>List&lt;&gt;</code> as shown below</p>
  <pre><code>&lt;?xml version='1.0' encoding='UTF-8'?&gt;
  &lt;!DOCTYPE ResourceObject PUBLIC &quot;sailpoint.dtd&quot; &quot;sailpoint.dtd&quot;&gt;
  &lt;ResourceObject displayName=&quot;aggaccnm1&quot; identity=&quot;U013JFHQ59D&quot; objectType=&quot;account&quot;&gt;
    &lt;Attributes&gt;
      &lt;Map&gt;
        &lt;entry key=&quot;costCenter&quot; value=&quot;1111&quot;/&gt;
        &lt;entry key=&quot;department&quot; value=&quot;QA&quot;/&gt;
        &lt;entry key=&quot;displayName&quot; value=&quot;AggACCDN1&quot;/&gt;
        &lt;entry key=&quot;groups&quot;&gt;
          &lt;value&gt;
            &lt;List&gt;
              &lt;String&gt;S013J6S7STH&lt;/String&gt;
              &lt;String&gt;S013S71EMLN&lt;/String&gt;
              &lt;String&gt;S013S71GTU6&lt;/String&gt;
            &lt;/List&gt;
          &lt;/value&gt;
        &lt;/entry&gt;
      &lt;/Map&gt;
    &lt;/Attributes&gt;
  &lt;/ResourceObject&gt;
  </code></pre>
  <p>But, When I've <code>List &lt; Map {} &gt;</code> it fails.. what can be done to handle both random order of <code>List&lt;String&gt;</code> values as well as <code>List &lt; Map {} &gt;</code> value orders.</p>
  <pre><code>&lt;?xml version='1.0' encoding='UTF-8'?&gt;
  &lt;!DOCTYPE ResourceObject PUBLIC &quot;sailpoint.dtd&quot; &quot;sailpoint.dtd&quot;&gt;
  &lt;ResourceObject displayName=&quot;aggaccnm1&quot; identity=&quot;U013JFHQ59D&quot; objectType=&quot;account&quot;&gt;
    &lt;Attributes&gt;
      &lt;Map&gt;
        &lt;entry key=&quot;costCenter&quot; value=&quot;1111&quot;/&gt;
        &lt;entry key=&quot;department&quot; value=&quot;QA&quot;/&gt;
        &lt;entry key=&quot;displayName&quot; value=&quot;AggACCDN1&quot;/&gt;
        &lt;entry key=&quot;groups&quot;&gt;
          &lt;value&gt;
            &lt;List&gt;
              &lt;String&gt;S013J6S7STH&lt;/String&gt;
              &lt;String&gt;S013S71EMLN&lt;/String&gt;
              &lt;String&gt;S013S71GTU6&lt;/String&gt;
            &lt;/List&gt;
          &lt;/value&gt;
        &lt;/entry&gt;
        &lt;entry key=&quot;groups_objects&quot;&gt;
          &lt;value&gt;
            &lt;List&gt;
              &lt;Map&gt;
                &lt;entry key=&quot;display&quot; value=&quot;Agggrp1&quot;/&gt;
                &lt;entry key=&quot;value&quot; value=&quot;S013S71EMLN&quot;/&gt;
              &lt;/Map&gt;
              &lt;Map&gt;
                &lt;entry key=&quot;display&quot; value=&quot;Agggrp5&quot;/&gt;
                &lt;entry key=&quot;value&quot; value=&quot;S013S71GTU6&quot;/&gt;
              &lt;/Map&gt;
              &lt;Map&gt;
                &lt;entry key=&quot;display&quot; value=&quot;Agggrp7&quot;/&gt;
                &lt;entry key=&quot;value&quot; value=&quot;S013S71HVU6&quot;/&gt;
              &lt;/Map&gt;
            &lt;/List&gt;
          &lt;/value&gt;
        &lt;/entry&gt;
      &lt;/Map&gt;
    &lt;/Attributes&gt;
  &lt;/ResourceObject&gt;
  </code></pre>
  <p>In above example you can notice I've <code>List &lt; Map {} &gt;</code> and my above implementation working well for simple <code>List&lt;&gt;</code> but not for <code>List &lt; Map {} &gt;</code></p>
  <p>I want to ignore the order of both, someone please let me know how this can be achieved?</p>
  <p>Thanks,</p>
  <p>Swapnil.</p>