---
title: "Worse is better: JSON versus XML"
url: https://daily.dev/posts/worse-is-better-json-versus-xml-wquafpzkq
source_url: https://blog.ploeh.dk/2026/07/06/worse-is-better-json-versus-xml
type: article
source: "ploeh blog"
published: 2026-07-06T06:36:21.668Z
updated: 2026-07-06T08:22:07.139Z
tags: ["architecture"]
reading_time: 5
upvotes: 60
comments: 12
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Worse is better: JSON versus XML

**[ploeh blog](https://daily.dev/sources/ploeh)** · 5 min read · 60 upvotes · 12 comments

## Summary

Mark Seemann argues that XML is technically superior to JSON as a data-interchange format, despite JSON's widespread adoption. He contends that XML's bad reputation stems from overengineered standards like SOAP, not from XML itself. XML offers a rich ecosystem of mature standards including schema languages (XSD), query languages (XQuery), streaming parsers, and native comment support — features JSON lacks or has had to reinvent via third-party tools like JSON Schema. Seemann acknowledges JSON's practical dominance and its natural fit for JavaScript-heavy SPAs and BFF services, but maintains that for interoperability and formal data exchange, XML's built-in tooling and schema support make it the stronger choice. He also notes that neither format is ideal for configuration files.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.ploeh.dk/2026/07/06/worse-is-better-json-versus-xml>

## Community discussion

Top comments from developers on daily.dev.

**@tilman151** · 11 upvotes

> I recently had to process XML files for the first time to parse German legislative texts. I found it hard to wrap my head around it, mostly because the XML object (lxml library in Python) was so opaque. If I read JSON, I get a Python dictionary that I can inspect in the debugger. With lxml I get an Element object which shows next to nothing.
>
>
> For example, I struggled to read the content of an XML node. The `element.text` method gives me the text between the opening and closing tag. But if there is a nested node, the method gives you only the text up to the nested node. Then you need to get...

**@daniel8000** · 4 upvotes

> Classic. Good read.

**@micahnorwoodjordan** · 2 upvotes

> this is probably an obtuse take but i hope i never have to work with XML again. ive only had to work with XML once, fixing Python logic in an accounting system invoicing pipeline. and like @tilman151 mentioned, the interface provided by these libraries were very unintuitive and clunky

**@zsisler** · 2 upvotes

> The reason VHS won out against betamax, as mentioned in the linked [wiki article](https://en.wikipedia.org/wiki/Videotape_format_war), is hilarious 😂
>
> Reminded me that sometimes older can be better despite the modern demand for things. Tube amps vs solid state amps, records vs digital music platforms, books vs audiobooks...

**@jenueldev** · 1 upvotes

> This is a refreshingly nuanced defense of XML. Separating the format itself from the baggage of SOAP makes the comparison fairer, and the mature schema, query, and streaming ecosystem is still a real advantage when interoperability matters more than developer convenience.

## Similar posts on daily.dev

- [The lost art of XML — mmagueta](https://daily.dev/posts/the-lost-art-of-xml-mmagueta-qcvhz2sua) · Lobsters · 1 upvotes · 1 comments
- [Stop Telling Us XMPP Should Use JSON](https://daily.dev/posts/stop-telling-us-xmpp-should-use-json-zomhphteb) · Lobsters · 2 upvotes · 1 comments
- [XML and JSON in 2026](https://daily.dev/posts/xml-and-json-in-2026-ec9217sei) · ongoing by Tim Bray · 0 upvotes · 0 comments

---

Tags: [#architecture](https://daily.dev/tags/architecture)

[View this post on daily.dev](https://daily.dev/posts/worse-is-better-json-versus-xml-wquafpzkq)
