普通のプログラムでは型はロジックと紐付いていて、データはロジックへ進入する際にロジック側の手動で検証を受けるのよね。
なんだけど、 XML Schema とかそっち系の技術はデータ側にデータとして validation ロジックが入っていて、処理系がそのロジックをネイティブの validation ロジックに翻訳して使うという手間が発生する
しかも Schema 系はその用途的に「必要に応じて型を次々と定義していく」という戦略をとっているけど、これは静的にコンパイルされるプログラムととにかく相性が悪い。プログラム側としては事前に全ての型が判明していてほしいので。
で、結局スキーマからコード生成を経てネイティブの型を事前に用意するということになるわけだけど、それデータとして型を用意した意味の半分くらい死んでない? という (しかももちろん追加のスキーマをネイティブに扱うことはできない)
動的にスキーマを扱うと、「型検査相当のことを型以外のシステムで行う」みたいなことになって、結局ネイティブの型レベルでの恩恵は受けられないわけよね。そりゃありがたくないわな
静的な型検査を考えない LL とかだと相性は良いかもしれないけど……
それも結局型アノテーションとか付けようとしたら同じように苦労することになるので