This is built on Jetbrains MPS[0], which is essentially an abstract tree editor made to behave like a regular text editor. The weird thing is, the DSLs can collide; there can potentially not be enough information in the text to unambiguously decide which DSL the author intended. Therefore, additional data has to be stored to disambiguate this.
Well not only that but MPS allows for things like graphical languages too. XML is used because you're not really editing text at all, you're editing at a higher level of abstraction.
Regardless, MPS has support for things like version control merging/diffing and so on. It's a pretty mind blowing tool all round.
[0] http://www.jetbrains.com/mps/