membrane/soa-model — pull request #50 by g1l3sp (2013-03-20 22:25:38+00:00)
Title: Improve diffing of xsd any within a sequence

This patch improves the diffing of xsd anys within sequences by modifying SequenceDiffGenerator to consider all particles instead of just elements within the sequence. The problem this addresses is that "anys" are not elements, so without the patch the diffs involving them end up being a bit uglier than they need to be. Here's an illustration (which comes from the added unit test):

For this example, the following types are used:

```xsd

```

When diffing NameTagA with NameTagL before the patch, the output that is dumped by my debug code shows that the differences looks like this:

```
Sequence has changed: { safe:false breaks:true }
any removed. { safe:false breaks:true }
Element favoriteColor added with minOccurs=1. { safe:false breaks:true }
Any added with minOccurs=0. { safe:true breaks:false }
```

As you can see, though really there was just an insertion that caused the position of the any to change, this is interpreted as both a removal and an addition. After the patch, the dumped diff looks cleaner:

```
Sequence has changed: { safe:false breaks:true }
Position of any changed from 1 to 2. { safe:false breaks:true }
Element favoriteColor added with minOccurs=1. { safe:false breaks:true }
```