Сильная типизация, фактически, любая типизация вообще существует по той причине, что программист не делает глупых ошибок (например, передает строку в функцию, ожидающую int и т. Д.). Кроме того, это происходит во время компиляции и ничего не стоит во время выполнения, создавая эффективный код, избегая проверок во время выполнения (например, для правильных приведений) и избегая ненормального поведения во время выполнения для неуправляемого кода.
Как вы сказали, Xml может использоваться для определения замещающей объектной модели, но эта объектная модель должна проходить те же проверки во время выполнения, чтобы гарантировать надежность в определенной степени. Но это имеет определенные конечные накладные расходы.
Сказав, что все, что я хочу сказать, это то, что окончательный выбор остается за вами. Готовы ли вы отказаться от безопасности (а иногда и душевного спокойствия), которую обеспечивает «жесткая» объектная модель, или вам будет удобнее использовать более гибкую, но способную стрелять в себя объектную модель? XML требует большей дисциплины и бдительности программиста (таким образом, использование IMHO становится рутиной).
API на основе объектов не так жесток, как вы думаете, автоматически генерируемые схемы XML могут не выполнять то, что вы действительно хотите, чтобы они делали. Объектно-ориентированные API-интерфейсы можно сделать такими же гибкими, как и API-интерфейсы на основе XML, если они хорошо спроектированы. Динамическая типизация может иногда помочь.