From the home office in Bedford, Massachusetts — the XQuery capital of the world — the Stylus Studio® Team proudly presents the top 10 XQuery trends to look for in 2005 (based on a healthy mixture of marketing chutzpah and a wholly non-scientific survey of leading XQuery industry experts). So forget about giving yourself washboard abs and drinking less coffee, and resolve to get tight with XQuery in 2005!
10. T-minus XQuery and counting!
With software giants riding the XML wave and XQuery moving steadily towards approval as an official standard by the World Wide Web Consortium (W3C), XQuery will begin to fundamentally change the way enterprise software applications are built. There's huge interest on the sidelines, too — literally scores of eager application developers and architects just waiting for the official blessing from the standards committee. (Really. We've seen them with our own eyes.) Mix this all up and you've got a rare and potent paradigm shift that will fundamentally change the way enterprise software applications are built. The launch codes have been entered, the countdown sequence has begun. When XQuery blasts off, are you going to be riding the rocket, or standing on the launch pad flapping your arms?
9. XQuery ... for the SQL weary
Oracle's Jim Melton, co-lead of XQJ, the XQuery API for Java, recently noted on his blog: "Like it or not, the SQL standard is in its twilight years, with XQuery poised to overtake it in terms of major new applications by 2010." This shouldn't be too surprising, after all, SQL is really old — can you name another software technology besides the Vic20 that's been around for 35 years and is still used everywhere? (We'll wait.) According to Jason Hunter (Author of Java Servlets, and Member of the XQJ Experts Group, and overall Java Guru): "The greatness of XQuery stems from enabling far more advanced functionality that was previously either not possible or really difficult to do, such as querying and integrating distributed data sources."
But before you can even start to move beyond SQL, you'll need to get all of the entrenched interests on board, including all of those database administrators and developers who have been trained on nothing but SQL for decades. This transition will undoubtedly take time, but it will be smoothed by the availability of powerful XQuery developer tools such as Stylus Studio®.
Just how much impact will XQuery have on the database community? According to Mike Olson, CEO of Sleepycat Software, producer of Berkeley DB (the world's most widely deployed database): "The database community is tremendously energized about XQuery and XML standards. We feel that the XQuery standard has become something of a rallying point for XML and database developers and product vendors alike. In talking with our customers, we get the overall sense that XQuery is perceived to be flexible enough for them to work with on a number of different kinds of new applications."
Plus, XQuery is waaaay easier to say than SQL (sequel? Es-cue-el?).
8. Access relational data as XML!
The advantages of storing data in a relational format but working with it in an XML format are well-known, but here they are in a nutshell: relational databases are great for speed, and XML excels at data manipulation, transformation, integration, and conversion. Unfortunately, the marriage of relational data and XML is complicated when it comes to getting relational data into an in-memory XML format and back to the database. There have been quite a few attempts to provide access to relational databases as XML — including DOM, various XML binding API's, SQL extensions, and even one XML tool company came up with a wacky proprietary code generation scheme — but XQuery is the by far the most promising of them all.
According to John Goodson, CTO of DataDirect Technologies (the leading provider of database access drivers and components) "XQuery excels at accessing relational database data as XML because it has been designed from the ground up to do just this — by design, not patched on as an afterthought. Specifically, XQuery provides a platform-neutral way of dealing with queries, including a rich library of built-in functions and data-types, consistently handled, and the ability to define user-defined functions that are peers to internal functions, and that are written in same language — overall, it's a very elegant solution to a complex data integration challenge."
7. Access non-relational data as XML!
While there's a ton (well, a lot; real data can't be weighed on a scale, of course; which is not to say that its value can't be measured — far from it. But we digress...) of information stored in relational databases, non-relational data formats — EDI, CSV, binary data, and others — store treasure troves of data, too. But so many different formats make it difficult or impossible to re-use this valuable information. A primary goal of XQuery is to enable access to heterogeneous data sources, like EDI and CSV. And the solution is easier than you might think, and it's here today — Stylus Studio®'s Convert-to-XML enables developers to quickly get information into a custom XML format. Once you've liberated relational data from these disparate sources and rendered it as XML, XQuery is then a natural fit for data integration. And not just because it is flexible enough to let you do a lot more than just your typical SQL-like joins. According to Java and XQuery expert Jason Hunter, "The usefulness of XQuery comes from its ability to query nearly any kind of content: XML documents, relational stores, PDF files, or Microsoft Office documents — or any data source — XQuery seamlessly integrates and binds them all together."
6. Span the globe for distributed data sources!
We live in a networked world, and XQuery was designed to leverage this by providing native support for URIs and other higher level abstractions for loading and querying distributed data sources. Imagine using a simple function to load any data source on the internet and then being able to join, integrate, search, manipulate, or do whatever you want with the data as though they were resources on your local file system! Master and commander, indeed!
5. Enjoy standards-based programmatic data access!
XQuery expressions need to be invoked via program code, and therefore the XML equivalent of JDBC or ADO is needed. Right now you're thinking "A-ha! I knew there was a fly in the ointment!" So young, and so cynical! XQuery API for Java (XQJ) is a powerful new Java standard for programmatically invoking XML queries conforming to the W3C XQuery 1.0 specification, and for processing query results in a JDBC-like fashion. "Fine. But what about database support?" Enter DataDirect XQuery - an embeddable XQuery implementation for XML applications that need to be able to process both XML and relational data sources. It supports W3C XQuery query language and XQuery API for Java (XQJ), and works with all major databases, including Oracle, Microsoft, IBM, Sybase, and MySQL, and you can even download a free trial today!. So there.
But don't take our word for it (we're biased, after all): According to Priscilla Walmsley, a member of the W3C XML Schema Working Group since 1999 and presenter of the "Introduction to XQuery" Session at the XML Conference & Expo 2004, "One of the
neat XQuery trends at the XML 2004 Conference and Expo was DataDirect XQuery, which lets you query relational and XML sources together using XQuery. From
your Java code, you just write a query and execute it using XQJ, which is an XML
data access API with JDBC-like syntax, and DataDirect processes the XQuery and takes
care of the access to the data sources. I think that most database developers will find this approach to be more familiar and easier to work with, especially compared to existing ways of implementing this kind of work, such as DOM or XSLT programming."
4. Buy one, get one free!
Thought this was an XQuery trends article? Well, we should point out that all of the technical benefits of XQuery also apply to XSLT 2.0 — the two technologies are very much related, and in fact both use XPath 2.0, XML Namespaces, XML Schema, to name only a few. Not to mention that XSL and its related technologies have been around for over 5 years now and have gained quite a following. Naturally, for the same reasons that XQuery tools are so critical, there will likewise be a need for sophisticated XSLT 2.0 editors, debuggers, mappers, and performance profilers for developers to leverage.
According to Dr. Michael Kay, author of the XSLT specification: "To my mind, XQuery is better at doing the traditional database query jobs: finding data, joining data from different sources, aggregating. XSLT 2.0 is still better at processing data with unpredictable structure (the "document" end of the spectrum), and it's better for many transformation tasks. I hope that people will use both languages for what they are best at, rather than fighting any religious wars. I think that once you've learnt either of the languages, you're 80% of the way towards learning the other."
3. ...It's time to learn XML Schema
If you've been putting off learning XML Schema, XQuery's ascendancy in 2005 will make you want to brush up your study skills in a hurry. Just as you wouldn't learn SQL without learning the SQL Data Definition Language (DDL), XQuery's integrated support for XML Schema makes XML Schema a must-learn technology. According to Mike Olson, "XML Schema is wonderful because it addresses so many of the shortcomings of its predecessor, document type definitions — in particular, DTDs didn't support the concept of data types, and this was a real stumbling block for most database developers trying to use XML with relational database technologies. But XML Schema addresses this and adds so much more in terms of data modeling flexibility, and using tools like Stylus Studio®'s XML Schema Editor makes it very easy to visually create advanced XML data models for representing just about anything. Who knows, with all of the XML Schema support in XQuery, it could potentially become a new de facto standard in data modeling in the same way that entity relationship or unified modeling language diagrams are so widely used."
We don't want to be piggy-back or steal XQuery's thunder, so we'll enthuse about XML Schema another time. (Subscribe to our free XML developer newsletter for next month's top-10 list ...)
2. XML document size matters
The trend in recent years has been for bigger documents, more data, and more complex problems — and there's no easing-up in sight. XQuery technologies open up entirely new classes of applications in XML content management and systems integration, so, like it our not, you are apt to find your applications having to manage increasingly large XML documents in the very near future. If you want to be able to cope with the development challenges posed by documents that are the binary equivalent of, say, Godzilla, you'll find Stylus Studio®'s XQuery profiler the cure for any performance anxiety issues, and an invaluable aid to building, testing, and optimizing scalable XQuery applications.
And the number one reason XQuery is going to change your life in 2005 ... (drum roll, please)
1. New XML Data Services!!!
What is an XML Data Service you ask (and why is it #1?)? Well, it's an emerging design pattern involving the use of XQuery to provide unified views of disparate data sources via a Web service interface. XML Data Services leverage XQuery's inherent ability to work with both relational and non-relational databases anywhere on the internet (which we're sure you recognize as reasons #8, #7, and #6 cited earlier in this article). Once you've deployed several XML Data Services, you can use an XQJ implementation (See reason #5) to code a customized "XML pipeline", chaining together different data services in a Service Oriented Architecture — the possibilities are endless!