Fw: [jdom-interest] Re: Radical Suggestion (was Re: Antwort: RE: [jdom-interest] Namespace help)

Elliotte Rusty Harold elharo at metalab.unc.edu
Fri Jul 26 16:48:33 PDT 2002

At 12:44 PM -0500 7/26/02, graham glass wrote:
>hi there,
>what exactly is this "electric XML" fallacy you're talking about?

Namespaces are part of it, but hardly the only part. The ElectricXML 
API caters to developers' preconceptions about XML rather than what 
XML actually is. Very glaring example of this I just noticed a couple 
of days ago:

The XMLDecl class implements the ProcessingInstruction interface.

This is completely and totally wrong. Both XML 1.0 and DOM are 
absolutely crystal clear that the XML declaration is not a processing 
instruction. I admit that many developers think it is a processing 
instruction. I've made that mistake myself in the past, but I was 
wrong then as you are wrong now.

Every time I look at ElectricXML I find more ways you've attempted to 
make XML what developers think it is or what they want it to be 
instead of what it actually is. The ElectricXML fallacy is the idea 
that you can fix XML in the API.

It is your responsibility as an API developer to faithfully implement 
the specs. The programmers who use your API are not XML experts. They 
are relying on you to protect them from their ignorance. This a large 
part of the purpose of all APIs. For instance, when I use 
java.net.Socket I am happy that I can write networking code without 
knowing every last detail of the IP packet header format. However, I 
suspect that whoever implemented the java.net API (or perhaps the 
native APIs it sits on top of) did know every last detail of the IP 
packet header format. I would be very upset if I discovered that 
because the programmers who wrote java.net didn't like the IP header 
format, they used their own instead, especially if they still 
described their API as an interface to TCP/IP networks.

XML has some ugly parts, and some things that would be done 
differently if we started over from scratch, but you don't have the 
right to do this, at least not if you want to use the acronym "XML" 
to describe your product. If you really detest what XML is, then feel 
free to create your own markup language with its own rules. This may 
perhaps look a lot like XML. This is what the MinML and YAML groups 
have done, and that's fine. But don't call your product XML when it 

| Elliotte Rusty Harold | elharo at metalab.unc.edu | Writer/Programmer |
|          XML in a  Nutshell, 2nd Edition (O'Reilly, 2002)          |
|              http://www.cafeconleche.org/books/xian2/              |
|  http://www.amazon.com/exec/obidos/ISBN%3D0596002920/cafeaulaitA/  |
|  Read Cafe au Lait for Java News:  http://www.cafeaulait.org/      |
|  Read Cafe con Leche for XML News: http://www.cafeconleche.org/    |

More information about the jdom-interest mailing list