If you cannot read the information below, click here.
O'Reilly.comSpreading the Knowledge of Innovators
XML animal imageXML Xtra from O'Reilly Network

The Latest from XML.com

Understanding XML
The Tao of XML
One of the challenges that XML has evidenced over the last decade has been its very chameleon-like nature. Is it a way to describe a document or of encoding data? Is it the foundation of a language for performing remote procedure calls or a way of retrieving news feeds? Was it intended to be used for creating process or as a formal declaration of state? The answer to all of these questions is, of course, "yes." And therein lays the dilemma.

Ten years ago, in February, an obscure "recommendation" was finalized in the halls of MIT, the Extensible Markup Language, which was immediately christened "XML" to the chagrin of developers for the next decade. It sounded mysterious, deep, and obscure, and the fact that it was seen even by its developers as being something of a bastard child of SGML didn't help matters much, especially for the vast majority of programmers who had quite happily been using imperative programming languages (and would continue, quite happily, doing so).

It was a way of describing documents, which became an open invitation to bright people in any number of industry verticals to start creating their own formal vocabulary or taxonomy "documents." An invoice is a document - you can draw that invoice as a form with a name, one or two addresses, and a set of line-items, rendered as stacked 2" x 1/4" inch boxes with separate boxes for amounts, prices, and totals, and a few boxes at the bottom for the total, the tax, and total with tax. Yes, you could make exactly the same kind of structure as an OOP object, which could just as readily be considered data, but because XML-like language had been used to encode HTML (and because "real" invoices are written on paper), such an invoice was a document. End of story.

sponsor image
Inside Lightroom
Inside Lightroom
Visit our Sponsored Developer Resource Pages and learn about cool stuff from our sponsors!

Interesting in Sponsoring?
Interested in sponsoring the XML.com newsletter?
Please email us at advertising@oreilly.com for rate and availability information. Thank you!

Except it wasn't the end of the story. A vendor of operating systems and office suites realized that their attempt to create a distributed marshaling proxy system was not working out, primarily because the only port that most people routinely kept open on their machines was port 80 - the port used by HTTP. Furthermore, attempting to send marshaled binary objects wasn't working well there either because it necessitated having something on the end being able to bind the proxy to a corresponding object. With some consideration, the vendor realized that XML was actually a pretty good tool for doing this... if you set up a standard so that other people would also agree to take these objects and convert them into formal entities. Thus was SOAP born, and in time the whole of the SOA web services stack.

Meanwhile, XML was showing up in strange places and making a fool of itself. Like some crazed mythical trickster, XML refused to behave like other languages. An XML instance could be twisted and transformed, could be validated against a growing number of conceptual schemas, could link to other resources and embed itself in other XML in a way that bore more resemblance to kudzu than to conventional C++. After a couple of tries, what emerged from the XML community was a growing methodology for how to work with XML, how to push the language and make it push back in ways that fell outside of distinctions between data and document altogether.

Those who became proficient in XML often came from very non-traditional backgrounds - typesetters and molecular biologists, topical domain experts and web page designers, most of them coming to the discipline not because programming was cool but because they had a problem to solve, and having found a solution in XML, they found themselves entranced and stayed in that domain. Many XML experts were not expert programmers in the normal sense - being able to work in the declarative paradigm typically required a perspective on development, a sort of zen-like fascination with the abstract and abstraction, that was often at odds with the detail oriented way of thinking that tends to define traditional programming. Perhaps not surprisingly, in my experience, many of them tend to become system architects and modelers, because a true understanding of XML requires that you think of the big picture.

So what is that big picture? I'm sure that everyone's list is different (and I welcome your comments, and feedback about your perceptions should be on that list), but I see the Tao of XML as follows:

  • XML just is. At any time XML is a slice of state, complete and whole in itself while still being a part of something bigger than itself. It is a declaration of existence.
  • XML flows. It moves from data store to process to feed to transformation to binding in a continuous stream, shifting its form in response to the needs of the time, merging and splitting from other streams, never really stopping. At times it may not even look like XML, but at its heart, it still is.
  • XML is a seed. Plant it in a system, and over time it will become the system.
  • XML contains and is contained. XML is about the collection, and the idea that there is always, even if only theoretically, a container for that collection. Recursion and existing in fractal dimensions are part and parcel of XML.
  • XML is meaningless. In the XML world, the role of imperative languages is to bind functionality to assertions of existence and identity, to give those nodes meaning and significance.

As I take over the role of managing editor from Kendall Clark (with much appreciation for his wit and wisdom), I see XML, appropriately, at a cross roads. XML is no longer about XSLT, XPath, the best schema language, or whether attributes or elements make better design elements. There is a small fraternity (and sorority) of XML wizards out there, with apprentices in training, and they will pass along these secrets to those who come seeking them, or are ready for them.

Instead, XML is becoming the pulse and heartbeat of the Web, following the rhythmic assertions of REST, carrying within its angle brackets the representations of state in all its myriad forms. I've often found it appropriate that one of the earliest projects that led both to the development of XML and of RDF was HyTime - the attempt to encode music and song as statement. XML is the music of the Web, and its future... is glorious.

Kurt Cagle
Managing Editor, XML.com
kurt@oreilly.com

Insight
Elliotte Rusty Harold, currently an adjunct professor of computing at Polytechnic University in New York City, is easily one of my favorite writers about XML technologies. He recently authored a piece that I think should be de rigeur reading for anyone in the XML community or he deals with web publishing in any form:

An excerpt:
The wheels of progress turn slowly, but turn they do. The crystal ball might be a little hazy, but the outline of XML's future is becoming clear. The exact time line is a tad uncertain, but where XML is going isn't. XML's future lies with the Web, and more specifically with Web publishing.

It seems a little funny to have to say that. After all, isn't publishing what the Web is about? The Web was designed first and foremost as a mechanism to publish information. What else can it do? Quite a lot. The last three years have seen an explosion of interest in Web applications that go far beyond traditional Web sites. Word processors, spreadsheets, games, diagramming tools, and more are all migrating into the browser. This trend will only accelerate in the coming year as local storage in Web browsers makes it increasingly possible to work offline. But XML is still firmly grounded in Web 1.0 publishing, and that's still very important.
Eliotte Rusty Harold, The Future of XML

Standards Watch
The gods must love standards - it can be the only reason there are so many of them. Even in the XML space it can be a challenge staying on top of the large number of standards that are in various stages of development. While it's unlikely that we'll be able to keep track of them all, Standards Watch will at least attempt to keep abreast of the most significant ones, updating once a week when possible. If you want to add a standard that you feel should be covered, please contact me at kurt@oreilly.com.

W3C

Speech Synthesis Markup Language (SSML) Version 1.1
March 17, 2008
This is part of the VoiceML family of standards, dealing specifically with XML that controls how text gets converted into a synthetic voice.

RDFa Primer
March 17, 2008
RDFa is definitely a technology to watch - this working draft covers a model proposed by the W3C's Semantic Web Deployment group for using specific attributes and namespaces within HTML or XHTML to introduce category tagging (i.e., microformats), that can also be parsed to generate RDF. The Primer, written by Mark Birbeck, covers the usage of various combinations of RDFa expressions.

Protocol for Web Description Resources (POWDER): Description Resources
March 17, 2008
Part of the Semantic Web working group (just how many things are they working on there?!), POWDER is intended to provide a means of describing resources on the web via machine metadata, with an emphasis on resource collections rather than ownership relationships.

XQuery Update Facility 1.0 (Candidate Recommendation)
March 14, 2008
While I have some doubts about POWDER, there is no question about the importance of XUF - it's huge. The XQuery Update Framework makes it possible to update individual XML resources or collections of resources through a standardized interface, essentially making XQUERY+XUF a viable alternative to SQL-based relational databases.

Java Community Process

JSR 225: XQuery API for JavaTM (XQJ)
March 3, 2008
I'm including this because of its significance, despite the age of the report. XQJ provides a standardized way for making XQuery calls from within Java, with final approval coming on March 3, 2008. This spec will likely be implemented as an extension set by Sun later this year, and should get folded into Java v. 7 next year.

OASIS

OGC and OASIS Announce Progress on Standards Cooperation
March 12, 2008
OASIS, one of the world's largest XML application standards organizations, and OGC, the largest GeoSpatial consortium, announced progress in collaboration on a number of intersecting standards between the two organizations, including support for ebRIM in conjunction with the OGC Web Services (OWS), among other areas.

To change your newsletter subscription options, please visit http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc. 1005 Gravenstein Highway North, Sebastopol, CA 95472   (707) 827-7000