Lists Home |
Date Index |
At 06:16 PM 7/3/2002 -0700, Derek Denny-Brown wrote:
> > -----Original Message-----
> > From: Simon St.Laurent [mailto:email@example.com]
> > XML is a wonderful set of tools for marking-up information with
> > structures.
>XML is a wonderful tool for (a) marking-up textual data and (b) interop
>of 'data', typically serializations of either relational or object
>structures. I work with people using XML to great success for both
>purposes. Both purposes have alternate solutions, which may be better
>in some cases, but for whatever reason XML has been chosen as the tool
>of the day. SOAP ensures that huge numbers of people, and mostly people
>who would never invest the time to join xml-dev, will fall into the (b)
>camp above. I express no opinion on whether SOAP as XML is good or bad,
>but it most definitely _is_.
I believe that SOAP is using XML because of the lingering hype wave from
XML, not because XML itself is particularly well-suited to the tasks that
SOAP performs. I'd say SOAP used HTTP early on for similar reasons, and I
hope that just as SOAP appears to be leaving HTTP behind as it becomes
clearer that SOAP and HTTP have little to do with each other, that SOAP may
yet leave XML behind.
>Many people in the (b) camp see XML as an abstraction. They could care
>less about the syntax, but are looking for a tool to pass information
>between systems such that they can leverage many existing tools to
>process that information along the way. The (b) camp typically involves
>files where no human ever sees the data. All they care about is interop
It's time to start telling the (b) camp that they're living a lie. It's
not merely a matter of whether or not humans see the data, or whether the
information is data or documents. The problem comes from the mismatch
between the structures in XML and the structures they want to abstract.
You can force any structure you want into XML, pretty much. The results
are likely only useful to tools that like that particular
structure. Representing information in XML is very different from cramming
information into XML using a set of tools which just convert an existing
set of structures into an XML representation.
I think XML is a great format for representing data, not just
documents. At the same time, however, I think that people who want to use
XML for the data need to think about how XML contains and describes
information, much the same way that people who use objects or relational
databases have to consider such issues.
Right now, it seems that most of the W3C projects affecting these areas -
W3C XML Schema, W3C XML Query (and its fallout in XSLT and XPath) - have
pretty much lost touch with the notion of using elements and attributes to
label information, and instead are blurring object and relational notions
with XML syntax. I don't believe that's sustainable.
>DTDs provided a moderate solution to (a) and simple cases of (b) above,
>but failed miserably for complicated (b). RELAX NG is hugely better,
>and is an elegant solution to validating that an XML document which was
>received (be it scenario (a) or (b) ) conforms to your expectations.
>Where both DTDs and RELAX NG falter, is integrating the XML solution
>into the OOP/Relational world that is the rest of the application.
The rest of the application is the rest of the application, something to
keep separate from the markup rather than cram into the core. Building
applications responsibly commonly requires some thought about how to use
technologies effectively. OOP and relational databases have had mismatches
for years, but the answer hasn't been to force objects into tables or
tables into objects.
> > RELAX NG makes me think of a set of houses built to fit in their
> > environment, with minimum impact on the surrounding terrain. W3C XML
> > Schema makes me think of a subdivision built by clearcutting the area
> > then building houses according to plans that worked well enough
> > else.
>But what if those houses are designed for people from that someplace
>else? They expect their new houses to be similar to their old houses,
>to work in similar ways. Mankind has a long history of doing exactly
>this, and pounding that square peg until it fits, by a bit of both
>shaving off some edges and stretching out the whole.
Then perhaps it's time to tell those people to go back to that someplace
else until they have some notion of how best to fit into the terrain rather
than forcing it to fit them. It's wonderful to have a house in the woods,
free of building codes but packed with the latest goodies. Wonderful, that
is, until the fires, mudslides, or other disasters show up. Funny how
"natural disasters" often have much to do with humans refusal to
acknowledge their impact on the landscape.
>Just because those traditional XML notions have been around for a while
>does not mean that they are the only way to view things.
Just because those traditional OOP notions have been around for a while
does not mean that they are the only way to view things.
Just because those traditional relational databases notions have been
around for a while does not mean that they are the only way to view things.
>Relational and OOP oriented people are trying to use XML, and will
>continue to do so. Work with them, not against them.
They're not trying to use XML. They're trying to do what they always have
done, and bolting it on to a syntax that doesn't match their persepective
very well. They are taking a set of tools which works very well one way,
using it poorly, and then claiming that result is the way it should
be. It's long past time for open conflict.
>You can ignore the portions of WXS which don't fit your application. If
>that leaves a core that does not meet your demands, then you should
>provide specific feedback to the WXS 1.1 committee about what is
>missing. Just because it allows you to do things which are bad, does
>not mean that it is bad. C allows me to dereference a NULL pointer and
>crash my program, so is it a bad programming language?
I can't ignore WXS at all. It's damaging the technological landscape of
XML, not merely providing tools. It's infesting other XML-related specs
with grotesque results. I used to think WXS was a cancer, but I've shifted
perspective. It's an environmental disaster with people behind it who
simply don't care about its impact or even believe that such an impact exists.
>Dredging up the ancient document vs data debate... WXS attempts to
>satisfy the perceived needs of both camps. Where if fails, it should be
It's not a simple documents vs. data debate. It's that WXS has pretty much
no sympathy with or understanding of the underlying markup structures. The
difficulty of adding an attribute to a simple element seems like a poster
child for the level of mismatch.
>I sincerely wish WXS could have been based on a validation framework
>like RELAX-NG combined with distinct object layer, but it wasn't. C++
>is not perfect either, but has become a rather popular. It is not just
>that it was better than the alternatives. It was that it fit into the
>existing frameworks, etc.. WXS has already been accepted as part of
>many XML frameworks, so lets work to improve it. Starting from scratch
>always looks easier, but then runs headlong into troubles when you
>attempt to interoperate with existing frameworks expecting the old.
WXS is itself a "start from scratch" phenomenon, and constantly "runs
headlong into troubles when you attempt to interoperate with existing
frameworks expecting the old."
>I'm not trying to parade a company line, and am one of the people 'round
>here who have held that WXS has some serious problems, and RELAX-NG has
>some good insights. I just try to be a practical person, and experience
>has taught me that the elegant is not always the winner. Given a
>choice, I'd be writing much of my code in lisp or sml, not C++. That
>choice would mean that my solutions would help multiple orders of
>magnitude less people. I'm here to make solutions for people, so I live
>with #define and other ugliness. In return I go to conferences and hear
>people talk about how they used my software to solve real-world
>problems. That just feels good.
Enjoy the warmth for now. There's a lot of ugliness yet to come, as the
mismatches between what XML is sold as and how it actually works come to
the surface. The lack of "elegance" isn't the problem. Lack of common
sense and a serious dose of impatience are much larger problems. Those
aren't typically hallmarks of practicality.
"Every day in every way I'm getting better and better." - Emile Coue