WSDL, and its users, and its tools, and XML in general

[prev] [thread] [next] [lurker] [Date index for 2004/09/29]

From: David Cantrell
Subject: WSDL, and its users, and its tools, and XML in general
Date: 12:45 on 29 Sep 2004
Remember back in January when I Hated XML, posting in this august forum?

Well, I hate XML even more now.  Here's some specific examples of all
the various hateful things I noted in that earlier post.

But first some background.  At work, I am writing an application which
exposes a SOAP interface so that another company can submit requests to
our database.  Apparently, the tools that this other company are using
can't just make a damned SOAP request.  They need me to specify my
interface in WSDL.  WSDL is a dialect of XML.  It is so hateful that
even those who like XML (and who like using the crippled tools that need
it) recommend using third-party tools to generate it automatically.

I took one look at the WSDL spec and ran away screaming.  I agree with
them, there's no way in hell I want to write that crap by hand.  As well
as having to define my functions three times in different ways, I have
to contend with those weird namespace things, and the WSDL inventors in
their infinite wisdom have decided to reuse words which have
well-understood meanings, like "port", and use them for something
entirely unrelated to what they normally mean.

But can I find such a tool that *works*?  Nope.  In the end, I had to
write stubs for all my methods in JAVA and use some Java tool to produce
WSDL.  I then had to correct the WSDL, by hand.  Someone had recommended
another tool which might even have been really good, but even though it
is apparently free you still need to ask the vendor for a licence.
Which I did, then they phoned me to talk about my needs, and said they'd
send a licence.  Which they never did.  Even if I had had a licence, I
bet it wouldn't have worked properly.

Back to some more WSDL hate.  I expect that at some point you have
written a function which returns an array of data.  Try explaining that
to WSDL.  It *might* be possible, but not using the Java thingy that I
had.  The solution we arrived at was to pass a string, with CSV in it.
Because CSV is old, and works, unlike this crazy modern complex stuff.
There seems to be no sane way of having functions with variable numbers of
arguments.  So again, we're using CSV strings.  At this rate, I might
as well have just listened on a socket for CSV and spat back CSV!

XML seems to encourage this mad over-complex stuff.  WSDL *could* be
implemented using the simple version 1 XML that I eulogised in my
earlier post here.  But even if it could be, it would still be mad
and make my brane hurt.  I've seen plenty of other stuff in XML which is
deliberately obfuscatory - and unlike the IOCCC or the Obfuscated Perl
Contest, its advocates TAKE THIS SHIT SERIOUSLY.  So I have to conclude
that there's something wrong with XML itself, even the simplest version
1 spec XML, which makes people do this.  And therefore I hate XML, even
the version that I didn't hate earlier.

-- 
David Cantrell | http://www.cantrell.org.uk/david

   Obviously, Linux owes its heritage to UNIX but not its code.
   We would not, nor will not, make such a claim
      -- Darl McBride, CEO, SCO, 28 Aug 2002
         talking to Jeff Gerhardt of Linux Journal

Generated at 18:01 on 11 Oct 2004 by mariachi 0.52