As far as I know, the decision to use grammars in XML Schemas was made completely uncritically. Response to Jelliffe's comments was mixed. While most were very keen on a rules-based approach in general and Schematron in particular, few were keen to see grammars thrown away completely. James Clark, whose own schema language TREX was released recently, was moved to respond . It's as pointless as arguing whether hammers are better than saws.
Grammars are better that rule-based systems for some things.
Rule-based systems are better than grammars for other things. If something can be expressed simply using a grammar, it's probably a good idea to use a grammar, because, amongst other reasons, it can be implemented very efficiently. If it can't be expressed simply using a grammar, then use a rule-based system. Joe English also said that grammar-based languages should not be rejected out of hand . I think the utility of grammar-based schemas has been well established.