I think XSD can be really useful, especially on very large scale distributed environments. That said I rarely see people use them well. To quote Marshall McLuhan: "The message is the medium". I think there is a lot of value in the intrinsic understanding of a message based on contract. Even things like content based routing. I understand message properties as a KVP concept, but that seems to just introduce another sort of coupling and reminds me too much of JMS.
I like XSD because you can make a stand alone message with some portable validation and this can be really useful in distributed (and especially occasionally disconnected scenarios). A SalesOrder schema that doesn't allow negative quantity and dollar amounts is a good example. My clients should know (both human and machine) that they cannot break these rules. Throw this into JSON and how do you enforce these basic rules - especially without introducing the dependency of a live service endpoint. I think the example about date formatting is a good one.
Again, this isn't really a defense of XSD per say. Most XML/XSD I've seen is little more than angle bracket delimited text files. I like XSD because I have tools that make it easy to work with, when I remember the old days of XML... I want to forget they ever happened - but as we look to build ever more connected systems and aspire to allow them to auto connect I don't see how you can do this without some sort of schema. Any sort of semantic web approach will require something the machine can use to infer context and meaning. I do wish it could be easier though.