We just built a rather complicated XML editor where I work, and my first suggestion is, if you can possibly avoid it, DO NOT DO THINGS THE WAY THAT FLEX DOES THEM UNLESS YOU ARE USING AN XMLListCollection DIRECTLY. Flex's XMLListCollection is a container for XMLListAdapter, and while it does work, it is much better if you use the parent node of an XMLList and use the native XML functions. If you try to duplicate their efforts it is long and nightmarish.
That said:
XMLListCollection is your friend, but make sure that you have multiple layers if you have a lot of data binding. We originally always used ex4 searches from the root of our XML document, and that cost us a LOT of time and energy. We realized that we could break it up into three sub-lists, and each edit was a good deal faster.
As to the actual UI, well, there are a number of ways to do this and it depends on how your XML is structured overall.
If you have multiple itemLists, you could wish to use the tree component along with some of the code exemplified here: http://livedocs.adobe.com/flex/3/html/help.html?content=about%5Fdataproviders%5F6.html
On the other hand, if there is only one itemList, then I would have a simple List. That will allow you to drag items and re-order them. If you used a labelFunction, you could have it return the item's @id. You'd be able to add a TextField and a submit button for adding nodes. Perhaps an additional button for deleting, but it would not be that hard.
Cancelling an edit would be particularly easy -- simply wait until "Submit" has been hit before actually committing the change to the XML.