I’ve had some interest in the Documentum Cocoon Transformer. I’ll probably make it available to whoever wants it.
Category: XML
The lingua franca of the Internet.
Finally got my Cocoon Documentum Transformer fully functional this evening thanks to the good folks at the Cocoon Users Mailing List. My problem was that the Documentum xDQL query was returning a full XML document. When I tried to parse that, the extra startDocument and endDocument calls were causing the runtime exception (archived mailing list thread).
Now that I have my transformer working, I can configure any number of XML docs I want, each with any number of xDQL queries against any docbase my server can see. This is real handy because there are times when you want to run the same query against multiple docbases. I’ve currently got the pipeline configured to style the query results using a generic xDQL-to-HTML stylesheet, but now that I’ve got everything working, the sky is the limit. Here are some ideas…
Documentum admin portal
Go to one page and see very quickly what the status is of key metrics across all Documentum servers, docbases, and environments (Dev, QA, Prod). This is easily done using Cocoon’s aggregation of my styled query results. If I really wanted to get fancy I could use the Cocoon portal framework and create an honest-to-goodness portal with multiple users and profiles (different users might want to monitor different things on different docbases) as well as security.
But, at some point, this thing starts to approach the out-of-the-box Documentum Administrator client and I’m definitely not up for reinventing that wheel. So, this one is a lower priority.
Documentum RSS alerts
Create one or more RSS feeds that will syndicate alerts for things in the environment that need attention. To do this, I’ll add another transformation in my pipeline that will apply business logic to the query results and format “alerts” as XML. I will then add an alert-XML-to-RSS stylesheet. (I’m separating the two because I might want to format alerts in HTML). Once that is in place, I can use a news aggregator like Amphetadesk or NewsMonster to poll my Documentum RSS alerts periodically for things that need attention.
This one is nice because it does not force the admins to go to a web page–they just leave their aggregator running on their desktop.
Return Documentum Query Results in a Spreadsheet
Sometimes you’d like to be able to query multiple docbases and have the results in a spreadsheet so you can then do some analysis or whatever. Today you have to query each docbase and then cut-and-paste the results. With my transformer in place, I ought to be able to spit my query results into an Excel spreadsheet, PDF, SVG, whatever.
RSS vs. Atom Explained. You probably know about the schism of sorts within the headline-syndication community between RSS (which has endured a variety of irredentist movements itself) and Atom. But if yo… [CMSWatch Trends and Features]
Netflix and Cocoon steal time from blog
Two things are stealing time away from the time budget previously allocated to blogging:
1. Netflix. Having a constant supply of movies on-hand that have been on my to-be-watched list for some time is awesome, and I love that I’m getting caught up. But, the blog has suffered.
2. Integrating Documentum with Cocoon. I got my DQL Transformer working some time ago but I ran into a problem transforming the DQL query result with my stylesheet. What sucks is that I had to upgrade my DFC and all of my WDK apps because of my current project, and after that, I discovered the problem. So now I’ve got to figure out if it was the upgrade or something else.
Until now I hadn’t been able to get logging to work from my custom transformer but this problem forced me to work through that. It turned out to be a simple thing that just wasn’t documented clearly. The solution was to use the logger attribute on my transformer declaration in sitemap.xmap like this:
<map:transformer name=”dqlquery” src=”com.navigatorsystems.cocoon.dctm.transformation.XdqlTransformer” logger=”sitemap.transformer.dqlquery”>
The category declaration in logkit.xconf matches up with that like this:
<category log-level=”DEBUG” name=”sitemap.transformer.dqlquery”>
<log-target id-ref=”dqlquery”/>
<log-target id-ref=”error”/>
</category>
The DQL Transformer works like the SQL Transformer. It receives SAX events looking for a query element. When it finds it, it executes the query against Documentum as an XDQL query (ie, the DQL query results get returned as a well-formed XML document). The XML that gets returned gets sent to the next component in the pipeline (like another transformer or a serializer).
I am now back to running on Cocoon 2.1 instead of the version that came with the Cocoon book. And I’m running it on Tomcat 4.1.
XML databases move to the middle.
It’s true that you can use native XML databases to manage the growing number of business documents created by the new generation of XML-savvy end-user applications. It’s handy, for example, to search an insurance database for incident reports that match some structured pattern of in-line metadata. But hybrid SQL/XML databases can do that too, and they can also join the structured XML content with relational columns — a powerful combination. So XML databases are migrating into a niche that SQL/XML can’t and won’t occupy. They’re becoming the high-performance pumps that push XML traffic around on the emerging services web. [InfoWorld.com]
This short piece is a companion to Sean McCown’s excellent cover story which surveys the XML features of leading relational databases: Oracle, DB2, SQL Server, Sybase. … [Jon’s Radio]
Cocoon book
Still working through the Cocoon text. The book covers 2.0. I was having trouble getting some of the PDF examples and sub-map examples to work right so I went ahead and installed 2.0 instead of trying to get their examples to work on my 2.1 install. Once I’m through I’d like to circle back, read the 2.1 release notes and figure out why their 2.0 examples were broken.
Tonight I got MySQL installed, loaded with some test data, and configured for access by Cocoon. It was extremely straightforward. I want to code up a little Cocoon app for managing the MySQL test data. Then, I’m going to hook in my Xindice install and play with that through Cocoon. Next, it’ll be writing a simple generator and serializer for Documentum.
XML Forms and XML Editors
XML Forms and XML Editors. Quick thought. Where do XML-based eForms end and XML-based editors begin? There is clearly some overlap. Certain kinds of content entry are well served by electronic forms—we wouldn’t have built all of these industrial-strength Web sites if this weren’t true…. [Ideas in Technology and Publishing]
The State of the eForms Market
The State of the eForms Market. I gave my opening presentation at the Seybold eForms summit. It went well, though I have to admit to being a bit in awe of the audience, which included many of the real thinkers and doers in the XHTML and… [Ideas in Technology and Publishing]
XML and the Airlines
XML and the Airlines. I have a new article in Transform magazine about how Contintal Airlines has used XML and Web Services to automate some routine publishing and document review tasks. To quote briefly from the introduction: Aircraft maintenance is an especially content-centric process…. [Ideas in Technology and Publishing]
Cocoon texts
I opened up Java & XML recently because it had some references to Cocoon. The Cocoon examples are pre 2.0, so instead I worked through some of the XML-RPC chapters which were good. I’d recommend working through the whole book to anyone who’s just getting started using Java and XML together.
Before I made it to my intended destination (the SOAP and web services chapters), I decided to pick up Cocoon: Building XML Applications. I had previously seen this one but passed up. So far, it is pretty good–I’m glad I came back around. They seem to do a better job explaining the architecture than some of the articles I’ve read recently. I like the examples I’ve worked through so far. The authors spend a little too much time on the evolution of the net and web applications–I wish they would have devoted that space to some of the more advanced features. It definitely gets me excited about using Cocoon on some real projects. This is a good book for anyone starting out with XML applications with Cocoon.
I’m noticing there are a few other Cocoon texts out there but I haven’t taken a look at them yet. They are:
- Cocoon 2 Programming: Web Publishing with XML and Java, Bill Brogden
- Professional XML Development with Apache Tools: Xerces, Xalan, FOP, Cocoon, Axis, Xindice, Theodore W. Leung
- Cocoon Developer’s Handbook, Lajos Moczar, Jeremy Aston