password
username
Sponsored by CakeMail, an email marketing software.
Newsletter preview


If you cannot read the information below, click here.
O'Reilly.comSpreading the Knowledge of Innovators

XML animal imageUnderstanding XML


The Latest from XML.com

An XML Renaissance?

by Kurt Cagle, Managing Editor, xml.com.

I just got off the phone with Simon St. Laurent, a friend and co-editor at O'Reilly (and a long time XML guru), and as we talked, he mentioned his sense that XML is, after several years of largely stagnating, going through something of a renaissance - a rebirth, not a period where people where elaborate circular collars, dress in tights and paint pictures of cherubs (though they may be doing that too, although if they are, I've seen thankfully very little evidence).

His observations parallel my own. At one time, the XML community was tiny - perhaps a few hundred people all told, scattered across the globe. Some of them have drifted away (though surprisingly few of them - once you've played with XML, you never really stay away from it for long), many have, as they've become older, found themselves in positions as architects, CIOs, analysts, or managing editors. Not a few have started their own companies, though truth be told, I've found that the mindset that finds XML attractive tends not to be highly entrepreneurial in nature, so such companies tend to be consulting shops writ large.

sponsor image

However, the years have generally not been as kind with XML as those of us who started working with it in the mid-1990s could have hoped. Procedural developers have generally worked hard to hide the XML as much as possible - it was awkward and didn't fit well into the way that they programmed. It required parsing, and it didn't have any native methods beyond what DOM supplied, and it was decidely awkward to work with when building compiled applications. Web developers were perhaps more kindly disposed to it, though there's always been a vocal minority that have been convinced that the simple act of writing HTML as an XML language was the ultimate in heresy, and an equally strident minority (with a fair amount of overlap) that felt that XML was a strawman to be knocked down by JSON or other condensed encodings. Both groups inherently abhor namespaces, which curiously enough seem to be the rising star in the Semantic Web, and increasingly in XML itself.

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!

The period from about 2003 to 2006 in particular were hard for XML. The long hold-up with XPath 2.0 kept XSLT 2.0 and XQuery both in limbo until 2007, while technologies such as SVG and XForms seemingly foundered on rocks as major supporters backed away from these specs in favor of proprietary solutions. The Semantic Web seemed to dither away into incomprehensibility. SOA systems adopted XML as a marshalling technology, then proceeded to hide it as much as possible - not just from the users, but from the developers themselves. Perhaps it wasn't all that surprising that JSON should become the dominant messaging medium for AJAX users - even with that tantalizing X in the name, AJAX was ultimately about JavaScript, and AJAX developers were just as determined to get rid of that awful, ugly XML mess festering away as were SOA developers.

Yet there was several things that happened starting in 2007 that seem to be bringing XML back from the brink of obscurity. The first was the clearing of a log-jam, with the triple publication of XPath 2.0, XSLT 2.0 and XQuery 1.0. These truly were revolutionary more than evolutionary, involving nothing less than the rethinking of the mission that XML itself was to perform - getting away from the trees, and concentrating increasingly on the forest.

On the document front, Microsoft, seeing the momentum of Office slipping away with the publication of ODF as an ISO standard, put together OOXML as a prospective standard that did something nothing else has done in the XML space - it made people passionate about XML, even if it also meant a fair amount of rancor between sides pro- and con-. It also made people aware of the potential that any XML document has in terms of workflow, and already interest in XML-based publishing pipelines have risen dramatically in the wake of the controversy.

A chance question by Sam Ruby on the xml-dev list laid the foundation for a new RSS schema that was based upon XML and was at the same time easy to use. Atom made its debut in 2005, gathering momentum, but it was the publication of AtomPub in late 2007 that got many people to thinking about the role of syndication (and the role of XML in that syndication). Atom and AtomPub stand poised to become the foundations for a new generation of Resource Oriented Architecture, one where taxonomies for resource management become possible, where REST is the dominant operating paradigm and where the middleware stack all but disappears.

SVG is the graphics format that refuses to die, no matter how many attempts are made on its life. SVG adoption in mobile devices has risen dramatically, and 2007 was the first year where you could in fact view SVG in all browsers (most natively). XForms similarly is beginning to make a comeback as the Mozilla XForms component makes client-side XForms feasible, and Orbeon and Chiba do the same for server-side solutions. None of these occupy a huge niche yet, but combine XHTML+XForms+SVG+JavaScript+CSS on one side of the equation with AtomPub and XQuery on the other, and you have a remarkably powerful application development system that is XML all the way through.

The Semantic Web has similarly seen its stock rise after a long and painful period in the wilderness, in part because people tried building the folksonomic Web and for the most part have discovered why RDF is the way it is. On the flipside, this rethinking of taxonomy has also forced changes back up the stack as the community recognized (properly) that RDF as it stood was too complex. The future of the Semantic Web is not in RDF - it's in RDFa, where attributes carry the necessary semantic qualifications within documents in different namespaces. Ultimately, RDF will act as a carrier (a lot like messenger RNA) but the concepts involved are increasingly being articulated in terms that normal human beings can comprehend.

Another change has taken place, one outside of the scope of the core working groups. In the late 1990s, everyone rushed to create common schemas for everything from invoices to airp***s, and in the process discovered a truth known to anyone who's put together a dictionary: defining a new language is gruellingly difficult to work. What everyone expected to happen in a year with industry schemas has taken more than a decade in many cases - defining and testing and rejecting and reshaping schemas and ontologies and processes.

Yet even that seeming march into the quagmire eventually has to end. Industry specifications in areas as diverse as finance, health, government standards, mapping, production and education are all beginning to come online at roughly the same time, and a whole new generation of people are being exposed to XML that had only heard of it indirectly as being the stuff that theoretically ran through the SOA pipes. Having defined these schemas, they now want to use them, and that in turn is driving up interests in seeming backwaters as XSLT development.

Moreover, the ease of working with JSON when you control the pipes begins to break down once you have to start consuming other people's data streams. JSON is good for encoding comparatively simple structures, but things get more complex quickly when you have to deal with document-like data-structures. Not surprisingly, XML is there in the wings, inelegant perhaps, but having the requisite neutrality of semantics that made it such a good candidate for a metalanguage a dozen years ago.

XML is coming back. The mission that I have with xml.com is to shepherd this site back to a point where it can reflect this renaissance of interest, where it can be a portal of information about everything new that's happening in this space as well as an introduction for those people who are discovering XML for the first time. This won't happen immediately - but it will happen, and I'm finding that, for the first time in a while that it's fun to be working with XML.

XML Insights: XML and St. Patrick

Sean McGrath is another of those brilliant XML gurus I referenced above, and he has had a number of deep insights about the way that XML works over the years. He recently reposted an interesting play upon the Desiderata of St. Patrick that he wrote back in 2002, one that should be printed up and posted next to any angle-bracket-coder's monitor (original at http://www.itworld.com/nl/xml_prac/03212002/):

St. Patrick to be Named Patron Saint of Software Developers

In a dramatic development, scholars working in Newgrange, Ireland, have deciphered an Ogham stone thought to have been carved by St. Patrick himself. The text on the stone predicts, with incredible accuracy, the trials-and-tribulations of IT professionals in the early 21st century. Calls are mounting for St. Patrick to be named the patron saint of Markup Technologists.

The full transcription of the Ogham stone is presented here for the first time:

DeXiderata

Go placidly amid the noise and haste and remember what peace there may be in silence.

As far as possible, without surrender, accommodate the bizarre tag names and strange attribute naming conventions of others.

Speak your truth quietly and clearly, making liberal use of UML diagrams. Listen to others, even the dull and ignorant, they too have their story and won't shut up until you have heard it.

Avoid loud style sheets and aggressive time scales, they are vexations to the spirit. If you compare your schemas with others, you will become vain and bitter for there will always be schemas greater and lesser than yours -- even if yours are auto-generated.

Enjoy the systems you ship as well as your plans for new ones. Keep interested in your own career, however humble. It's a real possession in the changing fortunes of time and Cobol may yet make a comeback.

Exercise caution in your use of namespaces for the world is full of namespace semantic trickery. Let this not blind you to what virtue there is in namespace-free markup. Many applications live quite happily without them.

Be yourself. Especially do not feign a working knowledge of RDF where no such knowledge exists. Neither be cynical about Relax NG; for in the face of all aridity and disenchantment in the world of markup, James Clark is as perennial as the grass.

Take kindly the counsel of the years, gracefully surrendering the things of youth such as control over the authoring subsystems and any notion that you can dictate a directory structure for use by others.

Nurture strength of spirit to nourish you in sudden misfortune but do not distress yourself with dark imaginings of wholesale code re-writes.

Many fears are born of fatigue and loneliness. If you cannot make that XML document parse, go get a pizza and come back to it.

Beyond a wholesome discipline, be gentle with yourself. Loosen your content models to help your code on its way, your boss will probably never notice.

You are a child of the universe no less than the trees and all other acyclic graphs; you have a right to be here. And whether or not it is clear to you, no doubt the universe is unfolding as it should.

Therefore be at peace with your code, however knotted it may be. And whatever your labors and aspirations, in the noisy confusion of life, keep peace with your shelf of manuals. With all its sham, drudgery, and broken dreams, software development is a pretty cool thing to do with your head. Be cheerful. Strive to be happy.

Standards Watch

W3C Working Draft:  Requirements of Japanese Text Layout 1.0
This draft sets down the requirements necessary to synchronize the way that XSL-FO,CSS, SVG and HTML handle the depiction of Japanese text, using as a basis the JIS X 4051.

Published: April 17, 2008
W3C Working Draft:  Model-Theoretic Semantics 2.0
The OWL 2.0 initiative is intended to formalize the next generation of the Web Ontology Language. This specification establishes the formal semantics of OWL 2., including the principles for defining the semantics of description logics.

Published: April 11, 2008
W3C Working Draft:  Model-Theoretic Semantics 2.0
The OWL 2.0 initiative is intended to formalize the next generation of the Web Ontology Language. This specification establishes the formal semantics of OWL 2., including the principles for defining the semantics of description logics.

Published: April 11, 2008
W3C Working Draft:  Requirements of Japanese Text Layout 1.0
This requirements document establishes the need for handling Japanese Text Layout across W3C technology boundaries. It's primary purpose is to indicate where conflicts exist between the various standards and to recommend potential solutions for subsequent working group activity.

Published: April 11, 2008
W3C Working Draft:  Structural Specification and Functional-Style Syntax 2.0 (formerly 1.1)
The OWL 2.0 initiative is intended to formalize the next generation of the Web Ontology Language. This specification establishes the structural characteristics of OWL documents, along with a functional-style syntax.

Published: April 11, 2008
W3C Working Draft:  Language Bindings for DOM Specifications 1.0
This one has been a long time coming. A number of W3C specs that deal with document object models - HTML, XML, XHTML, SVG, XForms, etc., - all expose sets of interfaces for working with specific capabilities in their respective spaces. This information is usually given in terms of an Interface Definition Language, or IDL, which is essentially a language neutral expression of each interface. However, IDL has never been formally defined in the W3C, until now. The LBDOM spec establishes the formal specification that the W3C uses for IDLs, and explores conversions from these abstract interfaces to interfaces in JavaScript in Java.

Published: April 10, 2008
W3C Working Draft:  Mathematical Markup Language (MathML) 3.0
Math Markup Language has been one of the most spectacular successes of the W3C, emerging to become the dominant language for inter-mathematical communication. The MathML 3.0 working draft is not a radical rewrite of the spec, rather it adds specific functionality including support for bidirectional (bidi) layout, better line-breaking support and explicit positioning, elementary math notations and a new strict content MathML vocabulary for formal dictionaries.

Published: April 9, 2008
W3C New Working Group:  Rich Web Application Backp*** Incubator Group 1.0
Rich Web Application Backp*** Incubator Group The rich web application backp*** group (otherwise known as XG) has just been chartered to establish building blocks for rich internet applications. As the charter states: "[B]enefits to end-user interaction of adopting such common infrastructure will include richer user interaction enabled through simplified approaches to mixing multiple interaction technologies in a single application. The ability to easily share data across multiple components, and to freely intermix AJAX and declarative components, should support a wider range of high function composable UIs." This isn't a standards track group.

Published: April 9, 2008
W3C Last Call:  Device Description Repository Simple API 1.0
A major problem in building web content for mobile devices is that many of these devices have significant limitations with regard to expected dimensions, color depth, resolution and so forth. Given the sheer number of form factors found on the web, this makes developing good looking mobile web apps a challenge. The Device Description Repository (DDR) API provides a set of tools for accessing information about existing devices that both client and server based developers can utilize.

Published: April 8, 2008
W3C Working Draft:  CURIE Syntax 1.0
CURIEs have been something of a must-read technology to me for a while. CURIEs provide a way of attaching taxonomy namespaces to given terms in order to better support the ability of including multiple categorical breakdowns within a given document (such as an XHTML that includes both friend of a friend (FOAF) and vcard information) in the same document. CURIEs play a big part in RDFa, and are a sane alternative to the single space implementation of many microformats.

Published: April 3, 2008
W3C Working Draft:  Web Security Context: Experience, Indicators, and Trust 1.0
This document provides a series of recommendations for deciding what trust layers should be created at which levels of an application for the optimal creation of web content on a given site or portal.

Published: April 3, 2008
W3C Last Call:  XML Linking Language (XLink) 1.1
The XLink specification has not been updated in some time, though a proposal for changes was made in 2005. The current specification implements these recommended changes, including, specifically, the defaulting of xlink:type to "simple" (meaning an xlink with an rel="nofollow" href attribute doesn't need to include the type attribute if all that its doing is providing a standard one-way hyperlink), reserve certain key attributes for future proofing the specification, allowing the use of Internationalized Resource Identifiers (IRIs), and providing normative XSD and RelaxNG schemas.

Published: April 3, 2008
W3C Last Call:  Advanced XML Schema Patterns for Databinding 1.0
XMLSchema patterns represents a new (and intriguing) approach to developing schemas by looking for specific design patterns that occur within XSD documents and assigning those patterns explicit names. The advanced document looks at the interactions of multiple elements or attributes, or similar "one-off" patterns. Once such patterns are identified, it becomes considerably easier to automate both designer tools and processors around them.

Published: March 28, 2008
W3C Last Call:  Basic XML Schema Patterns for Databinding 1.0
XMLSchema patterns represents a new (and intriguing) approach to developing schemas by looking for specific design patterns that occur within XSD documents and assigning those patterns explicit names. This basic document looks at the core patterns, those that are usually dealing with a single element or attribute. Once such patterns are identified, it becomes considerably easier to automate both designer tools and processors around them.

Published: March 28, 2008
W3C First Working Draft:  XQuery Scripting Extension and Use Cases 1.0
The XQuery scripting extensions are being proposed in order to make the XQuery language act in a more traditional scripting language way, especially in conjunction with the XQuery Update Facility. XScript and XUpdate are without doubt the most signification additions to XQuery since the language's inception, and these documents should have a significant long term impact upon the XML community.

Published: March 28, 2008

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