XSD - you can validate the data easily before reading it with your application.
XSLT - you can transform the data into almost any other representation. You can even create JSON out of your XML with a pretty small XSL-Transformation, or merge multiple XML-Files to create a new one. There are almost no limits!
XPath - you can search/access single/multiple fields of data. This can be used in your code, in XSLTs or just by other tools (editors, IDEs for example).
XML takes alot of space! - Use compression. The difference to JSON is pretty low after it.
XML is painful to edit! - Use a proper editor with auto completion and auto validation. JSON with a deep hierarchie is also not easy to edit due to alot of brackets. JSON also requires to escape more characters than XML, which can cause alot of problems when editing by hand.