Я говорил про конкретную реализацию api на базе модели DOM-a. В данном случае - это, как я понимаю, в .NET. Тем более, с учетом всего этого обычно реализовано две модели DOM и SAX. Притом если SAX - это модель и апи вместе, то было бы не логично говорить о том что DOM - это только модель.
Заметь, а сравнивать api c xml начал ты, а не я. У меня явно указано "api обычного DOM-а " Так что нечего руками махать :)
По XML можно при желаниии выстроить объект определенного класса, что в .Net не составляет труда.
Я бы сказал, что в майкрософтской платформе это немного реализовано через ж-пу. Ибо, в данном случае идет неконтролируемая сериализация объектов, и малейшее отклонение ведет к полному провалу. Можно очень надеятся, что, Protocol Buffers наполнят еще дополнительным тулкитом для контроля таких случайностей.