Thank you for all your replies! Very useful.
I don't see how XXE relates to doing XML validation that couldn't be addressed by limiting memory and CPU usage (which you would need to do either way),
XXE not just about DoS. For example I have API which accepts requests over XML.
There is an API function: create object (with user supplied name). And another function: list all objects with its names.
So attacker can create object with name equal to content of /etc/passwd and then list it, this way receive content of /etc/passwd.
imho, pretty common case...