柔軟性に潜む落とし穴を認識しておかなくてはならない

XMLSchemaはDTDに比べるとはるかに機能が豊富で、柔軟な記述ができるスキーマ定義です。データ型が定義できますし、targetNamespaceなどを指定したら子要素に名前空間上の要素全部記述できたりもしちゃうのでかなり自由にスキーマ定義ができるようになっています。
ただ、柔軟なスキーマ定義ができるということは「もの凄く複雑なスキーマも定義できてしまう」ことに他なりません。
XMLは構造化言語であるという特徴上、複雑なデータ構造や業務要件も表現できます。しかし、これらをただ単にXMLに投影するようなモデリングをしてしまうのは危険です。XMLはただの情報であり、DOMやSAXによるプログラミングによってデータを取り出し、有効活用できるようになって初めて価値が生まれるものです。スキーマが複雑になればなるほど実装は複雑さを増します。また、スキーマによる制限の緩さが複雑な業務要件を呼び込むことにもなりかねません。こうなってしまってはXMLが持つ良さを活かすことができなくなるでしょう。
ただ、業務を理解し、実装しやすくメンテナンスに富んだスキーマを定義するというのは非常に高いスキルが求められると思います。最低でも実装イメージを描くことができ、スキーマ定義に潜む落とし穴を認識できる人間でなければ失敗する可能性が高いと考えます。