Вы задаете много разных вещей в своем вопросе, и я не уверен, что правильно понял, что вы действительно ищете, но вот некоторые мысли:
Хотя вы можете представлять данные как в JSON, так и в XML, они являются совсем другими.Я не буду даже пытаться быть точным здесь, но надеюсь дать вам правильную идею:
JSON - это легкий способ (де) сериализации и передачи ключа / значения и списковценности вокруг.Это легко, просто, удобно, и некоторые утверждают, что более читабельно, чем XML.Сериализация / десериализация легко выполняется на всех языках.
XML - это расширяемая разметка язык , которая не только представляет данные, но и задает правила (или протоколы, если хотите)о них.
Это относится не только к предоставлению схемы.Поскольку вы упоминаете XMPP, который выбирает XML для представления своих протоколов, рассмотрим следующий пример:
Предположим, что в некотором представлении на основе XML, предназначенном для обмена музыкальной информацией, где определен элемент <album>
.
<album>The Contino Sessions</album>
Клиенты, разработанные для анализа этого XML, будут знать, как интерпретировать тег.Теперь Foo Bar может появиться позже и основываться на протоколе, расширяющем его так:
<album foobar:genre="Electronica">The Contino Sessions</album>
Старые клиенты, ничего не знающие о пространстве имен foobar
, продолжат работать как обычно, игнорируя foobar:genre
.Те, кто разбирается в foobar
, проанализируют аннотацию жанра.Это иллюстрирует на примере, как XML не просто представление данных.Попробуйте подумать, как бы вы сделали то же самое с JSON.Вы найдете, что вы не можете с теми же ценами.Вот почему, например, очень маловероятно, что реализация XMPP может быть реализована в JSON.
Тем не менее, XML несет свое бремя.Трудно создать хорошие парсеры XML.Даже сложно использовать XML для простой сериализации.Читаемость человеком - это эвфемизм головной боли, когда дело доходит до выяснения длинных документов и т. Д.
Короче:
Когда вы просто передаете данные в JSON, это легко и просто.
Когда вы разрабатываете протокол, который будет расширен различными способами сторонними разработчиками, XML - это путь.
Преобразования туда и обратноплохая идея.Вы не можете просто конвертировать XML в JSON.